diff options
Diffstat (limited to 'target-arm/cpu.c')
-rw-r--r-- | target-arm/cpu.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/target-arm/cpu.c b/target-arm/cpu.c index 9b68b70c23..bd3aeb107c 100644 --- a/target-arm/cpu.c +++ b/target-arm/cpu.c @@ -45,6 +45,8 @@ static void arm_cpu_reset(CPUState *c) env->cp15.c0_cpuid = id; env->cp15.c15_config_base_address = tmp; + env->vfp.xregs[ARM_VFP_FPSID] = cpu->reset_fpsid; + #if defined(CONFIG_USER_ONLY) env->uncached_cpsr = ARM_CPU_MODE_USR; /* For user mode we must enable access to coprocessors */ @@ -166,6 +168,7 @@ static void arm926_initfn(Object *obj) set_feature(&cpu->env, ARM_FEATURE_V5); set_feature(&cpu->env, ARM_FEATURE_VFP); cpu->env.cp15.c0_cpuid = 0x41069265; + cpu->reset_fpsid = 0x41011090; arm_cpu_postconfig_init(cpu); } @@ -185,6 +188,7 @@ static void arm1026_initfn(Object *obj) set_feature(&cpu->env, ARM_FEATURE_VFP); set_feature(&cpu->env, ARM_FEATURE_AUXCR); cpu->env.cp15.c0_cpuid = 0x4106a262; + cpu->reset_fpsid = 0x410110a0; arm_cpu_postconfig_init(cpu); } @@ -194,6 +198,7 @@ static void arm1136_r2_initfn(Object *obj) set_feature(&cpu->env, ARM_FEATURE_V6); set_feature(&cpu->env, ARM_FEATURE_VFP); cpu->env.cp15.c0_cpuid = 0x4107b362; + cpu->reset_fpsid = 0x410120b4; arm_cpu_postconfig_init(cpu); } @@ -204,6 +209,7 @@ static void arm1136_initfn(Object *obj) set_feature(&cpu->env, ARM_FEATURE_V6); set_feature(&cpu->env, ARM_FEATURE_VFP); cpu->env.cp15.c0_cpuid = 0x4117b363; + cpu->reset_fpsid = 0x410120b4; arm_cpu_postconfig_init(cpu); } @@ -214,6 +220,7 @@ static void arm1176_initfn(Object *obj) set_feature(&cpu->env, ARM_FEATURE_VFP); set_feature(&cpu->env, ARM_FEATURE_VAPA); cpu->env.cp15.c0_cpuid = 0x410fb767; + cpu->reset_fpsid = 0x410120b5; arm_cpu_postconfig_init(cpu); } @@ -224,6 +231,7 @@ static void arm11mpcore_initfn(Object *obj) set_feature(&cpu->env, ARM_FEATURE_VFP); set_feature(&cpu->env, ARM_FEATURE_VAPA); cpu->env.cp15.c0_cpuid = 0x410fb022; + cpu->reset_fpsid = 0x410120b4; arm_cpu_postconfig_init(cpu); } @@ -244,6 +252,7 @@ static void cortex_a8_initfn(Object *obj) set_feature(&cpu->env, ARM_FEATURE_NEON); set_feature(&cpu->env, ARM_FEATURE_THUMB2EE); cpu->env.cp15.c0_cpuid = 0x410fc080; + cpu->reset_fpsid = 0x410330c0; arm_cpu_postconfig_init(cpu); } @@ -261,6 +270,7 @@ static void cortex_a9_initfn(Object *obj) */ set_feature(&cpu->env, ARM_FEATURE_V7MP); cpu->env.cp15.c0_cpuid = 0x410fc090; + cpu->reset_fpsid = 0x41033090; arm_cpu_postconfig_init(cpu); } @@ -276,6 +286,7 @@ static void cortex_a15_initfn(Object *obj) set_feature(&cpu->env, ARM_FEATURE_V7MP); set_feature(&cpu->env, ARM_FEATURE_GENERIC_TIMER); cpu->env.cp15.c0_cpuid = 0x412fc0f1; + cpu->reset_fpsid = 0x410430f0; arm_cpu_postconfig_init(cpu); } |