mirror of
https://xff.cz/git/pinephone-keyboard/
synced 2024-11-09 22:15:42 +01:00
firmware: Allow to prevent jump to user fw after powerup by pressing Pine + F + H
This commit is contained in:
parent
b244ab9c9f
commit
c5c155ca68
1 changed files with 15 additions and 5 deletions
|
@ -1851,6 +1851,8 @@ extern uint8_t _start__stack[];
|
||||||
|
|
||||||
void main(void)
|
void main(void)
|
||||||
{
|
{
|
||||||
|
uint8_t keys[12];
|
||||||
|
|
||||||
SP = (uint8_t)_start__stack;
|
SP = (uint8_t)_start__stack;
|
||||||
|
|
||||||
PAGESW = 0;
|
PAGESW = 0;
|
||||||
|
@ -2036,7 +2038,7 @@ void main(void)
|
||||||
|
|
||||||
#if CONFIG_STOCK_FW
|
#if CONFIG_STOCK_FW
|
||||||
// after 300ms check if we should jump to user firmware
|
// after 300ms check if we should jump to user firmware
|
||||||
if (!user_app_checked && ticks > 300 / 20) {
|
if (!user_app_checked && ticks > 400 / 20) {
|
||||||
if (app_flag == 1 && REG_SYS(USER_APP_BLOCK) != REG_SYS_USER_APP_BLOCK_MAGIC)
|
if (app_flag == 1 && REG_SYS(USER_APP_BLOCK) != REG_SYS_USER_APP_BLOCK_MAGIC)
|
||||||
jmp_to_user_fw();
|
jmp_to_user_fw();
|
||||||
|
|
||||||
|
@ -2068,7 +2070,6 @@ void main(void)
|
||||||
// if we're in active scanning, scan the keys, and report
|
// if we're in active scanning, scan the keys, and report
|
||||||
// new state
|
// new state
|
||||||
if (scan_active) {
|
if (scan_active) {
|
||||||
uint8_t keys[12];
|
|
||||||
uint8_t active_rows = keyscan_scan(keys);
|
uint8_t active_rows = keyscan_scan(keys);
|
||||||
|
|
||||||
// check for changes
|
// check for changes
|
||||||
|
@ -2094,10 +2095,19 @@ void main(void)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// pressing FN+PINE+F switches to flashing mode (keys 1:2 3:5 5:2, electrically)
|
// Check for Pine + F + # being held during powerup
|
||||||
if (keys[0] & BIT(2) && keys[2] & BIT(5) && keys[4] & BIT(2))
|
if ((keys[0] & BIT(2)) && (keys[4] & BIT(2))) {
|
||||||
|
#if CONFIG_STOCK_FW
|
||||||
|
// H - stay in main firmware
|
||||||
|
if (keys[6] & BIT(2))
|
||||||
|
user_app_checked = 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// B - jump to USB bootloader
|
||||||
|
if (keys[5] & BIT(3))
|
||||||
jump_to_usb_bootloader = 1;
|
jump_to_usb_bootloader = 1;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!active_rows)
|
if (!active_rows)
|
||||||
keyscan_idle();
|
keyscan_idle();
|
||||||
|
|
Loading…
Reference in a new issue