mem-cache: Populate the secure bit when the temp block is filled
authorNikos Nikoleris <nikos.nikoleris@arm.com>
Tue, 22 Nov 2016 11:38:57 +0000 (11:38 +0000)
committerNikos Nikoleris <nikos.nikoleris@arm.com>
Fri, 2 Mar 2018 16:18:29 +0000 (16:18 +0000)
The secure bit should be set when we fill a block with data from a
secure location, as indicated by the packet that triggers the fill.
This patch fixes a bug in which the cache wouldn't populate the secure
bit when filling the temp block.

Change-Id: I95c706146449804ff42b205b25dd79750f3e882a
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/8284
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
src/mem/cache/cache.cc

index 622f0f78798b024780b6638fdb92f9c8ae133db5..64438c1c84003f6eaa255ae749693b4d339b8c88 100644 (file)
@@ -1902,7 +1902,9 @@ Cache::handleFill(PacketPtr pkt, CacheBlk *blk, PacketList &writebacks,
             blk = tempBlock;
             tempBlock->set = tags->extractSet(addr);
             tempBlock->tag = tags->extractTag(addr);
-            // @todo: set security state as well...
+            if (is_secure) {
+                tempBlock->status |= BlkSecure;
+            }
             DPRINTF(Cache, "using temp block for %#llx (%s)\n", addr,
                     is_secure ? "s" : "ns");
         } else {