been keeping an eye on your project for a while.. the USB implementation onchip seems to be coming along.
However, I picked up (and am waiting for delivery) a "CH375B" module off of ebay which may prove to be a much better solution. I'm usually a big fan of doing most things in software, but USB hosting and protocols are PAINFUL. By everything I've been able to read up on these chips (provided on a board, 5v supply, it's intended as a prototyping module), it covers all of the painful items, leaving us with a choice of whether to use parallel, UART, or SPI for interfacing. It apparently handles storage devices natively, but more important, it also handles full support of block and command-mode transfers.. which SHOULD be everything needed for a full PTP + Canon implementation. I'm very eager to play with the module, as if can do what it says, then we here should be able to write hardware-specific drivers for a list of items it would be very nice to be able to talk to... like USB network dongles, USB printers, USB bluetooth modules, and a host of other extremely useful devices. I'll admit it- I haven't gotten further into the project so far because of the grief of USB Host mode complexity.. if a cheap module like this will remove the PITA work, I'll be far more likely to pick up on the fun stuff..
I got this one on the cheap for $6 shipped, but they sell for like $15 otherwise... possibly well worth the lack of grief!
I'll be posting heavily about it once I get it; I haven't seen writeups on the forums about the module, and it could really be a game-changer for hobbyists.. think of the misuses of hardware that will be unleashed. USB webcams and microphones are a immediate thought, as well as keyboards and other HID devices. The device supposedly can handle multiple endpoints, so you could simultaneously handle (via hub) multiple devices.. including USB flash memory.. even EyeFi cards, I suppose (EyeFi are memory cards for photo use that are actually wifi, and typically linked to a directory on a desktop machine).
CHDSK implementation should even be possible in a limited form.. so here's to hoping that module lives up to it's hype...