mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* State Framework and dtb
@ 2017-03-29 13:24 Çağlar Kilimci
  2017-03-30  6:31 ` Sascha Hauer
  0 siblings, 1 reply; 17+ messages in thread
From: Çağlar Kilimci @ 2017-03-29 13:24 UTC (permalink / raw)
  To: barebox

Hi all,

Previously, I ask for a help [1] and thankfully Sascha replied with
helpful comments then I have tried many dts configurations but I still
could not run state framework.

My main goal is to update a system using RAUC [2] so I need state
framework of barebox. I would like to use EEPROM as a storage device
for barebox state. Here is an example dts that I think, it should have
work:
state: state@0 {
  magic = <0x27031977>;
  compatible = "barebox,state";
  backend-type = "dtb";
  backend = &state_partition;

  foo {
    reg = <0x00 0x4>;
    type = "uint32";
    default = <0x0>;
  };

  bar {
    reg = <0x10 0x4>;
    type = "enum32";
    names = "baz", "qux";
    default = <1>;
  };
};
i2c_eeprom: eeprom@52 {
  compatible = "atmel,24c32";
  pagesize = <32>;
  reg = <0x52>;
  state_partition: partition@1000 {
    reg = <0x1000 0x2000>;
  };
};

If I try to load manually, I can observe in the of_dump:
        state@0 {
                magic = <0x27031977>;
                compatible = "barebox,state";
                backend-type = "dtb";
                backend = "/ocp/i2c@44e0b000/eeprom@52/partition@1000";
                foo {
                        reg = <0x0 0x4>;
                        type = "uint32";
                        default = <0x0>;
                };
                bar {
                        reg = <0x10 0x4>;
                        type = "enum32";
                        names = "baz", "qux";
                        default = <0x1>;
                };
        };

But, if I try to probe, device reboots:
barebox@Phytec phyCORE AM335x:/ oftree -p
register_device: already registered 40300000.ocmcram
unable to handle paging request at address 0x70636f2f
pc : [<8ff35694>]    lr : [<8ff2c875>]
sp : 8ffef800  ip : 00000000  fp : 8ff67bdb
r10: 00000000  r9 : 00000002  r8 : 00000000
r7 : 880ec4e0  r6 : 880ec528  r5 : 8ff85268  r4 : 87ff0630
r3 : 0000002f  r2 : 880ec528  r1 : 70636f2f  r0 : 880ec528
Flags: NzCv  IRQs off  FIQs on  Mode SVC_32
[<8ff35694>] (strcmp+0xe/0x16) from [<8ff2c875>]
(of_find_device_by_node_path+0x29/0x34)
[<8ff2c875>] (of_find_device_by_node_path+0x29/0x34) from [<8ff2c893>]
(__of_find_path+0x13/0x88)
[<8ff2c893>] (__of_find_path+0x13/0x88) from [<8ff2c96f>]
(of_find_path+0x5b/0x80)
[<8ff2c96f>] (of_find_path+0x5b/0x80) from [<8ff2a1b7>] (state_probe+0x63/0x128)
[<8ff2a1b7>] (state_probe+0x63/0x128) from [<8ff09d61>] (device_probe+0x21/0x68)
[<8ff09d61>] (device_probe+0x21/0x68) from [<8ff09dcb>] (match.part.0+0x23/0x28)
[<8ff09dcb>] (match.part.0+0x23/0x28) from [<8ff0a1ad>]
(register_device+0xa9/0xcc)
[<8ff0a1ad>] (register_device+0xa9/0xcc) from [<8ff2c6d5>]
(of_platform_device_create+0xd5/0x1ac)
[<8ff2c6d5>] (of_platform_device_create+0xd5/0x1ac) from [<8ff2c7d3>]
(of_platform_bus_create+0x27/0x60)
[<8ff2c7d3>] (of_platform_bus_create+0x27/0x60) from [<8ff2c83b>]
(of_platform_populate+0x2f/0x40)
[<8ff2c83b>] (of_platform_populate+0x2f/0x40) from [<8ff2bd6b>]
(of_probe+0x3f/0x64)
[<8ff2bd6b>] (of_probe+0x3f/0x64) from [<8ff32b91>] (do_oftree+0xf5/0x114)
[<8ff32b91>] (do_oftree+0xf5/0x114) from [<8ff03095>]
(execute_command+0x21/0x48)
[<8ff03095>] (execute_command+0x21/0x48) from [<8ff0712b>]
(run_list_real+0x5a3/0x604)
[<8ff0712b>] (run_list_real+0x5a3/0x604) from [<8ff06a8d>]
(parse_stream_outer+0x105/0x15c)
[<8ff06a8d>] (parse_stream_outer+0x105/0x15c) from [<8ff0734f>]
(run_shell+0x33/0x60)
[<8ff0734f>] (run_shell+0x33/0x60) from [<8ff03095>] (execute_command+0x21/0x48)
[<8ff03095>] (execute_command+0x21/0x48) from [<8ff0712b>]
(run_list_real+0x5a3/0x604)
[<8ff0712b>] (run_list_real+0x5a3/0x604) from [<8ff06e1f>]
(run_list_real+0x297/0x604)

[<8ff53ca1>] (unwind_backtrace+0x1/0x58) from [<8ff00ba9>] (panic+0x1d/0x34)
[<8ff00ba9>] (panic+0x1d/0x34) from [<8ff5412d>] (do_exception+0xd/0x10)
[<8ff5412d>] (do_exception+0xd/0x10) from [<8ff5418d>] (do_data_abort+0x21/0x2c)
[<8ff5418d>] (do_data_abort+0x21/0x2c) from [<8ff53e94>] (do_abort_6+0x48/0x54)

Even if I change backend type as raw, I get the same result. I do not
know what else I can do.

Thank you for your time.

[1] http://lists.infradead.org/pipermail/barebox/2017-March/029590.html
[2] https://rauc.readthedocs.io/en/latest/index.html

-- 
Çağlar Kilimci

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: State Framework and dtb
  2017-03-29 13:24 State Framework and dtb Çağlar Kilimci
@ 2017-03-30  6:31 ` Sascha Hauer
  2017-03-30 10:33   ` Çağlar Kilimci
  0 siblings, 1 reply; 17+ messages in thread
From: Sascha Hauer @ 2017-03-30  6:31 UTC (permalink / raw)
  To: Çağlar Kilimci; +Cc: barebox

On Wed, Mar 29, 2017 at 04:24:11PM +0300, Çağlar Kilimci wrote:
> Hi all,
> 
> Previously, I ask for a help [1] and thankfully Sascha replied with
> helpful comments then I have tried many dts configurations but I still
> could not run state framework.
> 
> My main goal is to update a system using RAUC [2] so I need state
> framework of barebox. I would like to use EEPROM as a storage device
> for barebox state. Here is an example dts that I think, it should have
> work:
> state: state@0 {
>   magic = <0x27031977>;
>   compatible = "barebox,state";
>   backend-type = "dtb";
>   backend = &state_partition;

This should be a phandle. Sorry, the example I gave you last time was
wrong. It should be

	backend = <&state_partition>;

Note the '<>'


> barebox@Phytec phyCORE AM335x:/ oftree -p

I'm not sure this works as expected. You should rather modify the
devicetree in the barebox binary.

Sascha


-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: State Framework and dtb
  2017-03-30  6:31 ` Sascha Hauer
