Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/flipperzero-firmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/targets/f6/furi_hal/furi_hal_bootloader.c')
-rw-r--r--firmware/targets/f6/furi_hal/furi_hal_bootloader.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/firmware/targets/f6/furi_hal/furi_hal_bootloader.c b/firmware/targets/f6/furi_hal/furi_hal_bootloader.c
new file mode 100644
index 00000000..3b549955
--- /dev/null
+++ b/firmware/targets/f6/furi_hal/furi_hal_bootloader.c
@@ -0,0 +1,25 @@
+#include <furi_hal_bootloader.h>
+#include <furi_hal_rtc.h>
+#include <furi.h>
+
+#define TAG "FuriHalBoot"
+
+// Boot request enum
+#define BOOT_REQUEST_TAINTED 0x00000000
+#define BOOT_REQUEST_CLEAN 0xDADEDADE
+#define BOOT_REQUEST_DFU 0xDF00B000
+
+void furi_hal_bootloader_init() {
+#ifndef DEBUG
+ furi_hal_rtc_set_register(FuriHalRtcRegisterBoot, BOOT_REQUEST_TAINTED);
+#endif
+ FURI_LOG_I(TAG, "Init OK");
+}
+
+void furi_hal_bootloader_set_mode(FuriHalBootloaderMode mode) {
+ if(mode == FuriHalBootloaderModeNormal) {
+ furi_hal_rtc_set_register(FuriHalRtcRegisterBoot, BOOT_REQUEST_CLEAN);
+ } else if(mode == FuriHalBootloaderModeDFU) {
+ furi_hal_rtc_set_register(FuriHalRtcRegisterBoot, BOOT_REQUEST_DFU);
+ }
+}