Hello Sughosh, Sughosh Ganu wrote: > This patch moves hawkboard to the new spl infrastructure from the > older nand_spl one. > > Removed the hawkboard_nand_config build option -- The spl code now > gets compiled with hawkboard_config, after building the main u-boot > image, using the CONFIG_SPL_TEXT_BASE. Modified the README.hawkboard > to reflect the same. > > Signed-off-by: Sughosh Ganu <urwithsugh...@gmail.com> > Cc: Heiko Schocher <h...@denx.de> > Cc: Christian Riesch <christian.rie...@omicron.at> > Cc: Sudhakar Rajashekhara <sudhakar....@ti.com> > Cc: Tom Rini <tr...@ti.com> > --- > [...] > diff --git a/arch/arm/cpu/arm926ejs/davinci/da850_lowlevel.c > b/arch/arm/cpu/arm926ejs/davinci/da850_lowlevel.c > index a532f8a..a4778b8 100644 > --- a/arch/arm/cpu/arm926ejs/davinci/da850_lowlevel.c > +++ b/arch/arm/cpu/arm926ejs/davinci/da850_lowlevel.c > @@ -32,6 +32,7 @@ > #include <asm/arch/emif_defs.h> > #include <asm/arch/pll_defs.h> > > +#if !defined(CONFIG_MACH_DAVINCI_HAWK)
Please no board specific defines. > void da850_waitloop(unsigned long loopcnt) > { > unsigned long i; > @@ -235,6 +236,7 @@ int da850_ddr_setup(void) > > return 0; > } > +#endif /* CONFIG_MACH_DAVINCI_HAWK */ > > __attribute__((weak)) > void board_gpio_init(void) > @@ -242,10 +244,6 @@ void board_gpio_init(void) > return; > } > > -/* pinmux_resource[] vector is defined in the board specific file */ > -extern const struct pinmux_resource pinmuxes[]; > -extern const int pinmuxes_size; > - > int arch_cpu_init(void) > { > /* Unlock kick registers */ > @@ -259,6 +257,7 @@ int arch_cpu_init(void) > if (davinci_configure_pin_mux_items(pinmuxes, pinmuxes_size)) > return 1; > > +#if defined(CONFIG_MACH_DAVINCI_DA850_EVM) here too. I propose here a CONFIG_SYS_DA850_PLL_INIT ... > /* PLL setup */ > da850_pll_init(davinci_pllc0_regs, CONFIG_SYS_DA850_PLL0_PLLM); > da850_pll_init(davinci_pllc1_regs, CONFIG_SYS_DA850_PLL1_PLLM); > @@ -275,6 +274,12 @@ int arch_cpu_init(void) > #endif > > lpsc_on(CONFIG_SYS_DA850_LPSC_UART); > + > + da850_ddr_setup(); and around the ddr_setup a CONFIG_SYS_DA850_DDR_INIT ... > +#elif defined(CONFIG_MACH_DAVINCI_HAWK) > + da8xx_configure_lpsc_items(lpsc, lpsc_size); > +#endif and we should use da8xx_configure_lpsc_items() for all da850 boards. This patch breaks current enbw_cmc board compile [hs@pollux u-boot]$ ./MAKEALL enbw_cmc Configuring for enbw_cmc board... enbw_cmc.c:52:35: error: static declaration of 'lpsc' follows non-static declaration /work/hs/u-boot/include/asm/arch/da850_lowlevel.h:33:35: note: previous declaration of 'lpsc' was here make[1]: *** [enbw_cmc.o] Fehler 1 make: *** [board/enbw/enbw_cmc/libenbw_cmc.o] Fehler 2 arm-linux-gnueabi-size: './u-boot': No such file please remove the da8xx_configure_lpsc_items() in board_gpio_init() in the ./board/enbw/enbw_cmc/enbw_cmc.c() file, and also move ... before I write here a lot of text, here the patch, based on yours, please add it to your patch, and add my Signed-off-by: Heiko Schocher <h...@denx.de> and tested on the enbw_cmc board, so: Tested-by: Heiko Schocher <h...@denx.de> to your patch, here the patch: diff --git a/arch/arm/cpu/arm926ejs/davinci/da850_lowlevel.c b/arch/arm/cpu/arm926ejs/davinci/da850_lowlevel.c index a4778b8..a404916 100644 --- a/arch/arm/cpu/arm926ejs/davinci/da850_lowlevel.c +++ b/arch/arm/cpu/arm926ejs/davinci/da850_lowlevel.c @@ -32,7 +32,7 @@ #include <asm/arch/emif_defs.h> #include <asm/arch/pll_defs.h> -#if !defined(CONFIG_MACH_DAVINCI_HAWK) +#if defined(CONFIG_SYS_DA850_DDR_INIT) void da850_waitloop(unsigned long loopcnt) { unsigned long i; @@ -236,7 +236,7 @@ int da850_ddr_setup(void) return 0; } -#endif /* CONFIG_MACH_DAVINCI_HAWK */ +#endif /* CONFIG_SYS_DA850_DDR_INIT */ __attribute__((weak)) void board_gpio_init(void) @@ -257,14 +257,11 @@ int arch_cpu_init(void) if (davinci_configure_pin_mux_items(pinmuxes, pinmuxes_size)) return 1; -#if defined(CONFIG_MACH_DAVINCI_DA850_EVM) +#if defined(CONFIG_SYS_DA850_PLL_INIT) /* PLL setup */ da850_pll_init(davinci_pllc0_regs, CONFIG_SYS_DA850_PLL0_PLLM); da850_pll_init(davinci_pllc1_regs, CONFIG_SYS_DA850_PLL1_PLLM); - - /* GPIO setup */ - board_gpio_init(); - +#endif /* setup CSn config */ #if defined(CONFIG_SYS_DA850_CS2CFG) writel(CONFIG_SYS_DA850_CS2CFG, &davinci_emif_regs->ab1cr); @@ -273,13 +270,15 @@ int arch_cpu_init(void) writel(CONFIG_SYS_DA850_CS3CFG, &davinci_emif_regs->ab2cr); #endif - lpsc_on(CONFIG_SYS_DA850_LPSC_UART); - - da850_ddr_setup(); -#elif defined(CONFIG_MACH_DAVINCI_HAWK) da8xx_configure_lpsc_items(lpsc, lpsc_size); +#if defined(CONFIG_SYS_DA850_DDR_INIT) + da850_ddr_setup(); #endif + /* GPIO setup */ + board_gpio_init(); + + NS16550_init((NS16550_t)(CONFIG_SYS_NS16550_COM1), CONFIG_SYS_NS16550_CLK / 16 / CONFIG_BAUDRATE); diff --git a/board/davinci/da8xxevm/da850evm.c b/board/davinci/da8xxevm/da850evm.c index 9bd3e71..34ef53d 100644 --- a/board/davinci/da8xxevm/da850evm.c +++ b/board/davinci/da8xxevm/da850evm.c @@ -137,7 +137,7 @@ const struct pinmux_resource pinmuxes[] = { const int pinmuxes_size = ARRAY_SIZE(pinmuxes); -static const struct lpsc_resource lpsc[] = { +const struct lpsc_resource lpsc[] = { { DAVINCI_LPSC_AEMIF }, /* NAND, NOR */ { DAVINCI_LPSC_SPI1 }, /* Serial Flash */ { DAVINCI_LPSC_EMAC }, /* image download */ @@ -145,6 +145,8 @@ static const struct lpsc_resource lpsc[] = { { DAVINCI_LPSC_GPIO }, }; +const int lpsc_size = ARRAY_SIZE(lpsc); + #ifndef CONFIG_DA850_EVM_MAX_CPU_CLK #define CONFIG_DA850_EVM_MAX_CPU_CLK 300000000 #endif diff --git a/board/enbw/enbw_cmc/enbw_cmc.c b/board/enbw/enbw_cmc/enbw_cmc.c index 5cd5357..f6c3dd9 100644 --- a/board/enbw/enbw_cmc/enbw_cmc.c +++ b/board/enbw/enbw_cmc/enbw_cmc.c @@ -49,7 +49,7 @@ DECLARE_GLOBAL_DATA_PTR; -static const struct lpsc_resource lpsc[] = { +const struct lpsc_resource lpsc[] = { { DAVINCI_LPSC_AEMIF }, { DAVINCI_LPSC_SPI1 }, { DAVINCI_LPSC_ARM_RAM_ROM }, @@ -65,6 +65,8 @@ static const struct lpsc_resource lpsc[] = { { DAVINCI_LPSC_USB11 }, }; +const int lpsc_size = ARRAY_SIZE(lpsc); + static const struct pinmux_config enbw_pins[] = { { pinmux(0), 8, 0 }, { pinmux(0), 8, 1 }, @@ -549,15 +551,6 @@ void board_gpio_init(void) struct davinci_gpio *gpio = davinci_gpio_bank01; /* - * Power on required peripherals - * ARM does not have access by default to PSC0 and PSC1 - * assuming here that the DSP bootloader has set the IOPU - * such that PSC access is available to ARM - */ - if (da8xx_configure_lpsc_items(lpsc, ARRAY_SIZE(lpsc))) - return; - - /* * set LED (gpio Interface not usable here) * set LED pins to output and state 0 */ diff --git a/include/configs/enbw_cmc.h b/include/configs/enbw_cmc.h index c427dc7..804846d 100644 --- a/include/configs/enbw_cmc.h +++ b/include/configs/enbw_cmc.h @@ -48,6 +48,8 @@ #define CONFIG_SKIP_LOWLEVEL_INIT #define CONFIG_DA850_LOWLEVEL #define CONFIG_ARCH_CPU_INIT +#define CONFIG_SYS_DA850_PLL_INIT +#define CONFIG_SYS_DA850_DDR_INIT #define CONFIG_DA8XX_GPIO #define CONFIG_HOSTNAME enbw_cmc #define CONFIG_DISPLAY_CPUINFO -- 1.7.7.4 [...] > diff --git a/include/configs/cam_enc_4xx.h b/include/configs/cam_enc_4xx.h > index a21d448..8e3a4d2 100644 > --- a/include/configs/cam_enc_4xx.h > +++ b/include/configs/cam_enc_4xx.h > @@ -205,6 +205,7 @@ > > /* Defines for SPL */ > #define CONFIG_SPL > +#define CONFIG_DM365_SPL Why we need this define? [hs@pollux u-boot]$ grep -lr CONFIG_DM365_SPL . ./include/configs/cam_enc_4xx.h [hs@pollux u-boot]$ > #define CONFIG_SPL_NAND_SUPPORT > #define CONFIG_SPL_NAND_SIMPLE > #define CONFIG_SPL_NAND_LOAD > diff --git a/include/configs/da850evm.h b/include/configs/da850evm.h > index fcbbace..a44d825 100644 > --- a/include/configs/da850evm.h > +++ b/include/configs/da850evm.h > @@ -311,6 +311,7 @@ > > /* defines for SPL */ > #define CONFIG_SPL > +#define CONFIG_DA850EVM_SPL here too, why you add this define? [hs@pollux u-boot]$ grep -lr CONFIG_DA850EVM_SPL . ./include/configs/da850evm.h [hs@pollux u-boot]$ [...] > diff --git a/include/configs/hawkboard.h b/include/configs/hawkboard.h > index 12acb27..57b1932 100644 > --- a/include/configs/hawkboard.h > +++ b/include/configs/hawkboard.h > @@ -43,12 +43,30 @@ > #define CONFIG_SKIP_LOWLEVEL_INIT > #define CONFIG_BOARD_EARLY_INIT_F > > -#if defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_UART_U_BOOT) > +#define CONFIG_SYS_DA850_SYSCFG_SUSPSRC ( \ > + DAVINCI_SYSCFG_SUSPSRC_EMAC | \ > + DAVINCI_SYSCFG_SUSPSRC_I2C | \ > + DAVINCI_SYSCFG_SUSPSRC_SPI1 | \ > + DAVINCI_SYSCFG_SUSPSRC_TIMER0 | \ > + DAVINCI_SYSCFG_SUSPSRC_UART2) > + > +#if defined(CONFIG_UART_U_BOOT) > #define CONFIG_SYS_TEXT_BASE 0xc1080000 > -#else > +#elif !defined(CONFIG_SPL_BUILD) > #define CONFIG_SYS_TEXT_BASE 0xc1180000 > #endif > > +/* Spl */ > +#define CONFIG_SPL > +#define CONFIG_HAWKBOARD_SPL Here too, why this? [hs@pollux u-boot]$ grep -lr CONFIG_HAWKBOARD_SPL . ./include/configs/hawkboard.h [hs@pollux u-boot]$ > +#define CONFIG_SPL_NAND_SUPPORT > +#define CONFIG_SPL_NAND_SIMPLE > +#define CONFIG_SPL_NAND_LOAD > +#define CONFIG_SPL_SERIAL_SUPPORT > +#define CONFIG_SPL_LDSCRIPT "board/$(BOARDDIR)/u-boot-spl-hawk.lds" > +#define CONFIG_SPL_TEXT_BASE 0xc1080000 > +#define CONFIG_SPL_STACK CONFIG_SYS_INIT_SP_ADDR > + > /* > * Memory Info > */ > @@ -84,9 +102,7 @@ > /* > * Network & Ethernet Configuration > */ > -#if !defined(CONFIG_NAND_SPL) > #define CONFIG_DRIVER_TI_EMAC > -#endif > #define CONFIG_MII > #define CONFIG_BOOTP_DEFAULT > #define CONFIG_BOOTP_DNS bye, Heiko -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot