[U-Boot-Users] [PATCH v2] Add mechanisms for CPU and board-specific Ethernet initialization

Ben Warren biggerbadderben at gmail.com
Tue Jun 10 18:11:50 CEST 2008


Jon Loeliger wrote:
> On Tue, 2008-06-10 at 07:03 -0700, Ben Warren wrote:
>   
>> +#if defined(CONFIG_TSEC1)
>> +       tsec_initialize(bis, 0, CONFIG_TSEC1_NAME);
>> +#endif
>> +#if defined(CONFIG_TSEC2)
>> +       tsec_initialize(bis, 1, CONFIG_TSEC2_NAME);
>> +#endif
>> +#if defined(CONFIG_MPC85XX_FEC)
>> +       tsec_initialize(bis, 2, CONFIG_MPC85XX_FEC_NAME);
>> +#else
>> +#if defined(CONFIG_TSEC3)
>> +       tsec_initialize(bis, 2, CONFIG_TSEC3_NAME);
>> +#endif
>> +#if defined(CONFIG_TSEC4)
>> +       tsec_initialize(bis, 3, CONFIG_TSEC4_NAME);
>> +#endif
>> +#endif
>> +       return 0;
>> +}
>>     
>
> So, why not make a new function in tsec.c called something
> like tsec_initialize_all(bis) with essentially the above
> #ifdef-series and make all of the individual board functions
> just be like:
>
> +int board_eth_init(bd_t *bis)
> +{
> +       tsec_initialize_all(bis);
> +       return 0;
> +}
>
>   
I'd prefer to abstract index information away from the drivers.  That 
way if you guys come up with a chip that has 8 TSECs, the driver doesn't 
have to change.  Next release cycle I'm planning on bringing in PHY lib 
support, in which case we'll want to pass specific info to each instance 
of the TSEC.  That said, what you're suggesting would be a good 
candidate for a cpu_eth_init() function, that can be overridden by 
board_eth_init() if desired.  Ya man, I dig it.  I'll play around with 
that tonight.
> Just a notion.  Haven't actually thought about it...
>
>   
Please keep not thinking.  It's more interesting than most peoples' 
fully-baked discussion :)
> jdl
>
>   
cheers,
Ben




More information about the U-Boot mailing list