diff options
author | Nikos Nikoleris <nikos.nikoleris@arm.com> | 2016-08-12 14:11:45 +0100 |
---|---|---|
committer | Nikos Nikoleris <nikos.nikoleris@arm.com> | 2016-08-12 14:11:45 +0100 |
commit | ee7d8fdcb2226139fd1d6a6f0cde987721ea3699 (patch) | |
tree | 961223d93cd98093c18b7df8ae67d5399c38061c /src/mem/coherent_xbar.cc | |
parent | 080d4e08d627b5b726afec71d38370373b7376c5 (diff) | |
download | gem5-ee7d8fdcb2226139fd1d6a6f0cde987721ea3699.tar.xz |
mem: Add support for secure packets in the snoop filter
Secure and non-secure data can coexist in the cache and therefore the
snoop filter should treat differently packets with secure and non
secure accesses. This patch uses the lower bits of the line address to
keep track of whether the packet is addressing secure memory or not.
Change-Id: I54a5e614dad566a5083582bede86c86896f2c2c1
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Stephan Diestelhorst <stephan.diestelhorst@arm.com>
Reviewed-by: Tony Gutierrez <anthony.gutierrez@amd.com>
Diffstat (limited to 'src/mem/coherent_xbar.cc')
-rw-r--r-- | src/mem/coherent_xbar.cc | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/mem/coherent_xbar.cc b/src/mem/coherent_xbar.cc index c0d8ab037..3e917dacc 100644 --- a/src/mem/coherent_xbar.cc +++ b/src/mem/coherent_xbar.cc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2015 ARM Limited + * Copyright (c) 2011-2016 ARM Limited * All rights reserved * * The license below extends only to copyright in the software and shall @@ -266,7 +266,7 @@ CoherentXBar::recvTimingReq(PacketPtr pkt, PortID slave_port_id) if (snoopFilter && !system->bypassCaches()) { // Let the snoop filter know about the success of the send operation - snoopFilter->finishRequest(!success, addr); + snoopFilter->finishRequest(!success, addr, pkt->isSecure()); } // check if we were successful in sending the packet onwards @@ -666,7 +666,7 @@ CoherentXBar::recvAtomic(PacketPtr pkt, PortID slave_port_id) // operation, and do it even before sending it onwards to // avoid situations where atomic upward snoops sneak in // between and change the filter state - snoopFilter->finishRequest(false, pkt->getAddr()); + snoopFilter->finishRequest(false, pkt->getAddr(), pkt->isSecure()); snoop_result = forwardAtomic(pkt, slave_port_id, InvalidPortID, sf_res.first); |