arm: Implement uniprocessor with MP config
Add a boolean for indicating uniprocessors with MP extensions. This drives the U bit in MPIDR. Prepares support for Cortex-R5. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com> Message-id: a70a80583df265e0174f01fa1fc92b33ea6d1db5.1434066412.git.peter.crosthwaite@xilinx.com Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
b7cc4e82f0
commit
a8e81b319d
@ -116,6 +116,9 @@ typedef struct ARMCPU {
|
||||
/* KVM init features for this CPU */
|
||||
uint32_t kvm_init_features[7];
|
||||
|
||||
/* Uniprocessor system with MP extensions */
|
||||
bool mp_is_up;
|
||||
|
||||
/* The instance init functions for implementation-specific subclasses
|
||||
* set these fields to specify the implementation-dependent values of
|
||||
* various constant registers and reset values of non-constant
|
||||
|
@ -2075,9 +2075,11 @@ static uint64_t mpidr_read(CPUARMState *env, const ARMCPRegInfo *ri)
|
||||
mpidr |= (1U << 31);
|
||||
/* Cores which are uniprocessor (non-coherent)
|
||||
* but still implement the MP extensions set
|
||||
* bit 30. (For instance, A9UP.) However we do
|
||||
* not currently model any of those cores.
|
||||
* bit 30. (For instance, Cortex-R5).
|
||||
*/
|
||||
if (cpu->mp_is_up) {
|
||||
mpidr |= (1u << 30);
|
||||
}
|
||||
}
|
||||
return mpidr;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user