Re: [PATCH 06/12] arm64: dts: zynqmp: Add label for zynqmp_ipi

From: Michal Simek
Date: Tue Dec 08 2020 - 02:28:03 EST


Hi Laurent,

On 07. 12. 20 23:16, Laurent Pinchart wrote:
> Hi Michal,
>
> 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.

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.

Thanks,
Michal