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

Reply via email to