@ 2017-03-30 10:33   ` Çağlar Kilimci
  2017-03-31  6:21     ` Sascha Hauer
  0 siblings, 1 reply; 17+ messages in thread
From: Çağlar Kilimci @ 2017-03-30 10:33 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: barebox

Hi,

>>   backend = &state_partition;
>
> This should be a phandle. Sorry, the example I gave you last time was
> wrong. It should be
>
>         backend = <&state_partition>;
>
> Note the '<>'
It's alright. I applied the changes, but still no registered state
instances there. Similarly, if I free stored device tree and load it
back again; before probe it, I can observe state like this:
        state@0 {
                magic = <0x27031993>;
                compatible = "barebox,state";
                backend-type = "dtb";
                backend = <0x5a>;
                foo {
                        reg = <0x0 0x4>;
                        type = "uint32";
                        default = <0x0>;
                };
                bar {
                        reg = <0x10 0x4>;
                        type = "enum32";
                        names = "baz", "qux";
                        default = <0x1>;
                };
        };

I appended many configs even if I do not need all of them:
CONFIG_STATE=y
CONFIG_STATE_CRYPTO=y
CONFIG_CMD_SHA1SUM=y
CONFIG_CMD_SHA224SUM=y
CONFIG_CMD_SHA256SUM=y
CONFIG_CMD_SHA384SUM=y
CONFIG_CMD_SHA512SUM=y
CONFIG_CMD_STATE=y
CONFIG_STATE_DRV=y
CONFIG_DIGEST_HMAC=y
CONFIG_DIGEST_SHA1_GENERIC=y
CONFIG_DIGEST_HMAC_GENERIC=y
CONFIG_CRYPTO_KEYSTORE=y
CONFIG_BOOTCHOOSER=y
CONFIG_CMD_BOOTCHOOSER=y
CONFIG_LOGBUF=y
CONFIG_FIRMWARE=y
CONFIG_BOOTM_OFTREE_UIMAGE=y
CONFIG_IMD=y
CONFIG_IMD_TARGET=y
CONFIG_BAREBOXENV_TARGET=y
CONFIG_DDR_SPD=y
CONFIG_CMD_DMESG=y
CONFIG_CMD_IMD=y
CONFIG_CMD_MMC_EXTCSD=y
CONFIG_CMD_FIRMWARELOAD=y
CONFIG_CMD_DHRYSTONE=y
CONFIG_CMD_SPD_DECODE=y
CONFIG_OF_BAREBOX_ENV_IN_FS=y
CONFIG_NAND_ALLOW_ERASE_BAD=y
CONFIG_EEPROM_AT25=y
CONFIG_DIGEST_CRC32_GENERIC=y
# CONFIG_DEFAULT_COMPRESSION_XZ is not set
CONFIG_BAREBOXENV_TARGET=y
CONFIG_BAREBOXCRC32_TARGET=y
CONFIG_CMD_HWMON=y
CONFIG_AIODEV=y
CONFIG_LM75=y
CONFIG_DRIVER_SERIAL_ARM_DCC=y
CONFIG_DRIVER_SERIAL_CADENCE=y
CONFIG_DRIVER_NET_CALXEDA_XGMAC=y
CONFIG_DRIVER_NET_ENC28J60=y
CONFIG_DRIVER_NET_ENC28J60_WRITEVERIFY=y
CONFIG_AT803X_PHY=y
CONFIG_LXT_PHY=y
CONFIG_MARVELL_PHY=y
CONFIG_NATIONAL_PHY=y
CONFIG_MDIO_BITBANG=y
CONFIG_MDIO_GPIO=y
CONFIG_I2C_ALGOBIT=y
CONFIG_I2C_GPIO=y
CONFIG_I2C_DESIGNWARE=y
CONFIG_I2C_MUX=y

#
# Multiplexer I2C Chip support
#
CONFIG_I2C_MUX_PCA954x=y
CONFIG_MTD_RAW_DEVICE=y
CONFIG_MTD_CONCAT=y
CONFIG_MTD_DATAFLASH=y
CONFIG_MTD_DATAFLASH_WRITE_VERIFY=y
CONFIG_MTD_SST25L=y
CONFIG_MTD_DOCG3=y
CONFIG_MTD_MTDRAM=y
CONFIG_DRIVER_CFI=y
CONFIG_DRIVER_CFI_INTEL=y
CONFIG_DRIVER_CFI_AMD=y
CONFIG_DRIVER_CFI_BANK_WIDTH_1=y
CONFIG_DRIVER_CFI_BANK_WIDTH_2=y
CONFIG_DRIVER_CFI_BANK_WIDTH_4=y
# CONFIG_DRIVER_CFI_BANK_WIDTH_8 is not set
# CONFIG_CFI_BUFFER_WRITE is not set
CONFIG_NAND_ECC_BCH=y
CONFIG_NAND_ECC_HW_OOB_FIRST=y
CONFIG_MTD_NAND_ECC_SMC=y
CONFIG_MTD_NAND_DENALI=y
CONFIG_MTD_NAND_DENALI_TIMING_MODE=-1
CONFIG_SPI_CADENCE_QUADSPI=y
# CONFIG_USB_TWL4030 is not set
CONFIG_MCI_MMC_BOOT_PARTITIONS=y
CONFIG_MCI_DW=y
CONFIG_MCI_DW_PIO=y
CONFIG_MCI_SPI=y
CONFIG_MMC_SPI_CRC_ON=y
CONFIG_MFD_ACT8846=y
CONFIG_MFD_DA9053=y
CONFIG_MFD_DA9063=y
CONFIG_MFD_LP3972=y
CONFIG_MFD_MC13XXX=y
CONFIG_MFD_MC34704=y
CONFIG_MFD_MC9SDZ60=y
CONFIG_MFD_STMPE=y
CONFIG_MFD_SYSCON=y
CONFIG_MFD_TWLCORE=y
CONFIG_MFD_TWL4030=y
CONFIG_MFD_TWL6030=y
CONFIG_SRAM=y
# CONFIG_KEYBOARD_TWL6030 is not set
# CONFIG_GPIO_STMPE is not set
CONFIG_FIRMWARE_ALTERA_SERIAL=y
CONFIG_GENERIC_PHY=y
CONFIG_FS_CRAMFS=y
CONFIG_FS_SQUASHFS=y
CONFIG_SQUASHFS_XZ=y
CONFIG_XZ_DECOMPRESS=y
CONFIG_BCH=y
CONFIG_BITREV=y
CONFIG_CRC7=y
CONFIG_DIGEST_SHA1_ARM=y
CONFIG_DIGEST_SHA256_ARM=y


