Differences

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

Link to this comparison view

soc:2009:asdlkf:project_plan:start [2009/05/17 07:53]
127.0.0.1 external edit
soc:2009:asdlkf:project_plan:start [2009/06/06 09:21] (current)
asdlkf
Line 8: Line 8:
  
 ==== Milestones and Timeline ==== ==== Milestones and Timeline ====
 +Given that drivers for this card exist for BSD and Linux, implementing a
 +driver for gPXE should not be too difficult. After looking through the gPXE API
 +and some of the other drivers in gpxe/​src/​drivers/​net/,​ I feel confident that I
 +would be able to implement the 5 core functions of the gPXE API. 
 +
 +I speculate that almost (if not) all code will be written in C. The
 +possibility exists to compose a few snippets in ASM to support one of last
 +year's SOC project which was based around code optimization. However, at this
 +point, I have not been able to identify any specific areas of the driver which
 +would benefit significantly from assembler optimization. ​
 +
 +Then, once the driver is implemented,​ (time pending) I would write a basic
 +testing class and polish some documentation around the driver. As driver
 +implementation is relatively straight forward, I do not expect more than 3-4
 +pages of documentation for this task. 
 +
 +Timeline:
 +
 +May 4-20: Read through the gPXE code base, familiarize self with project and
 +project'​s expectations
 +
 +May 23: begin creating class diagrams of existing drivers. This is to
 +include the Linux, the BSD, and (if possible), some other OS's drivers Begin
 +designing driver outline.
 +
 +May 23: Compose emails to the authors of the previous drivers requesting any
 +documentation on hardware specifics. I was unable to find a datasheet on this
 +device, but was able to find a datasheet on what I believe is its IC
 +(http://​people.freebsd.org/​~wpaul/​SysKonnect/​xmacii_datasheet_rev_c_9-29.pdf).
 +I will have to verify that this is the correct datasheet.
 +
 +May 25: Completed class diagram of at least one of the above OS's.
 +
 +May 30: Completed class diagram of at least two of the above. Specific
 +attention to hardware API is the most important part. 
 +
 +June 4: Hopefully by this point I have collected sufficient information to
 +compose a definitive hardware API for this device. ​
 +
 +June 4: Compose a list of functions available on the card as well as DMA
 +call documentation. Basically, have a completed summary of how the card wants
 +to be '​talked to'​. ​
 +
 +June 5-9: Compose a class diagram of the whole driver. This will largely be tinplating
 +off of the existing gPXE drivers for other NIC's and the other OS's drivers for
 +this NIC. 
 +
 +June 10-20: Write the driver.
 +
 +June 21: Cross fingers and hopefully it's pretty much done.
 +
 +June 22-30: TBA; hopefully moving on to documentation/​testing,​ but available
 +for rewriting the driver/bug stomping/​etc...
 +
 +July 1-5: Collaboration with mentor as to progress up until this point,
 +speculation on the other half of the time. Basically, reassess my
 +position/​timeline.
 +
 +July 6: midterm review
 +
 +July 7-15: If not done, documentation/​testing.
 +
 +July 15-august 10: At this point, if I'm done, I'd like to start work on a
 +2nd driver which hopefully can be completed in 1/2 to 1/3 of the time of the
 +first driver. If I'm not done, reassess my position and timeline and schedule
 +accordingly. ​
 +
 +August 10-17, more testing, more documentation. Hopefully end up with (a)
 +completed driver(s) with testing units and complete documentation including a
 +hardware API for this device. ​
  

QR Code
QR Code soc:2009:asdlkf:project_plan:start (generated for current page)