powerpc: p1022ds: add TPL for p1022ds nand boot
[kernel/u-boot.git] / board / freescale / p1022ds / spl.c
index 7e89de2..358b2e3 100644 (file)
@@ -100,21 +100,37 @@ void board_init_r(gd_t *gd, ulong dest_addr)
        get_clocks();
        mem_malloc_init(CONFIG_SPL_RELOC_MALLOC_ADDR,
                        CONFIG_SPL_RELOC_MALLOC_SIZE);
+#ifndef CONFIG_SPL_NAND_BOOT
        env_init();
+#endif
 #ifdef CONFIG_SPL_MMC_BOOT
        mmc_initialize(bd);
 #endif
        /* relocate environment function pointers etc. */
+#ifdef CONFIG_SPL_NAND_BOOT
+       nand_spl_load_image(CONFIG_ENV_OFFSET, CONFIG_ENV_SIZE,
+                           (uchar *)CONFIG_ENV_ADDR);
+
+       gd->env_addr  = (ulong)(CONFIG_ENV_ADDR);
+       gd->env_valid = 1;
+#else
        env_relocate();
+#endif
 
        i2c_init(CONFIG_SYS_FSL_I2C_SPEED, CONFIG_SYS_I2C_SLAVE);
 
        gd->ram_size = initdram(0);
+#ifdef CONFIG_SPL_NAND_BOOT
+       puts("Tertiary program loader running in sram...");
+#else
        puts("Second program loader running in sram...\n");
+#endif
 
 #ifdef CONFIG_SPL_MMC_BOOT
        mmc_boot();
 #elif defined(CONFIG_SPL_SPI_BOOT)
        spi_boot();
+#elif defined(CONFIG_SPL_NAND_BOOT)
+       nand_boot();
 #endif
 }