On Mon, 5 Nov 2018 09:41:51 +0100 Patrick Boettcher <patrick.boettcher@xxxxxxxxx> wrote: > Hi Ulrich, > > On Mon, 05 Nov 2018 09:28:53 +0100 > Ulrich Ölmann <u.oelmann@xxxxxxxxxxxxxx> wrote: > > > Hi Patrick, > > > > Patrick Boettcher <patrick.boettcher@xxxxxxxxx> writes: > > > I'm using a device-state (for bootchooser) which is stored in an > > > eeprom. > > > > > > Works fine from within barebox - read and write. > > > > > > Userspace does not see the state: > > > > > > Neither /aliases/state nor /state found > > > > > > The displayed device-tree when booting with 'boot -v -v <name>' > > > does not contain the state-entry. > > > > > > However, there is a warning of a failed fixup: > > > > > > Failed to fixup node in of_state_fixup+0x1/0x1ac: No such device > > > > > > Could it be that the eeprom-alias is missing? I'm still learning > > > device-tree and stuff and I'm not yet entirely sure how everything > > > is related. > > > > > > The partition is created within a > > > > > > &eeprom { > > > [..] > > > } > > > > > > section and eeprom is defined as > > > > > > eeprom: eeprom@52 { > > > > > > } > > > > > > (I added the 'eeprom: '- name/alias) > > > > > > Where am I missing the link? > > > > there was a patch recently that fixed a bug in the context of > > partition fixups and as a result repaired the state fixup as well > > for some setups: > > > > http://lists.infradead.org/pipermail/barebox/2018-October/035091.html > > > > Please check if it solves your problem. If not then please provide > > more insight into your devicetrees (barebox & kernel) and post a > > little bit more context of the state node as well as the eeprom and > > the aliases nodes. > > I investigated further (still doing right now). In my kernel > device-tree the eeprom does not have the partition definition. So > of_state_fixup() does not find it (I added some debug prints to > analyze): > > of_find_node_by_path_from: > /soc/aips-bus@02100000/i2c@021a0000/eeprom@52/partitions/state@0 > not found > > I wrongly assumed from mails I found in the archive that barebox is > fixing up even the partitions. > > Does your patch from above will be helpful in my case? > > Do I need to change the kernel-device-tree to insert the partitions > manually? If so, how should it look like if the state-partition in > barebox is defined like this: > > &eeprom { > status = "okay"; > partitions { > compatible = "fixed-partitions"; > #size-cells = <1>; > #address-cells = <1>; > backend_update_eeprom: state@0 { > reg = <0x0 0x100>; > label = "barebox-state-eeprom"; > }; > }; > }; After adding the partition the kernel-device-tree &eeprom { status = "okay"; partitions { backend_update_eeprom: state@0 { reg = <0x0 0x100>; }; }; }; The barebox-fixup error disappear, the dumped device tree at boot-time contains the state-node. However, barebox-state, run from userspace gives of_get_devicepath: no 'label' property found in /soc/aips-bus@02100000/i2c@021a0000/eeprom@52/partitions/state@0 Cannot find backend path in /state Do I need to copy all of the partition-description into the kernel-device-tree? Is this, what your patch addresses? -- Patrick. _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox