From: Javier Bueno Date: Tue, 14 May 2019 08:14:23 +0000 (+0200) Subject: arch-arm: Do not check MustBeOne flag for TLB requests from the prefetcher X-Git-Tag: v19.0.0.0~851 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=abd33d6fd26bb69d3bf53ceb6c2dc8f90d893e34;p=gem5.git 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 --- 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++;