CONFIG_NET_MULTI
Hi
I don't understand CONFIG_CMD_NET and CONFIG_NET_MULTI.
I would expect CONFIG_CMD_NET to be defined whenever I want to have network support in U-Boot, right?
And CONFIG_NET_MULTI is defined when I have more then one network interface?
I try to adapt U-Boot to our new AVR32 based board. AVR32 has two interfaces, but only one is actually implemented on our board.
CONFIG_CMD_NET is defined per default. If I undefine CONFIG_NET_MULTI I get linker error about missing functions.
With CONFIG_NET_MULTI defined everything works fine. Should this be like this?
Looking for a solution and/or the cause of my problem I found that in net/etc.c there is something like this
#if defined(CONFIG_CMD_NET) && defined(CONFIG_NET_MULTI)
.... some code ..
#ifdef CONFIG_NET_MULTI
... code ...
#endif Ale
... code ....
#elif defined(CONFIG_CMD_NET) && !defined(CONFIG_NET_MULTI)
....
#endif
In the if-branch CONFIG_NET_MULTI is defined per condition of this branch. Why some additional ifdef CONFIG_NET_MULTI?
Alex
Quoted 4 lines · Alex Raimondi
Hi
I don't understand
CONFIG_CMD_NETandCONFIG_NET_MULTI.
It's confusing, true.
Quoted 5 lines
I would expect
CONFIG_CMD_NETto be defined whenever I want to have network support in U-Boot, right?And
CONFIG_NET_MULTIis defined when I have more then one network interface?
That's how it should work, but as you're finding out it's not quite right.
Quoted 8 lines
I try to adapt U-Boot to our new AVR32 based board. AVR32 has two interfaces, but only one is actually implemented on our board.
CONFIG_CMD_NETis defined per default. If I undefineCONFIG_NET_MULTII get linker error about missing functions.
WithCONFIG_NET_MULTIdefined everything works fine. Should this be like this?
Probably. As you point out, there are two paths in net/net.c, and most of the newer Ethernet controllers are only handled in the one where CONFIG_NET_MULTI is defined. For now, just define CONFIG_NET_MULTI, even if you only have one interface. Hopefully we'll get this cleaned up in the near future, but as you can imagine there are massive 'backwards-compatible' implications.
regards,
Ben