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.

Wednesday, June 11th

Commit : 39590abe9428f4f56d69ec1dbb2caf7c21c1a3ca

Various descriptors are now obtained successfully. Reading endpoint descriptors gives us valuable information like Max Packet Size, end point address etc.

Tuesday, June 10th

Commit : 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 : 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 : 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..


QR Code
QR Code soc:2008:balajirrao:journal:week3 (generated for current page)