[U-Boot-Users] [RFC][PATCH 1/1] Add board_eth_init() function
Ben Warren
biggerbadderben at gmail.com
Tue Mar 25 15:22:02 CET 2008
Stefan Roese wrote:
> On Saturday 22 March 2008, Ben Warren wrote:
>
> <snip>
>
>
>>> All I'm asking for is to make sure that this can be configured in a
>>> board specific way. If there is a zensible default setting which
>>> covers most cases without need for board-specific stuff that's just
>>> all the better.
>>>
>> How about something like this:
>>
>> #ifdef CONFIG_ETH_INIT_DEFAULT
>> CFG_ETH_INIT_DEFAULT(bis);
>> #else
>> board_eth_init(bis);
>> #endif
>>
>
> Using Markus's idea, why not use a cpu (platform) specific *and* a board
> specific init function, both with an empty weak alias in the common eth.c
> code:
>
> cpu_eth_init(bis);
> board_eth_init(bis);
>
I thought about this some more, and the problem is that cpu_eth_init() and board_eth_init()
are mutually exclusive, with board_eth_init() having a higher priority.
I think the following will work, but would appreciate some feedback.
-----
int board_eth_init(bd_t *bis) __attribute(weak);
int cpu_eth_init(bd_t *bis) __attribute(weak);
.
.
.
if (board_eth_init)
board_eth_init(bis);
else if (cpu_eth_init)
cpu_eth_init(bis);
-----
This gets rid of the pointless aliases and gives precedence to the board-specific initialization.
regards,
Ben
More information about the U-Boot
mailing list