>> At the very least, require bounce buffers. > > Not sure if I got this suggestion in this terse form. > Could you please explain? Physical address zero can be DMA'd, but via bounce buffers. bcopy from address zero up through a pagesize to a bounce buffer, do the dma from there (read case), write case the opposite order