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

Jean-Christophe PLAGNIOL-VILLARD plagnioj at jcrosoft.com
Wed Jun 25 00:32:48 CEST 2008


On 09:16 Tue 10 Jun     , Ben Warren wrote:
> 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.
What about a section to declare the netdev?

In this case we can have more than 2 eth and it more generic.

Best Regards,
J.




More information about the U-Boot mailing list