Lines Matching +full:boot +full:- +full:page +full:- +full:step
1 .. SPDX-License-Identifier: GPL-2.0
4 RISC-V Kernel Boot Requirements and Constraints
10 This document describes what the RISC-V kernel expects from bootloaders and
12 touching the early boot process. For the purposes of this document, the
13 ``early boot process`` refers to any code that runs before the final virtual
16 Pre-kernel Requirements and Constraints
19 The RISC-V kernel expects the following of bootloaders and platform firmware:
22 --------------
24 The RISC-V kernel expects:
30 ---------
32 The RISC-V kernel expects:
37 -------------------------------------
39 The RISC-V kernel must not map any resident memory, or memory protected with
44 ---------------
46 The RISC-V kernel expects to be placed at a PMD boundary (2MB aligned for rv64
51 --------------------
53 The firmware can pass either a devicetree or ACPI tables to the RISC-V kernel.
64 ------------
68 - ``RISCV_BOOT_SPINWAIT``: the firmware releases all harts in the kernel, one hart
69 wins a lottery and executes the early boot code while the other harts are
71 support older firmwares without SBI HSM extension and M-mode RISC-V kernel.
72 - ``Ordered booting``: the firmware releases only one hart that will execute the
75 booting the RISC-V kernel because it can support CPU hotplug and kexec.
78 ----
83 When booting with UEFI, the RISC-V kernel will use only the EFI memory map to
86 The UEFI firmware must parse the subnodes of the ``/reserved-memory`` devicetree
88 those subnodes (``no-map`` and ``reusable``) into their correct EFI equivalent
89 (refer to section "3.5.4 /reserved-memory and UEFI" of the devicetree
90 specification v0.4-rc1).
95 When booting with UEFI, the EFI stub requires the boot hartid in order to pass
96 it to the RISC-V kernel in ``$a1``. The EFI stub retrieves the boot hartid using
99 - ``RISCV_EFI_BOOT_PROTOCOL`` (**preferred**).
100 - ``boot-hartid`` devicetree subnode (**deprecated**).
105 Early Boot Requirements and Constraints
108 The RISC-V kernel's early boot process operates under the following constraints:
111 -----------------------
118 ----------------------------
120 The installation of the virtual mapping is done in 2 steps in the RISC-V kernel:
125 (since the system memory is not known yet), so ``early_pg_dir`` page table is
133 newly allocated page table levels.
137 the DRAM. This happens after step 1, right before step 2 installs the direct
143 -----------------------------
147 ``setup_vm_final()``, the RISC-V kernel uses the fixmap region to map the
151 Pre-MMU execution
152 -----------------
159 - ``-fno-pie``: This is needed for relocatable kernels which use ``-fPIE``,
162 - ``-mcmodel=medany``: Any access to a global symbol must be PC-relative to
164 - *all* instrumentation must also be disabled (that includes KASAN, ftrace and