summaryrefslogtreecommitdiff
path: root/src/arch/x86/include
diff options
context:
space:
mode:
authorNico Huber <nico.huber@secunet.com>2015-10-26 12:03:54 +0100
committerPatrick Georgi <pgeorgi@google.com>2015-11-04 16:17:12 +0100
commit6c4751d5965c3c8d87b21c39efd66ccc26ff5823 (patch)
tree3d09f7ca3e666221036b9836ab0869cb540b8ae4 /src/arch/x86/include
parente561f35fa5126e89b568292864acd8b9b95377e0 (diff)
ACPI: Add functions for DMAR I/O-APIC and HPET entries
Refactor acpi_create_dmar_drhd_ds_pci() and add similar functions for I/O-APICs and MSI capable HPETs. We violate the spec [1] here, which talks about 16-bit source-ids spread over start_bus and path entries. Intel actually uses bus/dev/fn identification for those devices too, and so do we. [1] Intel Virtualization Technology for Directed I/O Architecture Specification Document-Number: D51397 Change-Id: I0fce075961762610d44b5552b71e010511871fc2 Signed-off-by: Nico Huber <nico.huber@secunet.com> Reviewed-on: http://review.coreboot.org/12192 Tested-by: build bot (Jenkins) Reviewed-by: Duncan Laurie <dlaurie@google.com> Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Diffstat (limited to 'src/arch/x86/include')
-rw-r--r--src/arch/x86/include/arch/acpi.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/arch/x86/include/arch/acpi.h b/src/arch/x86/include/arch/acpi.h
index 2a7ea79e01..66e11006dc 100644
--- a/src/arch/x86/include/arch/acpi.h
+++ b/src/arch/x86/include/arch/acpi.h
@@ -553,8 +553,14 @@ void acpi_create_dmar(acpi_dmar_t *dmar, enum dmar_flags flags,
unsigned long acpi_create_dmar_drhd(unsigned long current, u8 flags,
u16 segment, u32 bar);
void acpi_dmar_drhd_fixup(unsigned long base, unsigned long current);
-unsigned long acpi_create_dmar_drhd_ds_pci(unsigned long current, u8 segment,
- u8 dev, u8 fn);
+unsigned long acpi_create_dmar_drhd_ds_pci(unsigned long current,
+ u8 bus, u8 dev, u8 fn);
+unsigned long acpi_create_dmar_drhd_ds_ioapic(unsigned long current,
+ u8 enumeration_id,
+ u8 bus, u8 dev, u8 fn);
+unsigned long acpi_create_dmar_drhd_ds_msi_hpet(unsigned long current,
+ u8 enumeration_id,
+ u8 bus, u8 dev, u8 fn);
void acpi_write_hest(acpi_hest_t *hest,
unsigned long (*acpi_fill_hest)(acpi_hest_t *hest));