This is an old revision of the document!


A PCRE internal error occured. This might be caused by a faulty plugin

====== Balaji Rao: Project Plan, USB Support ====== ===== Project Plan ==== ==== Summary ==== This project will enable gPXE to use USB Ethernet Adapters. This includes, * Adding USB support to gPXE. * Writing a network device driver for an USB Ethernet Adapter. ==== Outline ==== Adding USB support to gPXE mainly has two parts. * Support for the USB protocol itself. * Write a device driver for a USB host controller. * Write a USB device driver for a USB Ethernet card. === USB Protocol support === USB protocol support involves adding routines to create communication structures as defined by the protocol specification. Device drivers for actual USB devices shall use these routines to communicate with their devices. The USB protocol layer also handles USB device configuration which involves assigning addresses to devices and preparing them for use. === USB Host controller support === An USB host controller is a device, mostly available as a PCI card which talks to USB devices connected to it using instructions from the USB protocol layer. Two commonly used variants of USB Host Controllers exist. They are UHCI (Universal Host Controller Interface) supporting Full Speed (12Mbps) and Low Speed (1.5 Mbps) devices and EHCI (Enhanced Host Controller Interface) in addition to Full Speed and Low Speed devices, supports devices operating at 480 Mbps, called High Speed devices. === Device Driver for a USB NIC === I propose to follow the Linux Kernel model here - to split the device driver into a generic driver and a device specific mini driver. UCHI controller support will be done first. EHCI support is seen as a stretch goal. ==== Milestones ==== * USB protocol layer completed. * USB host controller layer completed. * USB NIC driver completed. ==== Timeline ==== Here's a rough timeline. === Week 1, 2 & 3 === * Complete the USB protocol implementation. Software interface between layers of the USB stack is now well defined. === Week 4 & 5 === * Add support for UHCI host controller. === Week 6 & 7 === * Implement the generic USB NIC driver. Write a minidriver for dm9601 (Davicom USB Ethernet Adapter 9601). === Week 8 and hence === * Implement EHCI controller support, mini drivers for more NICs. Testing and performance optimization of the USB stack.


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