mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-10-31 05:12:33 +01:00 
			
		
		
		
	Add Kiibohd bootloader type to bootloader.mk (#9908)
This commit is contained in:
		
							parent
							
								
									98e1e18f6b
								
							
						
					
					
						commit
						e2d4cd1a41
					
				| @ -27,6 +27,7 @@ | |||||||
| # qmk-dfu        QMK DFU (LUFA + blinkenlight)
 | # qmk-dfu        QMK DFU (LUFA + blinkenlight)
 | ||||||
| # bootloadHID    HIDBootFlash compatible (ATmega32A)
 | # bootloadHID    HIDBootFlash compatible (ATmega32A)
 | ||||||
| # USBasp         USBaspLoader (ATmega328P)
 | # USBasp         USBaspLoader (ATmega328P)
 | ||||||
|  | # kiibohd        Input:Club Kiibohd bootloader (only used on their boards)
 | ||||||
| #
 | #
 | ||||||
| # BOOTLOADER_SIZE can still be defined manually, but it's recommended
 | # BOOTLOADER_SIZE can still be defined manually, but it's recommended
 | ||||||
| # you add any possible configuration to this list
 | # you add any possible configuration to this list
 | ||||||
| @ -89,6 +90,18 @@ ifeq ($(strip $(BOOTLOADER)), lufa-ms) | |||||||
|     BOOTLOADER_SIZE = 6144 |     BOOTLOADER_SIZE = 6144 | ||||||
|     FIRMWARE_FORMAT = bin |     FIRMWARE_FORMAT = bin | ||||||
| endif | endif | ||||||
|  | ifeq ($(strip $(BOOTLOADER)), kiibohd) | ||||||
|  |     OPT_DEFS += -DBOOTLOADER_KIIBOHD | ||||||
|  |     ifeq ($(strip $(MCU)), MK20DX128) | ||||||
|  |         MCU_LDSCRIPT = MK20DX128BLDR4 | ||||||
|  |     endif | ||||||
|  |     ifeq ($(strip $(MCU)), MK20DX256) | ||||||
|  |         MCU_LDSCRIPT = MK20DX256BLDR8 | ||||||
|  |     endif | ||||||
|  | 
 | ||||||
|  |     DFU_ARGS = -d 1C11:B007 | ||||||
|  |     DFU_SUFFIX_ARGS = -v 1C11 -p B007 | ||||||
|  | endif | ||||||
| 
 | 
 | ||||||
| ifdef BOOTLOADER_SIZE | ifdef BOOTLOADER_SIZE | ||||||
|     OPT_DEFS += -DBOOTLOADER_SIZE=$(strip $(BOOTLOADER_SIZE)) |     OPT_DEFS += -DBOOTLOADER_SIZE=$(strip $(BOOTLOADER_SIZE)) | ||||||
|  | |||||||
| @ -1 +0,0 @@ | |||||||
| #define KIIBOHD_BOOTLOADER |  | ||||||
| @ -1,32 +1,18 @@ | |||||||
| # MCU name
 | # MCU name
 | ||||||
| MCU = MK20DX256 | 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 |  | ||||||
| 
 |  | ||||||
| # Vector table for application
 | # Vector table for application
 | ||||||
| # 0x00000000-0x00001000 area is occupied by bootlaoder.*/
 | # 0x00000000-0x00001000 area is occupied by bootlaoder.*/
 | ||||||
| # The CORTEX_VTOR... is needed only for MCHCK/Infinity KB
 | # The CORTEX_VTOR... is needed only for MCHCK/Infinity KB
 | ||||||
| OPT_DEFS += -DCORTEX_VTOR_INIT=0x00002000 | OPT_DEFS += -DCORTEX_VTOR_INIT=0x00002000 | ||||||
| 
 | 
 | ||||||
| BOOTLOADER = dfu | # Bootloader selection
 | ||||||
|  | BOOTLOADER = kiibohd | ||||||
| 
 | 
 | ||||||
| # Build Options
 | # Build Options
 | ||||||
| #   comment out to disable the 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 | BOOTMAGIC_ENABLE = no  # Virtual DIP switch configuration | ||||||
| MOUSEKEY_ENABLE  = yes # Mouse keys | MOUSEKEY_ENABLE  = yes # Mouse keys | ||||||
| EXTRAKEY_ENABLE  = yes # Audio control and System control | EXTRAKEY_ENABLE  = yes # Audio control and System control | ||||||
|  | |||||||
| @ -1 +0,0 @@ | |||||||
| #define KIIBOHD_BOOTLOADER |  | ||||||
| @ -1,17 +1,6 @@ | |||||||
| # MCU name
 | # MCU name
 | ||||||
| MCU = MK20DX128 | 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 |  | ||||||
| 
 |  | ||||||
| # Board: it should exist either in <chibios>/os/hal/boards/
 | # Board: it should exist either in <chibios>/os/hal/boards/
 | ||||||
| #  or <this_dir>/boards
 | #  or <this_dir>/boards
 | ||||||
| # - BOARD =
 | # - BOARD =
 | ||||||
| @ -26,15 +15,13 @@ BOARD = MCHCK_K20 | |||||||
| # The CORTEX_VTOR... is needed only for MCHCK/Infinity KB
 | # The CORTEX_VTOR... is needed only for MCHCK/Infinity KB
 | ||||||
| OPT_DEFS = -DCORTEX_VTOR_INIT=0x00001000 | OPT_DEFS = -DCORTEX_VTOR_INIT=0x00001000 | ||||||
| 
 | 
 | ||||||
| BOOTLOADER = dfu | # Bootloader selection
 | ||||||
|  | BOOTLOADER = kiibohd | ||||||
| 
 | 
 | ||||||
| # Build Options
 | # Build Options
 | ||||||
| #   comment out to disable the 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 | BOOTMAGIC_ENABLE = no	# Virtual DIP switch configuration | ||||||
| ## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.)
 | ## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.)
 | ||||||
| MOUSEKEY_ENABLE = yes	# Mouse keys | MOUSEKEY_ENABLE = yes	# Mouse keys | ||||||
|  | |||||||
| @ -1 +0,0 @@ | |||||||
| #define KIIBOHD_BOOTLOADER |  | ||||||
| @ -1,28 +1,14 @@ | |||||||
| # MCU name
 | # MCU name
 | ||||||
| MCU = MK20DX256 | 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 |  | ||||||
| 
 |  | ||||||
| # Board: it should exist either in <chibios>/os/hal/boards/
 | # Board: it should exist either in <chibios>/os/hal/boards/
 | ||||||
| #  or <this_dir>/boards
 | #  or <this_dir>/boards
 | ||||||
| # This board was copied from PJRC_TEENSY_3_1. The only difference should be a
 | # This board was copied from PJRC_TEENSY_3_1. The only difference should be a
 | ||||||
| # hack to ensure the watchdog has started before trying to disable it.
 | # hack to ensure the watchdog has started before trying to disable it.
 | ||||||
| BOARD = IC_TEENSY_3_1 | BOARD = IC_TEENSY_3_1 | ||||||
| 
 | 
 | ||||||
| DFU_ARGS = -d 1c11:b007 | # Bootloader selection
 | ||||||
| DFU_SUFFIX_ARGS = -p b007 -v 1c11 | BOOTLOADER = kiibohd | ||||||
| 
 |  | ||||||
| BOOTLOADER = dfu |  | ||||||
| 
 | 
 | ||||||
| # Build Options
 | # Build Options
 | ||||||
| #   comment out to disable the options.
 | #   comment out to disable the options.
 | ||||||
|  | |||||||
| @ -1 +0,0 @@ | |||||||
| #define KIIBOHD_BOOTLOADER |  | ||||||
| @ -1,18 +1,6 @@ | |||||||
| # MCU name
 | # MCU name
 | ||||||
| MCU = MK20DX256 | 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 |  | ||||||
| 
 |  | ||||||
| # Board: it should exist either in <chibios>/os/hal/boards/
 | # Board: it should exist either in <chibios>/os/hal/boards/
 | ||||||
| #  or <this_dir>/boards
 | #  or <this_dir>/boards
 | ||||||
| # - BOARD =
 | # - BOARD =
 | ||||||
| @ -22,10 +10,8 @@ MCU_LDSCRIPT = MK20DX256BLDR8 | |||||||
| #   - MCHCK_K20 for Infinity KB
 | #   - MCHCK_K20 for Infinity KB
 | ||||||
| BOARD = IC_TEENSY_3_1 | BOARD = IC_TEENSY_3_1 | ||||||
| 
 | 
 | ||||||
| DFU_ARGS = -d 1c11:b007 | # Bootloader selection
 | ||||||
| DFU_SUFFIX_ARGS = -p b007 -v 1c11 | BOOTLOADER = kiibohd | ||||||
| 
 |  | ||||||
| BOOTLOADER = dfu |  | ||||||
| 
 | 
 | ||||||
| # Build Options
 | # Build Options
 | ||||||
| #   comment out to disable the options.
 | #   comment out to disable the options.
 | ||||||
|  | |||||||
| @ -324,7 +324,7 @@ bin: $(BUILD_DIR)/$(TARGET).bin sizeafter | |||||||
| flash: $(BUILD_DIR)/$(TARGET).bin cpfirmware sizeafter | flash: $(BUILD_DIR)/$(TARGET).bin cpfirmware sizeafter | ||||||
| ifneq ($(strip $(PROGRAM_CMD)),) | ifneq ($(strip $(PROGRAM_CMD)),) | ||||||
| 	$(PROGRAM_CMD) | 	$(PROGRAM_CMD) | ||||||
| else ifeq ($(strip $(BOOTLOADER)),dfu) | else ifeq ($(strip $(BOOTLOADER)),kiibohd) | ||||||
| 	$(call EXEC_DFU_UTIL) | 	$(call EXEC_DFU_UTIL) | ||||||
| else ifeq ($(strip $(MCU_FAMILY)),KINETIS) | else ifeq ($(strip $(MCU_FAMILY)),KINETIS) | ||||||
| 	$(call EXEC_TEENSY) | 	$(call EXEC_TEENSY) | ||||||
|  | |||||||
| @ -44,7 +44,7 @@ void enter_bootloader_mode_if_requested(void) { | |||||||
| #elif defined(KL2x) || defined(K20x) /* STM32_BOOTLOADER_ADDRESS */ | #elif defined(KL2x) || defined(K20x) /* STM32_BOOTLOADER_ADDRESS */ | ||||||
| /* Kinetis */ | /* Kinetis */ | ||||||
| 
 | 
 | ||||||
| #    if defined(KIIBOHD_BOOTLOADER) | #    if defined(BOOTLOADER_KIIBOHD) | ||||||
| /* Kiibohd Bootloader (MCHCK and Infinity KB) */ | /* Kiibohd Bootloader (MCHCK and Infinity KB) */ | ||||||
| #        define SCB_AIRCR_VECTKEY_WRITEMAGIC 0x05FA0000 | #        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"; | ||||||
| @ -54,14 +54,14 @@ void          bootloader_jump(void) { | |||||||
|     SCB->AIRCR = SCB_AIRCR_VECTKEY_WRITEMAGIC | SCB_AIRCR_SYSRESETREQ_Msk; |     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 */ | /* Default for Kinetis - expecting an ARM Teensy */ | ||||||
| #        include "wait.h" | #        include "wait.h" | ||||||
| void bootloader_jump(void) { | void bootloader_jump(void) { | ||||||
|     wait_ms(100); |     wait_ms(100); | ||||||
|     __BKPT(0); |     __BKPT(0); | ||||||
| } | } | ||||||
| #    endif /* defined(KIIBOHD_BOOTLOADER) */ | #    endif /* defined(BOOTLOADER_KIIBOHD) */ | ||||||
| 
 | 
 | ||||||
| #else /* neither STM32 nor KINETIS */ | #else /* neither STM32 nor KINETIS */ | ||||||
| __attribute__((weak)) void bootloader_jump(void) {} | __attribute__((weak)) void bootloader_jump(void) {} | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Ryan
						Ryan