aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/booting-without-of.txt
diff options
context:
space:
mode:
authorGrant Likely <grant.likely@secretlab.ca>2011-04-28 16:27:23 -0400
committerGrant Likely <grant.likely@secretlab.ca>2011-05-23 11:30:20 -0400
commitede338f4ce2fb5ee99d18751df32fbd3b10df268 (patch)
tree714bfcb440e54bae62d3a73f1de9d4b33ca69c21 /Documentation/devicetree/booting-without-of.txt
parent93c02ab40ae6e06cb24d14845d9f008fdd24f43d (diff)
dt: add documentation of ARM dt boot interface
v6: typo fixes v5: clarified that dtb should be aligned on a 64 bit boundary in RAM. v3: added details to Documentation/arm/Booting Acked-by: Tony Lindgren <tony@atomide.com> Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org> Acked-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Diffstat (limited to 'Documentation/devicetree/booting-without-of.txt')
-rw-r--r--Documentation/devicetree/booting-without-of.txt48
1 files changed, 44 insertions, 4 deletions
diff --git a/Documentation/devicetree/booting-without-of.txt b/Documentation/devicetree/booting-without-of.txt
index 50619a0720a8..7c1329de0596 100644
--- a/Documentation/devicetree/booting-without-of.txt
+++ b/Documentation/devicetree/booting-without-of.txt
@@ -12,8 +12,9 @@ Table of Contents
12================= 12=================
13 13
14 I - Introduction 14 I - Introduction
15 1) Entry point for arch/powerpc 15 1) Entry point for arch/arm
16 2) Entry point for arch/x86 16 2) Entry point for arch/powerpc
17 3) Entry point for arch/x86
17 18
18 II - The DT block format 19 II - The DT block format
19 1) Header 20 1) Header
@@ -148,7 +149,46 @@ upgrades without significantly impacting the kernel code or cluttering
148it with special cases. 149it with special cases.
149 150
150 151
1511) Entry point for arch/powerpc 1521) Entry point for arch/arm
153---------------------------
154
155 There is one single entry point to the kernel, at the start
156 of the kernel image. That entry point supports two calling
157 conventions. A summary of the interface is described here. A full
158 description of the boot requirements is documented in
159 Documentation/arm/Booting
160
161 a) ATAGS interface. Minimal information is passed from firmware
162 to the kernel with a tagged list of predefined parameters.
163
164 r0 : 0
165
166 r1 : Machine type number
167
168 r2 : Physical address of tagged list in system RAM
169
170 b) Entry with a flattened device-tree block. Firmware loads the
171 physical address of the flattened device tree block (dtb) into r2,
172 r1 is not used, but it is considered good practise to use a valid
173 machine number as described in Documentation/arm/Booting.
174
175 r0 : 0
176
177 r1 : Valid machine type number. When using a device tree,
178 a single machine type number will often be assigned to
179 represent a class or family of SoCs.
180
181 r2 : physical pointer to the device-tree block
182 (defined in chapter II) in RAM. Device tree can be located
183 anywhere in system RAM, but it should be aligned on a 64 bit
184 boundary.
185
186 The kernel will differentiate between ATAGS and device tree booting by
187 reading the memory pointed to by r2 and looking for either the flattened
188 device tree block magic value (0xd00dfeed) or the ATAG_CORE value at
189 offset 0x4 from r2 (0x54410001).
190
1912) Entry point for arch/powerpc
152------------------------------- 192-------------------------------
153 193
154 There is one single entry point to the kernel, at the start 194 There is one single entry point to the kernel, at the start
@@ -226,7 +266,7 @@ it with special cases.
226 cannot support both configurations with Book E and configurations 266 cannot support both configurations with Book E and configurations
227 with classic Powerpc architectures. 267 with classic Powerpc architectures.
228 268
2292) Entry point for arch/x86 2693) Entry point for arch/x86
230------------------------------- 270-------------------------------
231 271
232 There is one single 32bit entry point to the kernel at code32_start, 272 There is one single 32bit entry point to the kernel at code32_start,