soc/intel/xeon_sp: Fix PCH IOAPIC ID
FSP may program a different ID under certain circumstances. Read IOAPIC ID from hardware instead of using some define that might not reflect how hardware is configured. Change-Id: Ia91cb4aef9d15520b8b3402ec10e7b0a4355caeb Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/73390 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-by: Angel Pons <th3fanbus@gmail.com>
This commit is contained in:
parent
c5d6af43fb
commit
57ddd682ce
|
@ -58,7 +58,4 @@
|
|||
#define PCH_IOAPIC_DEV_NUM 0x1F
|
||||
#define PCH_IOAPIC_FUNC_NUM 0x00
|
||||
|
||||
// ========== IOAPIC Definitions for DMAR/ACPI ========
|
||||
#define PCH_IOAPIC_ID 0x08
|
||||
|
||||
#endif
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
#include <acpi/acpigen.h>
|
||||
#include <arch/hpet.h>
|
||||
#include <arch/ioapic.h>
|
||||
#include <assert.h>
|
||||
#include <cbmem.h>
|
||||
#include <cpu/x86/lapic.h>
|
||||
|
@ -223,10 +224,10 @@ static unsigned long acpi_create_drhd(unsigned long current, int socket,
|
|||
if (socket == 0 && stack == CSTACK) {
|
||||
union p2sb_bdf ioapic_bdf = p2sb_get_ioapic_bdf();
|
||||
printk(BIOS_DEBUG, " [IOAPIC Device] Enumeration ID: 0x%x, PCI Bus Number: 0x%x, "
|
||||
"PCI Path: 0x%x, 0x%x\n",
|
||||
PCH_IOAPIC_ID, ioapic_bdf.bus, ioapic_bdf.dev, ioapic_bdf.fn);
|
||||
current += acpi_create_dmar_ds_ioapic(current, PCH_IOAPIC_ID,
|
||||
ioapic_bdf.bus, ioapic_bdf.dev, ioapic_bdf.fn);
|
||||
"PCI Path: 0x%x, 0x%x\n", get_ioapic_id(VIO_APIC_VADDR), ioapic_bdf.bus,
|
||||
ioapic_bdf.dev, ioapic_bdf.fn);
|
||||
current += acpi_create_dmar_ds_ioapic_from_hw(current,
|
||||
IO_APIC_ADDR, ioapic_bdf.bus, ioapic_bdf.dev, ioapic_bdf.fn);
|
||||
}
|
||||
|
||||
// Add IOAPIC entry
|
||||
|
|
Loading…
Reference in New Issue