microblaze: Clean microblaze initialization

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>
master
Michal Simek 13 years ago
parent bcbb046bd5
commit 2380b8f529
  1. 2
      arch/microblaze/cpu/start.S
  2. 3
      arch/microblaze/include/asm/processor.h
  3. 17
      arch/microblaze/lib/board.c
  4. 9
      board/xilinx/microblaze-generic/microblaze-generic.c

@ -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
/*

@ -28,4 +28,7 @@
extern char __end[];
extern char __text_start[];
/* Microblaze board initialization function */
void board_init(void);
#endif /* __ASM_MICROBLAZE_PROCESSOR_H */

@ -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);

@ -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;

Loading…
Cancel
Save