
Hi Hong,
Thanks for all the hard work. One more thing... <snip>
+#if defined(CONFIG_CMD_NET) +int board_eth_init(bd_t *bis) +{
return at91sam9_eth_initialize(bis);
+} +#endif
Here's at91sam9_eth_initialize:
#if defined(CONFIG_MACB) && defined(CONFIG_CMD_NET) void at91sam9_eth_initialize(bd_t *bi) { macb_eth_initialize(0, (void *)AT91_BASE_EMAC, 0x00); } #endif
Issues: 1. It returns void 2. It just calls the MACB initializer.
Please change your code to:
extern int macb_eth_initialize(int id, void *regs, unsigned int phy_addr);
#if defined(CONFIG_MACB) && defined(CONFIG_CMD_NET) int board_eth_init(bd_t *bi) { return macb_eth_initialize(0, (void *)AT91_BASE_EMAC, 0x00); } #endif
or something like this. I don't know if AT91_BASE_EMAC is visible from this code, so you may need to modify slightly.
regards, Ben