Skip to content

B850 support part5#883

Open
miczyg1 wants to merge 62 commits into
dasharo-25.12from
b850_support_part5
Open

B850 support part5#883
miczyg1 wants to merge 62 commits into
dasharo-25.12from
b850_support_part5

Conversation

@miczyg1

@miczyg1 miczyg1 commented May 4, 2026

Copy link
Copy Markdown
Contributor

No description provided.

@miczyg1 miczyg1 force-pushed the dasharo-25.12 branch 2 times, most recently from a6701c9 to 6477ee1 Compare May 7, 2026 07:40
@miczyg1 miczyg1 force-pushed the b850_support_part5 branch from f6bf95f to 185839e Compare May 8, 2026 07:47
@miczyg1 miczyg1 force-pushed the b850_support_part5 branch 3 times, most recently from f51efb8 to 01c9c8a Compare May 19, 2026 15:19
miczyg1 added 12 commits May 20, 2026 09:19
Set parameters for GFX IP block intialization. Some of them are
duplicated with NBIO, so we want to keep them in sync.

Upstream-Status: Pending
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Pass AMD GOP EFI driver and VBIOS file to EDK2 build system to
be integrated in the DXE FV. The PciPlatformDriver will fetch
the VBIOS from FV for given PCI device ID and vendor ID passed
in the VGA_BIOS_ID Konfig option as PCDs.

Upstream-Status: Pending
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Upstream-Status: Pending
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
DDI ports, as MPIO ports, are board specific. Add chip configuration
to allow boards to specify DDI links via devicetree and pass the DDI
link list to openSIL.

TEST=HDMI display works on MSI PRO B850-P WIFI with PiKVM.

Upstream-Status: Pending
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Update APCB blobs to include the display parameters used by HDMI
port.

Describe the HDMI port as DDI link in devicetree, so that it will
be passed to openSIL to prepare integrated graphics for GOP driver.

TEST=HDMI display works on MSI PRO B850-P WIFI with PiKVM with AMD GOP
in EDK2.

Upstream-Status: Pending
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Upstream-Status: Inappropriate [custom config]
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Add Promontory firmware variants to the PSP directories. Also add a
pointer to the Promontory firmware inside EFS. It will be used by
coreboot to easily locate the firmware, load it to RAM and pass it
to silicon initialization module.

Upstream-Status: Pending
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Allocate early memory for Promontory FW in the memory layout. The
Promontory initialization should run with the FW in RAM.

Upstream-Status: Pending
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Add API for searching promontory FW in EFS and loading it to RAM
at desired address.

Upstream-Status: Pending
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Initialize Promontory chipset with newly added support for Promontory
in openSIL.

Upstream-Status: Pending
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Upstream-Status: Pending
Change-Id: I83aa2363678c0c5a70cde4c34b65f87c87bb68ae
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Upstream-Status: Pending
Change-Id: I0ab522f0ee613781b3bbec1d79804f7364ec6891
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
@miczyg1 miczyg1 force-pushed the b850_support_part5 branch 3 times, most recently from 4d682c8 to 0a35905 Compare May 20, 2026 11:51
@miczyg1 miczyg1 force-pushed the b850_support_part5 branch 4 times, most recently from ee9d570 to 2b9f800 Compare June 3, 2026 07:50
miczyg1 added 5 commits June 3, 2026 10:00
Upstream-Status: Pending
Change-Id: Ifa9edbcf59c23d240af4f057552c0868e10b1a77
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Add Promontory 21 chip driver that will serve as openSIL
configuration setter based on devicetree config values.

Change-Id: Ice1ae8cd882c13d5fa1186dded53326430db9621
Upstream-Status: Pending
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Assing ops for each device of Promontory chipset, so that proper
ACPI code is generated on boot.

Upstream-Status: Pending
Change-Id: I018eb0ea45a386ae718b3a38716cfbe2043da55a
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Based on output from amdtool.

Change-Id: I31f5601f5e9721764c74bea8a78f614af53f7eb6
Upstream-Status: Pending
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Assign device operations to Promontory devices and set subsystem IDs.

Upstream-Status: Pending
Change-Id: I032201989c977a01ad76845312a4ee74f361e208
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
miczyg1 added 19 commits June 3, 2026 10:02
Program clocks, eSPI IRQ masking and I2C devices enabling as vendor
BIOS does.

Upstream-Status: Pending
Change-Id: I7727764611e7e6916ea288b7eb2ab198f0bd9648
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Upstream-Status: Pending
Change-Id: I2b551413691d6a8be4db470a190697b20ee1183e
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
MS-7E56 board, aka MSI PRO B850-P WIFI has small differences in the
romhole structure. Use preprocessor defines in a Kconfig option to
override the romhole structure and construct the romhole binary
that matches the format of the board. Changes are made in a way that
previous boards are not affected.

Upstream-Status: Pending
Change-Id: I21f0de69957d3610761a8ab32d999fc6fd9d463f
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Add necessary regions, options and structures to the resutling image
to make FlashBIOS work. Use the freshly added ROMHOLE as a source
for the SMBIOS type 2 values.

Upstream-Status: Pending
Change-Id: If4fe27fc0701c4458d3a10bae68da4adfe8602fa
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
On modern platforms the state of APOB NV copy is stored in CMOS.

Upstream-Status: Pending
Change-Id: I6b5c5745fb9d0a30dc61542c5ca266eb70611e6e
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Upstream-Status: Pending
Change-Id: I3f23c95e5a1d30c26c06c48f77f4a99881511c04
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Sometimes the LPC configuration space may be locked from host access.
Use SMN to retrieve the LPC CFG space values as a backup.

