Thread (9 messages) flat view 9 messages, 6 authors, 2007-01-31

Re: mem=XXXM ioremap DMA

From: Sylvain Munaut <hidden>
Date: 2007-01-29 17:14:16

Eric Nuckols wrote:
  
quoted
Eric Nuckols wrote:
    
quoted
in my driver, I'm calling
my_virt_address =   ioremap( 0x1F800000, 0x800000  );
my_bus_address = virt_to_bus( my_virt_address );

      
You can't use virt_to_bus on address returned by ioremap AFAIK.

I think you could do
my_bus_address = virt_to_bus(phys_to_virt(0x1f800000));

Altough it slightly misuse the functions ... but that should work.


        Sylvain

    
If I use this approach in a driver, won't I still need to use the ioremap 
function to make sure the kernel does not reassign the virtual addresses to 
some other physical memory locations?
mmh, I wasn't clear :
You must do :

my_virt_address =   ioremap( 0x1F800000, 0x800000  );
my_bus_address = virt_to_bus(phys_to_virt(0x1f800000));

The virtual address returned by phys_to_virt won't be really valid ... but it
will be good enough for virt_to_bus. In the end, it will just do
PCI_DRAM_OFFSET + 0x1f800000;


Sylvain
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help