<html><head></head><body><div class="yahoo-style-wrap" style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:16px;"><div dir="ltr" data-setdir="false"> <div><div>Hi</div><div><br></div><div>I've PCI device which uses DMA engines and runs on 64 bit Linux with 512MB RAM.</div><div>It has 32 bit register used to specify DMA buffer address so as far as I understand I need to restrict it DMA buffers addresses to 32 bit.</div><div><br></div><div>I tried the following:</div><div><br></div><div>err = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(32));</div><div>if (err) {</div><div>    exit...</div><div>}</div><div><br></div><div>dma_alloc_coherent(dev, 0x1000, &dma_handle, GFP_KERNEL)</div><div><br></div><div>but when I print allocated buffer address I get the following 0x409993216</div><div><br></div><div>What am I missing here?</div><div><br></div><div>Thanks,</div><div>Tal</div></div><br></div></div></body></html>