AVR32: Split start_u_boot into board_init_f and board_init_r
Split the avr32 initialization code into a function to run before relocation, board_init_f and a function to run after relocation, board_init_r. For now, board_init_f simply calls board_init_r at the end. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
This commit is contained in:
@@ -95,7 +95,7 @@ _start:
|
|||||||
/* Initialize the GOT pointer */
|
/* Initialize the GOT pointer */
|
||||||
lddpc r6, got_init
|
lddpc r6, got_init
|
||||||
3: rsub r6, pc
|
3: rsub r6, pc
|
||||||
ld.w pc, r6[start_u_boot@got]
|
ld.w pc, r6[board_init_f@got]
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
.type sp_init,@object
|
.type sp_init,@object
|
||||||
|
@@ -122,7 +122,7 @@ static void display_flash_config (void)
|
|||||||
printf("at address 0x%08lx\n", gd->bd->bi_flashstart);
|
printf("at address 0x%08lx\n", gd->bd->bi_flashstart);
|
||||||
}
|
}
|
||||||
|
|
||||||
void start_u_boot (void)
|
void board_init_f(ulong unused)
|
||||||
{
|
{
|
||||||
gd_t gd_data;
|
gd_t gd_data;
|
||||||
|
|
||||||
@@ -130,8 +130,6 @@ void start_u_boot (void)
|
|||||||
memset(&gd_data, 0, sizeof(gd_data));
|
memset(&gd_data, 0, sizeof(gd_data));
|
||||||
gd = &gd_data;
|
gd = &gd_data;
|
||||||
|
|
||||||
monitor_flash_len = _edata - _text;
|
|
||||||
|
|
||||||
/* Perform initialization sequence */
|
/* Perform initialization sequence */
|
||||||
cpu_init();
|
cpu_init();
|
||||||
timer_init();
|
timer_init();
|
||||||
@@ -140,10 +138,18 @@ void start_u_boot (void)
|
|||||||
serial_init();
|
serial_init();
|
||||||
console_init_f();
|
console_init_f();
|
||||||
display_banner();
|
display_banner();
|
||||||
|
|
||||||
board_init_memories();
|
board_init_memories();
|
||||||
mem_malloc_init();
|
|
||||||
|
|
||||||
|
board_init_r(gd, CFG_MONITOR_BASE);
|
||||||
|
}
|
||||||
|
|
||||||
|
void board_init_r(gd_t *new_gd, ulong dest_addr)
|
||||||
|
{
|
||||||
|
gd = new_gd;
|
||||||
|
|
||||||
|
monitor_flash_len = _edata - _text;
|
||||||
|
|
||||||
|
mem_malloc_init();
|
||||||
gd->bd = malloc(sizeof(bd_t));
|
gd->bd = malloc(sizeof(bd_t));
|
||||||
memset(gd->bd, 0, sizeof(bd_t));
|
memset(gd->bd, 0, sizeof(bd_t));
|
||||||
gd->bd->bi_baudrate = gd->baudrate;
|
gd->bd->bi_baudrate = gd->baudrate;
|
||||||
|
Reference in New Issue
Block a user