cpu: Allow TLB shootdown requests in the timing cpu

JIRA: https://gem5.atlassian.net/browse/GEM5-1097

Change-Id: Ied38e9ed1f02d8e48bc5d62cc34baaec740bf6b8
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/56599
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Samuel Stark
2021-10-26 14:57:05 +01:00
committed by Giacomo Travaglini
parent de9cdc28ce
commit 9dfac01243

View File

@@ -1236,7 +1236,7 @@ TimingSimpleCPU::initiateSpecialMemCmd(Request::Flags flags)
req->taskId(taskId());
req->setInstCount(t_info.numInst);
assert(req->isHTMCmd());
assert(req->isHTMCmd() || req->isTlbiCmd());
// Use the payload as a sanity check,
// the memory subsystem will clear allocated data
@@ -1246,14 +1246,19 @@ TimingSimpleCPU::initiateSpecialMemCmd(Request::Flags flags)
memcpy (data, &rc, size);
// debugging output
if (req->isHTMStart())
DPRINTF(HtmCpu, "HTMstart htmUid=%u\n", t_info.getHtmTransactionUid());
else if (req->isHTMCommit())
DPRINTF(HtmCpu, "HTMcommit htmUid=%u\n", t_info.getHtmTransactionUid());
else if (req->isHTMCancel())
DPRINTF(HtmCpu, "HTMcancel htmUid=%u\n", t_info.getHtmTransactionUid());
else
panic("initiateHtmCmd: unknown CMD");
if (req->isHTMCmd()) {
if (req->isHTMStart())
DPRINTF(HtmCpu, "HTMstart htmUid=%u\n",
t_info.getHtmTransactionUid());
else if (req->isHTMCommit())
DPRINTF(HtmCpu, "HTMcommit htmUid=%u\n",
t_info.getHtmTransactionUid());
else if (req->isHTMCancel())
DPRINTF(HtmCpu, "HTMcancel htmUid=%u\n",
t_info.getHtmTransactionUid());
else
panic("initiateSpecialMemCmd: unknown HTM CMD");
}
sendData(req, data, nullptr, true);