Monday 31 May 2010

Weekly report - Week 1

Status:
  • Managed to build Angstrom's console-image, as well as the kernel (outside OpenEmbedded), both work well on the BeagleBoard.
  • Wrote a prototype kernel proxy driver, and managed to get USB data to be forwarded properly between a USB mouse and a Linux PC, with the BeagleBoard in between (git tree here, but no really usable yet).
  • Modified the MUSB controller driver to disable high-speed USB if the gadget asks for full-speed (commit here).
Plans:
  • Get the proxy driver more generic, and get completely rid of the static descriptor copy.
  • Dynamically connect endpoints, according to the endpoint descriptor.
Risks:
  • Differences between low-speed, full-speed, high-speed, for example in the meaning of some descriptor fields (e.g., bInterval for endpoints): since the BeagleBoard MUSB cannot operate in low-speed, this would require some "rewriting" of the descriptors to get the device to work.
  • Also, my Linux PC asks for the Device_Qualifier descriptor (a high-speed only descriptor) when connected to the BB, but not when connected directly to the mouse, even though the device is advertised and detected as full-speed.