Skip to content

Conversation

@Aldair402
Copy link

Description

Newer NASM versions enforce stricter operand size rules for PUSH in
64-bit mode and reject strict dword, since PUSH r32 cannot be encoded
in long mode. Previous NASM releases implicitly treated it as a 64-bit
operand, but as of NASM 3.x this results in an assembly error.

This change updates the assembly code in the CPU exception handler to
use strict qword, restoring compatibility with NASM >= 3.00 and fixing
build failures on modern toolchains.

tianocore#11635

How This Was Tested

Built with NASM 3.x toolchain and verified that the UefiCpuPkg
compiles successfully without errors in CpuExceptionHandlerLib/X64.
Also boots on my t460s.
It would be rare if it breaks something

Integration Instructions

N/A

PatrickRudolph and others added 30 commits October 8, 2025 09:52
The MTRRs have already been programmed by FSB.

Signed-off-by: Patrick Rudolph <[email protected]>
Change-Id: I8c6e7657b789edac8ee83a89318209a598712db8
Add Pcd to allow configuring internal devices to be prioritized over
internally-attached USB devices, such as card readers, over SATA, NVMe
and eMMC drives.

Cc: Jian J Wang <[email protected]>
Cc: Liming Gao <[email protected]>
Signed-off-by: Matt DeVillier <[email protected]>
Signed-off-by: Sean Rhodes <[email protected]>
Change-Id: Ibc9803d67b6cb631a53df80aa1f101752a46e874
Hook PRIORITIZE_INTERNAL build option to PrioritizeInternal PCD.

Cc: Guo Dong <[email protected]>
Cc: Ray Ni <[email protected]>
Cc: Maurice Ma <[email protected]>
Cc: Benjamin You <[email protected]>
Signed-off-by: Sean Rhodes <[email protected]>
Signed-off-by: Matt DeVillier <[email protected]>
Change-Id: I5c6ef766a219d22f4f5ae79c18e30941646cbd62
Add EXT2/EXT4, exFAT, NTFS filesystem drivers.
Do not add ISO9115 drivers as it breaks El Torito boot.

Sourced from:
https://github.com/pbatard/EfiFs/releases/tag/v1.10
https://github.com/pbatard/ntfs-3g/releases/tag/1.7

Signed-off-by: Matt DeVillier <[email protected]>
Change-Id: I2e4d67cd8251ef3ec8a122a3ea0081aca6cfc455
Signed-off-by: Matt DeVillier <[email protected]>
Change-Id: I02d27edac5dfd334bca51d20e7ffcb85377a08b0
Move 'Press ESC' prompt to bottom of screen. Clear when timeout expired.

Signed-off-by: Matt DeVillier <[email protected]>
Change-Id: I0493318e40d0a753dd804dcf3f3ea968adfc8628
Rework frontpage layout for cleaner, more streamlined look.

Change-Id: If1b09f2589ad8e268f60f8ac92ed94d8b2f3ab52
Signed-off-by: Matt DeVillier <[email protected]>
Add function to convert SMBIOS product name to device
name for Google ChromeOS devices

Signed-off-by: Matt DeVillier <[email protected]>
Change-Id: Idff226a9aaae94df0c441a2bdceaea3267c825fe
Matches previous implementation under CorebootPayloadPkg

Signed-off-by: Matt DeVillier <[email protected]>
Add device type prefixes for USB, IDE, SATA, and NVMe drives.
Remove UEFI prefix, remove serial numbers. Simplify eMMC description.

Signed-off-by: Matt DeVillier <[email protected]>
Internal eMMC devices often show multiple entries, so skip
any after the initial entry.

Signed-off-by: Matt DeVillier <[email protected]>
Strip menus down to essential bootorder-related functions.
Matches previous implementation under CorebootPayloadPkg.

Signed-off-by: Matt DeVillier <[email protected]>
Add support for Bayhub eMMC controller found on AMD
Stoneyridge Chromebooks.

Test: build/boot various google/kahlee-based devices

Signed-off-by: Matt DeVillier <[email protected]>
After boot devices have been enumerated, invoke a SMM handler
to put the eMMC/SD devices on Baytrail devices into ACPI mode,
since they do not function properly in PCI mode, but are not otherwise
detected by Tianocore's boot device enumeration.

Signed-off-by: Matt DeVillier <[email protected]>
SetConfig is already called during device enumeration,
no need to do it again here.

Signed-off-by: Matt DeVillier <[email protected]>
Change-Id: I5595c2ace40520a0c9438687f29c4d51cd5de741
Startup script does nothing other than confuse users.
Show a welcome banner and tell users how to exit.
Don't print the mapping as it just slows down exiting the shell.

Signed-off-by: Matt DeVillier <[email protected]>
Add PlatformGopPolicy to use external GOP driver

Signed-off-by: Matt DeVillier <[email protected]>
Use PlatformGopPolicy in place of GraphicsOutputDxe if command
line param passed

