[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