Merge branch '2019-10-11-ti-imports'
[oweals/u-boot.git] / common / spl / spl_nand.c
index 6eb190f1ea540da99fc2a6db9c3bedf92aadf4c8..5f8a111a2f064808dadead4d2e30e1ae0edd354a 100644 (file)
 #include <linux/libfdt_env.h>
 #include <fdt.h>
 
+uint32_t __weak spl_nand_get_uboot_raw_page(void)
+{
+       return CONFIG_SYS_NAND_U_BOOT_OFFS;
+}
+
 #if defined(CONFIG_SPL_NAND_RAW_ONLY)
 static int spl_nand_load_image(struct spl_image_info *spl_image,
                        struct spl_boot_device *bootdev)
 {
        nand_init();
 
-       nand_spl_load_image(CONFIG_SYS_NAND_U_BOOT_OFFS,
+       printf("Loading U-Boot from 0x%08x (size 0x%08x) to 0x%08x\n",
+              CONFIG_SYS_NAND_U_BOOT_OFFS, CONFIG_SYS_NAND_U_BOOT_SIZE,
+              CONFIG_SYS_NAND_U_BOOT_DST);
+
+       nand_spl_load_image(spl_nand_get_uboot_raw_page(),
                            CONFIG_SYS_NAND_U_BOOT_SIZE,
                            (void *)CONFIG_SYS_NAND_U_BOOT_DST);
        spl_set_header_raw_uboot(spl_image);
@@ -59,6 +68,15 @@ static int spl_nand_load_element(struct spl_image_info *spl_image,
                load.bl_len = 1;
                load.read = spl_nand_fit_read;
                return spl_load_simple_fit(spl_image, &load, offset, header);
+       } else if (IS_ENABLED(CONFIG_SPL_LOAD_IMX_CONTAINER)) {
+               struct spl_load_info load;
+
+               load.dev = NULL;
+               load.priv = NULL;
+               load.filename = NULL;
+               load.bl_len = 1;
+               load.read = spl_nand_fit_read;
+               return spl_load_imx_container(spl_image, &load, offset);
        } else {
                err = spl_parse_image_header(spl_image, header);
                if (err)
@@ -135,7 +153,7 @@ static int spl_nand_load_image(struct spl_image_info *spl_image,
 #endif
 #endif
        /* Load u-boot */
-       err = spl_nand_load_element(spl_image, CONFIG_SYS_NAND_U_BOOT_OFFS,
+       err = spl_nand_load_element(spl_image, spl_nand_get_uboot_raw_page(),
                                    header);
 #ifdef CONFIG_SYS_NAND_U_BOOT_OFFS_REDUND
 #if CONFIG_SYS_NAND_U_BOOT_OFFS != CONFIG_SYS_NAND_U_BOOT_OFFS_REDUND