Documentation/translations/zh_CN/arch/riscv/boot.rst

Source file repositories/reference/linux-study-clean/Documentation/translations/zh_CN/arch/riscv/boot.rst

File Facts

System
Linux kernel
Corpus path
Documentation/translations/zh_CN/arch/riscv/boot.rst
Extension
.rst
Size
5874 bytes
Lines
156
Domain
Support Tooling And Documentation
Bucket
Documentation
Inferred role
Support Tooling And Documentation: documentation
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

.. SPDX-License-Identifier: GPL-2.0
.. include:: ../../disclaimer-zh_CN.rst

:Original: Documentation/arch/riscv/boot.rst

:翻译:

 龙进 Jin Long <longjin@dragonos.org>

========================
RISC-V内核启动要求和限制
========================

:Author: Alexandre Ghiti <alexghiti@rivosinc.com>
:Date: 23 May 2023

这份文档描述了RISC-V内核对引导加载程序和固件的期望,以及任何开发者在接触
早期启动过程时必须牢记的约束。在这份文档中, ``早期启动过程`` 指的是在最
终虚拟映射设置之前运行的任何代码。

内核预加载的要求和限制
======================

RISC-V内核对引导加载程序和平台固件有以下要求:

寄存器状态
----------

RISC-V内核期望:

  * ``$a0`` 应包含当前核心的hartid。
  * ``$a1`` 应包含内存中设备树的地址。

CSR 寄存器状态
--------------

RISC-V内核期望:

  * ``$satp = 0``: 如果存在MMU,必须将其禁用。

为常驻固件保留的内存
--------------------

RISC-V内核在直接映射中不能映射任何常驻内存或用PMPs保护的内存,
因此固件必须根据设备树规范 和/或 UEFI规范正确标记这些区域。

内核的位置
----------

RISC-V内核期望被放置在PMD边界(对于rv64为2MB对齐,对于rv32为4MB对齐)。
请注意,如果不是这样,EFI stub 将重定位内核。

硬件描述
--------

固件可以将设备树或ACPI表传递给RISC-V内核。

设备树可以直接从前一阶段通过$a1寄存器传递给内核,或者在使用UEFI启动时,
可以通过EFI配置表传递。

ACPI表通过EFI配置表传递给内核。在这种情况下,EFI stub 仍然会创建一个
小的设备树。请参阅下面的"EFI stub 和设备树"部分,了解这个设备树的详细
信息。

内核入口
--------

在SMP系统中,有两种方法可以进入内核:

- ``RISCV_BOOT_SPINWAIT``:固件在内核中释放所有的hart,一个hart赢

Annotation

Implementation Notes