[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