M bootloader.mk => bootloader.mk +14 -1
@@ 27,6 27,7 @@
# qmk-dfu QMK DFU (LUFA + blinkenlight)
# bootloadHID HIDBootFlash compatible (ATmega32A)
# USBasp USBaspLoader (ATmega328P)
+# kiibohd Input:Club Kiibohd bootloader (only used on their boards)
#
# BOOTLOADER_SIZE can still be defined manually, but it's recommended
# you add any possible configuration to this list
@@ 89,7 90,19 @@ ifeq ($(strip $(BOOTLOADER)), lufa-ms)
BOOTLOADER_SIZE = 6144
FIRMWARE_FORMAT = bin
endif
-
ifdef BOOTLOADER_SIZE
OPT_DEFS += -DBOOTLOADER_SIZE=$(strip $(BOOTLOADER_SIZE))
endif
+
+ifeq ($(strip $(BOOTLOADER)), kiibohd)
+ OPT_DEFS += -DBOOTLOADER_KIIBOHD
+ ifeq ($(strip $(MCU_ORIG)), MK20DX128)
+ MCU_LDSCRIPT = MK20DX128BLDR4
+ endif
+ ifeq ($(strip $(MCU_ORIG)), MK20DX256)
+ MCU_LDSCRIPT = MK20DX256BLDR8
+ endif
+
+ DFU_ARGS = -d 1C11:B007
+ DFU_SUFFIX_ARGS = -v 1C11 -p B007
+endif
D keyboards/ergodox_infinity/bootloader_defs.h => keyboards/ergodox_infinity/bootloader_defs.h +0 -1
@@ 1,1 0,0 @@
-#define KIIBOHD_BOOTLOADER
M keyboards/ergodox_infinity/rules.mk => keyboards/ergodox_infinity/rules.mk +2 -17
@@ 1,27 1,12 @@
# MCU name
MCU = MK20DX256
-# Linker script to use
-# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
-# or <this_dir>/ld/
-# - NOTE: a custom ld script is needed for EEPROM on Teensy LC
-# - LDSCRIPT =
-# - MKL26Z64 for Teensy LC
-# - MK20DX128 for Teensy 3.0
-# - MK20DX256 for Teensy 3.1 and 3.2
-# - MK20DX128BLDR4 for Infinity 60% with Kiibohd bootloader
-# - MK20DX256BLDR8 for Infinity ErgoDox with Kiibohd bootloader
-MCU_LDSCRIPT = MK20DX256BLDR8
-
-BOOTLOADER = dfu
+# Bootloader selection
+BOOTLOADER = kiibohd
# Build Options
# comment out to disable the options.
#
-
-DFU_ARGS = -d 1c11:b007
-DFU_SUFFIX_ARGS = -p b007 -v 1c11
-
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
D keyboards/infinity60/bootloader_defs.h => keyboards/infinity60/bootloader_defs.h +0 -1
@@ 1,1 0,0 @@
-#define KIIBOHD_BOOTLOADER
M keyboards/infinity60/rules.mk => keyboards/infinity60/rules.mk +2 -16
@@ 1,16 1,8 @@
# MCU name
MCU = MK20DX128
-# Linker script to use
-# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
-# or <this_dir>/ld/
-# - NOTE: a custom ld script is needed for EEPROM on Teensy LC
-# - LDSCRIPT =
-# - MKL26Z64 for Teensy LC
-# - MK20DX128 for Teensy 3.0
-# - MK20DX256 for Teensy 3.1 and 3.2
-# - MK20DX128BLDR4 for Infinity with Kiibohd bootloader
-MCU_LDSCRIPT = MK20DX128BLDR4
+# Bootloader selection
+BOOTLOADER = kiibohd
# Board: it should exist either in <chibios>/os/hal/boards/
# or <this_dir>/boards
@@ 21,15 13,9 @@ MCU_LDSCRIPT = MK20DX128BLDR4
# - MCHCK_K20 for Infinity KB
BOARD = MCHCK_K20
-BOOTLOADER = dfu
-
# Build Options
# comment out to disable the options.
#
-
-DFU_ARGS = -d 1c11:b007
-DFU_SUFFIX_ARGS = -p b007 -v 1c11
-
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.)
MOUSEKEY_ENABLE = yes # Mouse keys
D keyboards/k_type/bootloader_defs.h => keyboards/k_type/bootloader_defs.h +0 -1
@@ 1,1 0,0 @@
-#define KIIBOHD_BOOTLOADER
M keyboards/k_type/rules.mk => keyboards/k_type/rules.mk +2 -16
@@ 1,17 1,8 @@
# MCU name
MCU = MK20DX256
-# Linker script to use
-# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
-# or <this_dir>/ld/
-# - NOTE: a custom ld script is needed for EEPROM on Teensy LC
-# - LDSCRIPT =
-# - MKL26Z64 for Teensy LC
-# - MK20DX128 for Teensy 3.0
-# - MK20DX256 for Teensy 3.1 and 3.2
-# - MK20DX128BLDR4 for Infinity with Kiibohd bootloader
-# - MK20DX256BLDR8 for Infinity ErgoDox with Kiibohd bootloader
-MCU_LDSCRIPT = MK20DX256BLDR8
+# Bootloader selection
+BOOTLOADER = kiibohd
# Board: it should exist either in <chibios>/os/hal/boards/
# or <this_dir>/boards
@@ 19,11 10,6 @@ MCU_LDSCRIPT = MK20DX256BLDR8
# hack to ensure the watchdog has started before trying to disable it.
BOARD = IC_TEENSY_3_1
-DFU_ARGS = -d 1c11:b007
-DFU_SUFFIX_ARGS = -p b007 -v 1c11
-
-BOOTLOADER = dfu
-
# Build Options
# comment out to disable the options.
#
D keyboards/whitefox/bootloader_defs.h => keyboards/whitefox/bootloader_defs.h +0 -1
@@ 1,1 0,0 @@
-#define KIIBOHD_BOOTLOADER
M keyboards/whitefox/rules.mk => keyboards/whitefox/rules.mk +2 -16
@@ 1,17 1,8 @@
# MCU name
MCU = MK20DX256
-# Linker script to use
-# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
-# or <this_dir>/ld/
-# - NOTE: a custom ld script is needed for EEPROM on Teensy LC
-# - LDSCRIPT =
-# - MKL26Z64 for Teensy LC
-# - MK20DX128 for Teensy 3.0
-# - MK20DX256 for Teensy 3.1 and 3.2
-# - MK20DX128BLDR4 for Infinity with Kiibohd bootloader
-# - MK20DX256BLDR8 for Infinity ErgoDox with Kiibohd bootloader
-MCU_LDSCRIPT = MK20DX256BLDR8
+# Bootloader selection
+BOOTLOADER = kiibohd
# Board: it should exist either in <chibios>/os/hal/boards/
# or <this_dir>/boards
@@ 22,11 13,6 @@ MCU_LDSCRIPT = MK20DX256BLDR8
# - MCHCK_K20 for Infinity KB
BOARD = IC_TEENSY_3_1
-DFU_ARGS = -d 1c11:b007
-DFU_SUFFIX_ARGS = -p b007 -v 1c11
-
-BOOTLOADER = dfu
-
# Build Options
# comment out to disable the options.
#
M quantum/mcu_selection.mk => quantum/mcu_selection.mk +2 -0
@@ 1,3 1,5 @@
+MCU_ORIG := $(MCU)
+
ifneq ($(findstring MKL26Z64, $(MCU)),)
# Cortex version
MCU = cortex-m0plus
M tmk_core/chibios.mk => tmk_core/chibios.mk +1 -1
@@ 386,7 386,7 @@ bin: $(BUILD_DIR)/$(TARGET).bin sizeafter
flash: $(BUILD_DIR)/$(TARGET).bin cpfirmware sizeafter
ifneq ($(strip $(PROGRAM_CMD)),)
$(PROGRAM_CMD)
-else ifeq ($(strip $(BOOTLOADER)),dfu)
+else ifeq ($(strip $(BOOTLOADER)),kiibohd)
$(call EXEC_DFU_UTIL)
else ifeq ($(strip $(MCU_FAMILY)),KINETIS)
$(call EXEC_TEENSY)
M tmk_core/common/chibios/bootloader.c => tmk_core/common/chibios/bootloader.c +3 -3
@@ 82,7 82,7 @@ void enter_bootloader_mode_if_requested(void) {
#elif defined(KL2x) || defined(K20x) // STM32_BOOTLOADER_DUAL_BANK // STM32_BOOTLOADER_ADDRESS
/* Kinetis */
-# if defined(KIIBOHD_BOOTLOADER)
+# 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";
@@ 92,14 92,14 @@ void bootloader_jump(void) {
SCB->AIRCR = SCB_AIRCR_VECTKEY_WRITEMAGIC | SCB_AIRCR_SYSRESETREQ_Msk;
}
-# else /* defined(KIIBOHD_BOOTLOADER) */
+# else /* defined(BOOTLOADER_KIIBOHD) */
/* Default for Kinetis - expecting an ARM Teensy */
# include "wait.h"
void bootloader_jump(void) {
wait_ms(100);
__BKPT(0);
}
-# endif /* defined(KIIBOHD_BOOTLOADER) */
+# endif /* defined(BOOTLOADER_KIIBOHD) */
#else /* neither STM32 nor KINETIS */
__attribute__((weak)) void bootloader_jump(void) {}