USB in Rockbox land was originally a matter of supporting the USB bridge chips in the first targets we supported (the Archos ones, the irivers and the iAudios).
Since the USB stacks moved into pure software in the used soc chips, Rockbox has (unfortunately) relied on the original firmwares (the so called OF) to provide USB support so that host computers can access the players.
One of the projects in the Google Summer of Code 2007 for Rockbox was to introduce a USB stack and offer native USB support for Rockbox, at least on the PortalPlayer-based targets. These targets were selected because the PortalPlayer chips have been found to have a USB set that is next to identical to the one used in the Freescale i.MX31 and that is fully documented online. Christian Gmeiner took this project to state where it partially works, but not enough to be actually useful to any Rockbox user. Christian’s code was largely based on USB code from the Linux kernel.
Now, long time Rockbox hacker Björn Stenberg enters the stage. Being one of the (original) core guys, he has a firm believe in KISS and as such he has started over on a brand new USB stack implementation that is meant to replace Christian’s and to be smaller, less complicated and quite possibly end up actually working! Björn once wrote the ISD200 support in the USB stack for Linux, so he has been in this neighborhood before…