Skip to content

Misc QEMU fixes - #839

Open
mkopec wants to merge 1084 commits into
dasharofrom
qemu_fixes
Open

Misc QEMU fixes#839
mkopec wants to merge 1084 commits into
dasharofrom
qemu_fixes

Conversation

@mkopec

@mkopec mkopec commented Feb 3, 2026

Copy link
Copy Markdown
Member

filipleple and others added 30 commits July 29, 2025 16:51
Changes:
- Enable SMM BWP - supported thanks to recent SMMSTORE fixes
- Show WiFi/BT enable option - for feature parity
- Disable console redirection to nonexistent serial port - speeds up
  booting significantly
- Increase CBMEM buffer size

Upstream-Status: Inappropriate [Dasharo downstream]
Signed-off-by: Filip Lewiński <filip.lewinski@3mdeb.com>
Set the s0ix_enable parameter in accordance with chosen sleep mode.

Upstream-Status: Pending
Signed-off-by: Filip Lewiński <filip.lewinski@3mdeb.com>
The VBT extracted from debugfs of a running system didn't work with the
FSP graphics init. Now with the appropriate version of a manually configured
VBT the FSP GFX init works and the EDK2 GOP driver is no longer
necessary.

Upstream-Status: Pending
Signed-off-by: Filip Lewiński <filip.lewinski@3mdeb.com>
Set the p2sb to hidden, since that's the state FSP leaves it in. This
resolves the "not found, hiding it" message in cbmem. Enable the IPU.

Upstream-Status: Pending
Signed-off-by: Filip Lewiński <filip.lewinski@3mdeb.com>
L3 cache is typically unified and shared across all logical CPUs.
The CPUID leaf 0x4 already reports the total cache size for such shared caches.

Multiplying L3 size by the number of cores sharing it results in an
inflated value that may exceed SMBIOS limits or be misinterpreted,
leading Windows and other OSes to report the L3 cache size as zero.

Upstream-Status: Pending
Signed-off-by: Filip Lewiński <filip.lewinski@3mdeb.com>
Updated OSFV used by this workflow requires at least Python 3.13.

Upstream-Status: Inappropriate [Dasharo downstream]
Change-Id: Id73ba9c581efb35e0872cc553217697fb664b0be
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
So we can group any checks in one place without causing a confusion.

Upstream-Status: Inappropriate [Dasharo downstream]
Change-Id: I709fc05352e5eeb69a154661cf62b60dd3de3f3f
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
This results in fewer per-workflow entries on
https://github.com/Dasharo/coreboot/actions making the page more
readable.

Also don't fetch whole commit history, 2000 commits should be fine for
practically anything (we have less than a 1000 commits on top of
upstream at the moment).

Upstream-Status: Pending
Change-Id: Ica2ff8972121dba8de3e650fd045ede2763d6d29
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Upstream-Status: Inappropriate [Dasharo downstream]
Change-Id: I60d1527f8bec4a7616566467fd2c173c95128d7b
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Upstream-Status: Pending
Change-Id: I90d931d7c1dbf36097644d49d24625206425a977
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Upstream-Status: Pending
Change-Id: Ie69105c10568932bcc3e946c8e5c3d179c1615d6
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Upstream-Status: Inappropriate [Dasharo downstream]
Change-Id: I158946894466bee927c86359f9b9e200797b9581
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Add necessary code to support 4x1 bifurcation in M.2 NVMe slot
for Net Card 2. Create a new build variant supporting Net Card 2.

TEST=Boot Linux on ODROID H4 Ultra with Net Card 2 and run iperf
in all 4 ports from the Net Card 2.

Upstream-Status: Pending
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Fixes the issue with display not working in the firmware.
New FSP updated VBT definitions. Old VBTs no longer work with new FSP.
Update VBT so that it works with up to date ADL-N FSP.

TEST=Boot ODROID H4 Ultra with monitor plugged into all DP and HDMI
ports and observe boot logo on the screen.

Upstream-Status: Pending
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Change-Id: Ic6fdf94450ce5ed5884a7851e53e68c43ecdf6b7
Upstream-Status: Inappropriate [custom feature]
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
DSP is not needed for audio to work. Moreover, it causes problems
with driver binding in Windows as it changes how the HDA controller
is seen in Windows.

Upstream-Status: Pending
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Add code to support new menu option for In-band ECC feature
control.

