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

TOMOYO Linux Cross Reference
Linux/Documentation/translations/zh_CN/arch/arm64/booting.txt

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/translations/zh_CN/arch/arm64/booting.txt (Architecture i386) and /Documentation/translations/zh_CN/arch/m68k/booting.txt (Architecture m68k)


  1 Chinese translated version of Documentation/ar    
  2                                                   
  3 If you have any comment or update to the conte    
  4 original document maintainer directly.  Howeve    
  5 communicating in English you can also ask the     
  6 help.  Contact the Chinese maintainer if this     
  7 or if there is a problem with the translation.    
  8                                                   
  9 M:      Will Deacon <will.deacon@arm.com>          
 10 zh_CN:  Fu Wei <wefu@redhat.com>                   
 11 C:      55f058e7574c3615dea4615573a19bdb258696    
 12 ----------------------------------------------    
 13 Documentation/arch/arm64/booting.rst 的中文    
 14                                                   
 15 如果想评论或更新本文的内容,请    
 16 交流有困难的话,也可以向中文版    
 17 译存在问题,请联系中文版维护者    
 18                                                   
 19 英文版维护者: Will Deacon <will.deacon@    
 20 中文版维护者: 傅炜  Fu Wei <wefu@redh    
 21 中文版翻译者: 傅炜  Fu Wei <wefu@redh    
 22 中文版校译者: 傅炜  Fu Wei <wefu@redh    
 23 本文翻译提交时的 Git 检出点为: 5    
 24                                                   
 25 以下为正文                                   
 26 ----------------------------------------------    
 27                         启动 AArch64 Linux      
 28                         ==================        
 29                                                   
 30 作者: Will Deacon <will.deacon@arm.com>          
 31 日期: 2012 年 09 月 07 日                    
 32                                                   
 33 本文档基于 Russell King 的 ARM 启动文    
 34 AArch64 Linux 内核代码。                     
 35                                                   
 36 AArch64 异常模型由多个异常级(EL0 -    
 37 有对应的安全和非安全模式。EL2 是    
 38 EL3 是最高特权级,且仅存在于安全    
 39                                                   
 40 基于本文档的目的,我们将简单地    
 41 这个术语来定义在将控制权交给 Lin    
 42 这可能包含安全监控和系统管理代    
 43 环境的指令。                                
 44                                                   
 45 基本上,引导装载程序(至少)应    
 46                                                   
 47 1、设置和初始化 RAM                        
 48 2、设置设备树数据                         
 49 3、解压内核映像                            
 50 4、调用内核映像                            
 51                                                   
 52                                                   
 53 1、设置和初始化 RAM                        
 54 -----------------                                 
 55                                                   
 56 必要性: 强制                                 
 57                                                   
 58 引导装载程序应该找到并初始化系    
 59 这个操作的执行方式因设备而异。    
 60 RAM,或可能使用对这个设备已知的     
 61 想到的任何合适的方法。)              
 62                                                   
 63                                                   
 64 2、设置设备树数据                         
 65 ---------------                                   
 66                                                   
 67 必要性: 强制                                 
 68                                                   
 69 设备树数据块(dtb)必须 8 字节对    
 70 数据块将在使能缓存的情况下以 2MB    
 71 属性映射的2M区域内。                     
 72                                                   
 73 注: v4.2 之前的版本同时要求设备    
 74 text_offset 字节处算起第一个 512MB 内    
 75                                                   
 76 3、解压内核映像                            
 77 -------------                                     
 78                                                   
 79 必要性: 可选                                 
 80                                                   
 81 AArch64 内核当前没有提供自解压代    
 82 (比如 Image.gz),则需要通过引导    
 83 若引导装载程序没有实现这个功能    
 84                                                   
 85                                                   
 86 4、调用内核映像                            
 87 -------------                                     
 88                                                   
 89 必要性: 强制                                 
 90                                                   
 91 已解压的内核映像包含一个 64 字节    
 92                                                   
 93   u32 code0;                    /* 可执行    
 94   u32 code1;                    /* 可执行    
 95   u64 text_offset;              /* 映像装    
 96   u64 image_size;               /* 映像实    
 97   u64 flags;                    /* 内核旗    
 98   u64 res2      = 0;            /* 保留 */      
 99   u64 res3      = 0;            /* 保留 */      
