
On 06/09/2016 04:23 PM, Michal Simek wrote:
Disable arch_fixup_fdt() calls for cases where U-Boot shouldn't update memory setup in DTB file. One example of usage of this option is to boot OS with different memory setup than U-Boot use.
Signed-off-by: Michal Simek michal.simek@xilinx.com
Could we instead just have the board file provide a fixup? It could then also fix up the efi memory map.
Alex
Kconfig | 8 ++++++++ arch/arm/lib/bootm-fdt.c | 2 ++ common/image-fdt.c | 3 +++ 3 files changed, 13 insertions(+)
diff --git a/Kconfig b/Kconfig index 4b4621666560..3efba624ecff 100644 --- a/Kconfig +++ b/Kconfig @@ -291,6 +291,14 @@ config SYS_CLK_FREQ help TODO: Move CONFIG_SYS_CLK_FREQ for all the architecture
+config DISABLE_ARCH_FIXUP_FDT
bool "Disable arch_fixup_fdt() call"
depends on ARM
help
Disable FDT memory map syncup before OS boot. This feature can be
used for booting OS with different memory setup where the part of
the memory location should be used for different purpose.
endmenu # Boot images
source "common/Kconfig"
diff --git a/arch/arm/lib/bootm-fdt.c b/arch/arm/lib/bootm-fdt.c index 7677358742e1..a873b778ade9 100644 --- a/arch/arm/lib/bootm-fdt.c +++ b/arch/arm/lib/bootm-fdt.c @@ -24,6 +24,7 @@
DECLARE_GLOBAL_DATA_PTR;
+#ifndef CONFIG_DISABLE_ARCH_FIXUP_FDT int arch_fixup_fdt(void *blob) { bd_t *bd = gd->bd; @@ -50,3 +51,4 @@ int arch_fixup_fdt(void *blob) #endif return ret; } +#endif diff --git a/common/image-fdt.c b/common/image-fdt.c index 6cac7dbb7f8b..9e05becd464a 100644 --- a/common/image-fdt.c +++ b/common/image-fdt.c @@ -460,6 +460,9 @@ __weak int ft_verify_fdt(void *fdt)
__weak int arch_fixup_fdt(void *blob) { +#ifdef CONFIG_DISABLE_ARCH_FIXUP_FDT
- printf("## Disable arch_fixup_fdt()\n");
+#endif return 0; }