arch/x86: Enable support for IOAPIC devices
On platforms with multiple IOAPICs the GSI base must not be linear, which is currently assumed by acpi_create_madt_ioapic_from_hw(). Integrate the existing struct device DEVICE_PATH_IOAPIC type and allow to assign custom GSI bases for each IOAPIC. Write out the IOAPIC devices into the MADT table if any. For now, since no platform adds IOAPIC devices, the existing behaviour remains the same. Allows to get rid of soc_get_ioapic_info(). Change-Id: Ie13d4f5c4f0704f0935974f90e5b7cf24e94aab3 Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/85226 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com>
This commit is contained in:
parent
a7437ca340
commit
b04ecb2a5f
5 changed files with 66 additions and 0 deletions
|
|
@ -130,6 +130,9 @@ static int path_eq(const struct device_path *path1,
|
|||
case DEVICE_PATH_CPU_BUS:
|
||||
equal = (path1->cpu_bus.id == path2->cpu_bus.id);
|
||||
break;
|
||||
case DEVICE_PATH_IOAPIC:
|
||||
equal = (path1->ioapic.ioapic_id == path2->ioapic.ioapic_id);
|
||||
break;
|
||||
case DEVICE_PATH_GENERIC:
|
||||
equal = (path1->generic.id == path2->generic.id) &&
|
||||
(path1->generic.subid == path2->generic.subid);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue