PPC 32bits and big RAM mapping problem

Laurent Lagrange lagrange at fr.oleane.com
Fri Dec 2 04:47:46 EST 2005


Hello,

I have a PPC board with an address width fixed to 32bits, so I can address
4GB.

   M          M        M         M          M          M           M
  0          0        0         0          0          1           e
 0          2        8         c          e          e           f
 ---------------------------------------------------------------------------
---
 | Physical |        | PCI     | Kernel   | Kernel   | User      |
Peripheral |
 | RAM      | unused | memory  | memory   | reserved | memory    | mapping
|
 |          |        |         | kmalloc  |          | vmalloc   |
|
 | ex 512MB |        | ex 1GB  | ex 512MB | 16MB     |           | ex 32MB
|
 |      2GB max      | 1GB max | max ?    |          | 464MB max |
|
 ---------------------------------------------------------------------------
---
                              (0)                   (1)         (2)

00M stand for 0x00000000
(0) kernel_base
(1) vmalloc_start
(2) vmalloc_end

The exemple above shows a classical(?) mapping with a physical RAM of 512MB.
The physical RAM can growth up to 2GB, but if the kernel maps a Kernel
memory
of 2GB, there is no more place for the other items. The 4GB are eated.

Even with only 512MB of RAM, the kernel can't fully vmalloc it for user.

I know that the kernel and drivers kmalloc in Kernel memory which has the
full
space but when the users wants more RAM, it is for vmallocations.
Now when the physical RAM increases, the User memory is reduced for vmalloc.
And I don't talk about Peripheral mappings which also reduce the User
memory.

So I'm under the impression to be cornered in my shoes.
Any idea, book, article, prediction would be welcome.

Thanks
Laurent





More information about the Linuxppc-embedded mailing list