Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'docs-for-linus' of git://git.lwn.net/linux

Pul documentation update from Jon Corbet:
"Another relatively boring cycle for the docs tree: typo fixes,
translation updates, etc"

* tag 'docs-for-linus' of git://git.lwn.net/linux:
modsign: Fix documentation on module signing enforcement parameter.
Doc: nfs: Fix typos in Documentation/filesystems/nfs
Documentation: kselftest: Remove duplicate word
doc: fix grammar
Documentation: Howto: Fixed subtitles style
Doc: ARM: Fix a typo in clksrc-change-registers.awk
Documentation/ko_KR: update maintainer information
Documentation: Fix int/unsigned int comparison
Documentation: Chinese translation of arm64/silicon-errata.txt
Documentation:Update Documentation/zh_CN/arm64/booting.txt
Documentation: HOWTO: remove obsolete info about regression postings
Doc: ja_JP: Fix a typo in HOWTO
Doc: i2c: Fix typo in Documentation/i2c
Doc: DocBook: Fix a typo in device-drivers.tmpl
Remove "arch" usage in Documentation/features/list-arch.sh
README: cosmetic fixes
Documentation/CodingStyle: add space before parenthesis in example macro
SubmittingPatches: fix spelling of "git send-email"

+176 -83
+1 -1
Documentation/CodingStyle
··· 640 640 do { \ 641 641 if (blah(x) < 0) \ 642 642 return -EBUGGERED; \ 643 - } while(0) 643 + } while (0) 644 644 645 645 is a _very_ bad idea. It looks like a function call but exits the "calling" 646 646 function; don't break the internal parsers of those who will read the code.
+1 -1
Documentation/DocBook/device-drivers.tmpl
··· 369 369 !Iinclude/linux/input-polldev.h 370 370 !Edrivers/input/input-polldev.c 371 371 </sect1> 372 - <sect1><title>Matrix keyboars/keypads</title> 372 + <sect1><title>Matrix keyboards/keypads</title> 373 373 !Iinclude/linux/input/matrix_keypad.h 374 374 </sect1> 375 375 <sect1><title>Sparse keymap support</title>
+5 -10
Documentation/HOWTO
··· 68 68 69 69 70 70 Documentation 71 - ------------ 71 + ------------- 72 72 73 73 The Linux kernel source tree has a large range of documents that are 74 74 invaluable for learning how to interact with the kernel community. When ··· 187 187 If you do not know where you want to start, but you want to look for 188 188 some task to start doing to join into the kernel development community, 189 189 go to the Linux Kernel Janitor's project: 190 - http://kernelnewbies.org/KernelJanitors 190 + http://kernelnewbies.org/KernelJanitors 191 191 It is a great place to start. It describes a list of relatively simple 192 192 problems that need to be cleaned up and fixed within the Linux kernel 193 193 source tree. Working with the developers in charge of this project, you ··· 250 250 release a new -rc kernel every week. 251 251 - Process continues until the kernel is considered "ready", the 252 252 process should last around 6 weeks. 253 - - Known regressions in each release are periodically posted to the 254 - linux-kernel mailing list. The goal is to reduce the length of 255 - that list to zero before declaring the kernel to be "ready," but, in 256 - the real world, a small number of regressions often remain at 257 - release time. 258 253 259 254 It is worth mentioning what Andrew Morton wrote on the linux-kernel 260 255 mailing list about kernel releases: ··· 258 263 preconceived timeline." 259 264 260 265 4.x.y -stable kernel tree 261 - --------------------------- 266 + ------------------------- 262 267 Kernels with 3-part versions are -stable kernels. They contain 263 268 relatively small and critical fixes for security problems or significant 264 269 regressions discovered in a given 4.x kernel. ··· 281 286 how the release process works. 282 287 283 288 4.x -git patches 284 - ------------------ 289 + ---------------- 285 290 These are daily snapshots of Linus' kernel tree which are managed in a 286 291 git repository (hence the name.) These patches are usually released 287 292 daily and represent the current state of Linus' tree. They are more ··· 313 318 http://patchwork.kernel.org/. 314 319 315 320 4.x -next kernel tree for integration tests 316 - --------------------------------------------- 321 + ------------------------------------------- 317 322 Before updates from subsystem trees are merged into the mainline 4.x 318 323 tree, they need to be integration-tested. For this purpose, a special 319 324 testing repository exists into which virtually all subsystem trees are
+1 -1
Documentation/SubmittingPatches
··· 722 722 -------------------------------- 723 723 724 724 It can be helpful to manually add In-Reply-To: headers to a patch 725 - (e.g., when using "git send email") to associate the patch with 725 + (e.g., when using "git send-email") to associate the patch with 726 726 previous relevant discussion, e.g. to link a bug fix to the email with 727 727 the bug report. However, for a multi-patch series, it is generally 728 728 best to avoid using In-Reply-To: to link to older versions of the
+1 -1
Documentation/arm/Samsung/clksrc-change-registers.awk
··· 41 41 else if (f ~ /0xf/) 42 42 return 4 43 43 44 - printf "unknown legnth " f "\n" > "/dev/stderr" 44 + printf "unknown length " f "\n" > "/dev/stderr" 45 45 exit 46 46 } 47 47
+1 -1
Documentation/features/list-arch.sh
··· 5 5 # (If no arguments are given then it will print the host architecture's status.) 6 6 # 7 7 8 - ARCH=${1:-$(arch | sed 's/x86_64/x86/' | sed 's/i386/x86/')} 8 + ARCH=${1:-$(uname -m | sed 's/x86_64/x86/' | sed 's/i386/x86/')} 9 9 10 10 cd $(dirname $0) 11 11 echo "#"
+2 -2
Documentation/filesystems/nfs/fault_injection.txt
··· 49 49 forget_delegations: 50 50 A delegation is used to assure the client that a file, or part of a file, 51 51 has not changed since the delegation was awarded. Clearing this list will 52 - force the client to reaquire its delegation before accessing the file 52 + force the client to reacquire its delegation before accessing the file 53 53 again. 54 54 55 55 recall_delegations: 56 56 Delegations can be recalled by the server when another client attempts to 57 57 access a file. This test will notify the client that its delegation has 58 - been revoked, forcing the client to reaquire the delegation before using 58 + been revoked, forcing the client to reacquire the delegation before using 59 59 the file again. 60 60 61 61
+1 -1
Documentation/filesystems/nfs/nfs-rdma.txt
··· 218 218 /vol0 192.168.0.0/255.255.255.0(fsid=0,rw,async,insecure,no_root_squash) 219 219 220 220 The IP address(es) is(are) the client's IPoIB address for an InfiniBand 221 - HCA or the cleint's iWARP address(es) for an RNIC. 221 + HCA or the client's iWARP address(es) for an RNIC. 222 222 223 223 NOTE: The "insecure" option must be used because the NFS/RDMA client does 224 224 not use a reserved port.
+1 -1
Documentation/filesystems/nfs/nfsroot.txt
··· 166 166 Value gets exported by /proc/net/pnp which is often linked 167 167 on embedded systems by /etc/resolv.conf. 168 168 169 - <dns1-ip> IP address of secound nameserver. 169 + <dns1-ip> IP address of second nameserver. 170 170 Same as above. 171 171 172 172
+3 -3
Documentation/filesystems/nfs/pnfs.txt
··· 64 64 different layout types. 65 65 66 66 Files-layout-driver code is in: fs/nfs/filelayout/.. directory 67 - Objects-layout-deriver code is in: fs/nfs/objlayout/.. directory 68 - Blocks-layout-deriver code is in: fs/nfs/blocklayout/.. directory 67 + Objects-layout-driver code is in: fs/nfs/objlayout/.. directory 68 + Blocks-layout-driver code is in: fs/nfs/blocklayout/.. directory 69 69 Flexfiles-layout-driver code is in: fs/nfs/flexfilelayout/.. directory 70 70 71 71 objects-layout setup ··· 91 91 Usage: $0 -u <URI> -o <OSDNAME> -s <SYSTEMID> 92 92 Options: 93 93 -u target uri e.g. iscsi://<ip>:<port> 94 - (allways exists) 94 + (always exists) 95 95 (More protocols can be defined in the future. 96 96 The client does not interpret this string it is 97 97 passed unchanged as received from the Server)
+1 -1
Documentation/filesystems/nfs/rpc-server-gss.txt
··· 57 57 order to perform context establishment. 58 58 59 59 B) It does not properly handle creds where the user is member of more 60 - than a few housand groups (the current hard limit in the kernel is 65K 60 + than a few thousand groups (the current hard limit in the kernel is 65K 61 61 groups) due to limitation on the size of the buffer that can be send 62 62 back to the kernel (4KiB). 63 63
+4 -4
Documentation/filesystems/sharedsubtree.txt
··· 123 123 124 124 2d) A unbindable mount is a unbindable private mount 125 125 126 - let's say we have a mount at /mnt and we make is unbindable 126 + let's say we have a mount at /mnt and we make it unbindable 127 127 128 128 # mount --make-unbindable /mnt 129 129 ··· 197 197 namespaces are made first class objects with user API to 198 198 associate/disassociate a namespace with userid, then each user 199 199 could have his/her own namespace and tailor it to his/her 200 - requirements. Offcourse its needs support from PAM. 200 + requirements. This needs to be supported in PAM. 201 201 202 202 D) Versioned files 203 203 204 204 If the entire mount tree is visible at multiple locations, then 205 - a underlying versioning file system can return different 206 - version of the file depending on the path used to access that 205 + an underlying versioning file system can return different 206 + versions of the file depending on the path used to access that 207 207 file. 208 208 209 209 An example is:
+1 -1
Documentation/i2c/dev-interface
··· 4 4 5 5 Each registered i2c adapter gets a number, counting from 0. You can 6 6 examine /sys/class/i2c-dev/ to see what number corresponds to which adapter. 7 - Alternatively, you can run "i2cdetect -l" to obtain a formated list of all 7 + Alternatively, you can run "i2cdetect -l" to obtain a formatted list of all 8 8 i2c adapters present on your system at a given time. i2cdetect is part of 9 9 the i2c-tools package. 10 10
+2 -2
Documentation/i2c/slave-eeprom-backend
··· 7 7 I2C bus. The memory contents can be modified from userspace via this file 8 8 located in sysfs: 9 9 10 - /sys/bus/i2c/devices/<device-direcory>/slave-eeprom 10 + /sys/bus/i2c/devices/<device-directory>/slave-eeprom 11 11 12 12 As of 2015, Linux doesn't support poll on binary sysfs files, so there is no 13 - notfication when another master changed the content. 13 + notification when another master changed the content. 14 14
+1 -1
Documentation/ja_JP/HOWTO
··· 440 440 てこの状態を変えようとしないように。人々はそのようなことは好みません。 441 441 442 442 今までのメールでのやりとりとその間のあなたの発言はそのまま残し、 443 - "John Kernlehacker wrote ...:" の行をあなたのリプライの先頭行にして、 443 + "John Kernelhacker wrote ...:" の行をあなたのリプライの先頭行にして、 444 444 メールの先頭でなく、各引用行の間にあなたの言いたいことを追加するべきで 445 445 す。 446 446
+2 -2
Documentation/ko_KR/HOWTO
··· 1 1 NOTE: 2 2 This is a version of Documentation/HOWTO translated into korean 3 - This document is maintained by minchan Kim <minchan.kim@gmail.com> 3 + This document is maintained by Minchan Kim <minchan@kernel.org> 4 4 If you find any difference between this document and the original file or 5 5 a problem with the translation, please contact the maintainer of this file. 6 6 ··· 14 14 Documentation/HOWTO 15 15 의 한글 번역입니다. 16 16 17 - 역자: 김민찬 <minchan.kim@gmail.com> 17 + 역자: 김민찬 <minchan@kernel.org> 18 18 감수: 이제이미 <jamee.lee@samsung.com> 19 19 ================================== 20 20
+2 -2
Documentation/ko_KR/stable_api_nonsense.txt
··· 1 1 NOTE: 2 2 This is a version of Documentation/stable_api_nonsense.txt translated 3 3 into korean 4 - This document is maintained by barrios <minchan.kim@gmail.com> 4 + This document is maintained by Minchan Kim <minchan@kernel.org> 5 5 If you find any difference between this document and the original file or 6 6 a problem with the translation, please contact the maintainer of this file. 7 7 ··· 15 15 Documentation/stable_api_nonsense.txt 16 16 의 한글 번역입니다. 17 17 18 - 역자: 김민찬 <minchan.kim@gmail.com> 18 + 역자: 김민찬 <minchan@kernel.org> 19 19 감수: 이제이미 <jamee.lee@samsung.com> 20 20 ================================== 21 21
+1 -1
Documentation/kselftest.txt
··· 73 73 Contributing new tests 74 74 ====================== 75 75 76 - In general, the rules for for selftests are 76 + In general, the rules for selftests are 77 77 78 78 * Do as much as you can if you're not root; 79 79
+2 -2
Documentation/mic/mpssd/mpssd.c
··· 349 349 sum_iovec_len(struct mic_copy_desc *copy) 350 350 { 351 351 ssize_t sum = 0; 352 - int i; 352 + unsigned int i; 353 353 354 354 for (i = 0; i < copy->iovcnt; i++) 355 355 sum += copy->iov[i].iov_len; ··· 372 372 disp_iovec(struct mic_info *mic, struct mic_copy_desc *copy, 373 373 const char *s, int line) 374 374 { 375 - int i; 375 + unsigned int i; 376 376 377 377 for (i = 0; i < copy->iovcnt; i++) 378 378 mpsslog("%s %s %d copy->iov[%d] addr %p len 0x%zx\n",
+1 -1
Documentation/module-signing.txt
··· 254 254 NON-VALID SIGNATURES AND UNSIGNED MODULES 255 255 ========================================= 256 256 257 - If CONFIG_MODULE_SIG_FORCE is enabled or enforcemodulesig=1 is supplied on 257 + If CONFIG_MODULE_SIG_FORCE is enabled or module.sig_enforce=1 is supplied on 258 258 the kernel command line, the kernel will only load validly signed modules 259 259 for which it has a public key. Otherwise, it will also load modules that are 260 260 unsigned. Any module for which the kernel has a key, but which proves to have
+1 -1
Documentation/prctl/disable-tsc-ctxt-sw-stress-test.c
··· 74 74 } 75 75 76 76 77 - int main(int argc, char **argv) 77 + int main(void) 78 78 { 79 79 int n_tasks = 100, i; 80 80
+1 -1
Documentation/prctl/disable-tsc-on-off-stress-test.c
··· 78 78 } 79 79 80 80 81 - int main(int argc, char **argv) 81 + int main(void) 82 82 { 83 83 int n_tasks = 100, i; 84 84
+1 -1
Documentation/prctl/disable-tsc-test.c
··· 57 57 printf("rdtsc() == "); 58 58 } 59 59 60 - int main(int argc, char **argv) 60 + int main(void) 61 61 { 62 62 int tsc_val = 0; 63 63
+2 -1
Documentation/ptp/testptp.c
··· 160 160 161 161 162 162 char *progname; 163 - int i, c, cnt, fd; 163 + unsigned int i; 164 + int c, cnt, fd; 164 165 165 166 char *device = DEVICE; 166 167 clockid_t clkid;
+1 -1
Documentation/timers/hpet_example.c
··· 49 49 int 50 50 main(int argc, const char ** argv) 51 51 { 52 - int i; 52 + unsigned int i; 53 53 54 54 argc--; 55 55 argv++;
+55 -32
Documentation/zh_CN/arm64/booting.txt
··· 6 6 help. Contact the Chinese maintainer if this translation is outdated 7 7 or if there is a problem with the translation. 8 8 9 - Maintainer: Will Deacon <will.deacon@arm.com> 10 - Chinese maintainer: Fu Wei <wefu@redhat.com> 9 + M: Will Deacon <will.deacon@arm.com> 10 + zh_CN: Fu Wei <wefu@redhat.com> 11 + C: 1926e54f115725a9248d0c4c65c22acaf94de4c4 11 12 --------------------------------------------------------------------- 12 13 Documentation/arm64/booting.txt 的中文翻译 13 14 ··· 16 15 交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻 17 16 译存在问题,请联系中文版维护者。 18 17 19 - 本文翻译提交时的 Git 检出点为: bc465aa9d045feb0e13b4a8f32cc33c1943f62d6 20 - 21 18 英文版维护者: Will Deacon <will.deacon@arm.com> 22 19 中文版维护者: 傅炜 Fu Wei <wefu@redhat.com> 23 20 中文版翻译者: 傅炜 Fu Wei <wefu@redhat.com> 24 21 中文版校译者: 傅炜 Fu Wei <wefu@redhat.com> 22 + 本文翻译提交时的 Git 检出点为: 1926e54f115725a9248d0c4c65c22acaf94de4c4 25 23 26 24 以下为正文 27 25 --------------------------------------------------------------------- ··· 33 33 本文档基于 Russell King 的 ARM 启动文档,且适用于所有公开发布的 34 34 AArch64 Linux 内核代码。 35 35 36 - AArch64 异常模型由多个异常级别(EL0 - EL3)组成,对于 EL0 和 EL1 37 - 异常级有对应的安全和非安全模式。EL2 是系统管理级,且仅存在于 38 - 非安全模式下。EL3 是最高特权级,且仅存在于安全模式下。 36 + AArch64 异常模型由多个异常级(EL0 - EL3)组成,对于 EL0 和 EL1 异常级 37 + 有对应的安全和非安全模式。EL2 是系统管理级,且仅存在于非安全模式下。 38 + EL3 是最高特权级,且仅存在于安全模式下。 39 39 40 40 基于本文档的目的,我们将简单地使用‘引导装载程序’(‘boot loader’) 41 41 这个术语来定义在将控制权交给 Linux 内核前 CPU 上执行的所有软件。 ··· 56 56 必要性: 强制 57 57 58 58 引导装载程序应该找到并初始化系统中所有内核用于保持系统变量数据的 RAM。 59 - 这个操作的执行是设备依赖的。(它可能使用内部算法来自动定位和计算所有 60 - RAM,或可能使用对这个设备已知的 RAM 信息,还可能使用任何引导装载程序 61 - 设计者想到的匹配方法。) 59 + 这个操作的执行方式因设备而异。(它可能使用内部算法来自动定位和计算所有 60 + RAM,或可能使用对这个设备已知的 RAM 信息,还可能是引导装载程序设计者 61 + 想到的任何合适的方法。) 62 62 63 63 64 64 2、设置设备树数据 ··· 66 66 67 67 必要性: 强制 68 68 69 - 设备树数据块(dtb)必须 8 字节对齐,并位于从内核映像起始算起第一个 512MB 70 - 内,且不得跨越 2MB 对齐边界。这使得内核可以通过初始页表中的单个节描述符来 71 - 映射此数据块。 69 + 设备树数据块(dtb)必须 8 字节对齐,且大小不能超过 2MB。由于设备树 70 + 数据块将在使能缓存的情况下以 2MB 粒度被映射,故其不能被置于带任意 71 + 特定属性被映射的 2MB 区域内。 72 72 73 + 注: v4.2 之前的版本同时要求设备树数据块被置于从内核映像以下 74 + text_offset 字节处算起第一个 512MB 内。 73 75 74 76 3、解压内核映像 75 77 ------------- ··· 80 78 81 79 AArch64 内核当前没有提供自解压代码,因此如果使用了压缩内核映像文件 82 80 (比如 Image.gz),则需要通过引导装载程序(使用 gzip 等)来进行解压。 83 - 若引导装载程序没有实现这个需求,就要使用非压缩内核映像文件。 81 + 若引导装载程序没有实现这个功能,就要使用非压缩内核映像文件。 84 82 85 83 86 84 4、调用内核映像 ··· 99 97 u64 res3 = 0; /* 保留 */ 100 98 u64 res4 = 0; /* 保留 */ 101 99 u32 magic = 0x644d5241; /* 魔数, 小端, "ARM\x64" */ 102 - u32 res5; /* 保留 (用于 PE COFF 偏移) */ 100 + u32 res5; /* 保留 (用于 PE COFF 偏移) */ 103 101 104 102 105 103 映像头注释: ··· 109 107 - code0/code1 负责跳转到 stext. 110 108 111 109 - 当通过 EFI 启动时, 最初 code0/code1 被跳过。 112 - res5 是到 PE 文件头的偏移,而 PE 文件头含有 EFI 的启动入口点 (efi_stub_entry)。 113 - 当 stub 代码完成了它的使命,它会跳转到 code0 继续正常的启动流程。 110 + res5 是到 PE 文件头的偏移,而 PE 文件头含有 EFI 的启动入口点 111 + (efi_stub_entry)。当 stub 代码完成了它的使命,它会跳转到 code0 112 + 继续正常的启动流程。 114 113 115 114 - v3.17 之前,未明确指定 text_offset 的字节序。此时,image_size 为零, 116 115 且 text_offset 依照内核字节序为 0x80000。 117 - 当 image_size 非零,text_offset 为小端模式且是有效值,应被引导加载程序使用。 118 - 当 image_size 为零,text_offset 可假定为 0x80000。 116 + 当 image_size 非零,text_offset 为小端模式且是有效值,应被引导加载 117 + 程序使用。当 image_size 为零,text_offset 可假定为 0x80000。 119 118 120 119 - flags 域 (v3.17 引入) 为 64 位小端模式,其编码如下: 121 120 位 0: 内核字节序。 1 表示大端模式,0 表示小端模式。 122 - 位 1-63: 保留。 121 + 位 1-2: 内核页大小。 122 + 0 - 未指定。 123 + 1 - 4K 124 + 2 - 16K 125 + 3 - 64K 126 + 位 3-63: 保留。 123 127 124 - - 当 image_size 为零时,引导装载程序应该试图在内核映像末尾之后尽可能多地保留空闲内存 125 - 供内核直接使用。对内存空间的需求量因所选定的内核特性而异, 且无实际限制。 128 + - 当 image_size 为零时,引导装载程序应试图在内核映像末尾之后尽可能 129 + 多地保留空闲内存供内核直接使用。对内存空间的需求量因所选定的内核 130 + 特性而异, 并无实际限制。 126 131 127 - 内核映像必须被放置在靠近可用系统内存起始的 2MB 对齐为基址的 text_offset 字节处,并从那里被调用。 128 - 当前,对 Linux 来说在此基址以下的内存是无法使用的,因此强烈建议将系统内存的起始作为这个基址。 129 - 从映像起始地址算起,最少必须为内核释放出 image_size 字节的空间。 132 + 内核映像必须被放置在靠近可用系统内存起始的 2MB 对齐为基址的 133 + text_offset 字节处,并从该处被调用。当前,对 Linux 来说在此基址以下的 134 + 内存是无法使用的,因此强烈建议将系统内存的起始作为这个基址。2MB 对齐 135 + 基址和内核映像起始地址之间的区域对于内核来说没有特殊意义,且可能被 136 + 用于其他目的。 137 + 从映像起始地址算起,最少必须准备 image_size 字节的空闲内存供内核使用。 130 138 131 - 任何提供给内核的内存(甚至在 2MB 对齐的基地址之前),若未从内核中标记为保留 139 + 任何提供给内核的内存(甚至在映像起始地址之前),若未从内核中标记为保留 132 140 (如在设备树(dtb)的 memreserve 区域),都将被认为对内核是可用。 133 141 134 142 在跳转入内核前,必须符合以下状态: ··· 159 147 160 148 - 高速缓存、MMU 161 149 MMU 必须关闭。 162 - 指令缓存开启或关闭都可以。 150 + 指令缓存开启或关闭皆可。 163 151 已载入的内核映像的相应内存区必须被清理,以达到缓存一致性点(PoC)。 164 - 当存在系统缓存或其他使能缓存的一致性主控器时,通常需使用虚拟地址维护其缓存,而非 set/way 操作。 152 + 当存在系统缓存或其他使能缓存的一致性主控器时,通常需使用虚拟地址 153 + 维护其缓存,而非 set/way 操作。 165 154 遵从通过虚拟地址操作维护构架缓存的系统缓存必须被配置,并可以被使能。 166 - 而不通过虚拟地址操作维护构架缓存的系统缓存(不推荐),必须被配置且禁用。 155 + 而不通过虚拟地址操作维护构架缓存的系统缓存(不推荐),必须被配置且 156 + 禁用。 167 157 168 - *译者注:对于 PoC 以及缓存相关内容,请参考 ARMv8 构架参考手册 ARM DDI 0487A 158 + *译者注:对于 PoC 以及缓存相关内容,请参考 ARMv8 构架参考手册 159 + ARM DDI 0487A 169 160 170 161 - 架构计时器 171 162 CNTFRQ 必须设定为计时器的频率,且 CNTVOFF 必须设定为对所有 CPU ··· 184 169 在进入内核映像的异常级中,所有构架中可写的系统寄存器必须通过软件 185 170 在一个更高的异常级别下初始化,以防止在 未知 状态下运行。 186 171 187 - 对于拥有 GICv3 中断控制器的系统: 188 - - 若当前在 EL3 : 172 + 对于拥有 GICv3 中断控制器并以 v3 模式运行的系统: 173 + - 如果 EL3 存在: 189 174 ICC_SRE_EL3.Enable (位 3) 必须初始化为 0b1。 190 175 ICC_SRE_EL3.SRE (位 0) 必须初始化为 0b1。 191 176 - 若内核运行在 EL1: 192 177 ICC_SRE_EL2.Enable (位 3) 必须初始化为 0b1。 193 178 ICC_SRE_EL2.SRE (位 0) 必须初始化为 0b1。 179 + - 设备树(DT)或 ACPI 表必须描述一个 GICv3 中断控制器。 180 + 181 + 对于拥有 GICv3 中断控制器并以兼容(v2)模式运行的系统: 182 + - 如果 EL3 存在: 183 + ICC_SRE_EL3.SRE (位 0) 必须初始化为 0b0。 184 + - 若内核运行在 EL1: 185 + ICC_SRE_EL2.SRE (位 0) 必须初始化为 0b0。 186 + - 设备树(DT)或 ACPI 表必须描述一个 GICv2 中断控制器。 194 187 195 188 以上对于 CPU 模式、高速缓存、MMU、架构计时器、一致性、系统寄存器的 196 189 必要条件描述适用于所有 CPU。所有 CPU 必须在同一异常级别跳入内核。
+74
Documentation/zh_CN/arm64/silicon-errata.txt
··· 1 + Chinese translated version of Documentation/arm64/silicon-errata.txt 2 + 3 + If you have any comment or update to the content, please contact the 4 + original document maintainer directly. However, if you have a problem 5 + communicating in English you can also ask the Chinese maintainer for 6 + help. Contact the Chinese maintainer if this translation is outdated 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: 1926e54f115725a9248d0c4c65c22acaf94de4c4 12 + --------------------------------------------------------------------- 13 + Documentation/arm64/silicon-errata.txt 的中文翻译 14 + 15 + 如果想评论或更新本文的内容,请直接联系原文档的维护者。如果你使用英文 16 + 交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻 17 + 译存在问题,请联系中文版维护者。 18 + 19 + 英文版维护者: Will Deacon <will.deacon@arm.com> 20 + 中文版维护者: 傅炜 Fu Wei <wefu@redhat.com> 21 + 中文版翻译者: 傅炜 Fu Wei <wefu@redhat.com> 22 + 中文版校译者: 傅炜 Fu Wei <wefu@redhat.com> 23 + 本文翻译提交时的 Git 检出点为: 1926e54f115725a9248d0c4c65c22acaf94de4c4 24 + 25 + 以下为正文 26 + --------------------------------------------------------------------- 27 + 芯片勘误和软件补救措施 28 + ================== 29 + 30 + 作者: Will Deacon <will.deacon@arm.com> 31 + 日期: 2015年11月27日 32 + 33 + 一个不幸的现实:硬件经常带有一些所谓的“瑕疵(errata)”,导致其在 34 + 某些特定情况下会违背构架定义的行为。就基于 ARM 的硬件而言,这些瑕疵 35 + 大体可分为以下几类: 36 + 37 + A 类:无可行补救措施的严重缺陷。 38 + B 类:有可接受的补救措施的重大或严重缺陷。 39 + C 类:在正常操作中不会显现的小瑕疵。 40 + 41 + 更多资讯,请在 infocenter.arm.com (需注册)中查阅“软件开发者勘误 42 + 笔记”(“Software Developers Errata Notice”)文档。 43 + 44 + 对于 Linux 而言,B 类缺陷可能需要操作系统的某些特别处理。例如,避免 45 + 一个特殊的代码序列,或是以一种特定的方式配置处理器。在某种不太常见的 46 + 情况下,为将 A 类缺陷当作 C 类处理,可能需要用类似的手段。这些手段被 47 + 统称为“软件补救措施”,且仅在少数情况需要(例如,那些需要一个运行在 48 + 非安全异常级的补救措施 *并且* 能被 Linux 触发的情况)。 49 + 50 + 对于尚在讨论中的可能对未受瑕疵影响的系统产生干扰的软件补救措施,有一个 51 + 相应的内核配置(Kconfig)选项被加在 “内核特性(Kernel Features)”-> 52 + “基于可选方法框架的 ARM 瑕疵补救措施(ARM errata workarounds via 53 + the alternatives framework)"。这些选项被默认开启,若探测到受影响的CPU, 54 + 补丁将在运行时被使用。至于对系统运行影响较小的补救措施,内核配置选项 55 + 并不存在,且代码以某种规避瑕疵的方式被构造(带注释为宜)。 56 + 57 + 这种做法对于在任意内核源代码树中准确地判断出哪个瑕疵已被软件方法所补救 58 + 稍微有点麻烦,所以在 Linux 内核中此文件作为软件补救措施的注册表, 59 + 并将在新的软件补救措施被提交和向后移植(backported)到稳定内核时被更新。 60 + 61 + | 实现者 | 受影响的组件 | 勘误编号 | 内核配置 | 62 + +----------------+-----------------+-----------------+-------------------------+ 63 + | ARM | Cortex-A53 | #826319 | ARM64_ERRATUM_826319 | 64 + | ARM | Cortex-A53 | #827319 | ARM64_ERRATUM_827319 | 65 + | ARM | Cortex-A53 | #824069 | ARM64_ERRATUM_824069 | 66 + | ARM | Cortex-A53 | #819472 | ARM64_ERRATUM_819472 | 67 + | ARM | Cortex-A53 | #845719 | ARM64_ERRATUM_845719 | 68 + | ARM | Cortex-A53 | #843419 | ARM64_ERRATUM_843419 | 69 + | ARM | Cortex-A57 | #832075 | ARM64_ERRATUM_832075 | 70 + | ARM | Cortex-A57 | #852523 | N/A | 71 + | ARM | Cortex-A57 | #834220 | ARM64_ERRATUM_834220 | 72 + | | | | | 73 + | Cavium | ThunderX ITS | #22375, #24313 | CAVIUM_ERRATUM_22375 | 74 + | Cavium | ThunderX GICv3 | #23154 | CAVIUM_ERRATUM_23154 |
+7 -7
README
··· 59 59 INSTALLING the kernel source: 60 60 61 61 - If you install the full sources, put the kernel tarball in a 62 - directory where you have permissions (eg. your home directory) and 62 + directory where you have permissions (e.g. your home directory) and 63 63 unpack it: 64 64 65 65 xz -cd linux-4.X.tar.xz | tar xvf - ··· 125 125 126 126 When compiling the kernel, all output files will per default be 127 127 stored together with the kernel source code. 128 - Using the option "make O=output/dir" allow you to specify an alternate 128 + Using the option "make O=output/dir" allows you to specify an alternate 129 129 place for the output files (including .config). 130 130 Example: 131 131 ··· 159 159 160 160 "make nconfig" Enhanced text based color menus. 161 161 162 - "make xconfig" X windows (Qt) based configuration tool. 162 + "make xconfig" Qt based configuration tool. 163 163 164 - "make gconfig" X windows (GTK+) based configuration tool. 164 + "make gconfig" GTK+ based configuration tool. 165 165 166 166 "make oldconfig" Default all questions based on the contents of 167 167 your existing ./.config file and asking about ··· 268 268 Normally, the kernel build system runs in a fairly quiet mode (but not 269 269 totally silent). However, sometimes you or other kernel developers need 270 270 to see compile, link, or other commands exactly as they are executed. 271 - For this, use "verbose" build mode. This is done by inserting 272 - "V=1" in the "make" command. E.g.: 271 + For this, use "verbose" build mode. This is done by passing 272 + "V=1" to the "make" command, e.g. 273 273 274 274 make V=1 all 275 275 ··· 300 300 kernel image file is usually /vmlinuz, /boot/vmlinuz, /bzImage or 301 301 /boot/bzImage. To use the new kernel, save a copy of the old image 302 302 and copy the new image over the old one. Then, you MUST RERUN LILO 303 - to update the loading map!! If you don't, you won't be able to boot 303 + to update the loading map! If you don't, you won't be able to boot 304 304 the new kernel image. 305 305 306 306 Reinstalling LILO is usually a matter of running /sbin/lilo.