summaryrefslogtreecommitdiff
path: root/src/mem/snoop_filter.hh
diff options
context:
space:
mode:
authorNikos Nikoleris <nikos.nikoleris@arm.com>2016-08-12 14:11:45 +0100
committerNikos Nikoleris <nikos.nikoleris@arm.com>2016-08-12 14:11:45 +0100
commitee7d8fdcb2226139fd1d6a6f0cde987721ea3699 (patch)
tree961223d93cd98093c18b7df8ae67d5399c38061c /src/mem/snoop_filter.hh
parent080d4e08d627b5b726afec71d38370373b7376c5 (diff)
downloadgem5-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/snoop_filter.hh')
-rwxr-xr-xsrc/mem/snoop_filter.hh12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/mem/snoop_filter.hh b/src/mem/snoop_filter.hh
index 3851e5810..85cc75e9b 100755
--- a/src/mem/snoop_filter.hh
+++ b/src/mem/snoop_filter.hh
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2015 ARM Limited
+ * Copyright (c) 2013-2016 ARM Limited
* All rights reserved
*
* The license below extends only to copyright in the software and shall
@@ -143,7 +143,7 @@ class SnoopFilter : public SimObject {
* @param will_retry This request will retry on this bus / snoop filter
* @param addr Packet address, merely for sanity checking
*/
- void finishRequest(bool will_retry, const Addr addr);
+ void finishRequest(bool will_retry, Addr addr, bool is_secure);
/**
* Handle an incoming snoop from below (the master port). These
@@ -282,6 +282,14 @@ class SnoopFilter : public SimObject {
/** Max capacity in terms of cache blocks tracked, for sanity checking */
const unsigned maxEntryCount;
+ /**
+ * Use the lower bits of the address to keep track of the line status
+ */
+ enum LineStatus {
+ /** block holds data from the secure memory space */
+ LineSecure = 0x01,
+ };
+
/** Statistics */
Stats::Scalar totRequests;
Stats::Scalar hitSingleRequests;