From e255fa053f8d105de8d188077a318124a3aad9ce Mon Sep 17 00:00:00 2001 From: Mitch Hayenga Date: Wed, 30 Sep 2015 11:14:19 -0500 Subject: [PATCH] arm: SMT MPIDR Setting Changes assignment of the MPIDR for multi-threaded systems only. --- src/arch/arm/utility.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/arch/arm/utility.cc b/src/arch/arm/utility.cc index 34fcfd482..bedd4a0b0 100644 --- a/src/arch/arm/utility.cc +++ b/src/arch/arm/utility.cc @@ -210,7 +210,10 @@ getMPIDR(ArmSystem *arm_sys, ThreadContext *tc) // for simulation of larger systems assert((0 <= tc->cpuId()) && (tc->cpuId() < 256)); assert((0 <= tc->socketId()) && (tc->socketId() < 65536)); - if (arm_sys->multiProc) { + if (arm_sys->multiThread) { + return 0x80000000 | // multiprocessor extensions available + tc->contextId(); + } else if (arm_sys->multiProc) { return 0x80000000 | // multiprocessor extensions available tc->cpuId() | tc->socketId() << 8; } else {