diff mbox

[U-Boot,v2,6/7] microblaze: Clean microblaze initialization

Message ID 1344239199-11445-6-git-send-email-monstr@monstr.eu
State Accepted
Commit 2380b8f529ae95cc51fa475e83101e40f4191a43
Delegated to: Mike Frysinger
Headers show

Commit Message

Michal Simek Aug. 6, 2012, 7:46 a.m. UTC
Move board specific function to board_init function in board/ folder
Remove externs from generic board.c
Use board_init_f function in board.c file.

Signed-off-by: Michal Simek <monstr@monstr.eu>

---
v2: Remove global pointer
    Define board_init function in header
---
 arch/microblaze/cpu/start.S                        |    2 +-
 arch/microblaze/include/asm/processor.h            |    3 +++
 arch/microblaze/lib/board.c                        |   17 +++--------------
 .../xilinx/microblaze-generic/microblaze-generic.c |    9 +++++++++
 4 files changed, 16 insertions(+), 15 deletions(-)

Comments

Stephan Linz Aug. 7, 2012, 8:10 p.m. UTC | #1
Am Montag, den 06.08.2012, 09:46 +0200 schrieb Michal Simek: 
> Move board specific function to board_init function in board/ folder
> Remove externs from generic board.c
> Use board_init_f function in board.c file.
> 
> Signed-off-by: Michal Simek <monstr@monstr.eu>
> 

Acked-by: Stephan Linz <linz@li-pro.net>

Tested with AXI systems on Avnet S6LX150T and S6LX9 micro-evaluation.

