MPC8260 strange virtual addresses returned by kmalloc()
Eugene Surovegin
ebs at ebshome.net
Thu Jan 6 04:41:54 EST 2005
On Wed, Jan 05, 2005 at 02:38:12PM +0100, Laurent Lagrange wrote:
> Hi and Happy New Year to all,
>
> I use a Linux 2.4.25 kernel on a MPC8260 custom board with 128MB of RAM.
> PCI is activated and my drivers are loaded as modules.
> The RAM is mapped at 0xC0000000 as usual.
>
> On MPC8XX I used kmalloc and iopa to get the physical addresses of the
> allocated buffers.
> On MPC82XX I used kmalloc and __pa for the same thing and it worked fine
> with previous kernel.
>
> But now, when I want to use kmalloc, I get addresses like 0xC9xxxxxx.
> The __pa gives me physical addresses 0x09xxxxxx which are out of my physical
> RAM.
> I tried old iopa function and got some real physical addresses and the
> module works.
> The virt_to_bus gives me too addresses like 0x09xxxxxx
> (ie substract kernel base address 0xC0000000 as usual).
>
> I don't understand why I get virtual addresses which seem to be out of my
> memory and why it runs.
Yeah, this looks strange, please, check that this address is really
from kmalloc and not from vmalloc.
Also, check that PAGE_OFFSET is really 0xc000'0000.
> More, I have a global variable which is a little buffer. It is also mapped
> at a 0xC9xxxxxx address.
Is this global variable in the loaded module? If yes, this is normal,
because modules are loaded into vmalloced space and you cannot use
__pa for such addresses.
--
Eugene
More information about the Linuxppc-embedded
mailing list