I do not understand where am I missing?

-- 
Çağlar Kilimci

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: State Framework and dtb
  2017-03-30 10:33   ` Çağlar Kilimci
@ 2017-03-31  6:21     ` Sascha Hauer
  2017-03-31  6:54       ` Çağlar Kilimci
  0 siblings, 1 reply; 17+ messages in thread
From: Sascha Hauer @ 2017-03-31  6:21 UTC (permalink / raw)
  To: Çağlar Kilimci; +Cc: barebox

On Thu, Mar 30, 2017 at 01:33:26PM +0300, Çağlar Kilimci wrote:
> Hi,
> 
> >>   backend = &state_partition;
> >
> > This should be a phandle. Sorry, the example I gave you last time was
> > wrong. It should be
> >
> >         backend = <&state_partition>;
> >
> > Note the '<>'
> It's alright. I applied the changes, but still no registered state
> instances there. Similarly, if I free stored device tree and load it
> back again; before probe it, I can observe state like this:

I should have never implemented this freeing of the stored device tree.
There are too many pointers in the code to nodes of this tree. Please
do not use this free/load device tree feature for state. So you edited
the devicetree in the barebox source code, built a new binary with it
and started it. Now when you enter "of_dump /state@0" you should
see the state node you created. Is that what happens?

> 
> I appended many configs even if I do not need all of them:

The configs seem to have everything necessary

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: State Framework and dtb
  2017-03-31  6:21     ` Sascha Hauer
@ 2017-03-31  6:54       ` Çağlar Kilimci
  2017-03-31  7:02         ` Sascha Hauer
  0 siblings, 1 reply; 17+ messages in thread
From: Çağlar Kilimci @ 2017-03-31  6:54 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: barebox

Hello,

> I should have never implemented this freeing of the stored device tree.
> There are too many pointers in the code to nodes of this tree. Please
> do not use this free/load device tree feature for state.

Sure, I usually avoid using it. Here I use to test it if it is able to
read the dtb or not? Apparently, it "can" read and parse it but at the
boot stage, it does not care.

> So you edited
> the devicetree in the barebox source code, built a new binary with it
> and started it. Now when you enter "of_dump /state@0" you should
> see the state node you created. Is that what happens?

No, not at all. I could not any sign of state (or state@0).
barebox@Phytec phyCORE AM335x:/ of_dump /state@0
Cannot find nodepath /state@0
of_dump: No such file or directory

-- 
Çağlar Kilimci

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: State Framework and dtb
  2017-03-31  6:54       ` Çağlar Kilimci
@ 2017-03-31  7:02         ` Sascha Hauer
  2017-03-31  7:18           ` Çağlar Kilimci
  0 siblings, 1 reply; 17+ messages in thread
From: Sascha Hauer @ 2017-03-31  7:02 UTC (permalink / raw)
  To: Çağlar Kilimci; +Cc: barebox

On Fri, Mar 31, 2017 at 09:54:56AM +0300, Çağlar Kilimci wrote:
> Hello,
> 
> > I should have never implemented this freeing of the stored device tree.
> > There are too many pointers in the code to nodes of this tree. Please
> > do not use this free/load device tree feature for state.
> 
> Sure, I usually avoid using it. Here I use to test it if it is able to
> read the dtb or not? Apparently, it "can" read and parse it but at the
> boot stage, it does not care.
> 
> > So you edited
> > the devicetree in the barebox source code, built a new binary with it
> > and started it. Now when you enter "of_dump /state@0" you should
> > see the state node you created. Is that what happens?
> 
> No, not at all. I could not any sign of state (or state@0).
> barebox@Phytec phyCORE AM335x:/ of_dump /state@0
> Cannot find nodepath /state@0
> of_dump: No such file or directory

Ok, here's your problem. I assume you edited
arch/arm/dts/am335x-phytec-phycore-som.dts, right? Could you send the
diff to that file (or to the one you edited)? There must be something
wrong here.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: State Framework and dtb
  2017-03-31  7:02         ` Sascha Hauer
@ 2017-03-31  7:18           ` Çağlar Kilimci
  2017-03-31  7:23             ` Sascha Hauer
  0 siblings, 1 reply; 17+ messages in thread
From: Çağlar Kilimci @ 2017-03-31  7:18 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: barebox

2017-03-31 10:02 GMT+03:00 Sascha Hauer <s.hauer@pengutronix.de>:
> On Fri, Mar 31, 2017 at 09:54:56AM +0300, Çağlar Kilimci wrote:
>> Hello,
>>
>> > I should have never implemented this freeing of the stored device tree.
>> > There are too many pointers in the code to nodes of this tree. Please
>> > do not use this free/load device tree feature for state.
>>
>> Sure, I usually avoid using it. Here I use to test it if it is able to
>> read the dtb or not? Apparently, it "can" read and parse it but at the
>> boot stage, it does not care.
>>
>> > So you edited
>> > the devicetree in the barebox source code, built a new binary with it
>> > and started it. Now when you enter "of_dump /state@0" you should
>> > see the state node you created. Is that what happens?
>>
>> No, not at all. I could not any sign of state (or state@0).
>> barebox@Phytec phyCORE AM335x:/ of_dump /state@0
>> Cannot find nodepath /state@0
>> of_dump: No such file or directory
>
> Ok, here's your problem. I assume you edited
> arch/arm/dts/am335x-phytec-phycore-som.dts, right? Could you send the
> diff to that file (or to the one you edited)? There must be something
> wrong here.

