[U-Boot] [PATCH] spl: fit: move fdt_record_loadable out of ARCH_FIXUP_FDT_MEMORY guard

Dr. Philipp Tomsich philipp.tomsich at theobroma-systems.com
Tue Feb 6 13:24:54 UTC 2018


Tom,

Do you plan to apply this or should I include it into my next pull-request?

Thanks,
Philipp.

> On 2 Feb 2018, at 16:00, Michal Simek <michal.simek at xilinx.com> wrote:
> 
> On 2.2.2018 12:01, Philipp Tomsich wrote:
>> The fdt_record_loadable()-function was wedged between other functions
>> that were guarded by ARCH_FIXUP_FDT_MEMORY.  This could lead to linker
>> errors on some configurations.
>> 
>> With this change, fdt_record_loadable() is moved out of the
>> ARCH_FIXUP_FDT_MEMORY guard (plus I tried to retain alphabetical
>> ordering for functions by placing it appropriately).
>> 
>> References: 9f45aeb ("spl: fit: implement fdt_record_loadable")
>> Signed-off-by: Philipp Tomsich <philipp.tomsich at theobroma-systems.com>
>> ---
>> 
>> common/fdt_support.c | 78 ++++++++++++++++++++++++++--------------------------
>> 1 file changed, 39 insertions(+), 39 deletions(-)
>> 
>> diff --git a/common/fdt_support.c b/common/fdt_support.c
>> index 724452d..17623a1 100644
>> --- a/common/fdt_support.c
>> +++ b/common/fdt_support.c
>> @@ -410,45 +410,6 @@ static int fdt_pack_reg(const void *fdt, void *buf, u64 *address, u64 *size,
>> 	return p - (char *)buf;
>> }
>> 
>> -int fdt_record_loadable(void *blob, u32 index, const char *name,
>> -			uintptr_t load_addr, u32 size, uintptr_t entry_point,
>> -			const char *type, const char *os)
>> -{
>> -	int err, node;
>> -
>> -	err = fdt_check_header(blob);
>> -	if (err < 0) {
>> -		printf("%s: %s\n", __func__, fdt_strerror(err));
>> -		return err;
>> -	}
>> -
>> -	/* find or create "/fit-images" node */
>> -	node = fdt_find_or_add_subnode(blob, 0, "fit-images");
>> -	if (node < 0)
>> -			return node;
>> -
>> -	/* find or create "/fit-images/<name>" node */
>> -	node = fdt_find_or_add_subnode(blob, node, name);
>> -	if (node < 0)
>> -		return node;
>> -
>> -	/*
>> -	 * We record these as 32bit entities, possibly truncating addresses.
>> -	 * However, spl_fit.c is not 64bit safe either: i.e. we should not
>> -	 * have an issue here.
>> -	 */
>> -	fdt_setprop_u32(blob, node, "load-addr", load_addr);
>> -	if (entry_point != -1)
>> -		fdt_setprop_u32(blob, node, "entry-point", entry_point);
>> -	fdt_setprop_u32(blob, node, "size", size);
>> -	if (type)
>> -		fdt_setprop_string(blob, node, "type", type);
>> -	if (os)
>> -		fdt_setprop_string(blob, node, "os", os);
>> -
>> -	return node;
>> -}
>> -
>> #ifdef CONFIG_NR_DRAM_BANKS
>> #define MEMORY_BANKS_MAX CONFIG_NR_DRAM_BANKS
>> #else
>> @@ -584,6 +545,45 @@ void fdt_fixup_ethernet(void *fdt)
>> 	}
>> }
>> 
>> +int fdt_record_loadable(void *blob, u32 index, const char *name,
>> +			uintptr_t load_addr, u32 size, uintptr_t entry_point,
>> +			const char *type, const char *os)
>> +{
>> +	int err, node;
>> +
>> +	err = fdt_check_header(blob);
>> +	if (err < 0) {
>> +		printf("%s: %s\n", __func__, fdt_strerror(err));
>> +		return err;
>> +	}
>> +
>> +	/* find or create "/fit-images" node */
>> +	node = fdt_find_or_add_subnode(blob, 0, "fit-images");
>> +	if (node < 0)
>> +		return node;
>> +
>> +	/* find or create "/fit-images/<name>" node */
>> +	node = fdt_find_or_add_subnode(blob, node, name);
>> +	if (node < 0)
>> +		return node;
>> +
>> +	/*
>> +	 * We record these as 32bit entities, possibly truncating addresses.
>> +	 * However, spl_fit.c is not 64bit safe either: i.e. we should not
>> +	 * have an issue here.
>> +	 */
>> +	fdt_setprop_u32(blob, node, "load-addr", load_addr);
>> +	if (entry_point != -1)
>> +		fdt_setprop_u32(blob, node, "entry-point", entry_point);
>> +	fdt_setprop_u32(blob, node, "size", size);
>> +	if (type)
>> +		fdt_setprop_string(blob, node, "type", type);
>> +	if (os)
>> +		fdt_setprop_string(blob, node, "os", os);
>> +
>> +	return node;
>> +}
>> +
>> /* Resize the fdt to its actual size + a bit of padding */
>> int fdt_shrink_to_minimum(void *blob, uint extrasize)
>> {
>> 
> 
> Reported-by: Michal Simek <michal.simek at xilinx.com>
> Tested-by: Michal Simek <michal.simek at xilinx.com>
> 
> Thanks,
> Michal



More information about the U-Boot mailing list