FS#68714 - Linux kernel config may prevent EFISTUB from being booted directly

Attached to Project: Arch Linux
Opened by Daniel (weirddan455) - Monday, 23 November 2020, 08:09 GMT
Last edited by Doug Newgard (Scimmia) - Monday, 23 November 2020, 15:31 GMT
Task Type Bug Report
Category Kernel
Status Closed
Assigned To No-one
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

Description:
Arch's default kernel has CONFIG_EFI_MIXED=y set which according to kernel documentation:

"Enabling this feature allows a 64-bit kernel to be booted
on a 32-bit firmware, provided that your CPU supports 64-bit
mode.

Note that it is not possible to boot a mixed-mode enabled
kernel via the EFI boot stub - a bootloader that supports
the EFI handover protocol must be used."

I haven't been able to test this myself as I'm using refind (can probably do a quick test in the next day or so though.) I figure we probably don't want to change this setting as it could break older Macs that have 32 bit EFI firmware. I created this bug report to get confirmation on this issue and, once confirmed, maybe mention in the wiki that the Arch kernel doesn't support direct EFISTUB boot: https://wiki.archlinux.org/index.php/EFISTUB

Additional info:
* package version(s): 5.9.9.arch1-1
* config and/or log files etc.: https://git.archlinux.org/svntogit/packages.git/tree/linux/trunk/config#n465
* link to upstream bug report, if any: N/A

Steps to reproduce:
1. Attempt to boot from the Arch kernel without using a bootloader (documented in https://wiki.archlinux.org/index.php/EFISTUB)
2. Report back if it works for you
This task depends upon

Closed by  Doug Newgard (Scimmia)
Monday, 23 November 2020, 15:31 GMT
Reason for closing:  Not a bug
Comment by nl6720 (nl6720) - Monday, 23 November 2020, 13:37 GMT
CONFIG_EFI_MIXED=y doesn't prevent booting a x86_64 kernel via its EFI boot stub on x86_64 UEFI.

> Note that it is not possible to boot a mixed-mode enabled
> kernel via the EFI boot stub - a bootloader that supports
> the EFI handover protocol must be used."

This note refers to booting a x86_64 kernel via EFI boot stub on IA32 UEFI, nothing more.
And even that should be possible now, the only thing missing is boot loader/manager support. See the expansion template in https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface#Booting_64-bit_kernel_on_32-bit_UEFI .

Loading...