Actually, I was using arch/arm/boot/dts/am335x-phycore-som.dtsi in the
linux-ti kernel and the diff is:
diff --git a/arch/arm/boot/dts/am335x-phycore-som.dtsi
b/arch/arm/boot/dts/am335x-phycore-som.dtsi
index 58e69f1..d8ae841 100644
--- a/arch/arm/boot/dts/am335x-phycore-som.dtsi
+++ b/arch/arm/boot/dts/am335x-phycore-som.dtsi
@@ -43,6 +43,27 @@
                        regulator-always-on;
                };
        };
+
+       state: state@0 {
+               magic = <0x27031993>;
+               compatible = "barebox,state";
+               backend-type = "dtb";
+               backend = <&state_partition>;
+
+               foo {
+                       reg = <0x00 0x4>;
+                       type = "uint32";
+                       default = <0x0>;
+               };
+
+               bar {
+                       reg = <0x10 0x4>;
+                       type = "enum32";
+                       names = "baz", "qux";
+                       default = <1>;
+               };
+       };
+
 };

 /* Crypto Module */
@@ -131,6 +152,9 @@
                pagesize = <32>;
                reg = <0x52>;
                status = "disabled";
+               state_partition: partition@1000 {
+                       reg = <0x1000 0x2000>;
+               };
        };

        i2c_rtc: rtc@68 {

Let me edit "arch/arm/dts/am335x-phytec-phycore-som.dts" and try it.

-- 
Çağlar Kilimci

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: State Framework and dtb
  2017-03-31  7:18           ` Çağlar Kilimci
@ 2017-03-31  7:23             ` Sascha Hauer
  2017-03-31 11:41               ` Çağlar Kilimci
  0 siblings, 1 reply; 17+ messages in thread
From: Sascha Hauer @ 2017-03-31  7:23 UTC (permalink / raw)
  To: Çağlar Kilimci; +Cc: barebox

On Fri, Mar 31, 2017 at 10:18:05AM +0300, Çağlar Kilimci wrote:
> 2017-03-31 10:02 GMT+03:00 Sascha Hauer <s.hauer@pengutronix.de>:
> > On Fri, Mar 31, 2017 at 09:54:56AM +0300, Çağlar Kilimci wrote:
> >> Hello,
> >>
> >> > I should have never implemented this freeing of the stored device tree.
> >> > There are too many pointers in the code to nodes of this tree. Please
> >> > do not use this free/load device tree feature for state.
> >>
> >> Sure, I usually avoid using it. Here I use to test it if it is able to
> >> read the dtb or not? Apparently, it "can" read and parse it but at the
> >> boot stage, it does not care.
> >>
> >> > So you edited
> >> > the devicetree in the barebox source code, built a new binary with it
> >> > and started it. Now when you enter "of_dump /state@0" you should
> >> > see the state node you created. Is that what happens?
> >>
> >> No, not at all. I could not any sign of state (or state@0).
> >> barebox@Phytec phyCORE AM335x:/ of_dump /state@0
> >> Cannot find nodepath /state@0
> >> of_dump: No such file or directory
> >
> > Ok, here's your problem. I assume you edited
> > arch/arm/dts/am335x-phytec-phycore-som.dts, right? Could you send the
> > diff to that file (or to the one you edited)? There must be something
> > wrong here.
> 
> Actually, I was using arch/arm/boot/dts/am335x-phycore-som.dtsi in the
> linux-ti kernel and the diff is:

Ok, when you're changing the Linux dts then barebox of course doesn't
know about this.

> 
> Let me edit "arch/arm/dts/am335x-phytec-phycore-som.dts" and try it.

Yes, please. That sounds better.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: State Framework and dtb
  2017-03-31  7:23             ` Sascha Hauer
@ 2017-03-31 11:41               ` Çağlar Kilimci
  2017-03-31 13:00                 ` Sascha Hauer
  0 siblings, 1 reply; 17+ messages in thread
From: Çağlar Kilimci @ 2017-03-31 11:41 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: barebox

Hey,

>> > Ok, here's your problem. I assume you edited
>> > arch/arm/dts/am335x-phytec-phycore-som.dts, right? Could you send the
>> > diff to that file (or to the one you edited)? There must be something
>> > wrong here.
>>
>> Actually, I was using arch/arm/boot/dts/am335x-phycore-som.dtsi in the
>> linux-ti kernel and the diff is:
>
> Ok, when you're changing the Linux dts then barebox of course doesn't
> know about this.
>
>>
>> Let me edit "arch/arm/dts/am335x-phytec-phycore-som.dts" and try it.
>
> Yes, please. That sounds better.

I tried but got the same result and then I would like to apply your
serious patch series of the state framework but release that our
working branch is 2016.07 so could not apply patches. Let me update
barebox and apply those patches. Are those based on master branch
right?  Or, which branch do you recommend to work on?

-- 
Çağlar Kilimci

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: State Framework and dtb
  2017-03-31 11:41               ` Çağlar Kilimci
@ 2017-03-31 13:00                 ` Sascha Hauer
  2017-04-03 20:59                   ` Çağlar Kilimci
  0 siblings, 1 reply; 17+ messages in thread
From: Sascha Hauer @ 2017-03-31 13:00 UTC (permalink / raw)
  To: Çağlar Kilimci; +Cc: barebox

On Fri, Mar 31, 2017 at 02:41:19PM +0300, Çağlar Kilimci wrote:
> Hey,
> 
> >> > Ok, here's your problem. I assume you edited
> >> > arch/arm/dts/am335x-phytec-phycore-som.dts, right? Could you send the
> >> > diff to that file (or to the one you edited)? There must be something
> >> > wrong here.
> >>
> >> Actually, I was using arch/arm/boot/dts/am335x-phycore-som.dtsi in the
> >> linux-ti kernel and the diff is:
> >
> > Ok, when you're changing the Linux dts then barebox of course doesn't
> > know about this.
> >
> >>
> >> Let me edit "arch/arm/dts/am335x-phytec-phycore-som.dts" and try it.
> >
> > Yes, please. That sounds better.
> 
> I tried but got the same result and then I would like to apply your
> serious patch series of the state framework but release that our
> working branch is 2016.07 so could not apply patches. Let me update
> barebox and apply those patches. Are those based on master branch
> right?  Or, which branch do you recommend to work on?

The patches are based on master, yes. Anyway, you seem to have a problem
in getting your changes in the dts file to the running barebox. Please
try to add some nodes/properties to your dts file and verify that a
of_dump shows these nodes. Before that is the case it's not worth to
look any further.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: State Framework and dtb
  2017-03-31 13:00                 ` Sascha Hauer
@ 2017-04-03 20:59                   ` Çağlar Kilimci
  2017-04-04  6:22                     ` Sascha Hauer
                                       ` (2 more replies)
  0 siblings, 3 replies; 17+ messages in thread
From: Çağlar Kilimci @ 2017-04-03 20:59 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: barebox

Hello,

2017-03-31 16:00 GMT+03:00 Sascha Hauer <s.hauer@pengutronix.de>:
> On Fri, Mar 31, 2017 at 02:41:19PM +0300, Çağlar Kilimci wrote:
>> Hey,
>>
>>
>> I tried but got the same result and then I would like to apply your
>> serious patch series of the state framework but release that our
>> working branch is 2016.07 so could not apply patches. Let me update
>> barebox and apply those patches. Are those based on master branch
>> right?  Or, which branch do you recommend to work on?
>
> The patches are based on master, yes. Anyway, you seem to have a problem
> in getting your changes in the dts file to the running barebox. Please
> try to add some nodes/properties to your dts file and verify that a
> of_dump shows these nodes. Before that is the case it's not worth to
> look any further.

Finally, I updated and patched the code and now I can see state@0
device in the of_dump:
        state@0 {
                magic = <0x27031977>;
                compatible = "barebox,state";
                backend-type = "raw";
                backend = <0x42>;
                foo {
                        reg = <0x0 0x4>;
                        type = "uint32";
                        default = <0x0>;
                };
                bar {
                        reg = <0x10 0x4>;
                        type = "enum32";
                        names = "baz", "qux";
                        default = <0x1>;
                };
        };
I can see in the eeprom section, too:
barebox@Phytec phyCORE AM335x:/ of_dump i2c0
i2c@44e0b000 {
        compatible = "ti,omap4-i2c";
        #address-cells = <0x1>;
        #size-cells = <0x0>;
        ti,hwmods = "i2c1";
        reg = <0x44e0b000 0x1000>;
        interrupts = <0x46>;
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <0x2c>;
        clock-frequency = <0x61a80>;
        eeprom@52 {
                status = "okay";
                compatible = "atmel,24c32";
                pagesize = <0x20>;
                reg = <0x52>;
                state@1000 {
                        label = "state";
                        reg = <0x1000 0x1000>;
                        linux,phandle = <0x42>;
                        phandle = <0x42>;
                };
        };
};

But still state command does not show any state device:
barebox@Phytec phyCORE AM335x:/ state
registered state instances:

Here is my diff for the dts:
diff --git a/arch/arm/dts/am335x-phytec-phycore-som.dtsi
b/arch/arm/dts/am335x-phytec-phycore-som.dtsi
index 0b8c454..0d71e8b 100644
--- a/arch/arm/dts/am335x-phytec-phycore-som.dtsi
+++ b/arch/arm/dts/am335x-phytec-phycore-som.dtsi
@@ -14,6 +14,26 @@
                        status = "disabled";
                };
        };
+
+       state: state@0 {
+               magic = <0x27031977>;
+               compatible = "barebox,state";
+               backend-type = "raw";
+               backend = <&state_part>;
+
+               foo {
+                     reg = <0x00 0x4>;
+                     type = "uint32";
+                     default = <0x0>;
+               };
+
+               bar {
+                     reg = <0x10 0x4>;
+                     type = "enum32";
+                     names = "baz", "qux";
+                     default = <1>;
+               };
+       };
 };

 &am33xx_pinmux {
@@ -148,6 +168,10 @@
                compatible = "atmel,24c32";
                pagesize = <32>;
                reg = <0x52>;
+               state_part: state@1000 {
+                       label = "state";
+                       reg = <0x1000 0x1000>;
+               };
        };
 };

So, why does not state framework catch my state device?

Sincerely,
-- 
Çağlar Kilimci

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: State Framework and dtb
  2017-04-03 20:59                   ` Çağlar Kilimci
@ 2017-04-04  6:22                     ` Sascha Hauer
  2017-04-04  6:49                       ` Çağlar Kilimci
  2017-04-04  8:04                     ` Jan Remmet
       [not found]                     ` <58e3539f.0582540a.1e64d.751fSMTPIN_ADDED_BROKEN@mx.google.com>
  2 siblings, 1 reply; 17+ messages in thread
From: Sascha Hauer @ 2017-04-04  6:22 UTC (permalink / raw)
  To: Çağlar Kilimci; +Cc: barebox

On Mon, Apr 03, 2017 at 11:59:50PM +0300, Çağlar Kilimci wrote:
> Hello,
> 
> 2017-03-31 16:00 GMT+03:00 Sascha Hauer <s.hauer@pengutronix.de>:
> > On Fri, Mar 31, 2017 at 02:41:19PM +0300, Çağlar Kilimci wrote:
> >> Hey,
> >>
> >>
> >> I tried but got the same result and then I would like to apply your
> >> serious patch series of the state framework but release that our
> >> working branch is 2016.07 so could not apply patches. Let me update
> >> barebox and apply those patches. Are those based on master branch
> >> right?  Or, which branch do you recommend to work on?
> >
> > The patches are based on master, yes. Anyway, you seem to have a problem
> > in getting your changes in the dts file to the running barebox. Please
> > try to add some nodes/properties to your dts file and verify that a
> > of_dump shows these nodes. Before that is the case it's not worth to
> > look any further.
> 
> Finally, I updated and patched the code and now I can see state@0
> device in the of_dump:

Ok, looks good. How does the boot log look like? Still the same?

Sascha


-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: State Framework and dtb
  2017-04-04  6:22                     ` Sascha Hauer
@ 2017-04-04  6:49                       ` Çağlar Kilimci
  0 siblings, 0 replies; 17+ messages in thread
From: Çağlar Kilimci @ 2017-04-04  6:49 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: barebox

2017-04-04 9:22 GMT+03:00 Sascha Hauer <s.hauer@pengutronix.de>:
> On Mon, Apr 03, 2017 at 11:59:50PM +0300, Çağlar Kilimci wrote:
>> Hello,
>>
>> Finally, I updated and patched the code and now I can see state@0
>> device in the of_dump:
>
> Ok, looks good. How does the boot log look like? Still the same?

I think so. Here it is:
barebox 2017.03.0-00129-g444ee36 #1 Mon Apr 3 10:28:04 +03 2017


Board: Phytec phyCORE AM335x
omap-hsmmc 48060000.mmc: registered as 48060000.mmc
booting from MMC
mmc0: detected SD card version 2.0
mmc0: registered mmc0


barebox 2017.03.0-00153-g880fa12-dirty #3 Mon Apr 3 23:14:34 +03 2017


Board: Phytec phyCORE AM335x
cpsw 4a100000.ethernet: detected phy mask 0x3
mdio_bus: miibus0: probed
eth0: got preset MAC address: a0:f6:fd:6c:0d:b0
am335x-phy-driver 47401b00.usb-phy: am_usbphy 87f71cdc enabled
musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk
split, HB-ISO Rx, HB-ISO Tx, SoftConn)
musb-hdrc: MHDRC RTL version 2.0
musb-hdrc: setup fifo_mode 4
musb-hdrc: 28/31 max ep, 16384/16384 memory
m25p80 m25p80@00: unrecognized JEDEC id bytes: 00,  0,  0
m25p80 m25p80@00: probe failed: No such file or directory
i2c-omap 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
omap-hsmmc 48060000.mmc: registered as 48060000.mmc
mmc0: detected SD card version 2.0
mmc0: registered mmc0
omap_wdt 44e35000.wdt: OMAP Watchdog Timer Rev 0x01
nand: ONFI flash detected
nand: NAND device: Manufacturer ID: 0x2c, Chip ID: 0xf1 (Micron
MT29F1G08ABADAH4), 128MiB, page size: 2048, OOB size: 64
netconsole: registered as netconsole-1
malloc space: 0x87efef60 -> 0x8fdfdebf (size 127 MiB)
running /env/bin/init...
eth0: 100Mbps full duplex link detected
DHCP client bound to address 192.168.1.29

