With NSCFG definitions in place, record the per-table NSCFG bits in SMMUTransTableInfo during CD decode for later use.
Signed-off-by: Tao Tang <[email protected]> Reviewed-by: Eric Auger <[email protected]> Reviewed-by: Pierrick Bouvier <[email protected]> --- hw/arm/smmuv3.c | 1 + include/hw/arm/smmu-common.h | 1 + 2 files changed, 2 insertions(+) diff --git a/hw/arm/smmuv3.c b/hw/arm/smmuv3.c index a01175cc672..6b34f76f11b 100644 --- a/hw/arm/smmuv3.c +++ b/hw/arm/smmuv3.c @@ -881,6 +881,7 @@ static int decode_cd(SMMUv3State *s, SMMUTransCfg *cfg, tt->ttb = CACHED_ENTRY_TO_ADDR(entry, tt->ttb); } + tt->nscfg = CD_NSCFG(cd, i); tt->had = CD_HAD(cd, i); trace_smmuv3_decode_cd_tt(i, tt->tsz, tt->ttb, tt->granule_sz, tt->had); } diff --git a/include/hw/arm/smmu-common.h b/include/hw/arm/smmu-common.h index bd83648b14c..1aa4e3208da 100644 --- a/include/hw/arm/smmu-common.h +++ b/include/hw/arm/smmu-common.h @@ -83,6 +83,7 @@ typedef struct SMMUTransTableInfo { uint8_t tsz; /* input range, ie. 2^(64 -tsz)*/ uint8_t granule_sz; /* granule page shift */ bool had; /* hierarchical attribute disable */ + int nscfg; /* Non-secure attribute of Starting-level TT */ } SMMUTransTableInfo; typedef struct SMMUTLBEntry { -- 2.34.1