Signed-off-by: Matt DeVillier <[email protected]>
Signed-off-by: Matt DeVillier <[email protected]>
Change-Id: Ic16d469d8234f6ef505f80b0e3b5f77903eef457
Signed-off-by: Matt DeVillier <[email protected]>
Change-Id: Idc23a60290e7c7ac5f79015e81b8523bc72dfb37
As Device Manager menu holds things like Secure Boot and CFR, the name
Device Manger doesn't make much sense. Rename this to Advanced Configuration.

Signed-off-by: Sean Rhodes <[email protected]>
Signed-off-by: Matt DeVillier <[email protected]>
Change-Id: I031785253c650df4304fb88d56a5f9c4061370b0
Add an option to position the logo 38.2% from the top of the screen,
which follows the BGRT specification.

Cc: Zhichao Gao <[email protected]>
Cc: Ray Ni <[email protected]>
Cc: Jian J Wang <[email protected]>
Cc: Liming Gao <[email protected]>
Signed-off-by: Sean Rhodes <[email protected]>
When set to true, the Logo is positioned according to the BGRT
specification, 38.2% from the top of the screen. When set to false,
no behaviour is changed and the logo is positioned centrally.

Cc: Zhichao Gao <[email protected]>
Cc: Ray Ni <[email protected]>
Cc: Jian J Wang <[email protected]>
Cc: Liming Gao <[email protected]>
Signed-off-by: Sean Rhodes <[email protected]>
Change-Id: Ia8b63f7490cd918cac5e0235cb5d97a1a84780e6
Signed-off-by: Matt DeVillier <[email protected]>
Signed-off-by: Matt DeVillier <[email protected]>
Change-Id: Ia5952e83022b5fe4a5b0c8dcd109b457793b0200
When a bootorder entry fails to boot, tell the user why
and wait for a key press before continuing.

Change-Id: I0f1fecf345f00f7a24ff72ae2840f548fd1ed228
Signed-off-by: Matt DeVillier <[email protected]>
Signed-off-by: Matt DeVillier <[email protected]>
Change-Id: Icd3e12b27a3ef30081aa5a3366bc96191adf7ec7
Prevents assert when checking size is less than store - header

Signed-off-by: Matt DeVillier <[email protected]>
Change-Id: Ic3e5e37940c8e8deff5317706502b0a2a6833da9
MrChromebox and others added 16 commits October 11, 2025 18:56
The delimiters for ONE_OF are `<` and `>`, which doesn't match
the other definitions. Change these to `[` and `]` so it's
uniform.

Signed-off-by: Sean Rhodes <[email protected]>
Since the recent changes to PlatformBootManagerLib, longer delays from
connecting all devices only occur when entering UiApp, so print a
progress message when the hotkey is pressed to notify the user that the
keypress has been recognized.

Signed-off-by: Filip Brozovic <[email protected]>
Signed-off-by: Matt DeVillier <[email protected]>
This is needed to fix framebuffer display when using
`CONFIG_RESOURCE_ALLOCATION_TOP_DOWN=y` in coreboot. Without this
patch, the display backlight will be on, but no boot logo or
menus visible.

The code detecting valid BARs is buggy AF, so just skip the whole
mess for now.

Signed-off-by: Matt DeVillier <[email protected]>
On AMD platforms the SPI flash might be mapped in high MMIO.
To migitate the problem coreboot was updated to advertise a
64-bit MMIO address in the cb_smmstorev2 struct.

Check if the additional field is written by comparing the size
field and if so use it over the old 32-bit MMIO address.

1: https://review.coreboot.org/c/coreboot/+/87114

TEST: Boots on AMD/birman+ with ROM3 bar enabled in high MMIO.

Signed-off-by: Patrick Rudolph <[email protected]>
Setting the EFI_MEMORY_RUNTIME attribute for the smmstore region will
fail if the capability hasn't been set previously, so do that just
in case. Fixes a failure to init on the Lenovo T480.

Signed-off-by: Matt DeVillier <[email protected]>
Add a new SD/eMMC driver, ported from Depthcharge, to streamline init
of SD/eMMC devices, and better support Chromebook specific board
controllers (Gl9763, GL9750, Bayhub, etc).

TODO: add MMIO support

Signed-off-by: Matt DeVillier <[email protected]>
… qword

Newer NASM versions enforce operand size rules for PUSH in 64-bit mode, rejecting `strict dword` since PUSH r32 cannot be encoded in long mode. NASM previously treated it as a 64-bit operand, but now fails to assemble the exception handler.

Use `strict qword` instead to ensure proper 64-bit encoding and fix build failures with NASM >= 3.00.
1: tianocore#11635
@MrChromebox MrChromebox force-pushed the uefipayload_2508 branch 14 times, most recently from 8b9659e to fc7c465 Compare November 1, 2025 00:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.