Hit m for menu or any other key to stop autoboot:    3

type exit to get to the menu
barebox@Phytec phyCORE AM335x:/


-- 
Çağlar Kilimci

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: State Framework and dtb
  2017-04-03 20:59                   ` Çağlar Kilimci
  2017-04-04  6:22                     ` Sascha Hauer
@ 2017-04-04  8:04                     ` Jan Remmet
       [not found]                     ` <58e3539f.0582540a.1e64d.751fSMTPIN_ADDED_BROKEN@mx.google.com>
  2 siblings, 0 replies; 17+ messages in thread
From: Jan Remmet @ 2017-04-04  8:04 UTC (permalink / raw)
  To: Çağlar Kilimci; +Cc: barebox

On Mon, Apr 03, 2017 at 11:59:50PM +0300, Çağlar Kilimci wrote:
> Hello,
> 
> 2017-03-31 16:00 GMT+03:00 Sascha Hauer <s.hauer@pengutronix.de>:
> > On Fri, Mar 31, 2017 at 02:41:19PM +0300, Çağlar Kilimci wrote:
> >> Hey,
> >>
> >>
> >> I tried but got the same result and then I would like to apply your
> >> serious patch series of the state framework but release that our
> >> working branch is 2016.07 so could not apply patches. Let me update
> >> barebox and apply those patches. Are those based on master branch
> >> right?  Or, which branch do you recommend to work on?
> >
> > The patches are based on master, yes. Anyway, you seem to have a problem
> > in getting your changes in the dts file to the running barebox. Please
> > try to add some nodes/properties to your dts file and verify that a
> > of_dump shows these nodes. Before that is the case it's not worth to
> > look any further.
> 
> Finally, I updated and patched the code and now I can see state@0
> device in the of_dump:
>         state@0 {
>                 magic = <0x27031977>;
>                 compatible = "barebox,state";
>                 backend-type = "raw";
>                 backend = <0x42>;
>                 foo {
>                         reg = <0x0 0x4>;
>                         type = "uint32";
>                         default = <0x0>;
>                 };
>                 bar {
>                         reg = <0x10 0x4>;
>                         type = "enum32";
>                         names = "baz", "qux";
>                         default = <0x1>;
>                 };
>         };

