]> git.sur5r.net Git - u-boot/commitdiff
fdt relocate: have more attention to use a bootmap or not
authorStephan Linz <linz@li-pro.net>
Fri, 25 Jun 2010 16:04:59 +0000 (18:04 +0200)
committerWolfgang Denk <wd@denx.de>
Sun, 8 Aug 2010 20:16:05 +0000 (22:16 +0200)
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>
arch/powerpc/lib/bootm.c
common/image.c

index 306412114309fb3dd7528208c5677ef355412fb5..4c3e2fe7956434bb59648492e21c321675c63efe 100644 (file)
@@ -253,7 +253,7 @@ static int boot_body_linux(bootm_headers_t *images)
        if (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);
        if (ret)
                return ret;
@@ -292,7 +292,7 @@ static int boot_body_linux(bootm_headers_t *images)
                if (*initrd_start && *initrd_end)
                        fdt_initrd(*of_flat_tree, *initrd_start, *initrd_end, 1);
        }
-#endif /* CONFIG_OF_LIBFDT */
+#endif /* CONFIG_OF_LIBFDT && CONFIG_SYS_BOOTMAPSZ */
        return 0;
 }
 
index ea5973086140930d9f995924aab60dcd3c319447..fcb938b08e3839d3809e514b1b0188d34690a8a2 100644 (file)
@@ -1184,6 +1184,7 @@ static int fit_check_fdt (const void *fit, int fdt_noffset, int verify)
  *      0 - success
  *      1 - failure
  */
+#if defined(CONFIG_SYS_BOOTMAPSZ)
 int boot_relocate_fdt (struct lmb *lmb, ulong bootmap_base,
                char **of_flat_tree, ulong *of_size)
 {
@@ -1263,6 +1264,7 @@ int boot_relocate_fdt (struct lmb *lmb, ulong bootmap_base,
 error:
        return 1;
 }
+#endif /* CONFIG_SYS_BOOTMAPSZ */
 
 /**
  * boot_get_fdt - main fdt handling routine