Table of Contents

Project Plan

Abstract

The goal of this Project is to develop a new gPXE driver for the Broadcom 57xx(tg3) series of network cards. There currently already is a tg3 driver in gPXE but it is outdated and several years behind in development compared to the linux tg3 driver. This leads to many new tg3 cards not being supported in gPXE. The new driver is supposed to support all device variants the linux driver supports.

Schedule

Week 1

Reading linux driver code, understanding driver function in deeper detail, reading datasheet to strengthen understanding of the code; Possibly start with minor modifications of the linux driver

Week 2

Remove ethtool support, checksum offloading support and other simpler changes to reduce code size; investigate workarounds; getting familiar with driver development for the linux kernel; at least one day buffer for delays.

Week 3

continue to reduce codesize, especially DMA workaround, phylib code

Week 4

possibly some more reduction of code size/cleanups; start porting driver to gPXE APIs.

Week 5

continue port of driver, hopefully first boot; buffer for delays

Week 6

code cleanups; extensive testing and bugfixing; call for testers on gpxe-devel

Week 7-12

More tg3 bugfixes as we discover new bugs; syncing with updates applied to the linux driver in the meantime.

If the schedule works out as expected, repeat process for atl driver(there are several atl drivers for which we have received feature requests, we will have to figure out which are the most sensible ones to do).

I don't have any atl card as of yet, but acquiring one once we have settled for a driver should be no problem.

Bnx2 would be a sensible choice too; we will have to figure out how to handle firmware images required by the driver though.