[U-Boot] [PATCH] arm64: zynqmp: Create fdtfile from compatible string

Alexander Graf agraf at suse.de
Thu Feb 14 12:37:29 UTC 2019



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.


Alex

> 



More information about the U-Boot mailing list