diff -r 55af621f65df -r e8f9529476a1 src/arch/arm/tlb.cc --- a/src/arch/arm/tlb.cc Thu Oct 17 11:51:36 2013 -0500 +++ b/src/arch/arm/tlb.cc Thu Oct 17 11:52:03 2013 -0500 @@ -474,6 +474,8 @@ bool is_priv = isPriv && !(flags & UserMode); req->setAsid(contextId.asid); + if (is_priv) + req->setFlags(Request::PRIVILEGED); DPRINTF(TLBVerbose, "CPSR is priv:%d UserMode:%d\n", isPriv, flags & UserMode); diff -r 55af621f65df -r e8f9529476a1 src/mem/request.hh --- a/src/mem/request.hh Thu Oct 17 11:51:36 2013 -0500 +++ b/src/mem/request.hh Thu Oct 17 11:52:03 2013 -0500 @@ -104,6 +104,8 @@ static const FlagsType MMAPPED_IPR = 0x00002000; /** This request is a clear exclusive. */ static const FlagsType CLEAR_LL = 0x00004000; + /** This request is made in privileged mode. */ + static const FlagsType PRIVILEGED = 0x00008000; /** The request should not cause a memory access. */ static const FlagsType NO_ACCESS = 0x00080000; @@ -521,6 +523,7 @@ bool isInstFetch() const { return _flags.isSet(INST_FETCH); } bool isPrefetch() const { return _flags.isSet(PREFETCH); } bool isLLSC() const { return _flags.isSet(LLSC); } + bool isPriv() const { return _flags.isSet(PRIVILEGED); } bool isLocked() const { return _flags.isSet(LOCKED); } bool isSwap() const { return _flags.isSet(MEM_SWAP|MEM_SWAP_COND); } bool isCondSwap() const { return _flags.isSet(MEM_SWAP_COND); }