UPSTREAM: ACPI: Add code to create root port entry in DMAR table

PCI root ports with "Address Translation Service" capability can be
reported in DMAR table in the ATSR scope to let the OS know how to
handle these devices the right way when VT-d is used.
Add code to create an entry for a PCI root port using the type
"SCOPE_PCI_SUB".

BUG=None
BRANCH=None
TEST=None

Change-Id: Ia73f174f9546e6d622ede37f4b6264380972678e
Signed-off-by: Werner Zeh <werner.zeh@siemens.com>
Reviewed-on: https://review.coreboot.org/15912
Tested-by: build bot (Jenkins)
Reviewed-by: Nico Huber <nico.h@gmx.de>
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Reviewed-on: https://chromium-review.googlesource.com/367386
Commit-Ready: Furquan Shaikh <furquan@chromium.org>
Tested-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-by: Furquan Shaikh <furquan@chromium.org>
This commit is contained in:
Werner Zeh 2016-07-27 07:07:20 +02:00 committed by chrome-bot
commit 2d735f690c
2 changed files with 9 additions and 0 deletions

View file

@ -477,6 +477,13 @@ static unsigned long acpi_create_dmar_drhd_ds(unsigned long current,
return ds->length;
}
unsigned long acpi_create_dmar_drhd_ds_pci_br(unsigned long current, u8 bus,
u8 dev, u8 fn)
{
return acpi_create_dmar_drhd_ds(current,
SCOPE_PCI_SUB, 0, bus, dev, fn);
}
unsigned long acpi_create_dmar_drhd_ds_pci(unsigned long current, u8 bus,
u8 dev, u8 fn)
{

View file

@ -620,6 +620,8 @@ unsigned long acpi_create_dmar_atsr(unsigned long current, u8 flags,
u16 segment);
void acpi_dmar_drhd_fixup(unsigned long base, unsigned long current);
void acpi_dmar_atsr_fixup(unsigned long base, unsigned long current);
unsigned long acpi_create_dmar_drhd_ds_pci_br(unsigned long current,
u8 bus, 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,