@@ -117,7 +117,7 @@ static secbool is_manufacturing_mode(vendor_header *vhdr) {
117
117
return manufacturing_mode ;
118
118
}
119
119
120
- static secbool boot_sequence (secbool manufacturing_mode ) {
120
+ static secbool boot_sequence (void ) {
121
121
secbool stay_in_bootloader = secfalse ;
122
122
123
123
#ifdef USE_BACKUP_RAM
@@ -149,7 +149,7 @@ static secbool boot_sequence(secbool manufacturing_mode) {
149
149
(cmd == BOOT_COMMAND_INSTALL_UPGRADE || cmd == BOOT_COMMAND_REBOOT ||
150
150
cmd == BOOT_COMMAND_SHOW_RSOD || cmd == BOOT_COMMAND_STOP_AND_WAIT );
151
151
152
- if (sectrue == manufacturing_mode && cmd != BOOT_COMMAND_POWER_OFF ) {
152
+ if (cmd != BOOT_COMMAND_POWER_OFF ) {
153
153
turn_on = true;
154
154
}
155
155
@@ -159,14 +159,15 @@ static secbool boot_sequence(secbool manufacturing_mode) {
159
159
160
160
uint32_t press_start = 0 ;
161
161
bool turn_on_locked = false;
162
+ bool haptic_played = false;
162
163
bool bld_locked = false;
163
164
164
165
while (!turn_on ) {
165
166
bool btn_down = button_is_down (BTN_POWER );
166
167
if (btn_down ) {
167
168
if (press_start == 0 ) {
168
169
press_start = systick_ms ();
169
- turn_on_locked = false ;
170
+ turn_on_locked = true ;
170
171
bld_locked = false;
171
172
}
172
173
@@ -176,13 +177,13 @@ static secbool boot_sequence(secbool manufacturing_mode) {
176
177
haptic_play (HAPTIC_BOOTLOADER_ENTRY );
177
178
#endif
178
179
bld_locked = true;
179
- } else if ((elapsed >= 1000 || manufacturing_mode == sectrue ) &&
180
- !turn_on_locked ) {
180
+ }
181
181
#ifdef USE_HAPTIC
182
+ else if (elapsed >= 500 && !haptic_played ) {
182
183
haptic_play (HAPTIC_BUTTON_PRESS );
183
- #endif
184
- turn_on_locked = true;
184
+ haptic_played = true;
185
185
}
186
+ #endif
186
187
} else if (press_start != 0 ) {
187
188
// Button just released
188
189
if (bld_locked ) {
@@ -460,7 +461,7 @@ int bootloader_main(void) {
460
461
461
462
secbool manufacturing_mode = is_manufacturing_mode (& vhdr );
462
463
463
- secbool stay_in_bootloader = boot_sequence (manufacturing_mode );
464
+ secbool stay_in_bootloader = boot_sequence ();
464
465
465
466
drivers_init (manufacturing_mode , & touch_initialized );
466
467
0 commit comments