Here a working example for barebox 2016.11.0 so there may be changes with the
actual state cleanup patches

+       state2: state_socket {
+               magic = <0x456ef363>;
+               compatible = "barebox,state";
+               backend-type = "raw";
+               backend = &eeprom;
+               backend-storage-type = "direct";
+               backend-stridesize = <0x53>;
+
+               stateapi {
+                       reg = <0x00 0x1>;
+                       type = "uint8";
+                       default = <0x0>;
+               };
+               socketid {
+                       reg = <0x01 0x1>;
+                       type = "uint8";
+                       default = <0x0>;
+               };
+
+               socketname {
+                       reg = <0x02 0x10>;
+                       type = "string";
+                       default = "none";
+               };
+
+               socketserial {
+                       reg = <0x12 0x19>;
+                       type = "string";
+                       default = "none";
+               };
+       };
+}

Maybe the missing backend-storage-type is a problem?
Im not sure how I calculate the backend-stridesize last time.


config fragments:
CONFIG_STATE=y
# CONFIG_STATE_CRYPTO is not set
CONFIG_CMD_STATE=y
CONFIG_STATE_DRV=y

Jan

> I can see in the eeprom section, too:
> barebox@Phytec phyCORE AM335x:/ of_dump i2c0
> i2c@44e0b000 {
>         compatible = "ti,omap4-i2c";
>         #address-cells = <0x1>;
>         #size-cells = <0x0>;
>         ti,hwmods = "i2c1";
>         reg = <0x44e0b000 0x1000>;
>         interrupts = <0x46>;
>         status = "okay";
>         pinctrl-names = "default";
>         pinctrl-0 = <0x2c>;
>         clock-frequency = <0x61a80>;
>         eeprom@52 {
>                 status = "okay";
>                 compatible = "atmel,24c32";
>                 pagesize = <0x20>;
>                 reg = <0x52>;
>                 state@1000 {
>                         label = "state";
>                         reg = <0x1000 0x1000>;
>                         linux,phandle = <0x42>;
>                         phandle = <0x42>;
>                 };
>         };
> };
> 
> But still state command does not show any state device:
> barebox@Phytec phyCORE AM335x:/ state
> registered state instances:
> 
> Here is my diff for the dts:
> diff --git a/arch/arm/dts/am335x-phytec-phycore-som.dtsi
> b/arch/arm/dts/am335x-phytec-phycore-som.dtsi
> index 0b8c454..0d71e8b 100644
> --- a/arch/arm/dts/am335x-phytec-phycore-som.dtsi
> +++ b/arch/arm/dts/am335x-phytec-phycore-som.dtsi
> @@ -14,6 +14,26 @@
>                         status = "disabled";
>                 };
>         };
> +
> +       state: state@0 {
> +               magic = <0x27031977>;
> +               compatible = "barebox,state";
> +               backend-type = "raw";
> +               backend = <&state_part>;
> +
> +               foo {
> +                     reg = <0x00 0x4>;
> +                     type = "uint32";
> +                     default = <0x0>;
> +               };
> +
> +               bar {
> +                     reg = <0x10 0x4>;
> +                     type = "enum32";
> +                     names = "baz", "qux";
> +                     default = <1>;
> +               };
> +       };
>  };
> 
>  &am33xx_pinmux {
> @@ -148,6 +168,10 @@
>                 compatible = "atmel,24c32";
>                 pagesize = <32>;
>                 reg = <0x52>;
> +               state_part: state@1000 {
> +                       label = "state";
> +                       reg = <0x1000 0x1000>;
> +               };
>         };
>  };
> 
> So, why does not state framework catch my state device?
> 
> Sincerely,
> -- 
> Çağlar Kilimci
> 
> _______________________________________________
> barebox mailing list
> barebox@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: State Framework and dtb
       [not found]                     ` <58e3539f.0582540a.1e64d.751fSMTPIN_ADDED_BROKEN@mx.google.com>
@ 2017-04-04 10:27                       ` Çağlar Kilimci
  2017-04-04 10:48                         ` Ian Abbott
  0 siblings, 1 reply; 17+ messages in thread
From: Çağlar Kilimci @ 2017-04-04 10:27 UTC (permalink / raw)
  To: Jan Remmet; +Cc: barebox

Hey,

2017-04-04 11:04 GMT+03:00 Jan Remmet <J.Remmet@phytec.de>:
> On Mon, Apr 03, 2017 at 11:59:50PM +0300, Çağlar Kilimci wrote:
>> Hello,
>>
>> 2017-03-31 16:00 GMT+03:00 Sascha Hauer <s.hauer@pengutronix.de>:
>> > On Fri, Mar 31, 2017 at 02:41:19PM +0300, Çağlar Kilimci wrote:
>> >> Hey,
>> >>
>> >>
>> >> I tried but got the same result and then I would like to apply your
>> >> serious patch series of the state framework but release that our
>> >> working branch is 2016.07 so could not apply patches. Let me update
>> >> barebox and apply those patches. Are those based on master branch
>> >> right?  Or, which branch do you recommend to work on?
>> >
>> > The patches are based on master, yes. Anyway, you seem to have a problem
>> > in getting your changes in the dts file to the running barebox. Please
>> > try to add some nodes/properties to your dts file and verify that a
>> > of_dump shows these nodes. Before that is the case it's not worth to
>> > look any further.
>>
>> Finally, I updated and patched the code and now I can see state@0
>> device in the of_dump:
>>         state@0 {
>>                 magic = <0x27031977>;
>>                 compatible = "barebox,state";
>>                 backend-type = "raw";
>>                 backend = <0x42>;
>>                 foo {
>>                         reg = <0x0 0x4>;
>>                         type = "uint32";
>>                         default = <0x0>;
>>                 };
>>                 bar {
>>                         reg = <0x10 0x4>;
>>                         type = "enum32";
>>                         names = "baz", "qux";
>>                         default = <0x1>;
>>                 };
>>         };
>
> Here a working example for barebox 2016.11.0 so there may be changes with the
> actual state cleanup patches
>
> +       state2: state_socket {
> +               magic = <0x456ef363>;
> +               compatible = "barebox,state";
> +               backend-type = "raw";
> +               backend = &eeprom;

I changed to:
backend = <&eeprom>;
then it works :)
barebox@Phytec phyCORE AM335x:/ state
registered state instances:
state_socket         (backend: raw, path: /dev/eeprom0)

>
> Maybe the missing backend-storage-type is a problem?

As a documentation, it should not be.

Thank you all.

-- 
Çağlar Kilimci

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: State Framework and dtb
  2017-04-04 10:27                       ` Çağlar Kilimci
