diff options
-rw-r--r-- | Documentation/arm/Booting | 33 | ||||
-rw-r--r-- | Documentation/devicetree/booting-without-of.txt | 40 |
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. | |||
65 | The boot loader must ultimately be able to provide a MACH_TYPE_xxx | 65 | The boot loader must ultimately be able to provide a MACH_TYPE_xxx |
66 | value to the kernel. (see linux/arch/arm/tools/mach-types). | 66 | value to the kernel. (see linux/arch/arm/tools/mach-types). |
67 | 67 | ||
68 | 4. Setup boot data | 68 | |
69 | ------------------ | 69 | 4. Setup the kernel tagged list |
70 | ------------------------------- | ||
70 | 71 | ||
71 | Existing boot loaders: OPTIONAL, HIGHLY RECOMMENDED | 72 | Existing boot loaders: OPTIONAL, HIGHLY RECOMMENDED |
72 | New boot loaders: MANDATORY | 73 | New boot loaders: MANDATORY |
73 | 74 | ||
74 | The boot loader must provide either a tagged list or a dtb image for | ||
75 | passing configuration data to the kernel. The physical address of the | ||
76 | boot data is passed to the kernel in register r2. | ||
77 | |||
78 | 4a. Setup the kernel tagged list | ||
79 | -------------------------------- | ||
80 | |||
81 | The boot loader must create and initialise the kernel tagged list. | 75 | The boot loader must create and initialise the kernel tagged list. |
82 | A valid tagged list starts with ATAG_CORE and ends with ATAG_NONE. | 76 | A valid tagged list starts with ATAG_CORE and ends with ATAG_NONE. |
83 | The ATAG_CORE tag may or may not be empty. An empty ATAG_CORE tag | 77 | The 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 | |||
107 | the kernel decompressor nor initrd 'bootp' program will overwrite | 101 | the kernel decompressor nor initrd 'bootp' program will overwrite |
108 | it. The recommended placement is in the first 16KiB of RAM. | 102 | it. The recommended placement is in the first 16KiB of RAM. |
109 | 103 | ||
110 | 4b. Setup the device tree | ||
111 | ------------------------- | ||
112 | |||
113 | The boot loader must load a device tree image (dtb) into system ram | ||
114 | at a 64bit aligned address and initialize it with the boot data. The | ||
115 | dtb format is documented in Documentation/devicetree/booting-without-of.txt. | ||
116 | The kernel will look for the dtb magic value of 0xd00dfeed at the dtb | ||
117 | physical address to determine if a dtb has been passed instead of a | ||
118 | tagged list. | ||
119 | |||
120 | The boot loader must pass at a minimum the size and location of the | ||
121 | system memory, and the root filesystem location. The dtb must be | ||
122 | placed in a region of memory where the kernel decompressor will not | ||
123 | overwrite it. The recommended placement is in the first 16KiB of RAM | ||
124 | with the caveat that it may not be located at physical address 0 since | ||
125 | the kernel interprets a value of 0 in r2 to mean neither a tagged list | ||
126 | nor a dtb were passed. | ||
127 | |||
128 | 5. Calling the kernel image | 104 | 5. 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 | ||
229 | 2) 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 | ||
269 | II - The DT block format | 229 | II - The DT block format |
270 | ======================== | 230 | ======================== |