76 lines
2.5 KiB
ReStructuredText
76 lines
2.5 KiB
ReStructuredText
.. SPDX-License-Identifier: GPL-2.0
|
|
|
|
=====================================
|
|
General note on [U]EFI x86_64 support
|
|
=====================================
|
|
|
|
The nomenclature EFI and UEFI are used interchangeably in this document.
|
|
|
|
Although the tools below are _not_ needed for building the kernel,
|
|
the needed bootloader support and associated tools for x86_64 platforms
|
|
with EFI firmware and specifications are listed below.
|
|
|
|
1. UEFI specification: http://www.uefi.org
|
|
|
|
2. Booting Linux kernel on UEFI x86_64 platform can either be
|
|
done using the <Documentation/admin-guide/efi-stub.rst> or using a
|
|
separate bootloader.
|
|
|
|
3. x86_64 platform with EFI/UEFI firmware.
|
|
|
|
Mechanics
|
|
---------
|
|
|
|
Refer to <Documentation/admin-guide/efi-stub.rst> to learn how to use the EFI stub.
|
|
|
|
Below are general EFI setup guidelines on the x86_64 platform,
|
|
regardless of whether you use the EFI stub or a separate bootloader.
|
|
|
|
- Build the kernel with the following configuration::
|
|
|
|
CONFIG_FB_EFI=y
|
|
CONFIG_FRAMEBUFFER_CONSOLE=y
|
|
|
|
If EFI runtime services are expected, the following configuration should
|
|
be selected::
|
|
|
|
CONFIG_EFI=y
|
|
CONFIG_EFIVAR_FS=y or m # optional
|
|
|
|
- Create a VFAT partition on the disk with the EFI System flag
|
|
You can do this with fdisk with the following commands:
|
|
|
|
1. g - initialize a GPT partition table
|
|
2. n - create a new partition
|
|
3. t - change the partition type to "EFI System" (number 1)
|
|
4. w - write and save the changes
|
|
|
|
Afterwards, initialize the VFAT filesystem by running mkfs::
|
|
|
|
mkfs.fat /dev/<your-partition>
|
|
|
|
- Copy the boot files to the VFAT partition:
|
|
If you use the EFI stub method, the kernel acts also as an EFI executable.
|
|
|
|
You can just copy the bzImage to the EFI/boot/bootx64.efi path on the partition
|
|
so that it will automatically get booted, see the <Documentation/admin-guide/efi-stub.rst> page
|
|
for additional instructions regarding passage of kernel parameters and initramfs.
|
|
|
|
If you use a custom bootloader, refer to the relevant documentation for help on this part.
|
|
|
|
- If some or all EFI runtime services don't work, you can try following
|
|
kernel command line parameters to turn off some or all EFI runtime
|
|
services.
|
|
|
|
noefi
|
|
turn off all EFI runtime services
|
|
reboot_type=k
|
|
turn off EFI reboot runtime service
|
|
|
|
- If the EFI memory map has additional entries not in the E820 map,
|
|
you can include those entries in the kernels memory map of available
|
|
physical RAM by using the following kernel command line parameter.
|
|
|
|
add_efi_memmap
|
|
include EFI memory map of available physical RAM
|