> ---
> v2: Remove global pointer
>     Define board_init function in header
> ---
>  arch/microblaze/cpu/start.S                        |    2 +-
>  arch/microblaze/include/asm/processor.h            |    3 +++
>  arch/microblaze/lib/board.c                        |   17 +++--------------
>  .../xilinx/microblaze-generic/microblaze-generic.c |    9 +++++++++
>  4 files changed, 16 insertions(+), 15 deletions(-)
> 
> diff --git a/arch/microblaze/cpu/start.S b/arch/microblaze/cpu/start.S
> index 8a2f634..8564c4e 100644
> --- a/arch/microblaze/cpu/start.S
> +++ b/arch/microblaze/cpu/start.S
> @@ -149,7 +149,7 @@ clear_bss:
>  	cmp     r6, r5, r4 /* check if we have reach the end */
>  	bnei    r6, 2b
>  3:	/* jumping to board_init */
> -	brai	board_init
> +	brai	board_init_f
>  1:	bri	1b
>  
>  /*
> diff --git a/arch/microblaze/include/asm/processor.h b/arch/microblaze/include/asm/processor.h
> index 2295d0a..2c4d5ff 100644
> --- a/arch/microblaze/include/asm/processor.h
> +++ b/arch/microblaze/include/asm/processor.h
> @@ -28,4 +28,7 @@
>  extern char __end[];
>  extern char __text_start[];
>  
> +/* Microblaze board initialization function */
> +void board_init(void);
> +
>  #endif /* __ASM_MICROBLAZE_PROCESSOR_H */
> diff --git a/arch/microblaze/lib/board.c b/arch/microblaze/lib/board.c
> index fde109f..b450367 100644
> --- a/arch/microblaze/lib/board.c
> +++ b/arch/microblaze/lib/board.c
> @@ -39,13 +39,6 @@
>  
>  DECLARE_GLOBAL_DATA_PTR;
>  
> -#ifdef CONFIG_SYS_GPIO_0
> -extern int gpio_init (void);
> -#endif
> -#ifdef CONFIG_SYS_FSL_2
> -extern void fsl_init2 (void);
> -#endif
> -
>  /*
>   * All attempts to come up with a "common" initialization sequence
>   * that works for all boards and architectures failed: some of the
> @@ -67,20 +60,14 @@ init_fnc_t *init_sequence[] = {
>  #endif
>  	serial_init,
>  	console_init_f,
> -#ifdef CONFIG_SYS_GPIO_0
> -	gpio_init,
> -#endif
>  	interrupts_init,
>  	timer_init,
> -#ifdef CONFIG_SYS_FSL_2
> -	fsl_init2,
> -#endif
>  	NULL,
>  };
>  
>  unsigned long monitor_flash_len;
>  
> -void board_init (void)
> +void board_init_f(ulong not_used)
>  {
>  	bd_t *bd;
>  	init_fnc_t **init_fnc_ptr;
> @@ -189,6 +176,8 @@ void board_init (void)
>  	/* Initialize the console (after the relocation and devices init) */
>  	console_init_r();
>  
> +	board_init();
> +
>  	/* Initialize from environment */
>  	load_addr = getenv_ulong("loadaddr", 16, load_addr);
>  
> diff --git a/board/xilinx/microblaze-generic/microblaze-generic.c b/board/xilinx/microblaze-generic/microblaze-generic.c
> index a1e2bfe..b75e62c 100644
> --- a/board/xilinx/microblaze-generic/microblaze-generic.c
> +++ b/board/xilinx/microblaze-generic/microblaze-generic.c
> @@ -28,6 +28,7 @@
>  #include <common.h>
>  #include <config.h>
>  #include <netdev.h>
> +#include <asm/processor.h>
>  #include <asm/microblaze_intc.h>
>  #include <asm/asm.h>
>  
> @@ -69,6 +70,14 @@ int fsl_init2 (void) {
>  }
>  #endif
>  
> +void board_init(void)
> +{
> +	gpio_init();
> +#ifdef CONFIG_SYS_FSL_2
> +	fsl_init2();
> +#endif
> +}
> +
>  int board_eth_init(bd_t *bis)
>  {
>  	int ret = 0;
diff mbox

Patch

diff --git a/arch/microblaze/cpu/start.S b/arch/microblaze/cpu/start.S
index 8a2f634..8564c4e 100644
--- a/arch/microblaze/cpu/start.S
+++ b/arch/microblaze/cpu/start.S
@@ -149,7 +149,7 @@  clear_bss:
 	cmp     r6, r5, r4 /* check if we have reach the end */
 	bnei    r6, 2b
 3:	/* jumping to board_init */
-	brai	board_init
+	brai	board_init_f
 1:	bri	1b
 
 /*
diff --git a/arch/microblaze/include/asm/processor.h b/arch/microblaze/include/asm/processor.h
index 2295d0a..2c4d5ff 100644
--- a/arch/microblaze/include/asm/processor.h
+++ b/arch/microblaze/include/asm/processor.h
@@ -28,4 +28,7 @@ 
 extern char __end[];
 extern char __text_start[];
 
+/* Microblaze board initialization function */
+void board_init(void);
+
 #endif /* __ASM_MICROBLAZE_PROCESSOR_H */
diff --git a/arch/microblaze/lib/board.c b/arch/microblaze/lib/board.c
index fde109f..b450367 100644
--- a/arch/microblaze/lib/board.c
+++ b/arch/microblaze/lib/board.c
@@ -39,13 +39,6 @@ 
 
 DECLARE_GLOBAL_DATA_PTR;
 
-#ifdef CONFIG_SYS_GPIO_0
-extern int gpio_init (void);
-#endif
-#ifdef CONFIG_SYS_FSL_2
-extern void fsl_init2 (void);
-#endif
-
 /*
  * All attempts to come up with a "common" initialization sequence
  * that works for all boards and architectures failed: some of the
@@ -67,20 +60,14 @@  init_fnc_t *init_sequence[] = {
 #endif
 	serial_init,
 	console_init_f,
-#ifdef CONFIG_SYS_GPIO_0
-	gpio_init,
-#endif
 	interrupts_init,
 	timer_init,
-#ifdef CONFIG_SYS_FSL_2
-	fsl_init2,
-#endif
 	NULL,
 };
 
 unsigned long monitor_flash_len;
 
-void board_init (void)
+void board_init_f(ulong not_used)
 {
 	bd_t *bd;
 	init_fnc_t **init_fnc_ptr;
@@ -189,6 +176,8 @@  void board_init (void)
 	/* Initialize the console (after the relocation and devices init) */
 	console_init_r();
 
+	board_init();
+
 	/* Initialize from environment */
 	load_addr = getenv_ulong("loadaddr", 16, load_addr);
 
diff --git a/board/xilinx/microblaze-generic/microblaze-generic.c b/board/xilinx/microblaze-generic/microblaze-generic.c
index a1e2bfe..b75e62c 100644
--- a/board/xilinx/microblaze-generic/microblaze-generic.c
+++ b/board/xilinx/microblaze-generic/microblaze-generic.c
@@ -28,6 +28,7 @@ 
 #include <common.h>
 #include <config.h>
 #include <netdev.h>
+#include <asm/processor.h>
 #include <asm/microblaze_intc.h>
 #include <asm/asm.h>
 
@@ -69,6 +70,14 @@  int fsl_init2 (void) {
 }
 #endif
 
+void board_init(void)
+{
+	gpio_init();
+#ifdef CONFIG_SYS_FSL_2
+	fsl_init2();
+#endif
+}
+
 int board_eth_init(bd_t *bis)
 {
 	int ret = 0;