On Tue, 2008-03-25 at 10:22 -0400, Ben Warren wrote: > 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
I think you must enable full relocation, CONFIG_RELOC_FIXUP_WORKS, to make the "if (board_eth_init)" work. This is just a guess though. Jocke ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ U-Boot-Users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/u-boot-users
