====== Balaji Rao: USB Support Project ====== ===== Journal ===== ==== Week 3 ==== === Saturday, June 14th === Whole day spent on identifying the reason for tx failure. Looked like a very scary bug. Spend more than 10 hours debugging it. Finally I tracked it down to the improper setting of the Data Toggle synchronization bits. Next comes the rx part which is the most interesting. I'll hopefully clean up the source and commit it tomorrow. === Friday, June 13th === Decided to try running gPXE on bare metal. The UHCI host controller is detected properly. But the MAC address reading failed. Sat down to debug it whole day and fixed it before the meeting! But no packets seemed to come out the adapter. === Thursday, June 12th === Lots, lots of coding. But no commits! :-\ The happiest part is that, the USB NIC sends out packets as seen by wireshark. Its exciting to see packets flow! I'll break up code into smaller pieces and commit them by tomorrow. {{:soc:2008:balajirrao:journal:wireshark_capture_1.png|}} === Wednesday, June 11th === Commit : [[http://rom.etherboot.org/cgi-bin/gitweb.cgi?p=people/balajirrao/gpxe.git;a=commit;h=39590abe9428f4f56d69ec1dbb2caf7c21c1a3ca|39590abe9428f4f56d69ec1dbb2caf7c21c1a3ca]] Various descriptors are now obtained successfully. Reading endpoint descriptors gives us valuable information like Max Packet Size, end point address etc. {{:soc:2008:balajirrao:journal:gpxe-epdesc.png|}} === Tuesday, June 10th === Commit : [[http://rom.etherboot.org/cgi-bin/gitweb.cgi?p=people/balajirrao/gpxe.git;a=commit;h=ceac0a49b4d08d6f9a113dbafba049a86ccc01e1|ceac0a49b4d08d6f9a113dbafba049a86ccc01e1]] Started working on writing code to obtain various descriptors from the device. Then comes setting a configuration in the device. Once this is done, the device is usable. We can start sending and receiving packets through its endpoints. === Monday, June 9th === Commit : [[http://rom.etherboot.org/cgi-bin/gitweb.cgi?p=people/balajirrao/gpxe.git;a=commit;h=03d5d0339af5ba08af9faefd5f5159e057758c5c|03d5d0339af5ba08af9faefd5f5159e057758c5c]] The device when attached answers at the default address (zero). We need to eventually set a unique address using a SET_ADDRESS control message. This commit adds support for assigning addresses to usb device. I've verified that this works by sending a GET_DESCRIPTOR to the new address. Next comes configuration, interface support. Setting interfaces, and configurations. After this comes bulk transactions. Commit : [[http://rom.etherboot.org/cgi-bin/gitweb.cgi?p=people/balajirrao/gpxe.git;a=commit;h=e4fa5d0f8e77ec5ddef8258c7c63b3d912459352|e4fa5d0f8e77ec5ddef8258c7c63b3d912459352]] Attempted to use the linker table mechanism for automatic inclusion of usb drivers. Created a dm9601.c - USB device driver for dm9601(0a46:9601). Did not work. I wonder it has something to do with the filename. It works in some paths, sometimes. But not all. Sent a mail to SoC mentors and mcb30 regarding this. Awaiting reply..