Skip to content

Commit

Permalink
AP_HAL_ChibiOS:hwdef/common: disable second core on dual core MCUs
Browse files Browse the repository at this point in the history
  • Loading branch information
bugobliterator committed Jul 3, 2024
1 parent e7e372a commit 3328368
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions libraries/AP_HAL_ChibiOS/hwdef/common/board.c
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,30 @@ void __early_init(void) {
STM32_NOCACHE_MPU_REGION_2_SIZE |
MPU_RASR_ENABLE);
#endif
#if defined(DUAL_CORE)
// Turn off second core for now
if ((FLASH->OPTSR_CUR & FLASH_OPTSR_BCM4)) {
//unlock flash
if (FLASH->OPTCR & FLASH_OPTCR_OPTLOCK) {
/* Unlock sequence */
FLASH->OPTKEYR = 0x08192A3B;
FLASH->OPTKEYR = 0x4C5D6E7F;
}
while (FLASH->OPTSR_CUR & FLASH_OPTSR_OPT_BUSY) {
}
// enable CM4 boot as well, most likely its already enabled
FLASH->OPTSR_PRG &= ~FLASH_OPTSR_BCM4;
// start programming
FLASH->OPTCR |= FLASH_OPTCR_OPTSTART;
// wait for completion by checking busy bit
while (FLASH->OPTSR_CUR & FLASH_OPTSR_OPT_BUSY) {
}
// lock flash
FLASH->OPTCR |= FLASH_OPTCR_OPTLOCK;
while (FLASH->OPTSR_CUR & FLASH_OPTSR_OPT_BUSY) {
}
}
#endif
#endif
}

Expand Down

0 comments on commit 3328368

Please sign in to comment.