[U-Boot] [PATCH v3 16/19] ARM: SPL: Convert davinci to CONFIG_SPL_FRAMEWORK

Christian Riesch
2012-08-23T13:14:12Z

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
> }