diff mbox

[U-Boot,V13,04/12] devkit8000/spl: init GPMC for dm9000 in SPL

Message ID 1328350963-30989-5-git-send-email-sbabic@denx.de
State Deferred, archived
Delegated to: Tom Rini
Headers show

Commit Message

Stefano Babic Feb. 4, 2012, 10:22 a.m. UTC
From: Simon Schwarz <simonschwarzcor@googlemail.com>

Linux crashes if the GPMC isn't configured for the dm9000.

Signed-off-by: Simon Schwarz <simonschwarzcor@gmail.com>
CC: Tom Rini <tom.rini@gmail.com>
CC: Stefano Babic <sbabic@denx.de>
CC: Wolfgang Denk <wd@denx.de>
---
 arch/arm/include/asm/omap_common.h  |    2 ++
 board/timll/devkit8000/devkit8000.c |   19 +++++++++++++++++++
 2 files changed, 21 insertions(+), 0 deletions(-)

Comments

Thomas Weber Feb. 19, 2012, 5:57 a.m. UTC | #1
Hello Stefano,
On 02/04/2012 11:22 AM, Stefano Babic wrote:
> From: Simon Schwarz<simonschwarzcor@googlemail.com>
>
> Linux crashes if the GPMC isn't configured for the dm9000.
>
> Signed-off-by: Simon Schwarz<simonschwarzcor@gmail.com>
> CC: Tom Rini<tom.rini@gmail.com>
> CC: Stefano Babic<sbabic@denx.de>
> CC: Wolfgang Denk<wd@denx.de>
> ---
>   arch/arm/include/asm/omap_common.h  |    2 ++
>   board/timll/devkit8000/devkit8000.c |   19 +++++++++++++++++++
>   2 files changed, 21 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/include/asm/omap_common.h b/arch/arm/include/asm/omap_common.h
> index 34bec45..92aa4f9 100644
> --- a/arch/arm/include/asm/omap_common.h
> +++ b/arch/arm/include/asm/omap_common.h
> @@ -92,6 +92,8 @@ u32 omap_boot_mode(void);
>   /* SPL common function s*/
>   void spl_parse_image_header(const struct image_header *header);
>   void omap_rev_string(void);
> +int spl_uboot_key(void);
shouldn't this be spl_start_uboot ? The request if the key for starting 
u-boot is pressed?

Thomas

> +void spl_board_prepare_for_linux(void);
>
>   /* NAND SPL functions */
>   void spl_nand_load_image(void);
> diff --git a/board/timll/devkit8000/devkit8000.c b/board/timll/devkit8000/devkit8000.c
> index 10f189e..dded697 100644
> --- a/board/timll/devkit8000/devkit8000.c
> +++ b/board/timll/devkit8000/devkit8000.c
> @@ -73,6 +73,13 @@ int board_init(void)
>   	return 0;
>   }
>
> +/* Configure GPMC registers for DM9000 */
> +static void gpmc_dm9000_config(void)
> +{
> +	enable_gpmc_cs_config(gpmc_net_config,&gpmc_cfg->cs[6],
> +		CONFIG_DM9000_BASE, GPMC_SIZE_16M);
> +}
> +
>   /*
>    * Routine: misc_init_r
>    * Description: Configure board specific parts
> @@ -144,6 +151,18 @@ int board_eth_init(bd_t *bis)
>   }
>   #endif
>
> +#ifdef CONFIG_SPL_OS_BOOT
> +/*
> + * Do board specific preperation before SPL
> + * Linux boot
> + */
> +void spl_board_prepare_for_linux(void)
> +{
> +	gpmc_dm9000_config();
> +}
> +
> +#endif
> +
>   /*
>    * Routine: get_board_mem_timings
>    * Description: If we use SPL then there is no x-loader nor config header
Stefano Babic Feb. 20, 2012, 8:28 a.m. UTC | #2
On 19/02/2012 06:57, Thomas Weber wrote:
> Hello Stefano,

Hallo Thomas,
>> +int spl_uboot_key(void);
> shouldn't this be spl_start_uboot ? The request if the key for starting
> u-boot is pressed?

It is - the prototype for spl_uboot_key is obsolete, I remove it for the
next version, thanks.

Stefano
diff mbox

Patch

diff --git a/arch/arm/include/asm/omap_common.h b/arch/arm/include/asm/omap_common.h
index 34bec45..92aa4f9 100644
--- a/arch/arm/include/asm/omap_common.h
+++ b/arch/arm/include/asm/omap_common.h
@@ -92,6 +92,8 @@  u32 omap_boot_mode(void);
 /* SPL common function s*/
 void spl_parse_image_header(const struct image_header *header);
 void omap_rev_string(void);
+int spl_uboot_key(void);
+void spl_board_prepare_for_linux(void);
 
 /* NAND SPL functions */
 void spl_nand_load_image(void);
diff --git a/board/timll/devkit8000/devkit8000.c b/board/timll/devkit8000/devkit8000.c
index 10f189e..dded697 100644
--- a/board/timll/devkit8000/devkit8000.c
+++ b/board/timll/devkit8000/devkit8000.c
@@ -73,6 +73,13 @@  int board_init(void)
 	return 0;
 }
 
+/* Configure GPMC registers for DM9000 */
+static void gpmc_dm9000_config(void)
+{
+	enable_gpmc_cs_config(gpmc_net_config, &gpmc_cfg->cs[6],
+		CONFIG_DM9000_BASE, GPMC_SIZE_16M);
+}
+
 /*
  * Routine: misc_init_r
  * Description: Configure board specific parts
@@ -144,6 +151,18 @@  int board_eth_init(bd_t *bis)
 }
 #endif
 
+#ifdef CONFIG_SPL_OS_BOOT
+/*
+ * Do board specific preperation before SPL
+ * Linux boot
+ */
+void spl_board_prepare_for_linux(void)
+{
+	gpmc_dm9000_config();
+}
+
+#endif
+
 /*
  * Routine: get_board_mem_timings
  * Description: If we use SPL then there is no x-loader nor config header