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:stefanha:project_plan:start [2008/05/21 01:05]
stefanha
soc:2008:stefanha:project_plan:start [2008/05/22 23:27]
stefanha
Line 25: Line 25:
 Additional GDB protocol commands provide more advanced features, like hardware breakpoints,​ or optimizations of existing commands, like binary memory dumps for faster transfer. Additional GDB protocol commands provide more advanced features, like hardware breakpoints,​ or optimizations of existing commands, like binary memory dumps for faster transfer.
  
-I will start by implementing ​the minimal set of commands. ​ If we find that additional commands are useful in practice, I will also implement them.+I will implement ​the minimal set of commands. ​ If we find that additional commands are useful in practice, I will also implement them.
  
 === Execution Model === === Execution Model ===
Line 46: Line 46:
  
 === Transports === === Transports ===
-Several transports are supported by GDB including serial, UDP, and TCP.  Serial is simple and serves as a good starting point. ​ UDP and TCP are more flexible but also more complex. ​ After discussion with mcb30, it looks like UDP is in scope and should be implemented. ​ I believe TCP is not a big win if UDP support is already in place.+Several transports are supported by GDB including serial, UDP, and TCP.  Serial is simple and serves as a good starting point. ​ UDP and TCP are more flexible but also more complex. ​ After discussion with mcb30, it looks like UDP is in scope and should be implemented. 
 + 
 +I believe TCP is not a big win if UDP support is already in place.  The problem with TCP is that it depends on the TCP/IP stack and therefore blacklists a lot of gPXE code for breakpoints,​ due to isolation issues discussed above.
  
 ==== Milestones and Timeline ==== ==== Milestones and Timeline ====
  
-  * Set up IDT and write interrupt handler. +  * **Week 1** 
-  * Decide on interface for GDB transports and refactor serial console code to support serving as a GDB transport. +    - Set up IDT and write interrupt handler. 
-  ​* ​Implement GDB protocol encoder and decoder. +  * **Week 2** 
-  * Implement memory read/write, including GDB scripts as tests. +    - Decide on interface for GDB transports and refactor serial console code to support serving as a GDB transport. 
-  ​* ​Implement register read/write, including GDB scripts as tests. +    ​- ​Implement GDB protocol encoder and decoder. 
-  * Implement continue and single-step,​ including GDB scripts as tests. +  * **Week 3** 
-  ​* ​Ensure ​that breakpoints are working, including GDB scripts as tests. +    - Implement memory read/write, including GDB scripts as tests. 
-  * Implement UDP transport. +    ​- ​Implement register read/write, including GDB scripts as tests. 
-  * Documentation (how to debug, how to run tests). +  * **Week 4** 
-  * (Possibly) implement TCP transport ​and support TCP listen sockets.+    - Implement continue and single-step,​ including GDB scripts as tests. 
 +    ​- ​Ensure breakpoints are working, including GDB scripts as tests. 
 +  * **Week 5** 
 +    - Ensure source-level debugging works. 
 +  * **Week 6** 
 +    - Half-term buffer for any schedule slip. 
 +  * **Week 7** 
 +    - Implement UDP transport. 
 +  * **Week 8** 
 +    - Documentation (how to debug, how to run tests). 
 +  * **Week 9** 
 +    - Usability ​and testing. ​ Work with other gPXE developers, encourage remote GDB usage, fix issues.
   * (Possibly) support running as a gPXE process for memory peek/poke during execution.   * (Possibly) support running as a gPXE process for memory peek/poke during execution.
 +  * (Possibly) refactor PXE UDP to bypass IP stack?
 +  * (Possibly) implement TCP transport and support TCP listen sockets.
  
 ==== Reference links ==== ==== Reference links ====

Navigation

* [[:start|Home]] * [[:about|About our Project]] * [[:download|Download]] * [[:screenshots|Screenshots]] * Documentation * [[:howtos|HowTo Guides]] * [[:appnotes|Application Notes]] * [[:faq:|FAQs]] * [[:doc|General Doc]] * [[:talks|Videos, Talks, and Papers]] * [[:hardwareissues|Hardware Issues]] * [[:mailinglists|Mailing lists]] * [[http://support.etherboot.org/|Bugtracker]] * [[:contributing|Contributing]] * [[:editing_permission|Wiki Edit Permission]] * [[:wiki:syntax|Wiki Syntax]] * [[:contact|Contact]] * [[:relatedlinks|Related Links]] * [[:commerciallinks|Commercial Links]] * [[:acknowledgements|Acknowledgements]] * [[:logos|Logo Art]]

QR Code
QR Code soc:2008:stefanha:project_plan:start (generated for current page)