public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Heiko Schocher <hs@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 2/2 V2] Changes to move hawkboard to the new spl infrastructure.
Date: Wed, 11 Jan 2012 07:52:02 +0100	[thread overview]
Message-ID: <4F0D3192.7000708@denx.de> (raw)
In-Reply-To: <1326219310-1994-1-git-send-email-urwithsughosh@gmail.com>

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 <urwithsughosh@gmail.com>
> Cc: Heiko Schocher <hs@denx.de>
> Cc: Christian Riesch <christian.riesch@omicron.at>
> Cc: Sudhakar Rajashekhara <sudhakar.raj@ti.com>
> Cc: Tom Rini <trini@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 at 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 <hs@denx.de>

and tested on the enbw_cmc board, so:
Tested-by: Heiko Schocher <hs@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 at pollux u-boot]$ grep -lr CONFIG_DM365_SPL .
./include/configs/cam_enc_4xx.h
[hs at 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 at pollux u-boot]$ grep -lr CONFIG_DA850EVM_SPL .
./include/configs/da850evm.h
[hs at 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 at pollux u-boot]$ grep -lr CONFIG_HAWKBOARD_SPL .
./include/configs/hawkboard.h
[hs at 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

  reply	other threads:[~2012-01-11  6:52 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-09 18:28 [U-Boot] [PATCH 2/2] Changes to move hawkboard to the new infrastructure Sughosh Ganu
2012-01-09 23:30 ` Tom Rini
2012-01-10  6:30   ` Sughosh Ganu
2012-01-10  8:15     ` Christian Riesch
2012-01-10  8:42       ` Sughosh Ganu
2012-01-10  9:42         ` Heiko Schocher
2012-01-10 10:13           ` Sughosh Ganu
2012-01-10 18:15 ` [U-Boot] [PATCH 2/2 V2] Changes to move hawkboard to the new spl infrastructure Sughosh Ganu
2012-01-11  6:52   ` Heiko Schocher [this message]
2012-01-11  7:53     ` Sughosh Ganu
2012-01-11  8:54       ` Christian Riesch
2012-01-11  9:17     ` Christian Riesch
2012-01-11  9:40       ` Heiko Schocher
2012-01-11 14:37     ` [U-Boot] [PATCH 2/2 V3] " Sughosh Ganu
2012-01-11 16:10       ` Christian Riesch
2012-01-11 17:03         ` [U-Boot] [PATCH 2/2 V4] " Sughosh Ganu
2012-01-12  7:24           ` Heiko Schocher
2012-01-12  7:30             ` Sughosh Ganu
2012-01-12  7:32             ` Christian Riesch
2012-01-12  9:02           ` Christian Riesch
2012-01-12  9:39             ` Sughosh Ganu
2012-01-12 11:19               ` Christian Riesch

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4F0D3192.7000708@denx.de \
    --to=hs@denx.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox