@@ -75,6 +75,16 @@ The boot loader must provide either a tagged list or a dtb image for
passing configuration data to the kernel. The physical address of the
boot data is passed to the kernel in register r2.
+The low memory layout is as follows:
+
+ 0k-12k boot data (tagged list or device tree)
+ 12k-32k page tables
+ 32k-xxx kernel image
+
+The page tables go from 16k-32k in !CONFIG_ARM_LPAE kernels but in
+general it's safer to assume that you only have 12KiB for your boot
+data.
+
4a. Setup the kernel tagged list
--------------------------------
@@ -105,7 +115,7 @@ The tagged list should be stored in system RAM.
The tagged list must be placed in a region of memory where neither
the kernel decompressor nor initrd 'bootp' program will overwrite
-it. The recommended placement is in the first 16KiB of RAM.
+it. The recommended placement is in the first 12KiB of RAM.
4b. Setup the device tree
-------------------------
@@ -120,7 +130,7 @@ tagged list.
The boot loader must pass at a minimum the size and location of the
system memory, and the root filesystem location. The dtb must be
placed in a region of memory where the kernel decompressor will not
-overwrite it. The recommended placement is in the first 16KiB of RAM
+overwrite it. The recommended placement is in the first 12KiB of RAM
with the caveat that it may not be located at physical address 0 since
the kernel interprets a value of 0 in r2 to mean neither a tagged list
nor a dtb were passed.
@@ -137,8 +147,9 @@ then it is legal for the boot loader to call the zImage in flash
directly.
The zImage may also be placed in system RAM (at any location) and
-called there. Note that the kernel uses 16K of RAM below the image
-to store page tables. The recommended placement is 32KiB into RAM.
+called there. Note that the kernel may use up to 20KiB of RAM below
+the image to store page tables. The recommended placement is 32KiB
+into RAM.
In either case, the following conditions must be met: