[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