
Hi Tom,
On Thu, Aug 23, 2012 at 1:19 AM, Tom Rini trini@ti.com wrote:
- Convert the non-relocation part of board_init_f to spl_board_init, turn on CONFIG_SPL_BOARD_INIT in the configs.
- Remove duplicated code.
- Add spl_boot_device() that returns the statically chosen boot device.
Signed-off-by: Tom Rini trini@ti.com
[...]
diff --git a/arch/arm/cpu/arm926ejs/davinci/spl.c b/arch/arm/cpu/arm926ejs/davinci/spl.c index 74632e5..46c0bfd 100644 --- a/arch/arm/cpu/arm926ejs/davinci/spl.c +++ b/arch/arm/cpu/arm926ejs/davinci/spl.c @@ -21,6 +21,7 @@
- MA 02111-1307 USA
*/ #include <common.h> +#include <spl.h> #include <asm/u-boot.h> #include <asm/utils.h> #include <nand.h> @@ -29,14 +30,7 @@ #include <malloc.h> #include <spi_flash.h>
-#ifdef CONFIG_SPL_LIBCOMMON_SUPPORT
-DECLARE_GLOBAL_DATA_PTR; -/* Define global data structure pointer to it*/ -static gd_t gdata __attribute__ ((section(".data"))); -static bd_t bdata __attribute__ ((section(".data")));
-#else +#ifndef CONFIG_SPL_LIBCOMMON_SUPPORT
void puts(const char *str) { @@ -54,43 +48,37 @@ void putc(char c)
#endif /* CONFIG_SPL_LIBCOMMON_SUPPORT */
-inline void hang(void) -{
puts("### ERROR ### Please RESET the board ###\n");
for (;;)
;
-}
void board_init_f(ulong dummy) {
/* First, perform our low-level init. */
#ifdef CONFIG_SOC_DM365 dm36x_lowlevel_init(0); #endif #ifdef CONFIG_SOC_DA8XX arch_cpu_init(); #endif
relocate_code(CONFIG_SPL_STACK, NULL, CONFIG_SPL_TEXT_BASE);
/*
* Next we call relocate_code() with relocation target same as the
* CONFIG_SYS_SPL_TEXT_BASE. This will result in relocation getting
* skipped. Instead, only .bss initialization will happen.
*/
relocate_code(CONFIG_SPL_STACK, &gdata, CONFIG_SPL_TEXT_BASE);
}
-void board_init_r(gd_t *id, ulong dummy) +void spl_board_init(void) { -#ifdef CONFIG_SPL_NAND_LOAD
nand_init();
puts("Nand boot...\n");
nand_boot();
-#endif -#ifdef CONFIG_SPL_SPI_LOAD
mem_malloc_init(CONFIG_SYS_TEXT_BASE - CONFIG_SYS_MALLOC_LEN,
CONFIG_SYS_MALLOC_LEN);
gd = &gdata;
gd->bd = &bdata;
gd->flags |= GD_FLG_RELOC;
gd->baudrate = CONFIG_BAUDRATE;
serial_init(); /* serial communications setup */
gd->have_console = 1;
preloader_console_init();
+}
puts("SPI boot...\n");
spi_boot();
+u32 spl_boot_device(void) +{ +#ifdef CONFIG_SPL_NAND_LOAD
return BOOT_DEVICE_NAND;
+#elif defined(CONFIG_SPL_SPI_LOAD)
return BOOT_DEVICE_SPI;
+#else
This will not apply on u-boot-ti since it is missing the MMC-SPL patches that have already been merged, right? Regards, Christian
puts("Unknown boot device\n");
hang();
#endif }