diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 0814f73462a44e786f1a2d58bbc3b1f066850ed3..e9f10f7747c0686b41d400d5027e2cfd7ccd3b7f 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -196,6 +196,9 @@ static void arm_cpu_reset(CPUState *s) */ env->v7m.ccr = R_V7M_CCR_STKALIGN_MASK; + /* Unlike A/R profile, M profile defines the reset LR value */ + env->regs[14] = 0xffffffff; + /* Load the initial SP and PC from the vector table at address 0 */ rom = rom_ptr(0); if (rom) {