__pa giving strange phys address on PPC

Benjamin Herrenschmidt benh at kernel.crashing.org
Thu Jan 8 09:27:59 EST 2009


On Wed, 2009-01-07 at 21:59 +0100, dibacco at libero.it wrote:
> Hi all,
> 
> I'm using a linux 2.6.19 (from Denx ELDK) on a PPC MPC880. In a driver
> (that uses TDM channels) I have some calls to __pa to get the physical
> address corresponding to a virtual address. The physical address
> returned by __pa is higher than the maximum physical memory I have on
> the board. This result make my driver hang. The driver I'm trying to
> use was written for a 2.4 kernel and I'm wondering if I have to
> replace the calls to __pa with some other API/MACRO.

__pa can only be used on memory coming from the kernel linear mapping.

You probably need to change your driver to use the proper DMA mapping
APIs instead

Cheers,
Ben.





More information about the Linuxppc-dev mailing list