Hi Tom, On Thu, Aug 23, 2012 at 1:19 AM, Tom Rini <tr...@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 <tr...@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 > } _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot