Friday, September 06, 2013

Arduino uno/Freetronics etherten attaches now

It took a lot of thrashing about and false trails but we now have the aduino uno (plus others) attaching and also the atmel processors will attach in DFU mode (used for flashing the boot loaders) whereas before they would fail with an address error. I had to resort to sniffing the USB transactions using a salae logic and decoding with sigrok-cli. What this showed was the uhci driver was was feeding the control request bus transactions in too fast. By changing how the transactions were fed and also disallowing what is known as "short" transactions for the control requests. After fixing these things the attach worked fine. Many thanks to fellow NetBSD developer Nick who waded in, helped with suggestions and formulated the final working fix. Hopefully a proper fix will hit NetBSD-current soon.