Today I worked on removing the phylib code from the driver. It proved to be easier than expected and the PHY on my test card was correctly initialized by the PHY code in the driver without phylib. No issues were found in link detection after dis/reconnecting the link with different link speeds. It made me suspicious that it worked so flawlessly, so I took some time going over the code again to make sure I didn't miss anything and to make sure we don't have to handle things differently for other card variants. Everything looks good to me.
After that I started to remove some of the jumbo frame code of the driver. It's not finished and doesn't build yet, so I haven't pushed it yet.
I removed the jumbo frame support from the driver today. Support for ethtool stats and rx copy threshold was removed too. The changes were tested on 2 different testing cards by moving around a 1.5gb file over the network. The modified driver was used alternatively on the sending and the receiving end and no issues were observed.
Unfortunately no progress was made today. I had to meet a deadline for college and worked on college things first. When I was getting started with driver stuff I got a somewhat unexpected visit from some friends. I will try to make up for the lost time on the weekend as I hope to be not so busy then.
MSI/MSIX support was the victim of today. This simplifies the interrupt setup and handling code. None of the benefits of MSI/MSIX are relevant in gPXE. I tested this commit on all 4 card variants and also used a more thorough test to expose any bugs that might have been introduced in this or any previous commit. I couldn't find any issues which is starting to make me suspicious :P. With the (unpushed) removal of the firmware loading support we have removed over 3500 LoC so far. Hopefully many more will follow soon :)
Today I started importing the driver code into the gPXE tree. I copied and adapted the tg3_init_one() function for gPXE and started doing the same for tg3_get_invariants(). It doesn't build yet, so I hadn't commited it to git before. I commited it for the weekly meeting and pushed it to my repository now.