diff --git a/Marlin/src/HAL/HAL_STM32/HAL.cpp b/Marlin/src/HAL/HAL_STM32/HAL.cpp
index e70d575788f83e88c7ffba0c9d3f3595e8aedc95..6ecde3ef35e24c5b83331cd477ebc49c64428349 100644
--- a/Marlin/src/HAL/HAL_STM32/HAL.cpp
+++ b/Marlin/src/HAL/HAL_STM32/HAL.cpp
@@ -112,4 +112,9 @@ uint16_t HAL_adc_get_result() {
   return HAL_adc_result;
 }
 
+void flashFirmware(int16_t value) {
+  UNUSED(value);
+  NVIC_SystemReset();
+}
+
 #endif // ARDUINO_ARCH_STM32 && !STM32GENERIC
diff --git a/Marlin/src/HAL/HAL_STM32/HAL.h b/Marlin/src/HAL/HAL_STM32/HAL.h
index e275290ce5ab3aae2634dff1fd2da31bf0585bdf..dae75d42f2041b20dcf6fba81af69aa172ca7738 100644
--- a/Marlin/src/HAL/HAL_STM32/HAL.h
+++ b/Marlin/src/HAL/HAL_STM32/HAL.h
@@ -198,3 +198,6 @@ uint16_t HAL_adc_get_result();
 #define GET_PIN_MAP_PIN(index) index
 #define GET_PIN_MAP_INDEX(pin) pin
 #define PARSED_PIN_INDEX(code, dval) parser.intval(code, dval)
+
+#define PLATFORM_M997_SUPPORT
+void flashFirmware(int16_t value);