I'm trying to do the same thing as you right now on a simple hobby os. A few years late, but wondering if you every found a workaround implementation? Or did you end up implementing DMA?