aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/arm/Booting33
-rw-r--r--Documentation/devicetree/booting-without-of.txt40
2 files changed, 4 insertions, 69 deletions
diff --git a/Documentation/arm/Booting b/Documentation/arm/Booting
index 4e686a2ed91e..76850295af8f 100644
--- a/Documentation/arm/Booting
+++ b/Documentation/arm/Booting
@@ -65,19 +65,13 @@ looks at the connected hardware is beyond the scope of this document.
65The boot loader must ultimately be able to provide a MACH_TYPE_xxx 65The boot loader must ultimately be able to provide a MACH_TYPE_xxx
66value to the kernel. (see linux/arch/arm/tools/mach-types). 66value to the kernel. (see linux/arch/arm/tools/mach-types).
67 67
684. Setup boot data 68
69------------------ 694. Setup the kernel tagged list
70-------------------------------
70 71
71Existing boot loaders: OPTIONAL, HIGHLY RECOMMENDED 72Existing boot loaders: OPTIONAL, HIGHLY RECOMMENDED
72New boot loaders: MANDATORY 73New boot loaders: MANDATORY
73 74
74The boot loader must provide either a tagged list or a dtb image for
75passing configuration data to the kernel. The physical address of the
76boot data is passed to the kernel in register r2.
77
784a. Setup the kernel tagged list
79--------------------------------
80
81The boot loader must create and initialise the kernel tagged list. 75The boot loader must create and initialise the kernel tagged list.
82A valid tagged list starts with ATAG_CORE and ends with ATAG_NONE. 76A valid tagged list starts with ATAG_CORE and ends with ATAG_NONE.
83The ATAG_CORE tag may or may not be empty. An empty ATAG_CORE tag 77The ATAG_CORE tag may or may not be empty. An empty ATAG_CORE tag
@@ -107,24 +101,6 @@ The tagged list must be placed in a region of memory where neither
107the kernel decompressor nor initrd 'bootp' program will overwrite 101the kernel decompressor nor initrd 'bootp' program will overwrite
108it. The recommended placement is in the first 16KiB of RAM. 102it. The recommended placement is in the first 16KiB of RAM.
109 103
1104b. Setup the device tree
111-------------------------
112
113The boot loader must load a device tree image (dtb) into system ram
114at a 64bit aligned address and initialize it with the boot data. The
115dtb format is documented in Documentation/devicetree/booting-without-of.txt.
116The kernel will look for the dtb magic value of 0xd00dfeed at the dtb
117physical address to determine if a dtb has been passed instead of a
118tagged list.
119
120The boot loader must pass at a minimum the size and location of the
121system memory, and the root filesystem location. The dtb must be
122placed in a region of memory where the kernel decompressor will not
123overwrite it. The recommended placement is in the first 16KiB of RAM
124with the caveat that it may not be located at physical address 0 since
125the kernel interprets a value of 0 in r2 to mean neither a tagged list
126nor a dtb were passed.
127
1285. Calling the kernel image 1045. Calling the kernel image
129--------------------------- 105---------------------------
130 106
@@ -149,8 +125,7 @@ In either case, the following conditions must be met:
149- CPU register settings 125- CPU register settings
150 r0 = 0, 126 r0 = 0,
151 r1 = machine type number discovered in (3) above. 127 r1 = machine type number discovered in (3) above.
152 r2 = physical address of tagged list in system RAM, or 128 r2 = physical address of tagged list in system RAM.
153 physical address of device tree block (dtb) in system RAM
154 129
155- CPU mode 130- CPU mode
156 All forms of interrupts must be disabled (IRQs and FIQs) 131 All forms of interrupts must be disabled (IRQs and FIQs)
diff --git a/Documentation/devicetree/booting-without-of.txt b/Documentation/devicetree/booting-without-of.txt
index 9381a1481027..28b1c9d3d351 100644
--- a/Documentation/devicetree/booting-without-of.txt
+++ b/Documentation/devicetree/booting-without-of.txt
@@ -13,7 +13,6 @@ Table of Contents
13 13
14 I - Introduction 14 I - Introduction
15 1) Entry point for arch/powerpc 15 1) Entry point for arch/powerpc
16 2) Entry point for arch/arm
17 16
18 II - The DT block format 17 II - The DT block format
19 1) Header 18 1) Header
@@ -226,45 +225,6 @@ it with special cases.
226 cannot support both configurations with Book E and configurations 225 cannot support both configurations with Book E and configurations
227 with classic Powerpc architectures. 226 with classic Powerpc architectures.
228 227
2292) Entry point for arch/arm
230---------------------------
231
232 There is one single entry point to the kernel, at the start
233 of the kernel image. That entry point supports two calling
234 conventions. A summary of the interface is described here. A full
235 description of the boot requirements is documented in
236 Documentation/arm/Booting
237
238 a) ATAGS interface. Minimal information is passed from firmware
239 to the kernel with a tagged list of predefined parameters.
240
241 r0 : 0
242
243 r1 : Machine type number
244
245 r2 : Physical address of tagged list in system RAM
246
247 b) Entry with a flattened device-tree block. Firmware loads the
248 physical address of the flattened device tree block (dtb) into r2,
249 r1 is not used, but it is considered good practise to use a valid
250 machine number as described in Documentation/arm/Booting.
251
252 r0 : 0
253
254 r1 : Valid machine type number. When using a device tree,
255 a single machine type number will often be assigned to
256 represent a class or family of SoCs.
257
258 r2 : physical pointer to the device-tree block
259 (defined in chapter II) in RAM. Device tree can be located
260 anywhere in system RAM, but it should be aligned on a 32 bit
261 boundary.
262
263 The kernel will differentiate between ATAGS and device tree booting by
264 reading the memory pointed to by r1 and looking for either the flattened
265 device tree block magic value (0xd00dfeed) or the ATAG_CORE value at
266 offset 0x4 from r2 (0x54410001).
267
268 228
269II - The DT block format 229II - The DT block format
270======================== 230========================