100   u64 res4      = 0;            /* 保留 */      
101   u32 magic     = 0x644d5241;   /* 魔数, 小    
102   u32 res5;                     /* 保留 (    
103                                                   
104                                                   
105 映像头注释:                                
106                                                   
107 - 自 v3.17 起,除非另有说明,所有    
108                                                   
109 - code0/code1 负责跳转到 stext.              
110                                                   
111 - 当通过 EFI 启动时, 最初 code0/code    
112   res5 是到 PE 文件头的偏移,而 PE     
113   (efi_stub_entry)。当 stub 代码完成    
114   继续正常的启动流程。                  
115                                                   
116 - v3.17 之前,未明确指定 text_offset     
117   且 text_offset 依照内核字节序为 0x8    
118   当 image_size 非零,text_offset 为小    
119   程序使用。当 image_size 为零,text_    
120                                                   
121 - flags 域 (v3.17 引入) 为 64 位小端模    
122   位 0:        内核字节序。 1 表示大    
123   位 1-2:      内核页大小。                
124                         0 - 未指定。          
125                         1 - 4K                    
126                         2 - 16K                   
127                         3 - 64K                   
128   位 3:                内核物理位置        
129                         0 - 2MB 对齐基址    
130                             其基址以下的    
131                         1 - 2MB 对齐基址    
132   位 4-63:     保留。                         
133                                                   
134 - 当 image_size 为零时,引导装载程    
135   多地保留空闲内存供内核直接使    
136   特性而异, 并无实际限制。             
137                                                   
138 内核映像必须被放置在任意一个可    
139 字节处,并从该处被调用。2MB 对齐    
140 内核来说没有特殊意义,且可能被    
141 从映像起始地址算起,最少必须准    
142 注: v4.6 之前的版本无法使用内核    
143 将映像尽量放置在靠近系统内存起    
144                                                   
145 任何提供给内核的内存(甚至在映    
146 (如在设备树(dtb)的 memreserve 区域    
147                                                   
148 在跳转入内核前,必须符合以下状    
149                                                   
150 - 停止所有 DMA 设备,这样内存数据    
151   被破坏。这可能可以节省你许多    
152                                                   
153 - 主 CPU 通用寄存器设置                   
154   x0 = 系统 RAM 中设备树数据块(dtb    
155   x1 = 0 (保留,将来可能使用)            
156   x2 = 0 (保留,将来可能使用)            
157   x3 = 0 (保留,将来可能使用)            
158                                                   
159 - CPU 模式                                      
160   所有形式的中断必须在 PSTATE.DAIF     
161   和 FIQ)。                                   
162   CPU 必须处于 EL2(推荐,可访问虚    
163                                                   
164 - 高速缓存、MMU                              
165   MMU 必须关闭。                             
166   指令缓存开启或关闭皆可。            
167   已载入的内核映像的相应内存区    
168   当存在系统缓存或其他使能缓存    
169   维护其缓存,而非 set/way 操作。      
170   遵从通过虚拟地址操作维护构架    
171   而不通过虚拟地址操作维护构架    
172   禁用。                                       
173                                                   
174   *译者注:对于 PoC 以及缓存相关    
175    ARM DDI 0487A                                  
176                                                   
177 - 架构计时器                                 
178   CNTFRQ 必须设定为计时器的频率,    
179   都一致的值。如果在 EL1 模式下进    
180   EL1PCTEN (bit 0) 必须置位。                
181                                                   
182 - 一致性                                       
183   通过内核启动的所有 CPU 在内核入    
184   这可能要根据具体实现来定义初    
185   接收。                                       
186                                                   
187 - 系统寄存器                                 
188   在进入内核映像的异常级中,所    
189   在一个更高的异常级别下初始化    
190                                                   
191   对于拥有 GICv3 中断控制器并以 v3     
192   - 如果 EL3 存在:                          
193     ICC_SRE_EL3.Enable (位 3) 必须初始化    
194     ICC_SRE_EL3.SRE (位 0) 必须初始化为    
195   - 若内核运行在 EL1:                     
196     ICC_SRE_EL2.Enable (位 3) 必须初始化    
197     ICC_SRE_EL2.SRE (位 0) 必须初始化为    
198   - 设备树(DT)或 ACPI 表必须描述    
199                                                   
200   对于拥有 GICv3 中断控制器并以兼    
201   - 如果 EL3 存在:                          
202     ICC_SRE_EL3.SRE (位 0) 必须初始化为    
203   - 若内核运行在 EL1:                     
204     ICC_SRE_EL2.SRE (位 0) 必须初始化为    
205   - 设备树(DT)或 ACPI 表必须描述    
206                                                   
207 以上对于 CPU 模式、高速缓存、MMU    
208 必要条件描述适用于所有 CPU。所有    
209                                                   
210 引导装载程序必须在每个 CPU 处于    
211                                                   
212 - 主 CPU 必须直接跳入内核映像的第    
213   数据块必须在每个 CPU 节点中包含    
214   支持的 enable-method 请见下文。         
215                                                   
216   引导装载程序必须生成这些设备    
217   数据块。                                    
218                                                   
219 - enable-method 为 “spin-table” 的 CPU     
220   节点中包含一个 ‘cpu-release-addr’    
221   64 位自然对齐且初始化为零的内    
222                                                   
223   这些 CPU 必须在内存保留区(通过    
224   给内核)中自旋于内核之外,轮    
225   包含在保留区中)。可通过插入 w    
226   发出 sev 指令。当对 cpu-release-addr     
227   时,CPU 必须跳入此值所指向的地    
228   因此 CPU 须在跳转前将所读取的值    
229                                                   
230 - enable-method 为 “psci” 的 CPU 保持    
231   memory 节点中描述为内核空间的内    
232   域中描述为内核保留区的空间中    
233   ARM DEN 0022A:用于 ARM 上的电源状    
234   CPU_ON 调用来将 CPU 带入内核。         
235                                                   
236   *译者注: ARM DEN 0022A 已更新到 ARM D    
237                                                   
238   设备树必须包含一个 ‘psci’ 节    
239   Documentation/devicetree/bindings/arm/psci.y    
240                                                   
241                                                   
242 - 辅助 CPU 通用寄存器设置                
243   x0 = 0 (保留,将来可能使用)            
244   x1 = 0 (保留,将来可能使用)            
245   x2 = 0 (保留,将来可能使用)            
246   x3 = 0 (保留,将来可能使用)            
                                                      

~ [ 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