Get rid of incorrect endian conversions
Add copyright header
Add experimental non-DMA read support.