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>
diff --git a/lib_avr32/board.c b/lib_avr32/board.c
index 02c106b..c531eef 100644
--- a/lib_avr32/board.c
+++ b/lib_avr32/board.c
@@ -122,7 +122,7 @@
 	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;
 
@@ -130,8 +130,6 @@
 	memset(&gd_data, 0, sizeof(gd_data));
 	gd = &gd_data;
 
-	monitor_flash_len = _edata - _text;
-
 	/* Perform initialization sequence */
 	cpu_init();
 	timer_init();
@@ -140,10 +138,18 @@
 	serial_init();
 	console_init_f();
 	display_banner();
-
 	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));
 	memset(gd->bd, 0, sizeof(bd_t));
 	gd->bd->bi_baudrate = gd->baudrate;