diff --git a/core/embed/projects/bootloader/main.c b/core/embed/projects/bootloader/main.c index 65a4934146..bd44169fcb 100644 --- a/core/embed/projects/bootloader/main.c +++ b/core/embed/projects/bootloader/main.c @@ -44,6 +44,9 @@ #ifdef USE_TOUCH #include #endif +#ifdef USE_BACKUP_RAM +#include +#endif #ifdef USE_BUTTON #include #endif @@ -113,6 +116,9 @@ static void drivers_init(secbool *touch_initialized) { #ifdef USE_OPTIGA optiga_hal_init(); #endif +#ifdef USE_BACKUP_RAM + backup_ram_init(); +#endif #ifdef USE_BUTTON button_init(); #endif @@ -126,6 +132,9 @@ static void drivers_init(secbool *touch_initialized) { static void drivers_deinit(void) { #ifdef FIXED_HW_DEINIT +#ifdef USE_BACKUP_RAM + backup_ram_deinit(); +#endif #ifdef USE_BUTTON button_deinit(); #endif diff --git a/core/embed/projects/kernel/main.c b/core/embed/projects/kernel/main.c index 0a5dbb8f87..e3ae28807f 100644 --- a/core/embed/projects/kernel/main.c +++ b/core/embed/projects/kernel/main.c @@ -58,6 +58,10 @@ #include #endif +#ifdef USE_BACKUP_RAM +#include +#endif + #ifdef USE_TROPIC #include #endif @@ -95,6 +99,11 @@ #endif void drivers_init() { + +#ifdef USE_BACKUP_RAM + backup_ram_init(); +#endif + #ifdef USE_POWERCTL powerctl_init(); #endif diff --git a/core/embed/projects/prodtest/cmd/prodtest_backup_ram.c b/core/embed/projects/prodtest/cmd/prodtest_backup_ram.c index 190a4ca44e..862cc2bc49 100644 --- a/core/embed/projects/prodtest/cmd/prodtest_backup_ram.c +++ b/core/embed/projects/prodtest/cmd/prodtest_backup_ram.c @@ -41,31 +41,18 @@ static void prodtest_backup_ram_write(cli_t* cli) { return; } - backup_ram_status_t status = backup_ram_init(); - if (status != BACKUP_RAM_OK) { - if (status == BACKUP_RAM_OK_STORAGE_INITIALIZED) { - cli_trace(cli, "Backup storage had to be initialized"); - } else { - cli_error(cli, CLI_ERROR, "Failed to initialize backup RAM"); - return; - } - } - backup_ram_power_manager_data_t pm_data; pm_data.soc = ((float)soc / 100); pm_data.last_capture_timestamp = systick_cycles(); - status = backup_ram_store_power_manager_data(&pm_data); + backup_ram_status_t status = backup_ram_store_power_manager_data(&pm_data); if (status != BACKUP_RAM_OK) { cli_error(cli, CLI_ERROR, "Failed to write backup RAM"); - backup_ram_deinit(); return; } - backup_ram_deinit(); - cli_ok(cli, ""); } @@ -75,27 +62,14 @@ static void prodtest_backup_ram_read(cli_t* cli) { return; } - backup_ram_status_t status = backup_ram_init(); - if (status != BACKUP_RAM_OK) { - if (status == BACKUP_RAM_OK_STORAGE_INITIALIZED) { - cli_trace(cli, "Backup storage had to be initialized"); - } else { - cli_error(cli, CLI_ERROR, "Failed to initialize backup RAM"); - return; - } - } - backup_ram_power_manager_data_t pm_data; - status = backup_ram_read_power_manager_data(&pm_data); + backup_ram_status_t status = backup_ram_read_power_manager_data(&pm_data); if (status != BACKUP_RAM_OK) { cli_error(cli, CLI_ERROR, "Failed to read backup RAM"); - backup_ram_deinit(); return; } - backup_ram_deinit(); - cli_ok(cli, "SOC: %d\%", (int)(pm_data.soc * 100)); } @@ -117,8 +91,6 @@ static void prodtest_backup_ram_erase(cli_t* cli) { backup_ram_erase(); - backup_ram_deinit(); - cli_ok(cli, ""); } @@ -140,8 +112,6 @@ static void prodtest_backup_ram_erase_unused(cli_t* cli) { backup_ram_erase_unused(); - backup_ram_deinit(); - cli_ok(cli, ""); } diff --git a/core/embed/projects/prodtest/main.c b/core/embed/projects/prodtest/main.c index 1c030ed4f5..66a11ded13 100644 --- a/core/embed/projects/prodtest/main.c +++ b/core/embed/projects/prodtest/main.c @@ -44,6 +44,10 @@ #include #endif +#ifdef USE_BACKUP_RAM +#include +#endif + #ifdef USE_TOUCH #include #endif @@ -207,6 +211,9 @@ static void drivers_init(void) { #ifdef USE_SD_CARD sdcard_init(); #endif +#ifdef USE_BACKUP_RAM + backup_ram_init(); +#endif #ifdef USE_BUTTON button_init(); #endif