arm: SMT MPIDR Setting

Changes assignment of the MPIDR for multi-threaded systems only.
This commit is contained in:
Mitch Hayenga 2015-09-30 11:14:19 -05:00
parent fafa83ed32
commit e255fa053f

View file

@ -210,7 +210,10 @@ getMPIDR(ArmSystem *arm_sys, ThreadContext *tc)
// for simulation of larger systems // for simulation of larger systems
assert((0 <= tc->cpuId()) && (tc->cpuId() < 256)); assert((0 <= tc->cpuId()) && (tc->cpuId() < 256));
assert((0 <= tc->socketId()) && (tc->socketId() < 65536)); 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 return 0x80000000 | // multiprocessor extensions available
tc->cpuId() | tc->socketId() << 8; tc->cpuId() | tc->socketId() << 8;
} else { } else {