Differences

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

Link to this comparison view

Next revision
Previous revision
soc:2008:dverkamp:project_plan:start [2008/05/19 16:38]
mdc created
soc:2008:dverkamp:project_plan:start [2008/07/18 09:40] (current)
drv update API status table
Line 4: Line 4:
  
 ==== Summary ==== ==== Summary ====
 +
 +My goal is to add support for booting COMBOOT and COMBOOT32 images in gPXE.
 +
 +This includes:
 +
 +  * Adding a new image type for COMBOOT
 +  * Implementing the COMBOOT API (including the PXE portions) and setting up the IDT to point to these implementations
  
 ==== Outline ==== ==== Outline ====
 +
 +I will implement COMBOOT API support in gPXE.  This will require implementing the COMBOOT API functions within gPXE and hooking up the interrupt table (or the protected-mode helper, for COM32) to call the gPXE implementation,​ setting up real or protected mode depending on whether the image is 16- or 32-bit, then loading and executing the COMBOOT image.
 +
 +For initial testing, the most basic part of the API will be implemented (INT 20h, terminate program) in order to test the loading and execution of COMBOOT executables. ​ Once this is working (both in 16- and 32-bit mode), the rest of the SYSLINUX API that makes sense in the context of gPXE will be implemented,​ including the PXELINUX-only functions.
 +
 +16-bit COMBOOT executables will require switching to real mode and setting up the interrupt table appropriately.
 +
 +COM32 executables will additionally require protected-mode setup and the provision of a protected-mode callback to call COMBOOT and BIOS functions.
  
 ==== Milestones and Timeline ==== ==== Milestones and Timeline ====
  
 +  * Implement bare minimum COMBOOT API and COMBOOT loading (at the very latest, this should be done by mid-summer, but most likely should be done in a few weeks)
 +  * Improve COM32 helper function to call BIOS functions
 +  * Implement the rest of the COMBOOT API, as time permits
 +
 +==== Status ====
 +
 +=== INT 21h ===
 +
 +^ AH  ^ Description ​                   ^ Status ​       ^ Notes                         ^
 +| 00h | Terminate program ​             | Implemented ​  ​| ​                              |
 +| 01h | Get Key with Echo              | Implemented ​  | Extended keys still need work |
 +| 02h | Write Character ​               | Implemented ​  | No serial yet                 |
 +| 04h | Write Character to Serial Port | Implemented ​  ​| ​                              |
 +| 08h | Get Key without Echo           | Implemented ​  | Extended keys still need work |
 +| 09h | Write DOS String to Console ​   | Implemented ​  ​| ​                              |
 +| 0Bh | Check Keyboard ​                | Implemented ​  ​| ​                              |
 +| 30h | Check DOS Version ​             | Implemented ​  ​| ​                              |
 +| 4Ch | Terminate program ​             | Implemented ​  ​| ​                              |
 +
 +=== INT 22h ===
  
 +^ AX    ^ Description ​                   ^ Status ​       ^ Notes                         ^
 +| 0001h | Get Version ​                   | Implemented ​  ​| ​                              |
 +| 0002h | Write String ​                  | Implemented ​  ​| ​                              |
 +| 0003h | Run command ​                   | Implemented ​  ​| ​                              |
 +| 0004h | Run default command ​           | **Stubbed** ​  ​| ​                             |
 +| 0005h | Force text mode                | Implemented ​  ​| ​                             |
 +| 0006h | Open file                      | Implemented ​  ​| ​                              |
 +| 0007h | Read file                      | Implemented ​  ​| ​                              |
 +| 0008h | Close file                     | Implemented ​  ​| ​                              |
 +| 0009h | Call PXE Stack                 | Implemented ​  ​| ​                             |
 +| 000Ah | Get Derivative-Specific Information | **Stubbed** |                             |
 +| 000Bh | Get Serial Console Configuration | **Stubbed** |                               |
 +| 000Ch | Perform final cleanup ​         | **Unimplemented** ​ |                                |
 +| 000Dh | Cleanup and replace bootstrap code | **Unimplemented** |                             |
 +| 000Eh | Get configuration file name    | **Stubbed** |                               |
 +| 000Fh | Get IPAPPEND strings ​          | **Stubbed** |                               |
 +| 0010h | Resolve hostname ​              | Implemented ​  ​| ​                                  |
 +| 0011h | Maximum number of shuffle descriptors | Implemented |                        |
 +| 0012h | Cleanup, shuffle and boot      | Implemented |                               |
 +| 0013h | Idle loop call                 | Implemented ​  ​| ​                                  |
 +| 0014h | Local boot                     | **Unimplemented** |                               |
 +| 0015h | Get feature flags              | Implemented ​  ​| ​                                  |
 +| 0016h | Run kernel image               | Implemented ​  ​| ​                              |
 +| 0017h | Report video mode change ​      | Implemented ​  ​| ​                              |
 +| 0018h | Query custom font              | **Stubbed** ​  ​| ​                              |
 +| 0019h | Read disk                      | Won't Implement |                                 |
 +| 001Ah | Cleanup, shuffle and boot to flat protected mode | **Unimplemented** |             |
 +| 001Bh | Cleanup, shuffle and boot to real mode | **Unimplemented** |                       |
 +| 001Ch | Get pointer to auxilliary data vector ​ | Won't Implement |                       |
 +| 001Dh | Write auxilliary data vector ​          | Won't Implement |                       |
  

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:dverkamp:project_plan:start (generated for current page)