From 5901c5223f2e9280aa6f2307288b6a5dc554df83 Mon Sep 17 00:00:00 2001 From: Ali Saidi Date: Thu, 1 Dec 2011 00:15:22 -0800 Subject: ARM: Add IsSerializeAfter and IsNonSpeculative flag to the syscall instruction . Squashes the subsequent instructions in O3 pipe after the service call, so that they see the effect of the system call when re-executed. This isn't really an issue with FS mode, but can show up in SE mode. --HG-- extra : rebase_source : 613a69fe1d9834261e25a8cd340aa6b47578e1fe --- src/arch/arm/isa/insts/misc.isa | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/arch/arm') diff --git a/src/arch/arm/isa/insts/misc.isa b/src/arch/arm/isa/insts/misc.isa index 2cf54fcdb..870f037d0 100644 --- a/src/arch/arm/isa/insts/misc.isa +++ b/src/arch/arm/isa/insts/misc.isa @@ -49,7 +49,8 @@ let {{ svcIop = InstObjParams("svc", "Svc", "PredOp", { "code": svcCode, - "predicate_test": predicateTest }, ["IsSyscall"]) + "predicate_test": predicateTest }, + ["IsSyscall", "IsNonSpeculative", "IsSerializeAfter"]) header_output = BasicDeclare.subst(svcIop) decoder_output = BasicConstructor.subst(svcIop) exec_output = PredOpExecute.subst(svcIop) -- cgit v1.2.3 From fa753c14549a768f0b8475e4e183acbdc394c248 Mon Sep 17 00:00:00 2001 From: Mitchell Hayenga Date: Thu, 1 Dec 2011 00:15:22 -0800 Subject: Device: Make changes necessary to support a coherent page walker cache. Adds the flag 'recvSnoops' which enables pagewalkers using DmaPorts, to properly configure snoops. --HG-- extra : rebase_source : 64207bef62c3268ddff2236ee4adae873812325f --- src/arch/arm/table_walker.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/arch/arm') diff --git a/src/arch/arm/table_walker.cc b/src/arch/arm/table_walker.cc index 62b22472b..b2ab010c0 100644 --- a/src/arch/arm/table_walker.cc +++ b/src/arch/arm/table_walker.cc @@ -99,7 +99,7 @@ TableWalker::getPort(const std::string &if_name, int idx) System *sys = params()->sys; Tick minb = params()->min_backoff; Tick maxb = params()->max_backoff; - port = new DmaPort(this, sys, minb, maxb); + port = new DmaPort(this, sys, minb, maxb, true); return port; } return NULL; -- cgit v1.2.3