~ubuntu-branches/ubuntu/trusty/apex/trusty

« back to all changes in this revision

Viewing changes to docs/MemoryMap

  • Committer: Bazaar Package Importer
  • Author(s): Oliver Grawert
  • Date: 2009-11-10 11:55:15 UTC
  • mfrom: (2.2.2 squeeze)
  • Revision ID: james.westby@ubuntu.com-20091110115515-6jjsf6rc8py35awe
Tags: 1.6.10ubuntu1
* Merge from debian testing, remaining changes:
  - Move apex VMA address to 4MiB to leave enough space for the ubuntu
  kernel and not overwrite apex in ram when loading.
  - nslu2 configuration: set CONFIG_RAMDISK_SIZE=0x0055FFF0 instead of
  0x005FFFF0 to make enough room for ubuntu initramfs.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
===========================
 
2
     APEX Boot Loader
 
3
        MemoryMap
 
4
===========================
 
5
 
 
6
It may be helpful to understand where pieces go in RAM and why.  It is
 
7
easy for these numbers to change, so be careful about depending on
 
8
them.  Always check the compiled programs to be sure.
 
9
 
 
10
The numbers herin reflect an ARM system where SDRAM starts at
 
11
0xc0000000.  The base address for SDRAM varies from chip to chip and
 
12
from architecture to architecture.
 
13
 
 
14
 
 
15
APEX
 
16
----
 
17
 
 
18
The loader copies itself from wherever it start execution to
 
19
0xc0200000.  It only copies the code and read-only data portions.
 
20
BSS, stacks, and some buffers follow the code in memory.  In some
 
21
configurations, this image may be 300KiB or more in total.
 
22
 
 
23
 
 
24
Kernel
 
25
------
 
26
 
 
27
Most kernels execute at 0xc0008000.  Compressed kernels are preceeded
 
28
by a decompression header that will move the kernel if necessary after
 
29
decompressing it.  APEX runs at the 2MiB boundary.  The kernel must be
 
30
smaller than 2MiB - 32KiB for it to start execution at 0xc0008000.
 
31
This is a safe assumption since most compressed kernels a megabyte or
 
32
less.
 
33
 
 
34
 
 
35
ATAGS
 
36
-----
 
37
 
 
38
In the 2.6 kernel series, information about the running system as well
 
39
as the command line is passed in an ATAG structure list.  This list is
 
40
begins at 0xc0000100.  There has been some effort applied to make this
 
41
base address available in a register when the kernel receives
 
42
execution control.  That work is incomplete.
 
43
 
 
44