Commit Graph

63111 Commits

Author SHA1 Message Date
Michał Żygowski f6ed696bbc mb/msi/ms7e56/devicetree.cb: Set proper polarity for SIO UART IRQ4
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>
2026-06-03 14:53:58 +02:00
Michał Żygowski 68341e27d3 configs/config.msi_ms7e56: Update config and enable capsule updates
Change-Id: I1b0b8f93f470d2e6c9e8fea77c55361a41d56855
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
2026-06-03 14:53:57 +02:00
Michał Żygowski 4156c24881 vc/amd/opensil/phoenix_poc/mpio/chip.c: Enable GFX HDA based on devicetree
Upstream-Status: Pending
Change-Id: Ia595a9ececff382d800ba54b7eed54fc3d6073b6
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
2026-06-03 14:53:57 +02:00
Michał Kopeć d5c26487d8 acpi/acpi.c: don't publish stub VFCT when VBIOS is not embedded
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>
2026-06-03 14:53:57 +02:00
Michał Żygowski 26621d1952 amdblocks/graphics: Do not create the _ROM method when using openSIL
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>
2026-06-03 14:53:57 +02:00
Michał Żygowski 457dc9b62c soc/amd/phoenix/chipset_opensil.cb: Assign HDA ops for iGFX audio
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>
2026-06-03 14:53:57 +02:00
Michał Żygowski 7bfdff33df mb/msi/ms7e56: Describe ACPI devices and ACPI events
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>
2026-06-03 14:53:55 +02:00
Michał Żygowski 6ebf3089b0 mainboard/msi/ms7e56/mainboard.c: Update interrupt routing
Program interrupts only for used devices.

Upstream-Status: Pending
Change-Id: I3c4560e9d5aaee2144182c11e1bdd9c4717528b2
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
2026-06-03 10:02:23 +02:00
Michał Żygowski a34f7e7486 soc/amd/phoenix/include/soc/amd_pci_int_defs.h: Add missing IRQs
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>
2026-06-03 10:02:23 +02:00
Michał Żygowski a76d7878ab mainbaord/msi/ms7e56: Add Promontory21 GPIO ACPI
Upstream-Status: Pending
Change-Id: I7cd1fca2060c1da09df01c069d57d0365eafd5b1
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
2026-06-03 10:02:23 +02:00
Michał Żygowski 209dc780f1 soc/amd/phoenix: Add CPPC support with openSIL
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>
2026-06-03 10:02:23 +02:00
Michał Żygowski fd8ffc1efb vc/amd/opensil/phoenix_poc/ramstage.c: Limit MMIO to 1TB
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>
2026-06-03 10:02:22 +02:00
Michał Żygowski 5979fdb07a vc/amd/opensil/phoenix_poc/mpio: Fill NBIO params for IOMMU and APIC
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>
2026-06-03 10:02:22 +02:00
Michał Żygowski 20302224e4 mainboard/msi/ms7e56: Remove obsolete remove_devicetree
Upstream-Status: Pending
Change-Id: I60fb42f835fbe0cfdec25a8b8bf044a1390ab8a7
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
2026-06-03 10:02:22 +02:00
Michał Żygowski eb8b3cff25 mainboard/msi/ms7e56: Add eSPI initialization
Initialize eSPI interrupts and watchdog.

Upstream-Status: Pending
Change-Id: I1e1de121ecca3457f32ea607d6bc70d318cace59
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
2026-06-03 10:02:22 +02:00
Michał Żygowski c1d611a181 soc/amd/phoenix/acpi: Add IOAPIC interrupt routing function
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>
2026-06-03 10:02:22 +02:00
Michał Żygowski ac59f8bfc6 soc/amd/phoenix/chipset_opensil.cb: use PCIe bridge scan for internal 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>
2026-06-03 10:02:21 +02:00
Michał Żygowski 5719271e8e acpi/acpigen_pci_root_resource_producer.c: Include VGA memory in VGA 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>
2026-06-03 10:02:21 +02:00
Michał Żygowski d418615753 util/superiotool/nuvoton.c: Dump IRQ registers
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>
2026-06-03 10:02:21 +02:00
Michał Żygowski 6a1d4a5cf1 util/amdtool/lpc.c: Read LPC CFG space with SMN
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>
2026-06-03 10:02:21 +02:00
Michał Żygowski e849288412 util/amdtool/espi.c: Add more eSPI registers to dump
Upstream-Status: Pending
Change-Id: I3f23c95e5a1d30c26c06c48f77f4a99881511c04
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
2026-06-03 10:02:21 +02:00
Michał Żygowski 1426f955a1 soc/amd/phoenix/Kconfig: Enable AMD memory context save/restore
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>
2026-06-03 10:02:20 +02:00
Michał Żygowski 2f0f936814 mainboard/msi/ms7e56: Add MSI FlashBIOS support
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>
2026-06-03 10:02:20 +02:00
Michał Żygowski 2f148a4704 util/msi/romholetool: Add support for MS-7E56 board
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>
2026-06-03 10:02:20 +02:00
Michał Żygowski 0b2a3b257e mainboard/msi/ms7e56: Add ACPI code for SIO and MSI utilities installer
Upstream-Status: Pending
Change-Id: I2b551413691d6a8be4db470a190697b20ee1183e
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
2026-06-03 10:02:20 +02:00