~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/arch/arm/booting.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/arch/arm/booting.rst (Version linux-6.12-rc7) and /Documentation/arch/m68k/booting.rst (Version linux-5.1.21)


  1 =================                                 
  2 Booting ARM Linux                                 
  3 =================                                 
  4                                                   
  5 Author: Russell King                              
  6                                                   
  7 Date  : 18 May 2002                               
  8                                                   
  9 The following documentation is relevant to 2.4    
 10                                                   
 11 In order to boot ARM Linux, you require a boot    
 12 program that runs before the main kernel.  The    
 13 to initialise various devices, and eventually     
 14 passing information to the kernel.                
 15                                                   
 16 Essentially, the boot loader should provide (a    
 17 following:                                        
 18                                                   
 19 1. Setup and initialise the RAM.                  
 20 2. Initialise one serial port.                    
 21 3. Detect the machine type.                       
 22 4. Setup the kernel tagged list.                  
 23 5. Load initramfs.                                
 24 6. Call the kernel image.                         
 25                                                   
 26                                                   
 27 1. Setup and initialise RAM                       
 28 ---------------------------                       
 29                                                   
 30 Existing boot loaders:                            
 31         MANDATORY                                 
 32 New boot loaders:                                 
 33         MANDATORY                                 
 34                                                   
 35 The boot loader is expected to find and initia    
 36 kernel will use for volatile data storage in t    
 37 this in a machine dependent manner.  (It may u    
 38 to automatically locate and size all RAM, or i    
 39 the RAM in the machine, or any other method th    
 40 sees fit.)                                        
 41                                                   
 42                                                   
 43 2. Initialise one serial port                     
 44 -----------------------------                     
 45                                                   
 46 Existing boot loaders:                            
 47         OPTIONAL, RECOMMENDED                     
 48 New boot loaders:                                 
 49         OPTIONAL, RECOMMENDED                     
 50                                                   
 51 The boot loader should initialise and enable o    
 52 target.  This allows the kernel serial driver     
 53 which serial port it should use for the kernel    
 54 used for debugging purposes, or communication     
 55                                                   
 56 As an alternative, the boot loader can pass th    
 57 option to the kernel via the tagged lists spec    
 58 serial format options as described in             
 59                                                   
 60        Documentation/admin-guide/kernel-parame    
 61                                                   
 62                                                   
 63 3. Detect the machine type                        
 64 --------------------------                        
 65                                                   
 66 Existing boot loaders:                            
 67         OPTIONAL                                  
 68 New boot loaders:                                 
 69         MANDATORY except for DT-only platforms    
 70                                                   
 71 The boot loader should detect the machine type    
 72 method.  Whether this is a hard coded value or    
 73 looks at the connected hardware is beyond the     
 74 The boot loader must ultimately be able to pro    
 75 value to the kernel. (see linux/arch/arm/tools    
 76 should be passed to the kernel in register r1.    
 77                                                   
 78 For DT-only platforms, the machine type will b    
 79 tree.  set the machine type to all ones (~0).     
 80 necessary, but assures that it will not match     
 81                                                   
 82 4. Setup boot data                                
 83 ------------------                                
 84                                                   
 85 Existing boot loaders:                            
 86         OPTIONAL, HIGHLY RECOMMENDED              
 87 New boot loaders:                                 
 88         MANDATORY                                 
 89                                                   
 90 The boot loader must provide either a tagged l    
 91 passing configuration data to the kernel.  The    
 92 boot data is passed to the kernel in register     
 93                                                   
 94 4a. Setup the kernel tagged list                  
 95 --------------------------------                  
 96                                                   
 97 The boot loader must create and initialise the    
 98 A valid tagged list starts with ATAG_CORE and     
 99 The ATAG_CORE tag may or may not be empty.  An    
100 has the size field set to '2' (0x00000002).  T    
101 the size field to zero.                           
102                                                   
103 Any number of tags can be placed in the list.     
104 whether a repeated tag appends to the informat    
105 previous tag, or whether it replaces the infor    
106 entirety; some tags behave as the former, othe    
107                                                   
108 The boot loader must pass at a minimum the siz    
109 the system memory, and root filesystem locatio    
110 minimum tagged list should look::                 
111                                                   
112                 +-----------+                     
113   base ->       | ATAG_CORE |  |                  
114                 +-----------+  |                  
115                 | ATAG_MEM  |  | increasing ad    
116                 +-----------+  |                  
117                 | ATAG_NONE |  |                  
118                 +-----------+  v                  
119                                                   
120 The tagged list should be stored in system RAM    
121                                                   
122 The tagged list must be placed in a region of     
123 the kernel decompressor nor initrd 'bootp' pro    
124 it.  The recommended placement is in the first    
125                                                   
126 4b. Setup the device tree                         
127 -------------------------                         
128                                                   
129 The boot loader must load a device tree image     
130 at a 64bit aligned address and initialize it w    
131 dtb format is documented at https://www.device    
132 The kernel will look for the dtb magic value o    
133 physical address to determine if a dtb has bee    
134 tagged list.                                      
135                                                   
136 The boot loader must pass at a minimum the siz    
137 system memory, and the root filesystem locatio    
138 placed in a region of memory where the kernel     
139 overwrite it, while remaining within the regio    
140 by the kernel's low-memory mapping.               
141                                                   
142 A safe location is just above the 128MiB bound    
143                                                   
144 5. Load initramfs.                                
145 ------------------                                
146                                                   
147 Existing boot loaders:                            
148         OPTIONAL                                  
149 New boot loaders:                                 
150         OPTIONAL                                  
151                                                   
152 If an initramfs is in use then, as with the dt    
153 a region of memory where the kernel decompress    
154 while also with the region which will be cover    
155 low-memory mapping.                               
156                                                   
157 A safe location is just above the device tree     
158 be loaded just above the 128MiB boundary from     
159 recommended above.                                
160                                                   
161 6. Calling the kernel image                       
162 ---------------------------                       
163                                                   
164 Existing boot loaders:                            
165         MANDATORY                                 
166 New boot loaders:                                 
167         MANDATORY                                 
168                                                   
169 There are two options for calling the kernel z    
170 is stored in flash, and is linked correctly to    
171 then it is legal for the boot loader to call t    
172 directly.                                         
173                                                   
174 The zImage may also be placed in system RAM an    
175 kernel should be placed in the first 128MiB of    
176 that it is loaded above 32MiB in order to avoi    
177 prior to decompression, which will make the bo    
178 faster.                                           
179                                                   
180 When booting a raw (non-zImage) kernel the con    
181 In this case the kernel must be loaded at an o    
182 to TEXT_OFFSET - PAGE_OFFSET.                     
183                                                   
184 In any case, the following conditions must be     
185                                                   
186 - Quiesce all DMA capable devices so that memo    
187   corrupted by bogus network packets or disk d    
188   you many hours of debug.                        
189                                                   
190 - CPU register settings                           
191                                                   
192   - r0 = 0,                                       
193   - r1 = machine type number discovered in (3)    
194   - r2 = physical address of tagged list in sy    
195     physical address of device tree block (dtb    
196                                                   
197 - CPU mode                                        
198                                                   
199   All forms of interrupts must be disabled (IR    
200                                                   
201   For CPUs which do not include the ARM virtua    
202   CPU must be in SVC mode.  (A special excepti    
203                                                   
204   CPUs which include support for the virtualiz    
205   entered in HYP mode in order to enable the k    
206   these extensions.  This is the recommended b    
207   unless the virtualisations are already in us    
208   hypervisor.                                     
209                                                   
210   If the kernel is not entered in HYP mode for    
211   entered in SVC mode.                            
212                                                   
213 - Caches, MMUs                                    
214                                                   
215   The MMU must be off.                            
216                                                   
217   Instruction cache may be on or off.             
218                                                   
219   Data cache must be off.                         
220                                                   
221   If the kernel is entered in HYP mode, the ab    
222   the HYP mode configuration in addition to th    
223   kernel modes) configuration.  In addition, a    
224   hypervisor must be disabled, and PL1 access     
225   peripherals and CPU resources for which this    
226   possible.  Except for entering in HYP mode,     
227   should be such that a kernel which does not     
228   virtualization extensions can boot correctly    
229                                                   
230 - The boot loader is expected to call the kern    
231   directly to the first instruction of the ker    
232                                                   
233   On CPUs supporting the ARM instruction set,     
234   made in ARM state, even for a Thumb-2 kernel    
235                                                   
236   On CPUs supporting only the Thumb instructio    
237   Cortex-M class CPUs, the entry must be made     
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php