From: Giacomo Travaglini Date: Tue, 12 Nov 2019 14:43:23 +0000 (+0000) Subject: dev-arm: Fix SMMUv3 16KB next-level table address masking X-Git-Tag: v19.0.0.0~146 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6f6bf2f90e71295e8c025e0d627e6cbd28d8b429;p=gem5.git dev-arm: Fix SMMUv3 16KB next-level table address masking The next-level table address for a granule size of 16KB is retrieved from the 47:14 bits of the current table descriptor (instead of 47:12, which is the valid masking for a 4KB granule) Change-Id: I570138a34003dc034d8e67dc1209316157d57205 Signed-off-by: Giacomo Travaglini Reviewed-by: Michiel van Tol Reviewed-by: Nikos Nikoleris Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23763 Tested-by: kokoro --- diff --git a/src/dev/arm/smmu_v3_ptops.cc b/src/dev/arm/smmu_v3_ptops.cc index 96d876ea3..05c8bc022 100644 --- a/src/dev/arm/smmu_v3_ptops.cc +++ b/src/dev/arm/smmu_v3_ptops.cc @@ -273,7 +273,7 @@ V8PageTableOps16k::nextLevelPointer(pte_t pte, unsigned level) const default: panic("bad level %d", level); } } else { - return mbits(pte, 47, 12); + return mbits(pte, 47, 14); } }