diff -r 2994d86da4b7 -r 00f68b7fa9c5 src/arch/arm/tlb.cc --- a/src/arch/arm/tlb.cc Fri Aug 13 11:56:38 2010 -0500 +++ b/src/arch/arm/tlb.cc Fri Aug 13 11:58:20 2010 -0500 @@ -360,6 +360,7 @@ //a bit of a hack but this effectively clrears this processors monitor if (flags & Clrex){ req->setPaddr(0); + req->setFlags(Request::UNCACHEABLE); return NoFault; } if (!is_fetch) { @@ -430,7 +431,8 @@ outerAttrs: %d\n", te->shareable, te->innerAttrs, te->outerAttrs); setAttr(te->attributes); - + if (te->nonCacheable) + req->setFlags(Request::UNCACHEABLE); uint32_t dacr = tc->readMiscReg(MISCREG_DACR); switch ( (dacr >> (te->domain * 2)) & 0x3) { case 0: