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

furi-hal-bootloader.c « furi-hal « f7 « targets « firmware - github.com/ClusterM/flipperzero-firmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: b5e7cb5c45424cfe1400f2086bd42692ff62cf6b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <furi-hal-bootloader.h>
#include <stm32wbxx_ll_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
    LL_RTC_BAK_SetRegister(RTC, LL_RTC_BKP_DR0, BOOT_REQUEST_TAINTED);
#endif
    FURI_LOG_I(TAG, "Init OK");
}

void furi_hal_bootloader_set_mode(FuriHalBootloaderMode mode) {
    if (mode == FuriHalBootloaderModeNormal) {
        LL_RTC_BAK_SetRegister(RTC, LL_RTC_BKP_DR0, BOOT_REQUEST_CLEAN);
    } else if (mode == FuriHalBootloaderModeDFU) {
        LL_RTC_BAK_SetRegister(RTC, LL_RTC_BKP_DR0, BOOT_REQUEST_DFU);
    }
}