you can also reserve some physical memory at the top of memory and dma into that. of course, this means you have to know how much memory you need before booting the kernel.