浏览代码

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>
Haavard Skinnemoen 16 年之前
父节点
当前提交
25e6854d42

+ 2 - 1
board/atmel/atngw100/atngw100.c

@@ -88,10 +88,11 @@ phys_size_t initdram(int board_type)
 	return actual_size;
 }
 
-void board_init_info(void)
+int board_early_init_r(void)
 {
 	gd->bd->bi_phy_id[0] = 0x01;
 	gd->bd->bi_phy_id[1] = 0x03;
+	return 0;
 }
 
 extern int macb_eth_initialize(int id, void *regs, unsigned int phy_addr);

+ 2 - 1
board/atmel/atstk1000/atstk1000.c

@@ -110,10 +110,11 @@ phys_size_t initdram(int board_type)
 	return actual_size;
 }
 
-void board_init_info(void)
+int board_early_init_r(void)
 {
 	gd->bd->bi_phy_id[0] = 0x10;
 	gd->bd->bi_phy_id[1] = 0x11;
+	return 0;
 }
 
 extern int macb_eth_initialize(int id, void *regs, unsigned int phy_addr);

+ 2 - 1
board/earthlcd/favr-32-ezkit/favr-32-ezkit.c

@@ -81,9 +81,10 @@ phys_size_t initdram(int board_type)
 	return actual_size;
 }
 
-void board_init_info(void)
+int board_early_init_r(void)
 {
 	gd->bd->bi_phy_id[0] = 0x01;
+	return 0;
 }
 
 #if defined(CONFIG_MACB) && defined(CONFIG_CMD_NET)

+ 2 - 1
board/mimc/mimc200/mimc200.c

@@ -124,10 +124,11 @@ phys_size_t initdram(int board_type)
 	return actual_size;
 }
 
-void board_init_info(void)
+int board_early_init_r(void)
 {
 	gd->bd->bi_phy_id[0] = 0x01;
 	gd->bd->bi_phy_id[1] = 0x03;
+	return 0;
 }
 
 /* SPI chip select control */

+ 2 - 1
board/miromico/hammerhead/hammerhead.c

@@ -95,9 +95,10 @@ phys_size_t initdram(int board_type)
 	return actual_size;
 }
 
-void board_init_info(void)
+int board_early_init_r(void)
 {
 	gd->bd->bi_phy_id[0] = 0x01;
+	return 0;
 }
 
 int board_postclk_init(void)

+ 0 - 1
include/asm-avr32/initcalls.h

@@ -26,6 +26,5 @@
 
 extern int cpu_init(void);
 extern int timer_init(void);
-extern void board_init_info(void);
 
 #endif /* __ASM_AVR32_INITCALLS_H__ */

+ 3 - 1
lib_avr32/board.c

@@ -53,6 +53,7 @@ static int __do_nothing(void)
 	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 @@ void board_init_r(gd_t *new_gd, ulong dest_addr)
 	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 @@ void board_init_r(gd_t *new_gd, ulong dest_addr)
 	mem_malloc_init();
 	malloc_bin_reloc();
 	dma_alloc_init();
-	board_init_info();
 
 	enable_interrupts();