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
next prev parent 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.