
On 16:01 Tue 29 Jul , Hong Xu wrote:
On Tue, Jul 29, 2008 at 15:25, Jean-Christophe PLAGNIOL-VILLARD plagnioj@jcrosoft.com wrote:
On 21:57 Mon 28 Jul , Ben Warren wrote:
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:
- It returns void
- 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.
Can we do a cpu_eth_init instead?
Not all arm926ejs series have built-in ethernet controller (e.g. AT91SAM9261 does not have). If we do it in cpu_eth_init, we may need other more #ifdef_s to distinguish. :-)
It already the case, I'll send a patch obout it
Best Regards, J.