====== Balaji Rao: USB Support Project ====== ===== Journal ===== ==== Week 2 ==== === June 8th === Commits : [[http://rom.etherboot.org/cgi-bin/gitweb.cgi?p=people/balajirrao/gpxe.git;a=commit;h=5ce9d4fbf8a2a83622e0d396e47e61426a4a0169|5ce9d4fbf8a2a83622e0d396e47e61426a4a0169]] Whole day spent in debugging and analysing "on-the-wire" USB data. The effort was really worthwhile. We're now able to obtain the device descriptor by querying the device. Below is a QEMU screenshot. {{:soc:2008:balajirrao:journal:device_probe.png|}} === June 7th === Commits : [[http://rom.etherboot.org/cgi-bin/gitweb.cgi?p=people/balajirrao/gpxe.git;a=commit;h=a4e2572312450318358da5e32d3e8cad0cde379a|a4e2572312450318358da5e32d3e8cad0cde379a]] Added debugging routines that dump information about QH, TD, UHCI Host Controller and Root Hub ports. This has been very useful in debugging. The Host controller now to executes the schedule continuously. I was trying to send a Control Transaction to obtain the device descriptor of the device attached. But the TD of the SETUP packet is failing with a CRC/Timeout error. Looks like the device is not receiving the packet, probably because it did not receive a sufficiently long RESET on its port. === June 5th and 6th === Commits : [[http://rom.etherboot.org/cgi-bin/gitweb.cgi?p=people/balajirrao/gpxe.git;a=commit;h=794c411c1ec236996f39ae607aac1a2166ecf64e|794c411c1ec236996f39ae607aac1a2166ecf64e]], [[http://rom.etherboot.org/cgi-bin/gitweb.cgi?p=people/balajirrao/gpxe.git;a=commit;h=f8ced896bcd37046a4ac8919ed3f57480e1b94bf|f8ced896bcd37046a4ac8919ed3f57480e1b94bf]] Finished writing the support for sending control messages. Also complete is the code to retrieve the device descriptors. It is still buggy at the moment. I plan to fix it by tomorrow. Prepared a document describing the design of the USB subsystem. Click [[http://www.etherboot.org/wiki/soc/2008/balajirrao/notes/usb_gpxe_design|here]]. === June 2nd === Began writing infrastructure to support sending of control messages to a devices. This enables us to talk to them and retrieve their device descriptors. A lot of progress is achieved once we're able to send control messages.