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

TOMOYO Linux Cross Reference
Linux/Documentation/translations/zh_CN/arch/riscv/boot-image-header.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 ] ~

  1 .. include:: ../../disclaimer-zh_CN.rst
  2 
  3 :Original: Documentation/arch/riscv/boot-image-header.rst
  4 
  5 :翻译:
  6 
  7  司延腾 Yanteng Si <siyanteng@loongson.cn>
  8 
  9 .. _cn_boot-image-header.rst:
 10 
 11 ==========================
 12 RISC-V Linux启动镜像文件头
 13 ==========================
 14 
 15 :Author: Atish Patra <atish.patra@wdc.com>
 16 :Date:   20 May 2019
 17 
 18 此文档仅描述RISC-V Linux 启动文件头的详情。
 19 
 20 TODO:
 21   写一个完整的启动指南。
 22 
 23 在解压后的Linux内核镜像中存在以下64字节的文件头::
 24 
 25         u32 code0;                /* Executable code */
 26         u32 code1;                /* Executable code */
 27         u64 text_offset;          /* Image load offset, little endian */
 28         u64 image_size;           /* Effective Image size, little endian */
 29         u64 flags;                /* kernel flags, little endian */
 30         u32 version;              /* Version of this header */
 31         u32 res1 = 0;             /* Reserved */
 32         u64 res2 = 0;             /* Reserved */
 33         u64 magic = 0x5643534952; /* Magic number, little endian, "RISCV" */
 34         u32 magic2 = 0x05435352;  /* Magic number 2, little endian, "RSC\x05" */
 35         u32 res3;                 /* Reserved for PE COFF offset */
 36 
 37 这种头格式与PE/COFF文件头兼容,并在很大程度上受到ARM64文件头的启发。因此,ARM64
 38 和RISC-V文件头可以在未来合并为一个共同的头。
 39 
 40 注意
 41 ====
 42 
 43 - 将来也可以复用这个文件头,用来对RISC-V的EFI桩提供支持。为了使内核镜像如同一个
 44   EFI应用程序一样加载,EFI规范中规定在内核镜像的开始需要PE/COFF镜像文件头。为了
 45   支持EFI桩,应该用“MZ”魔术字符替换掉code0,并且res3(偏移量未0x3c)应指向PE/COFF
 46   文件头的其余部分.
 47 
 48 - 表示文件头版本号的Drop-bit位域
 49 
 50         ==========  ==========
 51         Bits 0:15   次要  版本
 52         Bits 16:31  主要  版本
 53         ==========  ==========
 54 
 55   这保持了新旧版本之间的兼容性。
 56   当前版本被定义为0.2。
 57 
 58 - 从版本0.2开始,结构体成员“magic”就已经被弃用,在之后的版本中,可能会移除掉它。
 59   最初,该成员应该与ARM64头的“magic”成员匹配,但遗憾的是并没有。
 60   “magic2”成员代替“magic”成员与ARM64头相匹配。
 61 
 62 - 在当前的文件头,标志位域只剩下了一个位。
 63 
 64         =====  ==============================
 65         Bit 0  内核字节序。1 if BE, 0 if LE.
 66         =====  ==============================
 67 
 68 - 对于引导加载程序加载内核映像来说,image_size成员对引导加载程序而言是必须的,否
 69   则将引导失败。

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