diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/dev/arm/smmu_v3_caches.hh | 2 | ||||
-rw-r--r-- | src/dev/arm/smmu_v3_transl.cc | 5 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/dev/arm/smmu_v3_caches.hh b/src/dev/arm/smmu_v3_caches.hh index ce5bb45a9..060f60e11 100644 --- a/src/dev/arm/smmu_v3_caches.hh +++ b/src/dev/arm/smmu_v3_caches.hh @@ -252,6 +252,8 @@ class ConfigCache : public SMMUv3BaseCache uint16_t vmid; uint8_t stage1_tg; uint8_t stage2_tg; + uint8_t t0sz; + uint8_t s2t0sz; }; ConfigCache(unsigned numEntries, unsigned _associativity, diff --git a/src/dev/arm/smmu_v3_transl.cc b/src/dev/arm/smmu_v3_transl.cc index 84ca5a7c2..c1d998ea0 100644 --- a/src/dev/arm/smmu_v3_transl.cc +++ b/src/dev/arm/smmu_v3_transl.cc @@ -532,6 +532,9 @@ SMMUTranslationProcess::configCacheLookup(Yield &yield, TranslContext &tc) tc.stage1TranslGranule = e->stage1_tg; tc.stage2TranslGranule = e->stage2_tg; + tc.t0sz = e->t0sz; + tc.s2t0sz = e->s2t0sz; + return true; } @@ -555,6 +558,8 @@ SMMUTranslationProcess::configCacheUpdate(Yield &yield, e.vmid = tc.vmid; e.stage1_tg = tc.stage1TranslGranule; e.stage2_tg = tc.stage2TranslGranule; + e.t0sz = tc.t0sz; + e.s2t0sz = tc.s2t0sz; doSemaphoreDown(yield, smmu.configSem); |