avr32: use board_early_init_r instead of board_init_info

Replace the avr32-specific board_init_info hook by the standard
board_early_init_r hook and make it optional.

board_early_init_r() runs somewhat earlier than board_init_info used to
do, but this isn't a problem for any of the in-tree boards.

Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
diff --git a/lib_avr32/board.c b/lib_avr32/board.c
index 19d76d2..4ed6c96 100644
--- a/lib_avr32/board.c
+++ b/lib_avr32/board.c
@@ -53,6 +53,7 @@
 	return 0;
 }
 int board_postclk_init(void) __attribute__((weak, alias("__do_nothing")));
+int board_early_init_r(void) __attribute__((weak, alias("__do_nothing")));
 
 /* The malloc area is right below the monitor image in RAM */
 static void mem_malloc_init(void)
@@ -282,6 +283,8 @@
 	gd->flags |= GD_FLG_RELOC;
 	gd->reloc_off = dest_addr - CFG_MONITOR_BASE;
 
+	board_early_init_r();
+
 	monitor_flash_len = _edata - _text;
 
 	/*
@@ -318,7 +321,6 @@
 	mem_malloc_init();
 	malloc_bin_reloc();
 	dma_alloc_init();
-	board_init_info();
 
 	enable_interrupts();