This is a very basic & preliminary USB Mass Storage implementation.  It was able to enumerate, get mounted by linux & I was able to use 'dd' to copy data from the device to the PC correctly.
A much improved version of the mass storage implementation.  This allows user-land to handle requests on a per-block basis.  Ultimately this allows the data to be stored in memory, flash or off-chip.
Work in progress, but able to share it now.