acpi/acpi.c: Add a method to generate IOAPIC DMAR entries from hw

This reads back the ioapic id from hardware.

Change-Id: I214557bbe963d1086f35f96efb1cb47950099eb3
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/70267
Reviewed-by: Jonathan Zhang <jonzhang@fb.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/src/acpi/acpi.c b/src/acpi/acpi.c
index 899d0f8..04a59b1 100644
--- a/src/acpi/acpi.c
+++ b/src/acpi/acpi.c
@@ -898,6 +898,14 @@
 			SCOPE_IOAPIC, enumeration_id, bus, dev, fn);
 }
 
+unsigned long acpi_create_dmar_ds_ioapic_from_hw(unsigned long current,
+						 u32 addr, u8 bus, u8 dev, u8 fn)
+{
+	u8 enumeration_id = get_ioapic_id((void *)(uintptr_t)addr);
+	return acpi_create_dmar_ds(current,
+			SCOPE_IOAPIC, enumeration_id, bus, dev, fn);
+}
+
 unsigned long acpi_create_dmar_ds_msi_hpet(unsigned long current,
 	u8 enumeration_id, u8 bus, u8 dev, u8 fn)
 {