virt_to_phys() on 440

Matt Porter mporter at kernel.crashing.org
Tue Sep 9 08:14:59 EST 2003


On Mon, Sep 08, 2003 at 02:36:38PM -0700, Brian Kuschak wrote:
>
> I think the virt_to_phys() function is incorrect for
> PPC440.  It should call iopa for all 4xx, not only the
> 405.  By chance, it happens to work currently if the
> address is in SDRAM, but is always incorrect for
> ioremapped addresses.  virt_to_bus() does the right
> thing.
>
> Also, to be correct, shouldn't this function return a
> phys_addr_t rather than an unsigned long, as the
> physical address is >32 bits on 44x?

Read IO-mapping.txt and DMA-mapping.txt

PPC40x is incorrect.  These APIs are valid only for system
memory kernel addresses that are staticly mapped.

Anything wanting a generic translation from virt->phys should
call iopa() directly until somebody drives a generic translation
API into the kernel.

-Matt

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





More information about the Linuxppc-embedded mailing list