[U-Boot-Users] [PATCH] Add mechanisms for CPU and board-specific Ethernet initialization
Ben Warren
biggerbadderben at gmail.com
Tue Jun 10 15:53:45 CEST 2008
On Tue, Jun 10, 2008 at 5:12 AM, Stefan Roese <sr at 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
More information about the U-Boot
mailing list