diff options
Diffstat (limited to 'src/stm/ao_boot_chain.c')
-rw-r--r-- | src/stm/ao_boot_chain.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/stm/ao_boot_chain.c b/src/stm/ao_boot_chain.c index 9c63272b..668f6e6d 100644 --- a/src/stm/ao_boot_chain.c +++ b/src/stm/ao_boot_chain.c @@ -26,9 +26,11 @@ ao_boot_chain(uint32_t *base) sp = base[0]; pc = base[1]; - asm ("mov sp, %0" : : "r" (sp)); - asm ("mov lr, %0" : : "r" (pc)); - asm ("bx lr"); + if (0x08000100 <= pc && pc <= 0x08200000) { + asm ("mov sp, %0" : : "r" (sp)); + asm ("mov lr, %0" : : "r" (pc)); + asm ("bx lr"); + } } #define AO_BOOT_SIGNAL 0x5a5aa5a5 |