Upstream-Status: Pending
Change-Id: I26f8bca135aec3589401ccb84dd5f668efa67311
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Before accessign IRQ type and IRQ polarity registers, register 0x1d
bit 3 must be set in global LDN.

Upstream-Status: Pending
Change-Id: I5847651342922b78f1956dc8af3460f5f29023de
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
…resource

The root bridge resources should also include the RAM for VGA
if VGA is available on given root bridge.

Upstream-Status: Pending
Change-Id: I9a1da3651d09ec5634de398617dbc2aeda33e734
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
… GPP

Use PCI Express bridge scan function for internal GPP bridges, because
openSIL does not program the PCIe capabilities yet. Let coreboot
set ASPM, Max Payload, Clock PM and others so that the devices work
properly.

Upstream-Status: Pending
Change-Id: I35ab7a31cbb40879a35a491e43742f816216973e
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Switch to IOAPIC interrupt routing when _PIC function is evaluated
by the OS and interrupt routing is enabled. The change reflects
what turin_poc does.

Additionally there is a function added to disable all PIC IRQ
routing once the IOAPIC routing is enabled.

Upstream-Status: Pending
Change-Id: I444a1380d6d84d5bb2d5e93bd0a2cb7b93cfc21e
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Initialize eSPI interrupts and watchdog.

Upstream-Status: Pending
Change-Id: I1e1de121ecca3457f32ea607d6bc70d318cace59
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Upstream-Status: Pending
Change-Id: I60fb42f835fbe0cfdec25a8b8bf044a1390ab8a7
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Fill missing parameters for NBIO IOMMU and APIC, because some of them
were no set per devicetree or were duplicated in CCX class input block.
They have to be in sync.

Upstream-Status: Pending
Change-Id: I695bcccf0d549748862efd4017d50aabf658d37b
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Set the MMIO limit to 1TB minus the reserved space for IOMMU and
ROM3 to reflect vendor BIOS settings.

Upstream-Status: Pending
Change-Id: Id43cb3aeff491facfb48546ff89cbc2eb50b7a5c
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Report min and max frequency in CPPC structures so that AMD P-state
driver probes correctly on Linux.

Upstream-Status: Pending
Change-Id: I5f28db05bad9a2016dd203818e199a9dd5c8511a
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Upstream-Status: Pending
Change-Id: I7cd1fca2060c1da09df01c069d57d0365eafd5b1
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Add IRQs that are reference in reference code or ACPI on PHX AM5
devices.

Upstream-Status: Pending
Change-Id: Ice4de51b3aa702dd8ee0442a74660d6e3f39e1db
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Program interrupts only for used devices.

Upstream-Status: Pending
Change-Id: I3c4560e9d5aaee2144182c11e1bdd9c4717528b2
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
@miczyg1 miczyg1 force-pushed the b850_support_part5 branch 3 times, most recently from 5440b69 to 890748d Compare June 3, 2026 12:27
miczyg1 and others added 7 commits June 3, 2026 14:53
Generate missing devices in SSDT. Add GPE and ACPI events as in vendor
BIOS.

Upstream-Status: Pending
Change-Id: I11097dc269c7b44e241ae32d0947ebde712f8011
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Assign Azalia operations to let mainboards provide HDA verbs
for integrated GPU audio.

Upstream-Status: Pending
Change-Id: I2e36056a9bfb92d392bfde5f21243411fa4c9cae
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
The openSIL does not support GOP. GOP has to be launched by UEFIPayload.
UEFIPaylaod will load the VBIOS from the FFS as passed to the build.

Upstream-Status: Pending
Change-Id: I248d890eaec0054e4e12c8442dab23a788de9a67
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
acpi_create_vfct returns without resetting header->length when no
VBIOS is found. The in-source comment claims it returns with length
== 0 (which the caller in pci_rom_write_acpi_tables checks before
adding the table to XSDT), but the code leaves length at
sizeof(acpi_vfct_t) from the prior acpi_fill_header call, so a
104-byte header-only VFCT gets added anyway.

Match the comment: clear header->length before returning.

Beyond fixing the comment/code mismatch, this also works around a
bug in some AMD discrete-GPU UEFI option ROM drivers (observed on
Radeon RX 9070 XT) that find the stub VFCT in XSDT, try to replace
it with their own, and pass the XSDT index of VFCT to
UninstallAcpiTable() instead of the TableKey returned by
InstallAcpiTable(). The wrong table at that numeric handle gets
removed - in our case the MADT, leaving the OS unable to bring up
APs. With no stub VFCT in XSDT, the GOP driver's install path
never enters the buggy uninstall code.

TEST=Boot with Radeon 9070 XT and with disabled Option ROM execution,
observe that coreboot does not create a VFCT table, and that the GOP
driver never enters the buggy codepath in the UEFI payload.

Change-Id: I8798093b735eabfe95b9028a2c0622c4b4f76da8
Upstream-Status: Submitted [CB:92495]
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
…etree

Upstream-Status: Pending
Change-Id: Ia595a9ececff382d800ba54b7eed54fc3d6073b6
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Change-Id: I1b0b8f93f470d2e6c9e8fea77c55361a41d56855
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
The SIO is configured for low level interrupts. Reflect that in eSPI
controller configuratio nso that the interrupts in OS work correctly.

TEST=Enable serial console in Linux and get login prompt.

Upstream-Status: Pending
Change-Id: I4de833f3a73157c03d35f1bcdf3b476f3da6721e
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
@miczyg1 miczyg1 force-pushed the b850_support_part5 branch from 890748d to f6ed696 Compare June 3, 2026 12:55
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.

2 participants