aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/zh_CN
diff options
context:
space:
mode:
authorFu Wei <wefu@redhat.com>2016-02-16 03:41:58 -0500
committerJonathan Corbet <corbet@lwn.net>2016-02-17 16:07:02 -0500
commitc06ffe66f720b500491d667fa1c75cf9e6fc2642 (patch)
tree9d9c340eb9e1e514ff71e43520cec4c30ee69fa3 /Documentation/zh_CN
parent5645a717c6ee61e67d38aa9f15cb9db074e1e99d (diff)
Documentation:Update Documentation/zh_CN/arm64/booting.txt
This is a update of Chinese documentation: Documentation/zh_CN/arm64/booting.txt It is based on the modifications of Documentation/arm64/booting.txt in submission: "61bd93ce", "6c020ea8", "9d372c9f", "6d32ab2d". And improve the format of documentation. Signed-off-by: Fu Wei <wefu@redhat.com> Reviewed-by: Weiwei Jia <harryxiyou@gmail.com> Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Diffstat (limited to 'Documentation/zh_CN')
-rw-r--r--Documentation/zh_CN/arm64/booting.txt93
1 files changed, 58 insertions, 35 deletions
diff --git a/Documentation/zh_CN/arm64/booting.txt b/Documentation/zh_CN/arm64/booting.txt
index 7cd36af11e71..1145bf864082 100644
--- a/Documentation/zh_CN/arm64/booting.txt
+++ b/Documentation/zh_CN/arm64/booting.txt
@@ -6,8 +6,9 @@ communicating in English you can also ask the Chinese maintainer for
6help. Contact the Chinese maintainer if this translation is outdated 6help. Contact the Chinese maintainer if this translation is outdated
7or if there is a problem with the translation. 7or if there is a problem with the translation.
8 8
9Maintainer: Will Deacon <will.deacon@arm.com> 9M: Will Deacon <will.deacon@arm.com>
10Chinese maintainer: Fu Wei <wefu@redhat.com> 10zh_CN: Fu Wei <wefu@redhat.com>
11C: 1926e54f115725a9248d0c4c65c22acaf94de4c4
11--------------------------------------------------------------------- 12---------------------------------------------------------------------
12Documentation/arm64/booting.txt 的中文翻译 13Documentation/arm64/booting.txt 的中文翻译
13 14
@@ -15,12 +16,11 @@ Documentation/arm64/booting.txt 的中文翻译
15交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻 16交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻
16译存在问题,请联系中文版维护者。 17译存在问题,请联系中文版维护者。
17 18
18本文翻译提交时的 Git 检出点为: bc465aa9d045feb0e13b4a8f32cc33c1943f62d6
19
20英文版维护者: Will Deacon <will.deacon@arm.com> 19英文版维护者: Will Deacon <will.deacon@arm.com>
21中文版维护者: 傅炜 Fu Wei <wefu@redhat.com> 20中文版维护者: 傅炜 Fu Wei <wefu@redhat.com>
22中文版翻译者: 傅炜 Fu Wei <wefu@redhat.com> 21中文版翻译者: 傅炜 Fu Wei <wefu@redhat.com>
23中文版校译者: 傅炜 Fu Wei <wefu@redhat.com> 22中文版校译者: 傅炜 Fu Wei <wefu@redhat.com>
23本文翻译提交时的 Git 检出点为: 1926e54f115725a9248d0c4c65c22acaf94de4c4
24 24
25以下为正文 25以下为正文
26--------------------------------------------------------------------- 26---------------------------------------------------------------------
@@ -33,9 +33,9 @@ Documentation/arm64/booting.txt 的中文翻译
33本文档基于 Russell King 的 ARM 启动文档,且适用于所有公开发布的 33本文档基于 Russell King 的 ARM 启动文档,且适用于所有公开发布的
34AArch64 Linux 内核代码。 34AArch64 Linux 内核代码。
35 35
36AArch64 异常模型由多个异常级(EL0 - EL3)组成,对于 EL0 和 EL1 36AArch64 异常模型由多个异常级(EL0 - EL3)组成,对于 EL0 和 EL1 异常级
37异常级有对应的安全和非安全模式。EL2 是系统管理级,且仅存在于 37有对应的安全和非安全模式。EL2 是系统管理级,且仅存在于非安全模式下。
38非安全模式下。EL3 是最高特权级,且仅存在于安全模式下。 38EL3 是最高特权级,且仅存在于安全模式下。
39 39
40基于本文档的目的,我们将简单地使用‘引导装载程序’(‘boot loader’) 40基于本文档的目的,我们将简单地使用‘引导装载程序’(‘boot loader’)
41这个术语来定义在将控制权交给 Linux 内核前 CPU 上执行的所有软件。 41这个术语来定义在将控制权交给 Linux 内核前 CPU 上执行的所有软件。
@@ -56,9 +56,9 @@ AArch64 异常模型由多个异常级别(EL0 - EL3)组成,对于 EL0 和
56必要性: 强制 56必要性: 强制
57 57
58引导装载程序应该找到并初始化系统中所有内核用于保持系统变量数据的 RAM。 58引导装载程序应该找到并初始化系统中所有内核用于保持系统变量数据的 RAM。
59这个操作的执行设备。(它可能使用内部算法来自动定位和计算所有 59这个操作的执行式因设备。(它可能使用内部算法来自动定位和计算所有
60RAM,或可能使用对这个设备已知的 RAM 信息,还可能使用任何引导装载程序 60RAM,或可能使用对这个设备已知的 RAM 信息,还可能引导装载程序设计者
61设计者想到的方法。) 61想到的任何方法。)
62 62
63 63
642、设置设备树数据 642、设置设备树数据
@@ -66,10 +66,12 @@ RAM,或可能使用对这个设备已知的 RAM 信息,还可能使用任何
66 66
67必要性: 强制 67必要性: 强制
68 68
69设备树数据块(dtb)必须 8 字节对齐,于从内算起第 512MB 69设备树数据块(dtb)必须 8 字节对齐,能超过 2MB。由于设备树
70内,且跨越 2MB 齐边界。这使通过始页中的 70使能缓的情 2MB 粒
71映射此数据 71特定属的 2MB 域内
72 72
73注: v4.2 之前的版本同时要求设备树数据块被置于从内核映像以下
74text_offset 字节处算起第一个 512MB 内。
73 75
743、解压内核映像 763、解压内核映像
75------------- 77-------------
@@ -78,7 +80,7 @@ RAM,或可能使用对这个设备已知的 RAM 信息,还可能使用任何
78 80
79AArch64 内核当前没有提供自解压代码,因此如果使用了压缩内核映像文件 81AArch64 内核当前没有提供自解压代码,因此如果使用了压缩内核映像文件
80(比如 Image.gz),则需要通过引导装载程序(使用 gzip 等)来进行解压。 82(比如 Image.gz),则需要通过引导装载程序(使用 gzip 等)来进行解压。
81若引导装载程序没有实现这个需求,就要使用非压缩内核映像文件。 83若引导装载程序没有实现这个功能,就要使用非压缩内核映像文件。
82 84
83 85
844、调用内核映像 864、调用内核映像
@@ -97,7 +99,7 @@ AArch64 内核当前没有提供自解压代码,因此如果使用了压缩内
97 u64 res3 = 0; /* 保留 */ 99 u64 res3 = 0; /* 保留 */
98 u64 res4 = 0; /* 保留 */ 100 u64 res4 = 0; /* 保留 */
99 u32 magic = 0x644d5241; /* 魔数, 小端, "ARM\x64" */ 101 u32 magic = 0x644d5241; /* 魔数, 小端, "ARM\x64" */
100 u32 res5; /* 保留 (用于 PE COFF 偏移) */ 102 u32 res5; /* 保留 (用于 PE COFF 偏移) */
101 103
102 104
103映像头注释: 105映像头注释:
@@ -107,26 +109,36 @@ AArch64 内核当前没有提供自解压代码,因此如果使用了压缩内
107- code0/code1 负责跳转到 stext. 109- code0/code1 负责跳转到 stext.
108 110
109- 当通过 EFI 启动时, 最初 code0/code1 被跳过。 111- 当通过 EFI 启动时, 最初 code0/code1 被跳过。
110 res5 是到 PE 文件头的偏移,而 PE 文件头含有 EFI 的启动入口点 (efi_stub_entry)。 112 res5 是到 PE 文件头的偏移,而 PE 文件头含有 EFI 的启动入口点
111 当 stub 代码完成了它的使命,它会跳转到 code0 继续正常的启动流程。 113 (efi_stub_entry)。当 stub 代码完成了它的使命,它会跳转到 code0
114 继续正常的启动流程。
112 115
113- v3.17 之前,未明确指定 text_offset 的字节序。此时,image_size 为零, 116- v3.17 之前,未明确指定 text_offset 的字节序。此时,image_size 为零,
114 且 text_offset 依照内核字节序为 0x80000。 117 且 text_offset 依照内核字节序为 0x80000。
115 当 image_size 非零,text_offset 为小端模式且是有效值,应被引导加载程序使用。 118 当 image_size 非零,text_offset 为小端模式且是有效值,应被引导加载
116 当 image_size 为零,text_offset 可假定为 0x80000。 119 用。 image_size 为零,text_offset 可假定为 0x80000。
117 120
118- flags 域 (v3.17 引入) 为 64 位小端模式,其编码如下: 121- flags 域 (v3.17 引入) 为 64 位小端模式,其编码如下:
119 位 0: 内核字节序。 1 表示大端模式,0 表示小端模式。 122 位 0: 内核字节序。 1 表示大端模式,0 表示小端模式。
120 位 1-63: 保留。 123 位 1-2: 内核页大小。
121 124 0 - 未指定。
122- 当 image_size 为零时,引导装载程序应该试图在内核映像末尾之后尽可能多地保留空闲内存 125 1 - 4K
123 供内核直接使用。对内存空间的需求量因所选定的内核特性而异, 且无实际限制。 126 2 - 16K
124 127 3 - 64K
125内核映像必须被放置在靠近可用系统内存起始的 2MB 对齐为基址的 text_offset 字节处,并从那里被调用。 128 位 3-63: 保留。
126当前,对 Linux 来说在此基址以下的内存是无法使用的,因此强烈建议将系统内存的起始作为这个基址。 129
127从映像起始地址算起,最少必须为内核释放出 image_size 字节的空间。 130- 当 image_size 为零时,引导装载程序应试图在内核映像末尾之后尽可能
128 131 多地保留空闲内存供内核直接使用。对内存空间的需求量因所选定的内核
129任何提供给内核的内存(甚至在 2MB 对齐的基地址之前),若未从内核中标记为保留 132 特性而异, 并无实际限制。
133
134内核映像必须被放置在靠近可用系统内存起始的 2MB 对齐为基址的
135text_offset 字节处,并从该处被调用。当前,对 Linux 来说在此基址以下的
136内存是无法使用的,因此强烈建议将系统内存的起始作为这个基址。2MB 对齐
137基址和内核映像起始地址之间的区域对于内核来说没有特殊意义,且可能被
138用于其他目的。
139从映像起始地址算起,最少必须准备 image_size 字节的空闲内存供内核使用。
140
141任何提供给内核的内存(甚至在映像起始地址之前),若未从内核中标记为保留
130(如在设备树(dtb)的 memreserve 区域),都将被认为对内核是可用。 142(如在设备树(dtb)的 memreserve 区域),都将被认为对内核是可用。
131 143
132在跳转入内核前,必须符合以下状态: 144在跳转入内核前,必须符合以下状态:
@@ -147,13 +159,16 @@ AArch64 内核当前没有提供自解压代码,因此如果使用了压缩内
147 159
148- 高速缓存、MMU 160- 高速缓存、MMU
149 MMU 必须关闭。 161 MMU 必须关闭。
150 指令缓存开启或关闭 162 指令缓存开启或关闭可。
151 已载入的内核映像的相应内存区必须被清理,以达到缓存一致性点(PoC)。 163 已载入的内核映像的相应内存区必须被清理,以达到缓存一致性点(PoC)。
152 当存在系统缓存或其他使能缓存的一致性主控器时,通常需使用虚拟地址维护其缓存,而非 set/way 操作。 164 当存在系统缓存或其他使能缓存的一致性主控器时,通常需使用虚拟地址
165 维护其缓存,而非 set/way 操作。
153 遵从通过虚拟地址操作维护构架缓存的系统缓存必须被配置,并可以被使能。 166 遵从通过虚拟地址操作维护构架缓存的系统缓存必须被配置,并可以被使能。
154 而不通过虚拟地址操作维护构架缓存的系统缓存(不推荐),必须被配置且禁用。 167 而不通过虚拟地址操作维护构架缓存的系统缓存(不推荐),必须被配置且
168 禁用。
155 169
156 *译者注:对于 PoC 以及缓存相关内容,请参考 ARMv8 构架参考手册 ARM DDI 0487A 170 *译者注:对于 PoC 以及缓存相关内容,请参考 ARMv8 构架参考手册
171 ARM DDI 0487A
157 172
158- 架构计时器 173- 架构计时器
159 CNTFRQ 必须设定为计时器的频率,且 CNTVOFF 必须设定为对所有 CPU 174 CNTFRQ 必须设定为计时器的频率,且 CNTVOFF 必须设定为对所有 CPU
@@ -169,13 +184,21 @@ AArch64 内核当前没有提供自解压代码,因此如果使用了压缩内
169 在进入内核映像的异常级中,所有构架中可写的系统寄存器必须通过软件 184 在进入内核映像的异常级中,所有构架中可写的系统寄存器必须通过软件
170 在一个更高的异常级别下初始化,以防止在 未知 状态下运行。 185 在一个更高的异常级别下初始化,以防止在 未知 状态下运行。
171 186
172 对于拥有 GICv3 中断控制器的系统: 187 对于拥有 GICv3 中断控制器并以 v3 模式运行的系统:
173 - EL3 : 188 - EL3 存在
174 ICC_SRE_EL3.Enable (位 3) 必须初始化为 0b1。 189 ICC_SRE_EL3.Enable (位 3) 必须初始化为 0b1。
175 ICC_SRE_EL3.SRE (位 0) 必须初始化为 0b1。 190 ICC_SRE_EL3.SRE (位 0) 必须初始化为 0b1。
176 - 若内核运行在 EL1: 191 - 若内核运行在 EL1:
177 ICC_SRE_EL2.Enable (位 3) 必须初始化为 0b1。 192 ICC_SRE_EL2.Enable (位 3) 必须初始化为 0b1。
178 ICC_SRE_EL2.SRE (位 0) 必须初始化为 0b1。 193 ICC_SRE_EL2.SRE (位 0) 必须初始化为 0b1。
194 - 设备树(DT)或 ACPI 表必须描述一个 GICv3 中断控制器。
195
196 对于拥有 GICv3 中断控制器并以兼容(v2)模式运行的系统:
197 - 如果 EL3 存在:
198 ICC_SRE_EL3.SRE (位 0) 必须初始化为 0b0。
199 - 若内核运行在 EL1:
200 ICC_SRE_EL2.SRE (位 0) 必须初始化为 0b0。
201 - 设备树(DT)或 ACPI 表必须描述一个 GICv2 中断控制器。
179 202
180以上对于 CPU 模式、高速缓存、MMU、架构计时器、一致性、系统寄存器的 203以上对于 CPU 模式、高速缓存、MMU、架构计时器、一致性、系统寄存器的
181必要条件描述适用于所有 CPU。所有 CPU 必须在同一异常级别跳入内核。 204必要条件描述适用于所有 CPU。所有 CPU 必须在同一异常级别跳入内核。