From abd33d6fd26bb69d3bf53ceb6c2dc8f90d893e34 Mon Sep 17 00:00:00 2001 From: Javier Bueno Date: Tue, 14 May 2019 10:14:23 +0200 Subject: [PATCH] arch-arm: Do not check MustBeOne flag for TLB requests from the prefetcher Allow TLB requests generated from prefetchers to override the MustBeOne arch flag. This allows the prefetchers to issue requests without having to know architecutre-specific flags. Change-Id: Id83e0c93f3d1a614da11c4f344ab4dc594423672 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/18768 Reviewed-by: Nikos Nikoleris Reviewed-by: Andreas Sandberg Maintainer: Andreas Sandberg Tested-by: kokoro --- src/arch/arm/tlb.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/arch/arm/tlb.cc b/src/arch/arm/tlb.cc index 4b43a50a4..f30e195c1 100644 --- a/src/arch/arm/tlb.cc +++ b/src/arch/arm/tlb.cc @@ -586,7 +586,7 @@ TLB::translateSe(const RequestPtr &req, ThreadContext *tc, Mode mode, bool is_write = (mode == Write); if (!is_fetch) { - assert(flags & MustBeOne); + assert(flags & MustBeOne || req->isPrefetch()); if (sctlr.a || !(flags & AllowUnaligned)) { if (vaddr & mask(flags & AlignmentMask)) { // LPAE is always disabled in SE mode @@ -1038,7 +1038,7 @@ TLB::translateFs(const RequestPtr &req, ThreadContext *tc, Mode mode, req->setFlags(Request::STRICT_ORDER); } if (!is_fetch) { - assert(flags & MustBeOne); + assert(flags & MustBeOne || req->isPrefetch()); if (sctlr.a || !(flags & AllowUnaligned)) { if (vaddr & mask(flags & AlignmentMask)) { alignFaults++; -- 2.30.2