Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
soc:2011:meteger:journal:week12 [2011/08/09 09:52] meteger created |
soc:2011:meteger:journal:week12 [2011/08/14 08:06] (current) meteger |
||
---|---|---|---|
Line 2: | Line 2: | ||
I did some cleanups in the code today. I also implemented tg3_close() and tg3_remove_one(). Those were the last two missing functions and implementing them resulted in a successful first boot of the driver :). | I did some cleanups in the code today. I also implemented tg3_close() and tg3_remove_one(). Those were the last two missing functions and implementing them resulted in a successful first boot of the driver :). | ||
+ | |||
+ | ====== Day 2 ( Aug 9 ) ====== | ||
+ | |||
+ | More cleanups. Removed most of the out-commented code that was left in the driver and some other simplifications. While going through the code I also compiled a list of suspicious looking things that I want to revisit the coming days. | ||
+ | |||
+ | ====== Day 3 ( Aug 10 ) ====== | ||
+ | |||
+ | Not much coding today, but a lot of testing. Tested the driver with all 4 test cards I have available, testing: | ||
+ | * Booting linux + initrd over HTTP and TFTP | ||
+ | * Booting linux over iSCSI | ||
+ | * Booting MSDOS over iSCSI, running scandisk on a 512MB iSCSI disk. | ||
+ | |||
+ | Interrupt support is not fully implemented yet, so UNDI chainloading tests were saved for later. Will see if I can get ahold of a Symantec Ghost DOS disk to stresstest the UNDI/interrupt support. | ||
+ | |||
+ | I was doing all that testing in Vienna and unfortunately forgot one test card there, so I only have 3 cards to test until the next time I get to Vienna(Probably next week). | ||
+ | |||
+ | ====== Day 4 ( Aug 11 ) ====== | ||
+ | |||
+ | I moved kicking off autoneg to tg3_init_one() from tg3_open(). This results in the BANNER_TIMEOUT being used for auto negotiation, which should save a few seconds boot time, as autoneg can take up to 6 seconds to complete. | ||
+ | struct tg3_napi was also removed and its fields merged into struct tg3. | ||
+ | |||
+ | ====== Day 5 ( Aug 12 ) ====== | ||
+ | |||
+ | Moved programming of the MAC address to tg3_open() instead of tg3_init_one(), as dictated by the gPXE API specifications. | ||
+ | Also removed was the NIC stats block, which saves some heap memory. | ||
+ | I also removed more leftover code. | ||
+ | |||
+ | ====== Day 7 ( Aug 14 ) ====== | ||
+ | |||
+ | A little interrupt related work. Completely untested and I still have to clear up some uncertainty on my side about tagged irq status, especially tp->last_tag. | ||