@ 2017-04-04 10:48                         ` Ian Abbott
  2017-04-05  6:01                           ` Sascha Hauer
  0 siblings, 1 reply; 17+ messages in thread
From: Ian Abbott @ 2017-04-04 10:48 UTC (permalink / raw)
  To: barebox

On 04/04/17 11:27, Çağlar Kilimci wrote:
> Hey,
>
> 2017-04-04 11:04 GMT+03:00 Jan Remmet <J.Remmet@phytec.de>:
>> On Mon, Apr 03, 2017 at 11:59:50PM +0300, Çağlar Kilimci wrote:
>>> Hello,
>>>
>>> 2017-03-31 16:00 GMT+03:00 Sascha Hauer <s.hauer@pengutronix.de>:
>>>> On Fri, Mar 31, 2017 at 02:41:19PM +0300, Çağlar Kilimci wrote:
>>>>> Hey,
>>>>>
>>>>>
>>>>> I tried but got the same result and then I would like to apply your
>>>>> serious patch series of the state framework but release that our
>>>>> working branch is 2016.07 so could not apply patches. Let me update
>>>>> barebox and apply those patches. Are those based on master branch
>>>>> right?  Or, which branch do you recommend to work on?
>>>>
>>>> The patches are based on master, yes. Anyway, you seem to have a problem
>>>> in getting your changes in the dts file to the running barebox. Please
>>>> try to add some nodes/properties to your dts file and verify that a
>>>> of_dump shows these nodes. Before that is the case it's not worth to
>>>> look any further.
>>>
>>> Finally, I updated and patched the code and now I can see state@0
>>> device in the of_dump:
>>>         state@0 {
>>>                 magic = <0x27031977>;
>>>                 compatible = "barebox,state";
>>>                 backend-type = "raw";
>>>                 backend = <0x42>;
>>>                 foo {
>>>                         reg = <0x0 0x4>;
>>>                         type = "uint32";
>>>                         default = <0x0>;
>>>                 };
>>>                 bar {
>>>                         reg = <0x10 0x4>;
>>>                         type = "enum32";
>>>                         names = "baz", "qux";
>>>                         default = <0x1>;
>>>                 };
>>>         };
>>
>> Here a working example for barebox 2016.11.0 so there may be changes with the
>> actual state cleanup patches
>>
>> +       state2: state_socket {
>> +               magic = <0x456ef363>;
>> +               compatible = "barebox,state";
>> +               backend-type = "raw";
>> +               backend = &eeprom;
>
> I changed to:
> backend = <&eeprom>;
> then it works :)
> barebox@Phytec phyCORE AM335x:/ state
> registered state instances:
> state_socket         (backend: raw, path: /dev/eeprom0)

