[U-Boot] [PATCH] arm64: zynqmp: Create fdtfile from compatible string
Michal Simek
michal.simek at xilinx.com
Thu Feb 14 12:40:08 UTC 2019
On 14. 02. 19 13:37, Alexander Graf wrote:
>
>
> On 14.02.19 13:33, Michal Simek wrote:
>> On 14. 02. 19 13:27, Alexander Graf wrote:
>>>
>>>
>>> On 14.02.19 13:18, Michal Simek wrote:
>>>> distro boot expects that fdtfile name is setup for alternative DTB.
>>>> Create this file based on the first platform compatible string.
>>>> This should ensure that one rootfs can store multiple DTBs for different
>>>> boards.
>>>>
>>>> Signed-off-by: Michal Simek <michal.simek at xilinx.com>
>>>> ---
>>>>
>>>> How good/bad idea is this?
>>>>
>>>> ---
>>>> board/xilinx/zynqmp/zynqmp.c | 30 ++++++++++++++++++++++++++++++
>>>> 1 file changed, 30 insertions(+)
>>>>
>>>> diff --git a/board/xilinx/zynqmp/zynqmp.c b/board/xilinx/zynqmp/zynqmp.c
>>>> index a49f2f3e9ebe..64800d869819 100644
>>>> --- a/board/xilinx/zynqmp/zynqmp.c
>>>> +++ b/board/xilinx/zynqmp/zynqmp.c
>>>> @@ -514,6 +514,32 @@ static u32 reset_reason(void)
>>>> return ret;
>>>> }
>>>>
>>>> +static int set_fdtfile(void)
>>>> +{
>>>> + char *compatible, *fdtfile;
>>>> +
>>>> + if (env_get("fdtfile"))
>>>> + return 0;
>>>> +
>>>> + compatible = (char *)fdt_getprop(gd->fdt_blob, 0, "compatible", NULL);
>>>> + if (compatible) {
>>>> + debug("Compatible: %s\n", compatible);
>>>> +
>>>> + strsep(&compatible, ",");
>>>> +
>>>> + fdtfile = calloc(1, strlen(compatible) + 4);
>>>> + if (!fdtfile)
>>>> + return -ENOMEM;
>>>> +
>>>> + sprintf(fdtfile, "%s%s", compatible, ".dtb");
>>>
>>> AArch64 dtbs are usually stored in a directory structure which you want
>>> to match again. Is this the case for the compatible string? From a quick
>>> glimpse, it looks like it - but please make sure that something is in
>>> place to ensure it stays that way (upstream review for example).
>>
>> I have actually remove xlnx prefix from compatible string but just doing
>> simple conversion xlnx,zynqmp-zcu102-revA to xlnx/zynqmp-zcu102-revA.dtb
>> looks good to me too.
>
> That won't work, as the kernel will install the dtb in a directory
> called "xilinx".
>
>> Vendor prefixes should be stable enough to ensures that.
>>
>>> So the only change I would make here is that this should be "xilinx/%s.dtb".
>>
>> Any issue with xlnx prefix?
>
> Yup :). Please stick to exactly where the kernel installs the dtbs to.
Ah ok. I see. Didn't realized that xilinx is coming from
arch/arm64/boot/dts structures.
Thanks,
Michal
More information about the U-Boot
mailing list