From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mx.groups.io with SMTP id smtpd.web12.6851.1654751465047867743 for ; Wed, 08 Jun 2022 22:11:06 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=WVps9kZ9; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: w.sheng@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654751465; x=1686287465; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=u+L8pOZVGK5mpL1ZhG6750Hc1z78OLH5f0/lzgRh6yA=; b=WVps9kZ9nPaRYORZhfPOEczFCHlxKUZpM+/YDed9mX74kjbNEq8DZXhr bQtcaik/xOgjDk1YPfwqJnuEjpL7az3N1EKTZx9JtVlto2Wq0rvQRVmM/ jXC0YMT2ljzc6BiHfLyImY+cpfG2hJYhNIOlrXek4f2tlF4QmjfGG4rEB 3TcRlaabFVtVQ6QA7tjgp/LK4vMO7bVws7sUSJMAecXYFLRdU/HBBRIc+ HJKKMStIKAuhAfKoq86e10uMU7woB/jVZLE92Xw9khzRxAOxaiBP+WBcr t7Q0qXAEOFoEpEel6okHLGZxF8RLQ+f4oaSsXHX2FHqrq2CyGIogwAUDi w==; X-IronPort-AV: E=McAfee;i="6400,9594,10372"; a="338919774" X-IronPort-AV: E=Sophos;i="5.91,287,1647327600"; d="scan'208";a="338919774" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Jun 2022 22:11:04 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,287,1647327600"; d="scan'208";a="670968744" Received: from shwdesssddpdwei.ccr.corp.intel.com ([10.239.157.43]) by FMSMGA003.fm.intel.com with ESMTP; 08 Jun 2022 22:11:02 -0700 From: "Sheng Wei" To: devel@edk2.groups.io Cc: Robert Kowalewski , Ray Ni , Rangasai V Chaganty , Jenny Huang Subject: [PATCH v3] IntelSiliconPkg/VTd: Add PCD for VTd Abort DMA Mode Support Date: Thu, 9 Jun 2022 13:10:53 +0800 Message-Id: <20220609051053.2063-1-w.sheng@intel.com> X-Mailer: git-send-email 2.26.2.windows.1 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable PcdVTdSupportAbortDmaMode is used to enable/disable using VTd Abort DMA Mod= e. Signed-off-by: Sheng Wei Reviewed-by: Robert Kowalewski Cc: Ray Ni Cc: Rangasai V Chaganty Cc: Jenny Huang Change-Id: If999d2f4906bda887dffe8574ec17cb90346b710 --- .../Feature/VTd/IntelVTdDmarPei/IntelVTdDmar.c | 9 ++++++--- .../Feature/VTd/IntelVTdDmarPei/IntelVTdDmarPei.inf | 3 ++- Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dec | 6 ++++++ 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/Silicon/Intel/IntelSiliconPkg/Feature/VTd/IntelVTdDmarPei/Inte= lVTdDmar.c b/Silicon/Intel/IntelSiliconPkg/Feature/VTd/IntelVTdDmarPei/Inte= lVTdDmar.c index b4c44d87..0d372f6c 100644 --- a/Silicon/Intel/IntelSiliconPkg/Feature/VTd/IntelVTdDmarPei/IntelVTdDma= r.c +++ b/Silicon/Intel/IntelSiliconPkg/Feature/VTd/IntelVTdDmarPei/IntelVTdDma= r.c @@ -1,6 +1,6 @@ /** @file=0D =0D - Copyright (c) 2020 - 2021, Intel Corporation. All rights reserved.
=0D + Copyright (c) 2020 - 2022, Intel Corporation. All rights reserved.
=0D =0D SPDX-License-Identifier: BSD-2-Clause-Patent=0D =0D @@ -570,10 +570,12 @@ EnableVTdTranslationProtectionBlockDma ( =0D DEBUG ((DEBUG_INFO, "EnableVTdTranslationProtectionBlockDma - 0x%08x\n",= VtdUnitBaseAddress));=0D =0D + DEBUG ((DEBUG_INFO, "PcdVTdSupportAbortDmaMode : %d\n", FixedPcdGetBool = (PcdVTdSupportAbortDmaMode)));=0D +=0D ECapReg.Uint64 =3D MmioRead64 (VtdUnitBaseAddress + R_ECAP_REG);=0D - DEBUG ((DEBUG_INFO, "ECapReg : 0%016lx\n", ECapReg.Uint64));=0D + DEBUG ((DEBUG_INFO, "ECapReg.ADMS : %d\n", ECapReg.Bits.ADMS));=0D =0D - if (ECapReg.Bits.ADMS =3D=3D 1) {=0D + if ((ECapReg.Bits.ADMS =3D=3D 1) && FixedPcdGetBool (PcdVTdSupportAbortD= maMode)) {=0D //=0D // Use Abort DMA Mode=0D //=0D @@ -594,6 +596,7 @@ EnableVTdTranslationProtectionBlockDma ( ASSERT (FALSE);=0D return EFI_DEVICE_ERROR;=0D }=0D + DEBUG ((DEBUG_INFO, "Block All DMA by TE.\n"));=0D Status =3D EnableDmarPreMem (VtdUnitBaseAddress, (UINT64) (*RootEntryT= able));=0D }=0D =0D diff --git a/Silicon/Intel/IntelSiliconPkg/Feature/VTd/IntelVTdDmarPei/Inte= lVTdDmarPei.inf b/Silicon/Intel/IntelSiliconPkg/Feature/VTd/IntelVTdDmarPei= /IntelVTdDmarPei.inf index b97ff900..473665e9 100644 --- a/Silicon/Intel/IntelSiliconPkg/Feature/VTd/IntelVTdDmarPei/IntelVTdDma= rPei.inf +++ b/Silicon/Intel/IntelSiliconPkg/Feature/VTd/IntelVTdDmarPei/IntelVTdDma= rPei.inf @@ -4,7 +4,7 @@ # This driver initializes VTd engine based upon EDKII_VTD_INFO_PPI=0D # and provide DMA protection in PEI.=0D #=0D -# Copyright (c) 2020, Intel Corporation. All rights reserved.
=0D +# Copyright (c) 2022, Intel Corporation. All rights reserved.
=0D # SPDX-License-Identifier: BSD-2-Clause-Patent=0D #=0D ##=0D @@ -55,6 +55,7 @@ gIntelSiliconPkgTokenSpaceGuid.PcdVTdPolicyPropertyMask ## CONSUMES=0D gIntelSiliconPkgTokenSpaceGuid.PcdVTdPeiDmaBufferSize ## CONSUMES=0D gIntelSiliconPkgTokenSpaceGuid.PcdVTdPeiDmaBufferSizeS3 ## CONSUMES=0D + gIntelSiliconPkgTokenSpaceGuid.PcdVTdSupportAbortDmaMode ## CONSUMES=0D =0D [Depex]=0D gEfiPeiMasterBootModePpiGuid AND=0D diff --git a/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dec b/Silicon/In= tel/IntelSiliconPkg/IntelSiliconPkg.dec index e5b785ae..c36d130a 100644 --- a/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dec +++ b/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dec @@ -135,6 +135,12 @@ gIntelSiliconPkgTokenSpaceGuid.PcdFlashMicrocodeFvSize|0x000A0000|UINT32= |0x0000000A=0D gIntelSiliconPkgTokenSpaceGuid.PcdFlashMicrocodeFvOffset|0x00660000|UINT= 32|0x0000000B=0D =0D + ## Indicates if VTd Abort DMA Mode is supported.

=0D + # TRUE - Support VTd abort DMA mode.=0D + # FALSE - Not support VTd abort DMA mode.=0D + # @Prompt VTd abort DMA mode support.=0D + gIntelSiliconPkgTokenSpaceGuid.PcdVTdSupportAbortDmaMode|FALSE|BOOLEAN|0= x0000000C=0D +=0D [PcdsFixedAtBuild, PcdsPatchableInModule]=0D ## Error code for VTd error.

=0D # EDKII_ERROR_CODE_VTD_ERROR =3D (EFI_IO_BUS_UNSPECIFIED | (EFI_OEM_SPE= CIFIC | 0x00000000)) =3D 0x02008000
=0D --=20 2.26.2.windows.1