From: Star Zeng Date: Tue, 16 Jan 2018 10:48:52 +0000 (+0800) Subject: IntelSiliconPkg IntelVTdPmrPei: Use HostAddressWidth in DMAR correctly X-Git-Tag: edk2-stable201903~2590 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=9dd8b1908e7d0585ba6b77d4586f6091842d925c;hp=e8097a74b763bfc439c273ddfef8e1d542d83ea7 IntelSiliconPkg IntelVTdPmrPei: Use HostAddressWidth in DMAR correctly According to VTd spec, HostAddressWidth + 1 should be used as the real host address width value. Host Address Width: This field indicates the maximum DMA physical addressability supported by this platform. The system address map reported by the BIOS indicates what portions of this addresses are populated. The Host Address Width (HAW) of the platform is computed as (N+1), where N is the value reported in this field. For example, for a platform supporting 40 bits of physical addressability, the value of 100111b is reported in this field. Cc: Jiewen Yao Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Star Zeng Reviewed-by: Jiewen Yao --- diff --git a/IntelSiliconPkg/Feature/VTd/IntelVTdPmrPei/IntelVTdPmrPei.c b/IntelSiliconPkg/Feature/VTd/IntelVTdPmrPei/IntelVTdPmrPei.c index 8f86d4cd15..bb7ace4ca5 100644 --- a/IntelSiliconPkg/Feature/VTd/IntelVTdPmrPei/IntelVTdPmrPei.c +++ b/IntelSiliconPkg/Feature/VTd/IntelVTdPmrPei/IntelVTdPmrPei.c @@ -677,7 +677,7 @@ InitVTdPmrForAll ( LowBottom = 0; LowTop = 0; HighBottom = 0; - HighTop = LShiftU64 (1, VTdInfo->HostAddressWidth); + HighTop = LShiftU64 (1, VTdInfo->HostAddressWidth + 1); Status = SetDmaProtectedRange ( VTdInfo,