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

Ben Warren biggerbadderben at gmail.com
Tue Jun 10 18:16:54 CEST 2008


Shinya Kuribayashi wrote:
> Stefan Roese wrote:
>> On Tuesday 10 June 2008, Shinya Kuribayashi wrote:
>>>>> 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.
>>> Just wondered, does that mean we could only have either cpu_eth_init or
>>> board_eth_init at a time?
>>
>> Not really. board_eth_init() could call cpu_eth_init() if necessary.
>
> Hm. What is cpu_eth_init for then? Just
>
>        board_eth_init(bis);
>
> seems to be enough for me. I also wonder where is the best place to have
> cpu_eth_init?
>
The cpu_init() was suggested by Stefan in our original discussion, when 
I only had the board function.  His perspective is ppc_4xx, where tons 
of CPUs and boards share the EMAC driver, and he didn't want to modify 
each board.  As you'll see in the discussion with JDL, it can probably 
apply to TSEC as well.
> I'm not going to argue with you, I'm just thinking about my targets. One
> of my targets has internal ethernet MAC, and its evaluation board has an
> on-board external PCI NIC. Another target has internal MAC, but doesn't
> have PCI NIC.
>
> I thought it'll be something like
>
>        cpu_eth_init(bis);
>        board_eth_init(bis);
>
The idea is that cpu_eth_init is a default for a CPU family, and 
board_eth_init is a board override, which can of course call cpu_eth_init.
> But again, I don't have strong opinions around here. Please go ahead.
>
>
> Thanks for your comments,
>
>  Shinya
>
Thanks for the discussion!

cheers,
Ben





More information about the U-Boot mailing list