Issue #666 has been updated by Sebastian Müller.
Hi Matt, Patrick,
Sorry to jump in - I got curious, had some time and took a closer look at
Patrick's log.
I think 2608 is missing the workaround that prevents CpuDxe from publishing
the EFI Memory Attribute Protocol.
2508, 2511, and 2603 each carry your revert of the upstream change, all from
2025-02-11:
fb863e113b / 5b63f930e3 / 97f0b65a1d
Revert "UefiCpuPkg: Produce EFI memory attributes protocol"
2605 instead has the cleaner variant:
29c488003c
UefiCpuPkg/CpuDxe: Gate EFI Memory Attribute Protocol behind a PCD
2608 appears to have neither, while 2511 is Patrick's working branch.
The fault in Patrick's log is:
ExceptionData - 0000000000000003 I:0 R:0 U:0 W:1 P:1 PK:0 SS:0 SGX:0
so this is a write fault on a present page, which does not fit a jump into
unallocated memory.
Your 29c488003c applies cleanly to 2608. After rebuilding, the Memory
Attribute Protocol GUID is no longer present in CpuDxe.dll, which is
the intended behavior described in your commit message.
I have not tested this on hardware.
My best guess as to how the remaining pieces fit together is:
1. GRUB requests 0x1000000 + init_size, and that allocation fails
(the ConvertPages line above).
2. It falls back to another address, as Fedora's kernel_alloc() does,
and ends up somewhere around 0x189xxxxx.
3. It then calls grub_update_mem_attrs() on that buffer, which only
has an effect when the protocol is present...
4. A later write into a page of that buffer faults.
That would explain why the fault address is outside the failed range:
RIP, CR2, and RDI all sit within roughly 370 KiB of each other, with both
write targets page-aligned, which looks like a loader writing into its own
image.
Patrick, could you try 2608 with 29c488003c applied and see whether it
works on your hardware?
Steps:
cd payloads/external/edk2/workspace/mrchromebox
git fetch origin
git checkout -B memattr-test origin/uefipayload_2608
git cherry-pick 29c488003c
Then set the payload revision to that branch. The edk2 Makefile
force-checks out EDK2_TAG_OR_REV on every build whenever the tree is clean,
so a detached cherry-pick would otherwise be discarded:
CONFIG_EDK2_TAG_OR_REV="memattr-test"
and rebuild.
Best,
Sebastian
----------------------------------------
Bug #666: EDK2: MrChromebox uefipayload_2608 broken: uefipayload_2511 works on
Lenovo X220
https://ticket.coreboot.org/issues/666#change-2430
* Author: Patrick Rudolph
* Status: New
* Priority: Normal
* Target version: none
* Start date: 2026-10-10
----------------------------------------
tested with coreboot 717c0505b1063da72db9aba2f1f0e1ef6dee60da
Works:
* uefipayload_2511
Broken:
* uefipayload_2608
Seems to hang in payload. Since there's no RS232 serial available, only EHCI
debug works, it's not clear why it hangs.
---Files--------------------------------
x220_UefiPayloadPkg_crash.log (92.2 KB)
--
You have received this notification because you have either subscribed to it,
or are involved in it.
To change your notification preferences, please click here:
https://ticket.coreboot.org/my/account
_______________________________________________
coreboot mailing list -- [email protected]
To unsubscribe send an email to [email protected]