audk/IntelSiliconPkg/Feature/VTd/IntelVTdDxe
Star Zeng 8c09f30010 IntelSiliconPkg VTdDxe: Option to force no early access attr request
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1272

To have high confidence in usage for platform, add option (BIT2 of
PcdVTdPolicyPropertyMask) to force no IOMMU access attribute request
recording before DMAR table is installed.

Check PcdVTdPolicyPropertyMask BIT2 before RequestAccessAttribute()
and ProcessRequestedAccessAttribute(), then RequestAccessAttribute(),
ProcessRequestedAccessAttribute() and mAccessRequestXXX variables
could be optimized by compiler when PcdVTdPolicyPropertyMask BIT2 = 1.

Test done:
1: Created case that has IOMMU access attribute request before DMAR
   table is installed, ASSERT was triggered after setting
   PcdVTdPolicyPropertyMask BIT2 to 1.

2. Confirmed RequestAccessAttribute(), ProcessRequestedAccessAttribute()
   and mAccessRequestXXX variables were optimized by compiler after
   setting PcdVTdPolicyPropertyMask BIT2 to 1.

Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Rangasai V Chaganty <rangasai.v.chaganty@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>
2018-10-25 11:50:43 +08:00
..
BmDma.c IntelSiliconPkg/Vtd: Add MapHandleInfo in VtdDxe. 2018-03-09 10:27:52 +08:00
DmaProtection.c IntelSiliconPkg VTdDxe: Option to force no early access attr request 2018-10-25 11:50:43 +08:00
DmaProtection.h IntelSiliconPkg IntelVTdDxe: Remove mVtdHostAddressWidthMask 2018-01-17 10:49:02 +08:00
DmarAcpiTable.c IntelSiliconPkg IntelVTdDxe: Use new EfiLocateFirstAcpiTable() 2018-09-27 14:25:33 +08:00
IntelVTdDxe.c IntelSiliconPkg VTdDxe: Option to force no early access attr request 2018-10-25 11:50:43 +08:00
IntelVTdDxe.inf IntelSiliconPkg: Removing ipf which is no longer supported from edk2. 2018-09-13 13:12:02 +08:00
IntelVTdDxe.uni IntelSiliconPkg/IntelVTdDxe: Move to feature dir. 2017-09-17 09:52:10 +08:00
IntelVTdDxeExtra.uni IntelSiliconPkg/IntelVTdDxe: Move to feature dir. 2017-09-17 09:52:10 +08:00
PciInfo.c IntelSiliconPkg IntelVTdDxe: Check HeaderType if func 0 is implemented 2018-09-17 09:17:58 +08:00
TranslationTable.c IntelSiliconPkg IntelVTdDxe: Fix flush cache issue 2018-01-24 18:40:36 +08:00
TranslationTableEx.c IntelSiliconPkg/Vtd: Add missing dump in ExtContext. 2018-03-12 13:17:15 +08:00
VtdReg.c IntelSiliconPkg IntelVTdDxe: Fix incorrect code to clear VTd error 2018-06-06 12:46:43 +08:00