mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-30 00:20:44 +09:00
fdt relocate: have more attention to use a bootmap or not
Platforms with flat device tree support can use a bootmap to relocate the fdt_blob. This is not a must. That's why the relocation function boot_relocate_fdt() should be use only if CONFIG_OF_LIBFDT was defined together with CONFIG_SYS_BOOTMAPSZ (see common/cmd_bootm.c). On MicroBlaze platforms there is no need to use a bootmap to relocate a fdt blob. So we need a more precise focus on the compilation and usage of boot_relocate_fdt(). In general it is valid to exclude the function boot_relocate_fdt() if the bootmap size CONFIG_SYS_BOOTMAPSZ is not defined. Signed-off-by: Stephan Linz <linz@li-pro.net>
This commit is contained in:
parent
cd1535564c
commit
958e120643
@ -253,7 +253,7 @@ static int boot_body_linux(bootm_headers_t *images)
|
|||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
#if defined(CONFIG_OF_LIBFDT)
|
#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_SYS_BOOTMAPSZ)
|
||||||
ret = boot_relocate_fdt(lmb, bootmap_base, of_flat_tree, &of_size);
|
ret = boot_relocate_fdt(lmb, bootmap_base, of_flat_tree, &of_size);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
@ -292,7 +292,7 @@ static int boot_body_linux(bootm_headers_t *images)
|
|||||||
if (*initrd_start && *initrd_end)
|
if (*initrd_start && *initrd_end)
|
||||||
fdt_initrd(*of_flat_tree, *initrd_start, *initrd_end, 1);
|
fdt_initrd(*of_flat_tree, *initrd_start, *initrd_end, 1);
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_OF_LIBFDT */
|
#endif /* CONFIG_OF_LIBFDT && CONFIG_SYS_BOOTMAPSZ */
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1184,6 +1184,7 @@ static int fit_check_fdt (const void *fit, int fdt_noffset, int verify)
|
|||||||
* 0 - success
|
* 0 - success
|
||||||
* 1 - failure
|
* 1 - failure
|
||||||
*/
|
*/
|
||||||
|
#if defined(CONFIG_SYS_BOOTMAPSZ)
|
||||||
int boot_relocate_fdt (struct lmb *lmb, ulong bootmap_base,
|
int boot_relocate_fdt (struct lmb *lmb, ulong bootmap_base,
|
||||||
char **of_flat_tree, ulong *of_size)
|
char **of_flat_tree, ulong *of_size)
|
||||||
{
|
{
|
||||||
@ -1263,6 +1264,7 @@ int boot_relocate_fdt (struct lmb *lmb, ulong bootmap_base,
|
|||||||
error:
|
error:
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
#endif /* CONFIG_SYS_BOOTMAPSZ */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* boot_get_fdt - main fdt handling routine
|
* boot_get_fdt - main fdt handling routine
|
||||||
|
Loading…
Reference in New Issue
Block a user