IntelSiliconPkg IntelVTdDxe: Use ACPI table event to get DMAR table

Use ACPI table event to get DMAR table instead of using ACPI SDT
notification as ACPI SDT is optional and the default value of
PcdInstallAcpiSdtProtocol is FALSE in MdeModulePkg.dec.

Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
This commit is contained in:
Star Zeng
2017-10-25 17:23:03 +08:00
parent 3909c4a193
commit f6f486e7bf
4 changed files with 46 additions and 30 deletions

View File

@@ -989,6 +989,10 @@ GetDmarAcpiTable (
VOID *AcpiTable;
EFI_STATUS Status;
if (mAcpiDmarTable != NULL) {
return EFI_SUCCESS;
}
AcpiTable = NULL;
Status = EfiGetSystemConfigurationTable (
&gEfiAcpi20TableGuid,
@@ -1006,10 +1010,10 @@ GetDmarAcpiTable (
(EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER *)AcpiTable,
EFI_ACPI_4_0_DMA_REMAPPING_TABLE_SIGNATURE
);
DEBUG ((DEBUG_INFO,"DMAR Table - 0x%08x\n", mAcpiDmarTable));
if (mAcpiDmarTable == NULL) {
return EFI_UNSUPPORTED;
return EFI_NOT_FOUND;
}
DEBUG ((DEBUG_INFO,"DMAR Table - 0x%08x\n", mAcpiDmarTable));
VtdDumpDmarTable();
return EFI_SUCCESS;