Project

General

Profile

Actions

Bug #665

open
WS

Does EDK2 MrChromeBox support integrated dGPU uga/gop VBIOS file from CBFS?

Bug #665: Does EDK2 MrChromeBox support integrated dGPU uga/gop VBIOS file from CBFS?

Added by Walter Sonius 21 days ago. Updated 10 days ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
-
Target version:
Start date:
10/04/2026
Due date:
% Done:

0%

Estimated time:
Affected versions:
Needs backport to:
Affected hardware:
Apple MacBookPro10,1
Affected OS:

Description

Does EDK2 MrChromebox 26.09.2 load a VBIOS bin file from CBFS added with CONFIG_VGA_BIOS and runs it like SeaBIOS does for laptops with dGPU? Tried it with and without the CONFIG_EDK2_LOAD_OPTION_ROMS:y setting?

For a while EDK2 MrChromeBox payload caries support for loading VBIOS from real physical PCIe dGPU's using CONFIG_EDK2_LOAD_OPTION_ROMS:y if they have a matching 64-bit EFI GOP. This has worked fine for me on real desktop boards with PCIe dGPU's from sandybridge to coffeelake both with AMD and NVIDIA dGPU's even combined with libgfxinit intel iGPU's.

Currently on coreboot 26.09-14-ge0eec9336f54 for the macbookpro10,1 CB:32673 it works fine with SeaBIOS 1.17. Switching from only Intel to only NVIDIA keeps SeaBIOS bootscreen and makes built-in display, both miniDP and HDMI output work if using NVIDIA. While only using CONFIG_VGA_BIOS with 10de,0fd5 a uefiextract supplied VBIOS bin and not even using the Kconfig 2nd or discrete VGA options (since the Intel iGPU uses libgfxinit).

When using EDK2 MrChromebox 26.09.2 forced to only NVIDIA the built-in display remains off during post/boot (no bunny neither on both miniDP ports nor HDMI port). However the OS nouveau driver detects the VBIOS in its CBFS/ACPI table and all video outputs start working fine including sound output. Currently only Intel iGPU output works fine with EDK2 bootscreen.

Any thoughts how to debug or even research if my VBIOS file has a correct EFI GOP in it?

By default both EDK2 and SeaBIOS builds are build with libgfxinit support and not using the coreboot way of running the VBIOS from CBFS but let the payload do it which works for SeaBIOS.

WS Updated by Walter Sonius 21 days ago Actions #1

Recently saw this edk2 MrChromebox change UefiPayloadPkg/PlatformGopPolicy: Load GOP driver and VBT from CBFS still need to test and report back.

Also forgot to mention that switching from only Intel iGPU to NVIDIA dGPU happens at runtime both cmos (nvramtool) and cfr(not yet upstreamed) work and it is not a build time option.

MD Updated by Matt DeVillier 21 days ago Actions #2

Walter Sonius wrote in #note-1:

Recently saw this edk2 MrChromebox change UefiPayloadPkg/PlatformGopPolicy: Load GOP driver and VBT from CBFS still need to test and report back.

Also forgot to mention that switching from only Intel iGPU to NVIDIA dGPU happens at runtime both cmos (nvramtool) and cfr(not yet upstreamed) work and it is not a build time option.

I added that change yesterday so that the same edk2 payload could be used across an entire platform where only the VBT differed. It's only wired up for the Intel GOP+VBT combo, same as before.

Prior to that change, edk2 had no concept of, nor way to read the CBFS. It has no function to read the CBFS and try to locate EFI ROMs for dGPUs (or anything else)

WS Updated by Walter Sonius 20 days ago Actions #3

So in the past for intel iGPU the VBIOS CBFS file was copied during build time as a copy to EDK2 so it could use it but now EDK2 got improved and it can actually read VBIOS CBFS file directly from CBFS but still is limited to intel only with the VBT requirement and remains a coreboot/EDK2 buildtime setting?

If I can get rid of the Intel only plus VBT requirement and accept that its a buildtime option just for testing may it be possible that it just load/run the VBIOS file for the dGPU instead?

MD Updated by Matt DeVillier 20 days ago Actions #4

Walter Sonius wrote in #note-3:

So in the past for intel iGPU the VBIOS CBFS file was copied during build time as a copy to EDK2 so it could use it but now EDK2 got improved and it can actually read VBIOS CBFS file directly from CBFS but still is limited to intel only with the VBT requirement and remains a coreboot/EDK2 buildtime setting?

If I can get rid of the Intel only plus VBT requirement and accept that its a buildtime option just for testing may it be possible that it just load/run the VBIOS file for the dGPU instead?

VBIOS is legacy, there is no support of any kind for running a legacy VBIOS in edk2.

The change mentioned above is for an edk2 DXE GOP driver (.efi), and for Intel iGPUs only. I have no idea what might happen if you tried to use it to run a non-Intel GOP driver.

WS Updated by Walter Sonius 10 days ago Actions #5

Sorry for mixing up the VBIOS term, I ment dumped rom/bin which on a physical external dGPU's may contain both VBIOS(legacy) and efi(GOP) in the same dump.

Will try to debug this further on a "Desktop PC" with a working EDK2 serial port since it will lack any display output by the iGPU because libgfxinit has to be disabled to force EDK2 do the enabling using your current intel only (CBFS efi GOP + VBT) method. Modify this method to not load intel efi GOP but a efi GOP(without VBT) from a AMD polaris dGPU RX460 (for which I can erase/restore its physical ROM with a ch341a programmer already tested) or try with EDK2 shell command to run something like loadpcirom.

If it somehow works for the AMD dGPU I will try a PC dGPU Nvidia GTX640 for which its VBIOS was converted to efi GOP in the past by kepler BIOS editor/ UEFI enabler, perhaps I can transform the macbookpro NVIDIA dGPU legacy VBIOS dump with a similar kepler UEFI updater still have try though.

MD Updated by Matt DeVillier 10 days ago Actions #6

edk2 has the option to execute on-device option ROMs - does that not work for this case?

WS Updated by Walter Sonius 10 days ago Actions #7

Earlier test of this were done on the MacbookPro which probably missed the NVIDIA efi GOP part from that extracted ROM, so letting coreboot insert a legacy VBIOS into CBFS and hoping EDK2 will load it does indeed fail.

Have to re-test that with the AMD dGPU with a erased/stripped physical ROM and than add that dumped ROM to coreboot CBFS and see if EDK2 option ROM loading does the rest.

MD Updated by Matt DeVillier 10 days ago Actions #8

Walter Sonius wrote in #note-7:

Earlier test of this were done on the MacbookPro which probably missed the NVIDIA efi GOP part from that extracted ROM, so letting coreboot insert a legacy VBIOS into CBFS and hoping EDK2 will load it does indeed fail.

Have to re-test that with the AMD dGPU with a erased/stripped physical ROM and than add that dumped ROM to coreboot CBFS and see if EDK2 option ROM loading does the rest.

edk2 will load the dGPU option ROM from the device, not from CBFS.

reading from CBFS is only implemented for the VBT+ Intel GOP option currently

Actions

Also available in: PDF Atom