====== 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:balajirrao:project_plan:start [2008/05/23 10:35]
balajirrao
soc:2008:balajirrao:project_plan:start [2008/06/13 03:30] (current)
balajirrao
Line 19: Line 19:
  
 === USB Host controller support === === 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.+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 Mbpscalled High Speed devices.
  
 === Device Driver for a USB NIC === === 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. ​ 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.+UCHI controller support will be done first. EHCI support is seen as a later (stretch ​?) goal.
  
 ==== Milestones ==== ==== Milestones ====
Line 36: Line 36:
 Here's a rough timeline. ​ Here's a rough timeline. ​
  
-=== Week 1, 2 & 3 === +=== Week 1, 2 === 
-  * Complete the USB protocol implementationSoftware interface between layers of the USB stack is now well defined.+  * Write a PCI driver fpr UHCI controllerWrite support for control and bulk urbs.
  
-=== Week 4 & 5 === +=== Week 3, 4=== 
-  * Add support ​for UHCI host controller.+  * Write a driver ​for dm9601 usb ethernet adapter. Factor out generic USB networking code out of dm9601 and write a pegasus usbnet driver.
  
-=== Week === +=== Week === 
-  * Implement ​the generic USB NIC driverWrite a minidriver for dm9601 (Davicom USB Ethernet Adapter 9601).+  * Clean up and sanitize ​the uhci sourceThis includes proper lifecycle management of urbs and correct error handling across all control paths.
  
 +=== Week 7, 8 & 9 ===
 +  * Write a PCI driver for EHCI controller along with schedule management code.
 +
 +=== Week 10 and hence ===
 +  * Debugging, optimization etc.

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