Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
soc:2008:mdeck:journal:week8 [2008/07/18 16:05]
mdeck
soc:2008:mdeck:journal:week8 [2008/07/20 13:51] (current)
mdeck
Line 3: Line 3:
 ---- ----
  
-=== July 16 ===+=== 16 July ===
 This morning I created a new Windows disk image to test AoE with.  The last image I made was on a different machine, so that wouldn'​t work.  The AoE driver seemed most sensitive to the change of hardware. This morning I created a new Windows disk image to test AoE with.  The last image I made was on a different machine, so that wouldn'​t work.  The AoE driver seemed most sensitive to the change of hardware.
  
Line 38: Line 38:
  
 Amazing, week 8 is just about over.  Time flies. Amazing, week 8 is just about over.  Time flies.
 +
 +=== 19 July ===
 +
 +I found a memory-freeing bug in ''​ifec_net_close()''​ of **eepro100**. ​ It was a small, one-line commit, in which I made a subsequently-corrected mistake:
 +  * [[http://​git.etherboot.org/?​p=people/​mdeck/​gpxe.git;​a=commitdiff;​h=f6bd58cd5304fc80f26b322d90e3b6c0a1414c78|[Drivers-eepro100] Mem-free bug in ifec_net_close()]]
 +  * [[http://​git.etherboot.org/?​p=people/​mdeck/​gpxe.git;​a=commitdiff;​h=0ee782090251e50ba0933e2a04f84c1fca00593c|[Drivers-eepro100] Update to preceding bug-fix]]
 +
 +For the **Marvell Yukon**, I moved ''​skge.c''​ and ''​skge.h''​ into the source tree and I added ''​skge''​ to ''​errfile.h'':​
 +  * [[http://​git.etherboot.org/?​p=people/​mdeck/​gpxe.git;​a=commit;​h=53396cab000c9ef89b35abb728a632f0fa220e24|[Drivers-skge] skge driver added.]]
 +
 +I then removed all the useless code I could find.  By //remove// I mean it's been commented out.  At this stage I'm preserving code so I can quickly draw it back in if need be.
 +
 +I also converted ''​sk_buffer''​ code to use ''​io_buffer'',​ and I converted memory allocation & freeing routines. ​ The device id table was adjusted, and necessary PCI and network driver structures were added. ​ There was much ethertool-related code, and some WOL-related code which I commented out for now.
 +
 +  * [[http://​git.etherboot.org/?​p=people/​mdeck/​gpxe.git;​a=commit;​h=c48fbcf44a651cbec023f4559264bc20a95ff8d8|[Drivers-skge] Removed linux headers, removed needless code]]
 +
 +My basic methodology was to identify the core routines needed by gPXE, enumerate all dependent functions, then to eliminate all other functions. ​ Then I changed the #included headers and ran it through the compiler a multitude of times while correcting identified lines. ​ I also kept an eye on what the current routine was doing to remove/​change any obvious code as necessary.
 +
 +At this point it will compile, and I need to go through and determine what needs to be adjusted to meet gPXE's needs. ​ I also placed a significant number of ''​todo''​ comments listing things I need to double-check and what-not.
 +
 +Woot!
 +
 +Driver is now fully operational!
 +  * [[http://​git.etherboot.org/?​p=people/​mdeck/​gpxe.git;​a=commitdiff;​h=550f1de759b02ae3e57c922622e57b5b47175e2f|[Drivers-skge] Fixed skge_probe, integrated skge_extirq. Card operational.]]
 +I netbooted a DOS image via AoE and ran //​scandisk//​ and //doom// without any sign of trouble, and without any obvious packet errors via wireshark.
 +
 +How's that for next-day delivery! :)
 +
 +The driver is still currently cluttered throughout with commented-out original-driver code.  Once I get feedback from mdc and others, I'll begin pruning out the excess.
 +
 +=== 20 July ===
 +
 +I decided to jump the gun and prune away on **skge**.
 +
 +First, a new branch and a merge of recent updates into the tree:
 +  * [[http://​git.etherboot.org/?​p=people/​mdeck/​gpxe.git;​a=commitdiff;​h=39e778e1930ef5e18bbbd3dcd1d7deddf5597aef|Merge branch '​master'​ of git://​git.etherboot.org/​scm/​gpxe into skge]]
 +
 +Most of those cluttering commented lines of old code were removed:
 +  * [[http://​git.etherboot.org/?​p=people/​mdeck/​gpxe.git;​a=commitdiff;​h=d259e62817c58d891834615903c1a5fb601a00ec|[Drivers-skge] Removed unnecessary linux-driver code]]
 +
 +A few functions were revived to support the XM PHY fully:
 +  * [[http://​git.etherboot.org/?​p=people/​mdeck/​gpxe.git;​a=commitdiff;​h=9ad495c1ada5c4e473f05fc51687abcfa4595750|[Drivers-skge] XM link-state support added]]
 +
 +Additional functions were clipped, debug statements were placed throughout. ​ All todo's were taken care of.  Note I left the EEPROM functions in place, but commented out, in case ''​nvs''​ support for this is added later:
 +  * [[http://​git.etherboot.org/?​p=people/​mdeck/​gpxe.git;​a=commitdiff;​h=e00cdf2b52ad76d67ba985dfdec6989983499dec|[Drivers-skge] Cleanup extraneous fns, added DBG statements]]
 +
 +I currently don't foresee additional work to this driver until a code review with mdc.
 +

QR Code
QR Code soc:2008:mdeck:journal:week8 (generated for current page)