On Mon, 5 Nov 2018 09:41:51 +0100
Patrick Boettcher <[email protected]> wrote:

> Hi Ulrich,
> 
> On Mon, 05 Nov 2018 09:28:53 +0100
> Ulrich Ölmann <[email protected]> wrote:
> 
> > Hi Patrick,
> > 
> > Patrick Boettcher <[email protected]> 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
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to