Commit d69c7369 authored by Russell King's avatar Russell King

[ARM] Update ARM memory layout documentation.

This updates the memory layout documentation to indicate that certain
areas should remain unused.  It also corrects a few minor errors with
region end addresses.
parent 5d0e9fbf
Kernel Memory Layout on ARM Linux Kernel Memory Layout on ARM Linux
Russell King <rmk@arm.linux.org.uk> Russell King <rmk@arm.linux.org.uk>
April 27, 2003 (2.5.68) May 21, 2004 (2.6.6)
This document describes the virtual memory layout which the Linux This document describes the virtual memory layout which the Linux
kernel uses for ARM processors. It indicates which regions are kernel uses for ARM processors. It indicates which regions are
...@@ -29,32 +29,30 @@ ffff0000 ffff0fff CPU vector page. ...@@ -29,32 +29,30 @@ ffff0000 ffff0fff CPU vector page.
CPU supports vector relocation (control CPU supports vector relocation (control
register V bit.) register V bit.)
ffe00000 fffeffff Free for platform use, not recommended. ffc00000 fffeffff DMA memory mapping region. Memory returned
by the dma_alloc_xxx functions will be
dynamically mapped here.
ffc00000 ffdfffff 2MB consistent memory mapping. ff000000 ffbfffff Reserved for future expansion of DMA
Memory returned by the consistent_alloc mapping region.
low level function will be dynamically
mapped here.
ff000000 ffbfffff Free for platform use, not recommended. VMALLOC_END feffffff Free for platform use, recommended.
VMALLOC_END ff000000 Free for platform use, recommended. VMALLOC_START VMALLOC_END-1 vmalloc() / ioremap() space.
VMALLOC_START VMALLOC_END vmalloc() / ioremap() space.
Memory returned by vmalloc/ioremap will Memory returned by vmalloc/ioremap will
be dynamically placed in this region. be dynamically placed in this region.
VMALLOC_START may be based upon the value VMALLOC_START may be based upon the value
of the high_memory variable. of the high_memory variable.
PAGE_OFFSET high_memory Kernel direct-mapped RAM region. PAGE_OFFSET high_memory-1 Kernel direct-mapped RAM region.
This maps the platforms RAM, and typically This maps the platforms RAM, and typically
maps all platform RAM in a 1:1 relationship. maps all platform RAM in a 1:1 relationship.
TASK_SIZE PAGE_OFFSET Kernel module space TASK_SIZE PAGE_OFFSET-1 Kernel module space
Kernel modules inserted via insmod are Kernel modules inserted via insmod are
placed here using dynamic mappings. placed here using dynamic mappings.
00001000 TASK_SIZE User space mappings 00001000 TASK_SIZE-1 User space mappings
Per-thread mappings are placed here via Per-thread mappings are placed here via
the mmap() system call. the mmap() system call.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment