
Hello,
By any measure, net/eth.c is messy and only gets worse as each new Ethernet controller gets added. This patch moves initialization to board code, providing the following benefits:
1. Board developers have more control over the ordering of Ethernet interfaces on a board, and can easily instantiate several different interfaces. This will make a PHY library easier to implement. 2. Ethernet controllers are decoupled from the net library. 3. /net/eth.c will become much smaller and easier to read.
I've initially implemented only on TSEC, because I have a couple of different boards with this controller (MPC8349EMDS and MPC8555CDS) and am able to test it. Note that in this patch the TSEC driver itself isn't touched - only where it's initialized.
If feedback is positive, I'll port all other in-tree controllers and boards and will put in a branch of the net tree. Hopefully volunteers will line up to sanity test.
Please have a look and let me know your thoughts.
regards, Ben