
On Tue, Jun 10, 2008 at 5:12 AM, Stefan Roese sr@denx.de wrote:
Hi Ben,
On Tuesday 10 June 2008, Ben Warren wrote:
This patch is the first step in cleaning up net/eth.c, by moving Ethernet initialization to CPU or board-specific code. Initial implementation is only on the Freescale TSEC controller, but others will be added soon.
Great, thanks.
<snip>
diff --git a/net/eth.c b/net/eth.c index c4f24c6..e75dc43 100644 --- a/net/eth.c +++ b/net/eth.c @@ -28,6 +28,12 @@
#if defined(CONFIG_CMD_NET) && defined(CONFIG_NET_MULTI)
+/* CPU and board-specific Ethernet initializations. Aliased function
- signals caller to move on */
+static int __def_eth_init(bd_t *bis) {return -1;} +int cpu_eth_init(bd_t *bis) __attribute((weak, alias("__def_eth_init"))); +int board_eth_init(bd_t *bis) __attribute((weak, alias("__def_eth_init"))); + #ifdef CFG_GT_6426x extern int gt6426x_eth_initialize(bd_t *bis); #endif @@ -165,6 +171,10 @@ int eth_initialize(bd_t *bis) #if defined(CONFIG_MII) || defined(CONFIG_CMD_MII) miiphy_init(); #endif
/* Try CPU-specific initialization first. If it fails or isn't
* present, call the board-specific initialization */
if (cpu_eth_init(bis) < 0 )
Nitpicking: No space before ")" please.
Huh, don't know how I missed that one.
board_eth_init(bis);
Shouldn't this be the other way around?
if (board_eth_init(bis) < 0)
eth_eth_init(bis);
So that the board init routine can "overwrite" the cpu init version.
Yeah, I think you're right. If board_eth_init() exists, it gets highest priority. New patch coming soon!
Best regards, Stefan
Thanks for the review, Ben