How does one get physical address for iorempped window?

Subodh Nijsure SNijsure at SkyStream.com
Fri Feb 16 04:58:59 EST 2001


I know the physical address I should be writing to.

For debugging I was trying to print exact physical address where
write is happening .When I used virt_to_phys() on the addresse
ioremap() I was not getting back the original physical address.
Hence the question.

Basically code I have looks like this.

unsigned long physaddr;

physmap_map.map_priv_1 = (unsigned
long)ioremap_nocache(WINDOW_ADDR,WINDOW_SIZE);
printk("Physical window (0x%08X size)starting at 0x%08X is mapped to address
0x%08X \n",
            WINDOW_SIZE,WINDOW_ADDR, physmap_map.map_priv_1);
physaddr = virt_to_phys((void *)physmap_map.map_priv_1);
printk("virtual address 0x%08X maps to physical 0x%08X \n",
                        physmap_map.map_priv_1 ,physaddr);

The output I was getting is this.

Physical window (0x00400000 size) starting at 0x28000000 is mapped to
address 0xC5012000
virtual address 0xC5012000 maps to physical 0x05012000


/Subodh Nijsure


> -----Original Message-----
> From: Dan Malek [mailto:dan at mvista.com]
> Sent: Thursday, February 15, 2001 9:03 AM
> To: Subodh Nijsure
> Cc: linuxppc-embedded at lists.linuxppc.org
> Subject: Re: How does one get physical address for iorempped window?
>
>
>
> Subodh Nijsure wrote:
>
> > If I map memory window using ioremap_nocache() if I use
> virt_to_phys()
> > should one get back the actual physical address?
>
> Ummmm....you give ioremap_nocache() a physical address to map, so
> you have to know it........Using virt_to_phys() may not give you
> the proper physical address, depending upon the platform.  I'm working
> on a solution for 2.5 that will work.  Currently, it is wrapped into
> a heavier weight virt_to_bus/phys() but that many not be the right
> place.
>
>
>
> 	-- Dan
>

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-embedded mailing list