summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMitch Hayenga <mitch.hayenga@arm.com>2015-09-30 11:14:19 -0500
committerMitch Hayenga <mitch.hayenga@arm.com>2015-09-30 11:14:19 -0500
commite255fa053f8d105de8d188077a318124a3aad9ce (patch)
tree84733d1dcbb89c1b8f9603ae0ca097f3c75cd0ff
parentfafa83ed32933fe250d34dfca23fba348429b176 (diff)
downloadgem5-e255fa053f8d105de8d188077a318124a3aad9ce.tar.xz
arm: SMT MPIDR Setting
Changes assignment of the MPIDR for multi-threaded systems only.
-rw-r--r--src/arch/arm/utility.cc5
1 files changed, 4 insertions, 1 deletions
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 {