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.
More, I have a
global variable which is a little buffer. It is also mapped at a 0xC9xxxxxx
address.
Has anyone an
idea or a link to a detailed howto ?
Thanks
Bye
Laurent
PS : Linux console
informations about memory.
Memory BAT mapping: BAT2=128Mb, BAT3=0Mb, residual:
0Mb
Linux version 2.4.25 (version gcc 3.2.3)
On node 0 totalpages: 32768
zone(0): 32768
pages.
zone(1): 0 pages.
zone(2): 0 pages.
...
Memory: 127008k
available (948k kernel code, 296k data, 60k init, 0k highmem)
Dentry cache
hash table entries: 16384 (order: 5, 131072 bytes)
Inode cache hash table
entries: 8192 (order: 4, 65536 bytes)
Mount cache hash table entries: 512
(order: 0, 4096 bytes)
Buffer cache hash table entries: 8192 (order: 3, 32768
bytes)
Page-cache hash table entries: 32768 (order: 5, 131072
bytes)