~ruther/qmk_firmware

755731f0ba98b9a0cf826cd3b6486dc9104a8824 — Andrew-Fahmy 3 years ago 7f90cb1
Fix RESET not working for keyboards with Kiibohd bootloader (#15430)

2 files changed, 2 insertions(+), 2 deletions(-)

M docs/flashing.md
M platforms/chibios/bootloader.c
M docs/flashing.md => docs/flashing.md +1 -1
@@ 290,7 290,7 @@ Compatible flashers:
Flashing sequence:

1. Enter the bootloader using any of the following methods:
    * Tap the `RESET` keycode (this may only enter the MCU into a "secure" bootloader mode; see https://github.com/qmk/qmk_firmware/issues/6112)
    * Tap the `RESET` keycode
    * Press the `RESET` button on the PCB
2. Wait for the OS to detect the device
3. Flash a .bin file

M platforms/chibios/bootloader.c => platforms/chibios/bootloader.c +1 -1
@@ 123,7 123,7 @@ void enter_bootloader_mode_if_requested(void) { /* Jumping to bootloader is not 
#    if defined(BOOTLOADER_KIIBOHD)
/* Kiibohd Bootloader (MCHCK and Infinity KB) */
#        define SCB_AIRCR_VECTKEY_WRITEMAGIC 0x05FA0000
const uint8_t              sys_reset_to_loader_magic[] = "\xff\x00\x7fRESET TO LOADER\x7f\x00\xff";
const uint8_t              sys_reset_to_loader_magic[] = "\xff\x00\x7fRESET TO LOADER\x7f\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
__attribute__((weak)) void bootloader_jump(void) {
    void *volatile vbat = (void *)VBAT;
    __builtin_memcpy(vbat, (const void *)sys_reset_to_loader_magic, sizeof(sys_reset_to_loader_magic));