Upstream-Status: Inappropriate [custom feature]
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Add In-band ECC configuration in devicetree necessary to fill
FSP UPDs to enable IBECC.

Upstream-Status: Inappropriate [custom feature]
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Add code to enable In-band ECC feature option in setup menu.

Change-Id: I1acdf89ccf5e390d058e6d2a3893c1545282f5fc
Upstream-Status: Inappropriate [custom feature]
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Paylaod revision has to be updated with introduction of new PCD.
New PCD controls the visibility of XMP profile selection so that
it is independent of IBECC option.

Upstream-Status: Inappropriate [custom configs]
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
FW performance measurement is required to measure difference in boot
time with fast boot.

Change-Id: I28071058985f16e4cc1cee936c7a380862e5be64
Upstream-Status: Inappropriate [custom configs]
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Add build checks for new ODROID build variant.

Change-Id: Icf2f3645e295b721356252e996900fd14f278b3b
Upstream-Status: Inappropriate [CI configuration]
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Change-Id: I7b695dc1e334bea77480e58a6e1695f440eed0a5
Upstream-Status: Inappropriate [custom configs]
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Change-Id: Id66590bbb4aba3f19d448ebcb08aa544f25b975c
Upstream-Status: Pending
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Update iPXE revision so that coreboot can be built with newer
toolchains.

Upstream-Status: Inappropriate [custom configs]
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
It was incorrectly assumed that capsules' memory will be reserved in
clear_memory() without any additional changes to the function.  As a
result, platforms for which memory clearing conditions were met during a
capsule update reset cleared the capsules.

Make efi_parse_capsules() return start and size of the range occupied by
capsules via output parameters and exclude the range in clear_memory().

Also print memory range instead of merely where it starts in
efi_parse_capsules(), this was helpful in determining the cause of this
issue.

Upstream-Status: Pending
Change-Id: Ibf62012cec0216daee4ee754085604dd11acaf74
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Change-Id: I802f77bdc75c8a966f03d0d58c9f3b35c896204c
Upstream-Status: Inappropriate [custom configs]
Signed-off-by: Mateusz Maciejewski <mateusz.maciejewski@3mdeb.com>
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
… Odroid H4+

Change-Id: I051b42ff89fd7de94d8c5a5e064fde05b29c6f13
Upstream-Status: Inappropriate [Dasharo downstream]
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
When CPU doesn't support SMX, a DRTM is not possible, yet any reboot
seems to be treated as DRTM reset.  Discard TXT error and secret bits as
irrelevant to avoid unnecessarily clearing DRAM on reboots as that makes
reboot significantly longer.

This applies to platforms which have CONFIG_INTEL_TXT for CBnT, have a
TXT-enabled chipset, but don't have a CPU with TXT support.

Change-Id: If937419d4186c7421c3eb52daf0cc299993b5068
Upstream-Status: Pending
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Change-Id: I96458f500fd6967c719b4e0e08029e28240f25f5
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
mkopec and others added 16 commits January 23, 2026 15:33
This is needed to properly set addresses of objects located in the Top
Swap region of the flash, when Top Swap-based redundancy is enabled.

Upstream-Status: Pending
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Upstream-Status: Pending
Change-Id: I7803072aa0f04499c802c258d9b69ef27cd57227
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
…redudnancy enabled

Upstream-Status: Inappropriate [Dasharo downstream]
Change-Id: Id6bb4f2f6dff76cafca8636aa64ca45fd5ce66bb
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
…tmedia

Upstream-Status: Inappropriate [Dasharo downstream]
Change-Id: I437818568cb1ae951a91c1de4a955ef21587cc9c
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Upstream-Status: Inappropriate [Dasharo downstream]
Change-Id: I03e9d3fff221961921ecf08bb8b6eab3a71c5135
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
…edudnancy enabled

