mirror of
https://github.com/Stichting-MINIX-Research-Foundation/u-boot.git
synced 2025-08-20 12:16:22 -04:00
x86: Convert board_init_f to use an init_sequence
This commit is contained in:
parent
a3824142e7
commit
e4f78d78d7
@ -156,7 +156,28 @@ static void display_flash_config (ulong size)
|
|||||||
*/
|
*/
|
||||||
typedef int (init_fnc_t) (void);
|
typedef int (init_fnc_t) (void);
|
||||||
|
|
||||||
init_fnc_t *init_sequence[] = {
|
static int calculate_relocation_address(void);
|
||||||
|
static int copy_uboot_to_ram(void);
|
||||||
|
static int clear_bss(void);
|
||||||
|
static int do_elf_reloc_fixups(void);
|
||||||
|
|
||||||
|
init_fnc_t *init_sequence_f[] = {
|
||||||
|
cpu_init_f,
|
||||||
|
board_early_init_f,
|
||||||
|
env_init,
|
||||||
|
init_baudrate,
|
||||||
|
serial_init,
|
||||||
|
console_init_f,
|
||||||
|
dram_init_f,
|
||||||
|
calculate_relocation_address,
|
||||||
|
copy_uboot_to_ram,
|
||||||
|
clear_bss,
|
||||||
|
do_elf_reloc_fixups,
|
||||||
|
|
||||||
|
NULL,
|
||||||
|
};
|
||||||
|
|
||||||
|
init_fnc_t *init_sequence_r[] = {
|
||||||
cpu_init_r, /* basic cpu dependent setup */
|
cpu_init_r, /* basic cpu dependent setup */
|
||||||
board_early_init_r, /* basic board dependent setup */
|
board_early_init_r, /* basic board dependent setup */
|
||||||
dram_init, /* configure available RAM banks */
|
dram_init, /* configure available RAM banks */
|
||||||
@ -235,41 +256,12 @@ static int do_elf_reloc_fixups(void)
|
|||||||
*/
|
*/
|
||||||
void board_init_f(ulong boot_flags)
|
void board_init_f(ulong boot_flags)
|
||||||
{
|
{
|
||||||
/* First stage CPU initialization */
|
init_fnc_t **init_fnc_ptr;
|
||||||
if (cpu_init_f() != 0)
|
|
||||||
hang();
|
|
||||||
|
|
||||||
/* First stage Board initialization */
|
for (init_fnc_ptr = init_sequence_f; *init_fnc_ptr; ++init_fnc_ptr) {
|
||||||
if (board_early_init_f() != 0)
|
if ((*init_fnc_ptr)() != 0)
|
||||||
hang();
|
|
||||||
|
|
||||||
if (env_init() != 0)
|
|
||||||
hang();
|
|
||||||
|
|
||||||
if (init_baudrate() != 0)
|
|
||||||
hang();
|
|
||||||
|
|
||||||
if (serial_init() != 0)
|
|
||||||
hang();
|
|
||||||
|
|
||||||
if (console_init_f() != 0)
|
|
||||||
hang();
|
|
||||||
|
|
||||||
if (dram_init_f() != 0)
|
|
||||||
hang();
|
|
||||||
|
|
||||||
if (calculate_relocation_address() != 0)
|
|
||||||
hang();
|
|
||||||
|
|
||||||
/* Copy U-Boot into RAM */
|
|
||||||
if (copy_uboot_to_ram() != 0)
|
|
||||||
hang();
|
|
||||||
|
|
||||||
if (clear_bss() != 0)
|
|
||||||
hang();
|
|
||||||
|
|
||||||
if (do_elf_reloc_fixups() != 0)
|
|
||||||
hang();
|
hang();
|
||||||
|
}
|
||||||
|
|
||||||
gd->flags |= GD_FLG_RELOC;
|
gd->flags |= GD_FLG_RELOC;
|
||||||
|
|
||||||
@ -283,7 +275,6 @@ void board_init_f(ulong boot_flags)
|
|||||||
void board_init_r(gd_t *id, ulong dest_addr)
|
void board_init_r(gd_t *id, ulong dest_addr)
|
||||||
{
|
{
|
||||||
char *s;
|
char *s;
|
||||||
int i;
|
|
||||||
ulong size;
|
ulong size;
|
||||||
static bd_t bd_data;
|
static bd_t bd_data;
|
||||||
static gd_t gd_data;
|
static gd_t gd_data;
|
||||||
@ -307,13 +298,10 @@ void board_init_r(gd_t *id, ulong dest_addr)
|
|||||||
mem_malloc_init((((ulong)dest_addr - CONFIG_SYS_MALLOC_LEN)+3)&~3,
|
mem_malloc_init((((ulong)dest_addr - CONFIG_SYS_MALLOC_LEN)+3)&~3,
|
||||||
CONFIG_SYS_MALLOC_LEN);
|
CONFIG_SYS_MALLOC_LEN);
|
||||||
|
|
||||||
for (init_fnc_ptr = init_sequence, i=0; *init_fnc_ptr; ++init_fnc_ptr, i++) {
|
for (init_fnc_ptr = init_sequence_r; *init_fnc_ptr; ++init_fnc_ptr) {
|
||||||
show_boot_progress(0xa130|i);
|
if ((*init_fnc_ptr)() != 0)
|
||||||
|
|
||||||
if ((*init_fnc_ptr)() != 0) {
|
|
||||||
hang ();
|
hang ();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
show_boot_progress(0x23);
|
show_boot_progress(0x23);
|
||||||
|
|
||||||
#ifdef CONFIG_SERIAL_MULTI
|
#ifdef CONFIG_SERIAL_MULTI
|
||||||
|
Loading…
x
Reference in New Issue
Block a user