💡
原文中文,约17300字,阅读约需41分钟。
📝
内容提要
介绍 RISC-V EFI 启动协议中的 efi_riscv_get_boot_hartid 函数,返回启动 hart 的 ID,给出参数和返回值。
🎯
关键要点
-
介绍了 Linux 内核的不同文件名和格式,如 vmlinux、vmlinuz、uImage 和 bzImage。
-
Linux/x86 启动协议定义了 bootloader 启动 Linux 时需要做的事情和参数传递方式。
-
Boot Protocol 规定了 Linux 内核的格式,帮助 Bootloader 获取内核信息。
-
Bootloader 初始化 struct boot_params 并传递给 Linux 内核以启动。
-
EFI boot stub 使得 vmlinux 被识别为合法的 UEFI 程序,使用 PE 和 COFF 头部。
-
Linux 内核可以以压缩形式存在,vmlinux 表示未压缩,vmlinuz 表示已压缩。
-
Unified Kernel Image 将启动所需的文件放在一个文件中,方便 Secure Boot。
-
RISC-V 有两套固件标准:SBI 和 UEFI,SBI 提供给 S 态程序的接口。
-
RISC-V 的 EFI boot stub 设计保证了在直接执行时也能正常工作。
-
通过 RISCV_EFI_BOOT_PROTOCOL 获取 boot hart id 的函数实现。
-
efi_riscv_get_boot_hartid 函数返回启动 hart 的 ID,包含参数和返回值。
➡️