Hi Michal, I've just realized I forgot to reply to this e-mail, sorry. On Tue, Dec 08, 2020 at 08:26:41AM +0100, Michal Simek wrote: > On 07. 12. 20 23:16, Laurent Pinchart wrote: > > On Mon, Dec 07, 2020 at 10:39:25AM +0100, Michal Simek wrote: > >> On 06. 12. 20 23:46, Laurent Pinchart wrote: > >>> On Wed, Dec 02, 2020 at 03:06:05PM +0100, Michal Simek wrote: > >>>> Add label which is used by bootloader for adding bootloader specific flag. > >>>> > >>>> Signed-off-by: Michal Simek <michal.simek@xxxxxxxxxx> > >>>> --- > >>>> > >>>> U-Boot needs to add u-boot,dm-pre-reloc; property > >>> > >>> I'm not entirely sure what best practice rules are in this area, but > >>> shouldn't U-Boot locate the node by name instead of label ? > >> > >> Labels are not listed in dt binding and there are two approaches how to > >> reference nodes. Via full path with node name or via labels. > >> I do normally use labels which are much simple. > > > > Note that labels require the DTB to be compiled with the -@ option, > > otherwise they're not present in the binary. > > U-Boot is using different concept. You can see that there are a lot of > -u-boot.dtsi files in dts folders. These are automatically included to > DTS before DTC is called. It means you don't need to build overlay to > get merged. > > >> And also if you take a look how dtb looks like (convert back to dts) you > >> can see that for example aliases are using full path (just &label) but > >> clocks/gic which is the part of <> is handled via phandles as numbers. > >> > >> And labels names can vary and shouldn't be the part of binding doc as > >> far as I know. But I can be wrong of course. > > > > The DT bindings should document the interface with the operating system, > > and if applicable, the boot loader. If the boot loader requires a > > particular label, then it becomes part of the ABI, and I think it should > > be documented in the bindings. > > We have been discussing with Rob some month ago but didn't have a time > to do step further. Just keep it short Rob was ok to keep bootloader > binding inside Linux repo. I think that makes sense, DT bindings are meant to be OS-agnostic, so boot loader requirements should be documented there. > There is no hardcoding for a particular name. There is just a need to > have any label. U-Boot needs to have one property(e.g. > u-boot,dm-pre-reloc;) just to do early allocation. > The name is just reference and none is really looking for it. It is just > a way how to include it in much easier way. Just to make sure I understand this issue correctly, does this mean that you need to reference the node in a *-u-boot.dtsi file, and want a label to do so ? The label name needs to be the same in the base file (taken from the Linux source tree) and the *-u-boot.dtsi file (in the U-Boot source tree) in that case. Isn't it the role of DT bindings to document such requirements ? -- Regards, Laurent Pinchart