[PATCH] common: Add Kconfig option for FDT mem alignment

Michal Simek michal.simek at xilinx.com
Thu Apr 16 17:47:41 CEST 2020


On 16. 04. 20 17:39, Tom Rini wrote:
> On Mon, Apr 13, 2020 at 10:03:04AM +0200, Michal Simek wrote:
> 
>> From: Ashok Reddy Soma <ashok.reddy.soma at xilinx.com>
>>
>> FDT memory is aligned by 4KB. This is hardcoded in common/board_f.c.
>> Add Kconfig option, assign default value of 0x1000 and enable option to
>> change this value.
>>
>> Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma at xilinx.com>
>> Signed-off-by: Michal Simek <michal.simek at xilinx.com>
>> ---
>>
>>  common/board_f.c | 3 ++-
>>  dts/Kconfig      | 7 +++++++
>>  2 files changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/common/board_f.c b/common/board_f.c
>> index 82a164752aa3..928874e03555 100644
>> --- a/common/board_f.c
>> +++ b/common/board_f.c
>> @@ -546,7 +546,8 @@ static int reserve_fdt(void)
>>  	 * will be relocated with other data.
>>  	 */
>>  	if (gd->fdt_blob) {
>> -		gd->fdt_size = ALIGN(fdt_totalsize(gd->fdt_blob) + 0x1000, 32);
>> +		gd->fdt_size = ALIGN(fdt_totalsize(gd->fdt_blob) +
>> +				     CONFIG_FDT_MEM_ALIGN_SIZE, 32);
>>  
>>  		gd->start_addr_sp -= gd->fdt_size;
>>  		gd->new_fdt = map_sysmem(gd->start_addr_sp, gd->fdt_size);
>> diff --git a/dts/Kconfig b/dts/Kconfig
>> index 046a54a17366..696c0b71afaf 100644
>> --- a/dts/Kconfig
>> +++ b/dts/Kconfig
>> @@ -121,6 +121,13 @@ config DEFAULT_DEVICE_TREE
>>  	  It can be overridden from the command line:
>>  	  $ make DEVICE_TREE=<device-tree-name>
>>  
>> +config FDT_MEM_ALIGN_SIZE
>> +	hex "FDT memory alignment size"
>> +	default 0x1000
>> +	help
>> +	  This option is used to set the default alignment when reserving memory
>> +	  for fdt.
> 
> I'm not sure this is clear enough of a description.  At first I thought
> this was about where the start address needs to be, and that is 8 bytes
> and non-configurable (both arm32 and arm64 require 64bit aligned).  What
> I don't see is where the size of the overall blob needs to be aligned.
> We need to point at that requirement somewhere in the help so that we
> don't have people using bad values and then working around it without
> realizing the problem.  Thanks!

Definitely description should be better as we agreed in second review.
But the point is do we really need such a big FDT alignment here?
It was added by Simon long time ago without any explanation as the part
of bigger patch.
But are we allowing resizing FDT that we need additional "4k" alignment?

Thanks,
Michal




More information about the U-Boot mailing list