>> PS. Axelson's books are pretty good. > Axelson's books are a great starting point.
Then I shall have to look into them. Thank you both for the pointer. > For an experienced kernel hacker, I think I'd emphasize the following > practical points. > 1. USB is not Ethernet -- [...] I wouldn't expect it to be. > 2. It's good to study and become really comfortable with how USB > handles "transfers" so you know [...] That's what I'm trying to start on, here. I want to get a handle on concepts like "transfer" and "endpoint" and "pipe" so things like this make sense to me. > 3. There is a free compliance test from USB-IF. [...] Not very relevant. The end goal is to write host software to speak to an existing device. I'm looking for conceptual documentation in order to understand what I'm doing. The motivation is that a friend gave me a Teracube 2e, an open smartphone. (Well, supposedly open, at least; I haven't dug enough to know just how open it actually is, and what little I could find on the maker's webpages were four-colour glossies aimed at mass-market end users. I couldn't find any links to source code or design documents or anything of the sort. I don't know whether this is due to lack of documentation or weak Web skillz or what.) The existing software on it is some variant of Android, which of coruse I want to replace. It's got a nerve-pinch to start the bootloader, but that expects to be spoken to over USB. The existing tool for it is part of an Android dev environment (which in turn demands Linux) does not look easy to build on its own; I haven't even managed to find the repo it lives in. But I found what I think might be enough documentation on the protocol it speaks over USB. > 4. If you're building your own device, hold your nose (the tests run > on Windows only) and run the tests, they're pretty good. I'm not building my own device here. (Not that I'd Windows-only tests even if I were....) /~\ The ASCII Mouse \ / Ribbon Campaign X Against HTML [email protected] / \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B
