Dear Mike Frysinger, In message <200901291525.03553.vap...@gentoo.org> you wrote: > > so how exactly are $ethaddr in the env and bi_enetaddr in the global data > supposed to interact ? this is a mess in the current tree and i dont see any > notes that indicate how things are supposed to be handled. and i'd like to > make these changes once and get it right the first time ;).
Can't you just ask some simple and easy questions for a change? ;-) > i see it as: > - common net code calls board_eth_init() > - board_eth_init() sets up ethaddr in env if it isnt set already > - board_eth_init() calls the driver init (bfin_EMAC_initialize() in my case) > - driver init looks up ethaddr in env and sets bi_enetaddr in global data > - all other code uses bi_enetaddr to get the MAC address This doesn't work, as in the case that you don;t use any network commands in U-Boot, board_eth_init() will not run and consequently you don't know the MAC address so you cannot pass it to Linux either. Rather: - misc_init_r() [or similar] sets up ethaddr in env if it isnt set already and sets bi_enetaddr in global data - board_eth_init() calls the driver init (bfin_EMAC_initialize() in your case) - driver init looks up ethaddr in env or bi_enetaddr Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de It's a small world, but I wouldn't want to paint it. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot