1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-03-22 19:15:43 +00:00

TEST: enable charging in bootloader & firmware

This commit is contained in:
tychovrahe 2025-03-06 08:17:29 +01:00
parent dbbf717eba
commit 41b33feedc
3 changed files with 18 additions and 3 deletions

View File

@ -175,7 +175,7 @@ env.Replace(
'-fstack-protector-strong '
+ env.get('ENV')["CPU_CCFLAGS"] + CCFLAGS_MOD,
CCFLAGS_QSTR='-DNO_QSTR -DN_X64 -DN_X86 -DN_THUMB',
LINKFLAGS=['-Tbuild/bootloader/memory.ld', '-Wl,--gc-sections', '-Wl,-Map=build/bootloader/bootloader.map', '-Wl,--warn-common', '-Wl,--print-memory-usage'],
LINKFLAGS=['-Tbuild/bootloader/memory.ld', '-Wl,--gc-sections', '-Wl,-Map=build/bootloader/bootloader.map', '-Wl,--warn-common', '-Wl,--print-memory-usage', '-Wl,--undefined=__errno'],
CPPPATH=ALLPATHS,
CPPDEFINES=[
'BOOTLOADER',

View File

@ -62,6 +62,10 @@
#ifdef USE_BLE
#include <io/ble.h>
#endif
#ifdef USE_POWERCTL
#include <sys/powerctl.h>
#include "../sys/powerctl/npm1300/npm1300.h"
#endif
#include "antiglitch.h"
#include "bootui.h"
@ -78,7 +82,7 @@ void failed_jump_to_firmware(void);
CONFIDENTIAL volatile secbool dont_optimize_out_true = sectrue;
CONFIDENTIAL void (*volatile firmware_jump_fn)(void) = failed_jump_to_firmware;
static void drivers_init(secbool *touch_initialized) {
static secbool drivers_init(secbool *touch_initialized) {
random_delays_init();
#ifdef USE_PVD
pvd_init();
@ -113,6 +117,7 @@ static void drivers_init(secbool *touch_initialized) {
}
#endif
#ifdef USE_OPTIGA
optiga_hal_init();
#endif
@ -128,6 +133,8 @@ static void drivers_init(secbool *touch_initialized) {
#ifdef USE_BLE
ble_init();
#endif
return manufacturing_mode;
}
static void drivers_deinit(void) {
@ -251,7 +258,7 @@ int bootloader_main(void) {
system_init(&rsod_panic_handler);
drivers_init(&touch_initialized);
secbool manufacturing_mode = drivers_init(&touch_initialized);
ui_screen_boot_stage_1(false);
@ -319,6 +326,12 @@ int bootloader_main(void) {
firmware_present_backup = firmware_present;
}
#ifdef USE_POWERCTL
if (sectrue != manufacturing_mode || sectrue != firmware_present) {
npm1300_set_charging(true);
}
#endif
#if PRODUCTION && !defined STM32U5
// for STM32U5, this check is moved to boardloader
ensure_bootloader_min_version();

View File

@ -59,6 +59,7 @@
#ifdef USE_POWERCTL
#include <sys/powerctl.h>
#include "../sys/powerctl/npm1300/npm1300.h"
#endif
#ifdef USE_PVD
@ -92,6 +93,7 @@
void drivers_init() {
#ifdef USE_POWERCTL
powerctl_init();
npm1300_set_charging(true);
#endif
#ifdef USE_TAMPER