Re: Dma addr should use Kuseg1 for MIPS32?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





2009/12/8 Sergei Shtylyov <sshtylyov@xxxxxxxxxxxxx>
Hello.


figo zhang wrote:


   > i write dma_phy to DMA base register, but why it cannot work? it
   should
   > write Kseg1 space to DMA register?
   > I remember that it is ok for ARM/X86 .

   It's only happens to work on some systems.


in my puzzle, if i run dma_vaddr =(char*) __get_free_pages(GFP_KERNEL,  order);
dma_phy = virt_to_phy(dma_vaddr);

if the result is:
dma_vaddr = 0x801b00000;
dma_phy = 0x1b00000;

so i should write 0x1b00000 to my DMA Base register or wirte (0x1b000000 | 0xa0000000) to DMA?

 You must always use the physical addresses when programming DMA, i.e. 0x1b00000 in this case.

I  write  0x1b00000 to my DMA Base register, the driver donot work.  write (0x1b00000 | 0xa000000) it work, why?

WBR, Sergei




[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux