The question about the high memory support on MPC8360?

Scott Wood scottwood at freescale.com
Wed Nov 28 04:02:33 EST 2007


vijay baskar wrote:
> The kernel maps the last 1 GB of the virtual address space one to one
> to the physical memory.

No, it maps 768MB of RAM in this manner.

> This is called the kernel space. After the one
> to one mapping is done for the available physical memory, the
> remaining virtual addresses are used for vmalloc and ioremap.

And highmem mappings.

> The kernel also allows hardcoded mapping
> of IO regions into its virtual address space through the
> io_block_mapping interface.

Not in current arch/powerpc kernels.

> Many boards use the block IO mapping to
> map the CCSRBAR/IMMR into the kernel address space, such that the
> physical address and the virutal address is the same. Virtual
> addresses beyond these hardcoded mappings cannot be used by
> vmalloc/ioremap.

And this is why.

> Now as more and more memory is added to the system the addresses
> available for vmalloc and ioremap gets reduced, and memory allocations
> start to fail, due to the lack of availability of virtual addresses.

How so?  The size of lowmem is constant once you reach the threshold, as 
is the size of the highmem mapping area.

What *does* start to fail eventually, if you have a *lot* of highmem, is 
that you run out of lowmem for pagetables and such.

-Scott


More information about the Linuxppc-embedded mailing list