Won't that use the whole EEPROM rather than a partition thereof? 
According to the documentation, you can use:

		backend = <&eeprom>, "partname:state";

assuming the partition has `label = "state";`.

-- 
-=( Ian Abbott @ MEV Ltd.    E-mail: <abbotti@mev.co.uk> )=-
-=(                          Web: http://www.mev.co.uk/  )=-

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: State Framework and dtb
  2017-04-04 10:48                         ` Ian Abbott
@ 2017-04-05  6:01                           ` Sascha Hauer
  0 siblings, 0 replies; 17+ messages in thread
From: Sascha Hauer @ 2017-04-05  6:01 UTC (permalink / raw)
  To: Ian Abbott; +Cc: barebox

On Tue, Apr 04, 2017 at 11:48:09AM +0100, Ian Abbott wrote:
> On 04/04/17 11:27, Çağlar Kilimci wrote:
> > Hey,
> > 
> > 2017-04-04 11:04 GMT+03:00 Jan Remmet <J.Remmet@phytec.de>:
> > > On Mon, Apr 03, 2017 at 11:59:50PM +0300, Çağlar Kilimci wrote:
> > > > Hello,
> > > > 
> > > > 2017-03-31 16:00 GMT+03:00 Sascha Hauer <s.hauer@pengutronix.de>:
> > > > > On Fri, Mar 31, 2017 at 02:41:19PM +0300, Çağlar Kilimci wrote:
> > > > > > Hey,
> > > > > > 
> > > > > > 
> > > > > > I tried but got the same result and then I would like to apply your
> > > > > > serious patch series of the state framework but release that our
> > > > > > working branch is 2016.07 so could not apply patches. Let me update
> > > > > > barebox and apply those patches. Are those based on master branch
> > > > > > right?  Or, which branch do you recommend to work on?
> > > > > 
> > > > > The patches are based on master, yes. Anyway, you seem to have a problem
> > > > > in getting your changes in the dts file to the running barebox. Please
> > > > > try to add some nodes/properties to your dts file and verify that a
> > > > > of_dump shows these nodes. Before that is the case it's not worth to
> > > > > look any further.
> > > > 
> > > > Finally, I updated and patched the code and now I can see state@0
> > > > device in the of_dump:
> > > >         state@0 {
> > > >                 magic = <0x27031977>;
> > > >                 compatible = "barebox,state";
> > > >                 backend-type = "raw";
> > > >                 backend = <0x42>;
> > > >                 foo {
> > > >                         reg = <0x0 0x4>;
> > > >                         type = "uint32";
> > > >                         default = <0x0>;
> > > >                 };
> > > >                 bar {
> > > >                         reg = <0x10 0x4>;
> > > >                         type = "enum32";
> > > >                         names = "baz", "qux";
> > > >                         default = <0x1>;
> > > >                 };
> > > >         };
> > > 
> > > Here a working example for barebox 2016.11.0 so there may be changes with the
> > > actual state cleanup patches
> > > 
> > > +       state2: state_socket {
> > > +               magic = <0x456ef363>;
> > > +               compatible = "barebox,state";
> > > +               backend-type = "raw";
> > > +               backend = &eeprom;
> > 
> > I changed to:
> > backend = <&eeprom>;
> > then it works :)
> > barebox@Phytec phyCORE AM335x:/ state
> > registered state instances:
> > state_socket         (backend: raw, path: /dev/eeprom0)
> 
> Won't that use the whole EEPROM rather than a partition thereof? According
> to the documentation, you can use:
> 
> 		backend = <&eeprom>, "partname:state";
> 
> assuming the partition has `label = "state";`.

I removed this from the documentation in the big state patch series I
sent, because it was broken already. It should be backend = <&eeprom> or
backend = <&eeprom_state>, assuming eeprom_state is a phandle to a
fixed-partition on the EEPROM.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2017-04-05  6:06 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-29 13:24 State Framework and dtb Çağlar Kilimci
2017-03-30  6:31 ` Sascha Hauer
2017-03-30 10:33   ` Çağlar Kilimci
2017-03-31  6:21     ` Sascha Hauer
2017-03-31  6:54       ` Çağlar Kilimci
2017-03-31  7:02         ` Sascha Hauer
2017-03-31  7:18           ` Çağlar Kilimci
2017-03-31  7:23             ` Sascha Hauer
2017-03-31 11:41               ` Çağlar Kilimci
2017-03-31 13:00                 ` Sascha Hauer
2017-04-03 20:59                   ` Çağlar Kilimci
2017-04-04  6:22                     ` Sascha Hauer
2017-04-04  6:49                       ` Çağlar Kilimci
2017-04-04  8:04                     ` Jan Remmet
     [not found]                     ` <58e3539f.0582540a.1e64d.751fSMTPIN_ADDED_BROKEN@mx.google.com>
2017-04-04 10:27                       ` Çağlar Kilimci
2017-04-04 10:48                         ` Ian Abbott
2017-04-05  6:01                           ` Sascha Hauer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox