
[Re-adding mailing list to Cc]
"Frank van der Schoot" frank.van.der.schoot@microkey.nl wrote:
Well after some more investigation: the macb-driver is creating an eth_device-structure and this structure is initialised in macb_eth_initialize() and then registered with eth_register(). So this gives it some abstraction. Dm9000 driver doesn't have this. It has eth_init() (To my opinionL it collides with eth_init() of eth.c), eth_send() and doesn't register itself with eth_register(). Question: Should all ethernet devices register itself via eth_register() (and the dm9000-driver is not updated yet for this method)?
Right...it looks like the dm9000 driver uses some sort of pre-net/eth.c interface which doesn't play well along with other drivers...
Via hacking I can of course rename the eth_init() of dm9000x.c to dm9000_eth_init() and call it from eth_initialize(). But first I like to try it via a decent construction and maybe I should update the dm9000-driver for working with eth_register().
That would be great.
By the way I'm working with Uboot 1.3.3 on which I cannot find board_eth_init() but here eth_initialize() does the initialisation of macb_eth_initialize(). I did have a short peek to the trunk but it looks like the dm9000-driver hasn't changed there.
I think 1.3.4 should have the board_eth_init() stuff in place. Ben's latest eth-initialization patches are probably worth a look too:
http://lists.denx.de/pipermail/u-boot/2008-September/039792.html
...though it looks like dm9000 is one of the "more complicated ones".
Haavard