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. SylvainIf 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