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>
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>
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>
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>
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>
Program interrupts only for used devices.
Upstream-Status: Pending
Change-Id: I3c4560e9d5aaee2144182c11e1bdd9c4717528b2
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>