diff --git a/firmware/config/stm32f4ems/efifeatures.h b/firmware/config/stm32f4ems/efifeatures.h index c096fb0eea..dad9db3179 100644 --- a/firmware/config/stm32f4ems/efifeatures.h +++ b/firmware/config/stm32f4ems/efifeatures.h @@ -29,6 +29,10 @@ #define EFI_BACKUP_SRAM TRUE #endif +#ifndef EFI_DFU_JUMP +#define EFI_DFU_JUMP TRUE +#endif + #define EFI_DYNO_VIEW TRUE #ifndef EFI_CDM_INTEGRATION diff --git a/firmware/controllers/bench_test.cpp b/firmware/controllers/bench_test.cpp index 62d1213ba2..acc9de9bec 100644 --- a/firmware/controllers/bench_test.cpp +++ b/firmware/controllers/bench_test.cpp @@ -507,9 +507,9 @@ void executeTSCommand(uint16_t subsystem, uint16_t index) { break; case 0xba: -#if EFI_PROD_CODE +#if EFI_DFU_JUMP jump_to_bootloader(); -#endif /* EFI_PROD_CODE */ +#endif /* EFI_DFU_JUMP */ break; case 0xbb: diff --git a/firmware/hw_layer/ports/cypress/cypress_common.cpp b/firmware/hw_layer/ports/cypress/cypress_common.cpp index 2cebdded29..e9fd70380f 100644 --- a/firmware/hw_layer/ports/cypress/cypress_common.cpp +++ b/firmware/hw_layer/ports/cypress/cypress_common.cpp @@ -158,11 +158,3 @@ int getAdcChannelPin(adc_channel_e hwChannel) { } #endif /* HAL_USE_ADC */ - -#if EFI_PROD_CODE -void jump_to_bootloader() { - // todo: - // Will not return from here - NVIC_SystemReset(); -} -#endif /* EFI_PROD_CODE */ diff --git a/firmware/hw_layer/ports/kinetis/kinetis_common.cpp b/firmware/hw_layer/ports/kinetis/kinetis_common.cpp index 2942d6d915..a42db8a036 100644 --- a/firmware/hw_layer/ports/kinetis/kinetis_common.cpp +++ b/firmware/hw_layer/ports/kinetis/kinetis_common.cpp @@ -121,7 +121,7 @@ int getAdcChannelPin(adc_channel_e hwChannel) { #endif /* HAL_USE_ADC */ -#if EFI_PROD_CODE +#if EFI_DFU_JUMP #define BOOTLOADER_LOCATION 0x1C00001CUL void jump_to_bootloader() { typedef void (*bootloader_start_t)(void * arg); @@ -132,4 +132,4 @@ void jump_to_bootloader() { // Will not return from here NVIC_SystemReset(); } -#endif /* EFI_PROD_CODE */ +#endif /* EFI_DFU_JUMP */ diff --git a/firmware/rusefi.cpp b/firmware/rusefi.cpp index d0b418e1fd..3753e06d98 100644 --- a/firmware/rusefi.cpp +++ b/firmware/rusefi.cpp @@ -195,7 +195,9 @@ void runRusEfi() { #endif addConsoleAction(CMD_REBOOT, scheduleReboot); +#if EFI_DFU_JUMP addConsoleAction(CMD_REBOOT_DFU, jump_to_bootloader); +#endif /* EFI_DFU_JUMP */ /** * we need to initialize table objects before default configuration can set values