Upstream-Status: Inappropriate [Dasharo downstream]
Change-Id: I944c18c41a103ae9c380d6102bd41394be6ad923
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Upstream-Status: Inappropriate [Dasharo downstream]
Change-Id: Ia7d91db301db4984e9662304045a12d193cc4e85
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Upstream-Status: Inappropriate [Dasharo downstream]
Change-Id: I15021d070687259abcfe1930534a3910ef12867e
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Upstream-Status: Inappropriate [Dasharo downstream]
Change-Id: I7eb8805c9e6c74d71ff0af0d98ad3e60670d684e
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Upstream-Status: Inappropriate [Dasharo downstream]
Change-Id: I1406c21b7aeb6b97ac9e27ec487838855e4cfc24
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Upstream-Status: Inappropriate [Dasharo downstream]
Change-Id: Ib9cb65dc0fbb97dd401dac7fe190569a930eb19b
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Upstream-Status: Inappropriate [Dasharo downstream]
Change-Id: Ice02f181e23b18db105b6cf59374e3e80b37a29b
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Upstream-Status: Inappropriate [Dasharo downstream]
Change-Id: I4fc08ebc834a676bd1782d4a77a85d483c7cd451
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Upstream-Status: Inappropriate [Dasharo downstream]
Change-Id: Ia09a6fc16cfa40374bb192f71dd6eeeb6fe299fe
Signed-off-by: Filip Lewiński <filip.lewinski@3mdeb.com>
Upstream-Status: Inappropriate [Dasharo downstream]
Change-Id: I1cf9e9b29b62f4b7418fead91ad5dc3f94954da1
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Upstream-Status: Inappropriate [Dasharo downstream]
Change-Id: I1039c06dd19a671011f43a98d31a4273b094d2a5
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
@mkopec mkopec changed the title Qemu fixes Misc QEMu fixes Feb 3, 2026
@mkopec mkopec changed the title Misc QEMu fixes Misc QEMU fixes Feb 3, 2026
@mkopec
mkopec force-pushed the qemu_fixes branch 2 times, most recently from 9cbf1c2 to 8c0f97a Compare February 3, 2026 19:46
… decoding

Better for gaming in VFIO passthrough scenarios

Upstream-Status: Inappropriate [Dasharo downstream]
Change-Id: Ia27cefd33e829b0b24f65360ff1fbff87e80742b
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
…config

Upstream-Status: Inappropriate [Dasharo downstream]
Change-Id: Iceb9c84ce089795b55ea2e27606303a99b47a0d1
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
@mkopec

mkopec commented Feb 4, 2026

Copy link
Copy Markdown
Member Author

TEST=boot platform with GPU VFIO passthrough and verify video works in OS and in firmware. Verify passed through USB devices work. Verify serial console works.

CONFIG_PAYLOAD_EDK2=y
CONFIG_EDK2_CBMEM_LOGGING=y
CONFIG_EDK2_SERIAL_SUPPORT=y
CONFIG_EDK2_CUSTOM_BUILD_PARAMS="-D ABOVE_4G_MEMORY=TRUE"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ABOVE_4G_MEMORY is enabled by default.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It wasn't enabled when I was testing. Actually the Kconfig option EDK2_ABOVE_4G_MEMORY is missing entirely from Kconfig files, so the Makefile will set it to False explicitly:

# ABOVE_4G_MEMORY = TRUE
ifneq ($(CONFIG_EDK2_ABOVE_4G_MEMORY),y)
BUILD_STR += -D ABOVE_4G_MEMORY=FALSE
endif

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I meant that it's enabled in the DSC file and didn't expect CONFIG_EDK2_ABOVE_4G_MEMORY to be undefined. Apparently, it's a Dasharo-specific option which got broken at some point. Seems like we're always passing ABOVE_4G_MEMORY=FALSE to EDK? Not sure we've ever intended that.

CONFIG_EDK2_CPU_THROTTLING_THRESHOLD_OPTION=y
CONFIG_EDK2_DASHARO_PCI_CONFIG=y
CONFIG_EDK2_DASHARO_MEMORY_CONFIG=y
CONFIG_EDK2_DASHARO_SPD_PROFILE_OPTION=y

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All these options weren't enabled in this config because they don't actually work.

CONFIG_DRIVERS_EFI_MAIN_FW_GUID="20651b14-8653-4d9b-a75a-67fa76e0ada5"
CONFIG_DRIVERS_EFI_MAIN_FW_VERSION=0x00020101
CONFIG_DRIVERS_EFI_MAIN_FW_LSV=0x00020101
CONFIG_DRIVERS_EFI_UPDATE_CAPSULES=y

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The capsules weren't enabled because enabling ME menu results in EDK assuming ME is on, so the capsules don't work with this config.

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.

QEMU fw (all_menus version) doesn't support capsules