Kevin O'Connor wrote:
Some info on the usb requirements:
Mass storage requirements: The usb drive support looks to be straight forward. There is a document describing the minimum commands a bios can expect to have from a drive capable of booting the machine (search usb_msc_boot_1.0.pdf). It would seem that the 16bit code need only support sending BulkOut packets and receiving BulkIn packets. Interrupt support would not be needed, as the bios can poll for completion of requests.
(Hysterical laughter) Prepare yourself. Sure the basic set of commands seem simple enough. The devil is in the details. USB mass storage is ugly. There are so many quirky devices and ones that outright just don't work within the standard.
However, some middle ground is reachable. At olpc we have a pretty good compromise of dealing with the quirks while not adding a lot of extra boot delays and crazy USB hoops. I still answer a lot of support tickets with "try a different USB drive." though so its far from perfect. Thankfully most drives are now cheap enough that you can just try a new one. The XO now works with enough of them that the chance of the 2nd one working is really high. It took a fair bit of work to get there though.
Not trying to discourage you but expect a lot of exceptions if you want to support a wide range of the cheap drives. Get used to hearing "But it works with Linux/Windows..."