From 4ae8db4aa4c1271a65740d30044dd0d396a54847 Mon Sep 17 00:00:00 2001 From: Giacomo Travaglini Date: Thu, 15 Jul 2021 11:30:18 +0100 Subject: [PATCH] arch, arch-arm: Make BaseMMU translate methods virtual As we are shifting towards making the MMU the main translating agent, we need to make those methods virtual to let all ISAs move their TLB::translate* methods to the MMU class JIRA: https://gem5.atlassian.net/browse/GEM5-790 Change-Id: I50c84784546e8148230d79efe4bf010d0e36d6ab Signed-off-by: Giacomo Travaglini Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/48140 Reviewed-by: Jason Lowe-Power Reviewed-by: Andreas Sandberg Maintainer: Jason Lowe-Power Maintainer: Andreas Sandberg Tested-by: kokoro --- src/arch/arm/mmu.hh | 2 ++ src/arch/generic/mmu.hh | 20 ++++++++++++-------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/arch/arm/mmu.hh b/src/arch/arm/mmu.hh index a129831b79..14816d75b7 100644 --- a/src/arch/arm/mmu.hh +++ b/src/arch/arm/mmu.hh @@ -90,6 +90,7 @@ class MMU : public BaseMMU void init() override; + using BaseMMU::translateFunctional; bool translateFunctional(ThreadContext *tc, Addr vaddr, Addr &paddr); Fault translateFunctional(const RequestPtr &req, ThreadContext *tc, @@ -103,6 +104,7 @@ class MMU : public BaseMMU Fault translateAtomic(const RequestPtr &req, ThreadContext *tc, BaseMMU::Mode mode, bool stage2); + using BaseMMU::translateTiming; void translateTiming(const RequestPtr &req, ThreadContext *tc, BaseMMU::Translation *translation, BaseMMU::Mode mode, bool stage2); diff --git a/src/arch/generic/mmu.hh b/src/arch/generic/mmu.hh index cc8b8b0264..8bcb3a75c9 100644 --- a/src/arch/generic/mmu.hh +++ b/src/arch/generic/mmu.hh @@ -102,17 +102,21 @@ class BaseMMU : public SimObject void demapPage(Addr vaddr, uint64_t asn); - Fault translateAtomic(const RequestPtr &req, ThreadContext *tc, - Mode mode); + virtual Fault + translateAtomic(const RequestPtr &req, ThreadContext *tc, + Mode mode); - void translateTiming(const RequestPtr &req, ThreadContext *tc, - Translation *translation, Mode mode); + virtual void + translateTiming(const RequestPtr &req, ThreadContext *tc, + Translation *translation, Mode mode); - Fault translateFunctional(const RequestPtr &req, ThreadContext *tc, - Mode mode); + virtual Fault + translateFunctional(const RequestPtr &req, ThreadContext *tc, + Mode mode); - Fault finalizePhysical(const RequestPtr &req, ThreadContext *tc, - Mode mode) const; + virtual Fault + finalizePhysical(const RequestPtr &req, ThreadContext *tc, + Mode mode) const; virtual void takeOverFrom(BaseMMU *old_mmu);