Michael Decker: Driver Development

Week B


06 August

More work on 3c59x done the past two days. I haven't thrown in through the compiler yet, but that's next. I still need to rework the timers.

09 August

Additional changes to 3c59x. It now successfully compiles. I have not yet tested it, and I anticipate additional changes in doing so.

EISA support code was removed as per mcb30's recommendation during our Friday meeting. This will reduce the image size and simplify conversion.

Timer-dependent code was replaced with code occasionally triggered during a poll() call.

Interrupt functions, set to call during poll()s, had checks to limit the amount of work performed during a single call. I pulled out the code for now, as I consider it unnecessary.

Select MII structures, code, and definitions were pulled into the tree. The pcnet32 and sundance drivers had their own local mii_if_info definitions causing collisions, so these were commented out.

Significant amounts of additional small changes were made to adjust the code to gPXE, including datatypes, prototypes, gPXE structs and calls, casts, trimming out unnecessary debug prefixes, removing IRQ-related code, etc. Many changes due to migrating if_port from the net_device to the private struct, and fixing debug print characters because of changes in data types.

Next on my agenda is to test the code and perform debugging. I also will go through the debug statements and adjust their statement levels as necessary.

10 August

After testing, I found the ioaddr PCI acquisition code needed adjustment. I also removed a stats interrupt disable notification, since stats will always fill up with the driver not clearing them.

I ran scandisk a few times in DOS via AoE without any noticable network errors. The surface scan progress did appear ever-so-slightly jittery, so I wonder how things will turn out under more careful testing conditions.

Until more thorough testing is performed, I will leave the original driver code commented out, and will refrain from cleaning up the code. This should enhance the debuggability (I don't think that's a word) and simplify touching up the driver.

I currently don't see any problems with the driver.