mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-08-01 13:18:36 -09:00
When the Linux Kernel image does not include the EFI stub [1],
Grub2 EFI linux loader fallback to the legacy i386 loading.
See [2] [3]. Grub 2.14 enabled the NX compatible for the EFI
image in [4].
When booting a Linux Kernel without the EFI stub with Grub 2.14 with
NX flag, the boot fails before starting the kernel with a EDK2 page
fault error [5]:
!!!! X64 Exception Type - 0E(#PF - Page-Fault) CPU Apic ID - 00000000 !!!!
ExceptionData - 0000000000000003 I:0 R:0 U:0 W:1 P:1 PK:0 SS:0 SGX:0
This commit adds CONFIG_EFI_STUB to board/pc/linux.config to make sure
grub will load the Kernel using its efi loading code.
This commit is needed with EDK2 with NX protection enabled and
Grub 2.14 also enabling NX.
[1] https://docs.kernel.org/admin-guide/efi-stub.html
[2] https://gitlab.freedesktop.org/gnu-grub/grub/-/blob/grub-2.14/grub-core/loader/efi/linux.c#L532
[3] https://gitlab.freedesktop.org/gnu-grub/grub/-/blob/grub-2.14/grub-core/loader/i386/linux.c#L675
[4] f5bb766e68
[5] https://github.com/tianocore/edk2/blob/edk2-stable202602/UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ArchExceptionHandler.c#L273
Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
91 lines
1.7 KiB
Plaintext
91 lines
1.7 KiB
Plaintext
CONFIG_SYSVIPC=y
|
|
CONFIG_MODULES=y
|
|
CONFIG_MODULE_UNLOAD=y
|
|
CONFIG_SMP=y
|
|
CONFIG_HYPERVISOR_GUEST=y
|
|
CONFIG_PARAVIRT=y
|
|
CONFIG_EFI=y
|
|
CONFIG_EFI_STUB=y
|
|
CONFIG_NET=y
|
|
CONFIG_PACKET=y
|
|
CONFIG_UNIX=y
|
|
CONFIG_INET=y
|
|
CONFIG_NETFILTER=y
|
|
CONFIG_IP_NF_IPTABLES=y
|
|
CONFIG_IP_NF_FILTER=y
|
|
CONFIG_CFG80211=m
|
|
CONFIG_CFG80211_WEXT=y
|
|
CONFIG_MAC80211=m
|
|
CONFIG_PCI=y
|
|
CONFIG_DEVTMPFS=y
|
|
CONFIG_DEVTMPFS_MOUNT=y
|
|
CONFIG_VIRTIO_BLK=y
|
|
CONFIG_BLK_DEV_SD=y
|
|
CONFIG_SCSI_VIRTIO=y
|
|
CONFIG_ATA=y
|
|
CONFIG_ATA_PIIX=y
|
|
CONFIG_NETDEVICES=y
|
|
CONFIG_VIRTIO_NET=y
|
|
CONFIG_ATL2=m
|
|
CONFIG_ATL1=m
|
|
CONFIG_ATL1E=m
|
|
CONFIG_ATL1C=m
|
|
CONFIG_ALX=m
|
|
CONFIG_E100=m
|
|
CONFIG_E1000=m
|
|
CONFIG_E1000E=m
|
|
CONFIG_IGB=m
|
|
CONFIG_NE2K_PCI=y
|
|
CONFIG_8139CP=y
|
|
CONFIG_R8169=m
|
|
CONFIG_ATH9K=m
|
|
CONFIG_ATH9K_HTC=m
|
|
CONFIG_CARL9170=m
|
|
CONFIG_ATH10K=m
|
|
CONFIG_ATH10K_PCI=m
|
|
CONFIG_IWL4965=m
|
|
CONFIG_IWL3945=m
|
|
CONFIG_IWLWIFI=m
|
|
CONFIG_RT2X00=m
|
|
CONFIG_RT2800PCI=m
|
|
CONFIG_RT73USB=m
|
|
CONFIG_RT2800USB=m
|
|
CONFIG_RT2800USB_RT3573=y
|
|
CONFIG_RT2800USB_RT53XX=y
|
|
CONFIG_RT2800USB_RT55XX=y
|
|
# CONFIG_RTL_CARDS is not set
|
|
CONFIG_RTL8XXXU=m
|
|
CONFIG_INPUT_EVDEV=y
|
|
CONFIG_SERIAL_8250=y
|
|
CONFIG_SERIAL_8250_CONSOLE=y
|
|
CONFIG_VIRTIO_CONSOLE=y
|
|
CONFIG_HW_RANDOM_VIRTIO=m
|
|
CONFIG_DRM=y
|
|
CONFIG_DRM_I915=y
|
|
CONFIG_DRM_QXL=y
|
|
CONFIG_DRM_BOCHS=y
|
|
CONFIG_DRM_VIRTIO_GPU=y
|
|
CONFIG_FB=y
|
|
CONFIG_FIRMWARE_EDID=y
|
|
CONFIG_FB_VESA=y
|
|
CONFIG_FB_EFI=y
|
|
CONFIG_SOUND=y
|
|
CONFIG_SND=y
|
|
CONFIG_SND_HDA_INTEL=y
|
|
CONFIG_SND_HDA_GENERIC=y
|
|
CONFIG_USB=y
|
|
CONFIG_USB_XHCI_HCD=y
|
|
CONFIG_USB_EHCI_HCD=y
|
|
CONFIG_USB_UHCI_HCD=y
|
|
CONFIG_USB_STORAGE=y
|
|
CONFIG_VIRTIO_PCI=y
|
|
CONFIG_VIRTIO_BALLOON=y
|
|
CONFIG_VIRTIO_INPUT=y
|
|
CONFIG_VIRTIO_MMIO=y
|
|
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
|
|
CONFIG_EXT4_FS=y
|
|
CONFIG_FUSE_FS=y
|
|
CONFIG_TMPFS_POSIX_ACL=y
|
|
CONFIG_SQUASHFS=y
|
|
CONFIG_UNWINDER_FRAME_POINTER=y
|