aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/ergodox_infinity/keymaps/halfkeyboard/rules.mk2
-rw-r--r--keyboards/ergodox_infinity/rules.mk2
-rw-r--r--keyboards/infinity60/rules.mk2
-rw-r--r--keyboards/k_type/rules.mk2
-rw-r--r--keyboards/whitefox/rules.mk2
-rw-r--r--message.mk2
-rw-r--r--tmk_core/arm_atsam.mk3
-rw-r--r--tmk_core/avr.mk91
-rw-r--r--tmk_core/chibios.mk26
-rw-r--r--tmk_core/rules.mk5
10 files changed, 93 insertions, 44 deletions
diff --git a/keyboards/ergodox_infinity/keymaps/halfkeyboard/rules.mk b/keyboards/ergodox_infinity/keymaps/halfkeyboard/rules.mk
index 2d3597ceb..43a318529 100644
--- a/keyboards/ergodox_infinity/keymaps/halfkeyboard/rules.mk
+++ b/keyboards/ergodox_infinity/keymaps/halfkeyboard/rules.mk
@@ -54,6 +54,8 @@ ARMV = 7
54# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB 54# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB
55OPT_DEFS += -DCORTEX_VTOR_INIT=0x00002000 55OPT_DEFS += -DCORTEX_VTOR_INIT=0x00002000
56 56
57BOOTLOADER = dfu
58
57# Build Options 59# Build Options
58# comment out to disable the options. 60# comment out to disable the options.
59# 61#
diff --git a/keyboards/ergodox_infinity/rules.mk b/keyboards/ergodox_infinity/rules.mk
index af8e9ef20..b55c9bc8c 100644
--- a/keyboards/ergodox_infinity/rules.mk
+++ b/keyboards/ergodox_infinity/rules.mk
@@ -54,6 +54,8 @@ ARMV = 7
54# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB 54# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB
55OPT_DEFS += -DCORTEX_VTOR_INIT=0x00002000 55OPT_DEFS += -DCORTEX_VTOR_INIT=0x00002000
56 56
57BOOTLOADER = dfu
58
57# Build Options 59# Build Options
58# comment out to disable the options. 60# comment out to disable the options.
59# 61#
diff --git a/keyboards/infinity60/rules.mk b/keyboards/infinity60/rules.mk
index 1f02e05c8..6fb43dc75 100644
--- a/keyboards/infinity60/rules.mk
+++ b/keyboards/infinity60/rules.mk
@@ -53,6 +53,8 @@ ARMV = 7
53# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB 53# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB
54OPT_DEFS = -DCORTEX_VTOR_INIT=0x00001000 54OPT_DEFS = -DCORTEX_VTOR_INIT=0x00001000
55 55
56BOOTLOADER = dfu
57
56# Build Options 58# Build Options
57# comment out to disable the options. 59# comment out to disable the options.
58# 60#
diff --git a/keyboards/k_type/rules.mk b/keyboards/k_type/rules.mk
index 7762f1868..43579fcc7 100644
--- a/keyboards/k_type/rules.mk
+++ b/keyboards/k_type/rules.mk
@@ -59,6 +59,8 @@ OPT_DEFS =
59DFU_ARGS = -d 1c11:b007 59DFU_ARGS = -d 1c11:b007
60DFU_SUFFIX_ARGS = -p b007 -v 1c11 60DFU_SUFFIX_ARGS = -p b007 -v 1c11
61 61
62BOOTLOADER = dfu
63
62# Build Options 64# Build Options
63# comment out to disable the options. 65# comment out to disable the options.
64# 66#
diff --git a/keyboards/whitefox/rules.mk b/keyboards/whitefox/rules.mk
index d9aa911c5..59332d1d5 100644
--- a/keyboards/whitefox/rules.mk
+++ b/keyboards/whitefox/rules.mk
@@ -57,6 +57,8 @@ OPT_DEFS =
57DFU_ARGS = -d 1c11:b007 57DFU_ARGS = -d 1c11:b007
58DFU_SUFFIX_ARGS = -p b007 -v 1c11 58DFU_SUFFIX_ARGS = -p b007 -v 1c11
59 59
60BOOTLOADER = dfu
61
60# Build Options 62# Build Options
61# comment out to disable the options. 63# comment out to disable the options.
62# 64#
diff --git a/message.mk b/message.mk
index ec9bacbf4..c8d2135d5 100644
--- a/message.mk
+++ b/message.mk
@@ -85,3 +85,5 @@ MSG_PYTHON_MISSING = $(WARN_COLOR)WARNING:$(NO_COLOR)\n \
85 Python 3 is not installed. It will be required by a future version\n\ 85 Python 3 is not installed. It will be required by a future version\n\
86 of qmk_firmware.\n\n\ 86 of qmk_firmware.\n\n\
87 Please run $(BOLD)util/qmk_install.sh$(NO_COLOR) to install all the dependencies QMK requires.\n\n 87 Please run $(BOLD)util/qmk_install.sh$(NO_COLOR) to install all the dependencies QMK requires.\n\n
88MSG_FLASH_BOOTLOADER = $(WARN_COLOR)WARNING:$(NO_COLOR) This board's bootloader is not specified or is not supported by the \":flash\" target at this time.\n\n
89MSG_FLASH_ARCH = $(WARN_COLOR)WARNING:$(NO_COLOR) This board's architecture is not supported by the \":flash\" target at this time.\n\n
diff --git a/tmk_core/arm_atsam.mk b/tmk_core/arm_atsam.mk
index 25a3411f4..c9b14042f 100644
--- a/tmk_core/arm_atsam.mk
+++ b/tmk_core/arm_atsam.mk
@@ -54,3 +54,6 @@ EXTRALIBDIRS =
54bin: $(BUILD_DIR)/$(TARGET).hex 54bin: $(BUILD_DIR)/$(TARGET).hex
55 $(OBJCOPY) -Iihex -Obinary $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin 55 $(OBJCOPY) -Iihex -Obinary $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin
56 $(COPY) $(BUILD_DIR)/$(TARGET).bin $(TARGET).bin; 56 $(COPY) $(BUILD_DIR)/$(TARGET).bin $(TARGET).bin;
57
58flash: bin
59 $(PRINT_OK); $(SILENT) || printf "$(MSG_FLASH_ARCH)"
diff --git a/tmk_core/avr.mk b/tmk_core/avr.mk
index 5bfd5a9b0..e5443418b 100644
--- a/tmk_core/avr.mk
+++ b/tmk_core/avr.mk
@@ -89,11 +89,11 @@ DEBUG_HOST = localhost
89#============================================================================ 89#============================================================================
90# Autodetect teensy loader 90# Autodetect teensy loader
91ifndef TEENSY_LOADER_CLI 91ifndef TEENSY_LOADER_CLI
92 ifneq (, $(shell which teensy-loader-cli 2>/dev/null)) 92 ifneq (, $(shell which teensy-loader-cli 2>/dev/null))
93 TEENSY_LOADER_CLI ?= teensy-loader-cli 93 TEENSY_LOADER_CLI ?= teensy-loader-cli
94 else 94 else
95 TEENSY_LOADER_CLI ?= teensy_loader_cli 95 TEENSY_LOADER_CLI ?= teensy_loader_cli
96 endif 96 endif
97endif 97endif
98 98
99# Generate a .qmk for the QMK-FF 99# Generate a .qmk for the QMK-FF
@@ -124,8 +124,12 @@ qmk: $(BUILD_DIR)/$(TARGET).hex
124program: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep check-size 124program: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep check-size
125 $(PROGRAM_CMD) 125 $(PROGRAM_CMD)
126 126
127teensy: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware 127define EXEC_TEENSY
128 $(TEENSY_LOADER_CLI) -mmcu=$(MCU) -w -v $(BUILD_DIR)/$(TARGET).hex 128 $(TEENSY_LOADER_CLI) -mmcu=$(MCU) -w -v $(BUILD_DIR)/$(TARGET).hex
129endef
130
131teensy: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware
132 $(call EXEC_TEENSY)
129 133
130BATCHISP ?= batchisp 134BATCHISP ?= batchisp
131 135
@@ -137,18 +141,32 @@ flip: $(BUILD_DIR)/$(TARGET).hex check-size
137DFU_PROGRAMMER ?= dfu-programmer 141DFU_PROGRAMMER ?= dfu-programmer
138GREP ?= grep 142GREP ?= grep
139 143
140dfu: $(BUILD_DIR)/$(TARGET).hex cpfirmware check-size 144
145define EXEC_DFU
146 if [ "$(1)" ]; then \
147 echo "Flashing '$(1)' for EE_HANDS split keyboard support." ;\
148 fi; \
141 until $(DFU_PROGRAMMER) $(MCU) get bootloader-version; do\ 149 until $(DFU_PROGRAMMER) $(MCU) get bootloader-version; do\
142 echo "Error: Bootloader not found. Trying again in 5s." ;\ 150 echo "Error: Bootloader not found. Trying again in 5s." ;\
143 sleep 5 ;\ 151 sleep 5 ;\
144 done 152 done; \
145 if $(DFU_PROGRAMMER) --version 2>&1 | $(GREP) -q 0.7 ; then\ 153 if $(DFU_PROGRAMMER) --version 2>&1 | $(GREP) -q 0.7 ; then\
146 $(DFU_PROGRAMMER) $(MCU) erase --force;\ 154 $(DFU_PROGRAMMER) $(MCU) erase --force; \
147 else\ 155 if [ "$(1)" ]; then \
148 $(DFU_PROGRAMMER) $(MCU) erase;\ 156 $(DFU_PROGRAMMER) $(MCU) flash --eeprom $(QUANTUM_PATH)/split_common/$(1);\
149 fi 157 fi; \
150 $(DFU_PROGRAMMER) $(MCU) flash $(BUILD_DIR)/$(TARGET).hex 158 else \
159 $(DFU_PROGRAMMER) $(MCU) erase; \
160 if [ "$(1)" ]; then \
161 $(DFU_PROGRAMMER) $(MCU) flash-eeprom $(QUANTUM_PATH)/split_common/$(1);\
162 fi; \
163 fi; \
164 $(DFU_PROGRAMMER) $(MCU) flash $(BUILD_DIR)/$(TARGET).hex;\
151 $(DFU_PROGRAMMER) $(MCU) reset 165 $(DFU_PROGRAMMER) $(MCU) reset
166endef
167
168dfu: $(BUILD_DIR)/$(TARGET).hex cpfirmware check-size
169 $(call EXEC_DFU)
152 170
153dfu-start: 171dfu-start:
154 $(DFU_PROGRAMMER) $(MCU) reset 172 $(DFU_PROGRAMMER) $(MCU) reset
@@ -170,34 +188,10 @@ dfu-ee: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep
170 $(DFU_PROGRAMMER) $(MCU) reset 188 $(DFU_PROGRAMMER) $(MCU) reset
171 189
172dfu-split-left: $(BUILD_DIR)/$(TARGET).hex cpfirmware check-size 190dfu-split-left: $(BUILD_DIR)/$(TARGET).hex cpfirmware check-size
173 until $(DFU_PROGRAMMER) $(MCU) get bootloader-version; do\ 191 $(call EXEC_DFU,eeprom-lefthand.eep)
174 echo "Error: Bootloader not found. Trying again in 5s." ;\
175 sleep 5 ;\
176 done
177 if $(DFU_PROGRAMMER) --version 2>&1 | $(GREP) -q 0.7 ; then\
178 $(DFU_PROGRAMMER) $(MCU) erase --force;\
179 $(DFU_PROGRAMMER) $(MCU) flash --eeprom $(QUANTUM_PATH)/split_common/eeprom-lefthand.eep;\
180 else\
181 $(DFU_PROGRAMMER) $(MCU) erase;\
182 $(DFU_PROGRAMMER) $(MCU) flash-eeprom $(QUANTUM_PATH)/split_common/eeprom-lefthand.eep;\
183 fi
184 $(DFU_PROGRAMMER) $(MCU) flash $(BUILD_DIR)/$(TARGET).hex
185 $(DFU_PROGRAMMER) $(MCU) reset
186 192
187dfu-split-right: $(BUILD_DIR)/$(TARGET).hex cpfirmware check-size 193dfu-split-right: $(BUILD_DIR)/$(TARGET).hex cpfirmware check-size
188 until $(DFU_PROGRAMMER) $(MCU) get bootloader-version; do\ 194 $(call EXEC_DFU,eeprom-righthand.eep)
189 echo "Error: Bootloader not found. Trying again in 5s." ;\
190 sleep 5 ;\
191 done
192 if $(DFU_PROGRAMMER) --version 2>&1 | $(GREP) -q 0.7 ; then\
193 $(DFU_PROGRAMMER) $(MCU) erase --force;\
194 $(DFU_PROGRAMMER) $(MCU) flash --eeprom $(QUANTUM_PATH)/split_common/eeprom-righthand.eep;\
195 else\
196 $(DFU_PROGRAMMER) $(MCU) erase;\
197 $(DFU_PROGRAMMER) $(MCU) flash-eeprom $(QUANTUM_PATH)/split_common/eeprom-righthand.eep;\
198 fi
199 $(DFU_PROGRAMMER) $(MCU) flash $(BUILD_DIR)/$(TARGET).hex
200 $(DFU_PROGRAMMER) $(MCU) reset
201 195
202define EXEC_AVRDUDE 196define EXEC_AVRDUDE
203 USB= ;\ 197 USB= ;\
@@ -245,8 +239,12 @@ avrdude-split-left: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware
245avrdude-split-right: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware 239avrdude-split-right: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware
246 $(call EXEC_AVRDUDE,eeprom-righthand.eep) 240 $(call EXEC_AVRDUDE,eeprom-righthand.eep)
247 241
248usbasp: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware 242define EXEC_USBASP
249 avrdude -p $(MCU) -c usbasp -U flash:w:$(BUILD_DIR)/$(TARGET).hex 243 avrdude -p $(MCU) -c usbasp -U flash:w:$(BUILD_DIR)/$(TARGET).hex
244endef
245
246usbasp: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware
247 $(call EXEC_USBASP)
250 248
251 249
252# Convert hex to bin. 250# Convert hex to bin.
@@ -323,3 +321,16 @@ production: $(BUILD_DIR)/$(TARGET).hex bootloader cpfirmware
323 @cat $(TARGET)_bootloader.hex >> $(TARGET)_production.hex 321 @cat $(TARGET)_bootloader.hex >> $(TARGET)_production.hex
324 echo "File sizes:" 322 echo "File sizes:"
325 $(SIZE) $(TARGET).hex $(TARGET)_bootloader.hex $(TARGET)_production.hex 323 $(SIZE) $(TARGET).hex $(TARGET)_bootloader.hex $(TARGET)_production.hex
324
325flash: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware
326ifeq ($(strip $(BOOTLOADER)), caterina)
327 $(call EXEC_AVRDUDE)
328else ifeq ($(strip $(BOOTLOADER)), halfkay)
329 $(call EXEC_TEENSY)
330else ifeq (dfu,$(findstring dfu,$(BOOTLOADER)))
331 $(call EXEC_DFU)
332else ifeq ($(strip $(BOOTLOADER)), USBasp)
333 $(call EXEC_USBASP)
334else
335 $(PRINT_OK); $(SILENT) || printf "&(MSG_FLASH_BOOTLOADER)"
336endif
diff --git a/tmk_core/chibios.mk b/tmk_core/chibios.mk
index 4aebb4776..eee520467 100644
--- a/tmk_core/chibios.mk
+++ b/tmk_core/chibios.mk
@@ -234,9 +234,12 @@ qmk: $(BUILD_DIR)/$(TARGET).bin
234 zip $(TARGET).qmk -urj $(BUILD_DIR)/$(TARGET).json 234 zip $(TARGET).qmk -urj $(BUILD_DIR)/$(TARGET).json
235 printf "@ $(TARGET).json\n@=info.json\n" | zipnote -w $(TARGET).qmk 235 printf "@ $(TARGET).json\n@=info.json\n" | zipnote -w $(TARGET).qmk
236 236
237dfu-util: $(BUILD_DIR)/$(TARGET).bin cpfirmware sizeafter 237define EXEC_DFU_UTIL
238 $(DFU_UTIL) $(DFU_ARGS) -D $(BUILD_DIR)/$(TARGET).bin 238 $(DFU_UTIL) $(DFU_ARGS) -D $(BUILD_DIR)/$(TARGET).bin
239endef
239 240
241dfu-util: $(BUILD_DIR)/$(TARGET).bin cpfirmware sizeafter
242 $(call EXEC_DFU_UTIL)
240 243
241ifneq ($(strip $(TIME_DELAY)),) 244ifneq ($(strip $(TIME_DELAY)),)
242 TIME_DELAY = $(strip $(TIME_DELAY)) 245 TIME_DELAY = $(strip $(TIME_DELAY))
@@ -253,7 +256,7 @@ dfu-util-wait: $(BUILD_DIR)/$(TARGET).bin cpfirmware sizeafter
253 done; \ 256 done; \
254 echo "Flashing $(TARGET).bin" ;\ 257 echo "Flashing $(TARGET).bin" ;\
255 sleep 1 ;\ 258 sleep 1 ;\
256 $(DFU_UTIL) $(DFU_ARGS) -D $(BUILD_DIR)/$(TARGET).bin 259 $(call EXEC_DFU_UTIL)
257 260
258st-link-cli: $(BUILD_DIR)/$(TARGET).hex sizeafter 261st-link-cli: $(BUILD_DIR)/$(TARGET).hex sizeafter
259 $(ST_LINK_CLI) $(ST_LINK_ARGS) -q -c SWD -p $(BUILD_DIR)/$(TARGET).hex -Rst 262 $(ST_LINK_CLI) $(ST_LINK_ARGS) -q -c SWD -p $(BUILD_DIR)/$(TARGET).hex -Rst
@@ -268,7 +271,24 @@ ifndef TEENSY_LOADER_CLI
268 endif 271 endif
269endif 272endif
270 273
271teensy: $(BUILD_DIR)/$(TARGET).hex cpfirmware sizeafter 274define EXEC_TEENSY
272 $(TEENSY_LOADER_CLI) -mmcu=$(MCU_LDSCRIPT) -w -v $(BUILD_DIR)/$(TARGET).hex 275 $(TEENSY_LOADER_CLI) -mmcu=$(MCU_LDSCRIPT) -w -v $(BUILD_DIR)/$(TARGET).hex
276endef
277
278teensy: $(BUILD_DIR)/$(TARGET).hex cpfirmware sizeafter
279 $(call EXEC_TEENSY)
273 280
274bin: $(BUILD_DIR)/$(TARGET).bin sizeafter 281bin: $(BUILD_DIR)/$(TARGET).bin sizeafter
282 $(COPY) $(BUILD_DIR)/$(TARGET).bin $(TARGET).bin;
283
284
285flash: $(BUILD_DIR)/$(TARGET).bin cpfirmware sizeafter
286ifeq ($(strip $(BOOTLOADER)),dfu)
287 $(call EXEC_DFU_UTIL)
288else ifeq ($(strip $(MCU_FAMILY)),KINETIS)
289 $(call EXEC_TEENSY)
290else ifeq ($(strip $(MCU_FAMILY)),STM32)
291 $(call EXEC_DFU_UTIL)
292else
293 $(PRINT_OK); $(SILENT) || printf "$(MSG_FLASH_BOOTLOADER)"
294endif
diff --git a/tmk_core/rules.mk b/tmk_core/rules.mk
index e51dbfe7c..31bce33c3 100644
--- a/tmk_core/rules.mk
+++ b/tmk_core/rules.mk
@@ -433,4 +433,7 @@ $(eval $(foreach OUTPUT,$(OUTPUTS),$(shell mkdir -p $(OUTPUT) 2>/dev/null)))
433.PHONY : all finish sizebefore sizeafter qmkversion \ 433.PHONY : all finish sizebefore sizeafter qmkversion \
434gccversion build elf hex eep lss sym coff extcoff \ 434gccversion build elf hex eep lss sym coff extcoff \
435clean clean_list debug gdb-config show_path \ 435clean clean_list debug gdb-config show_path \
436program teensy dfu flip dfu-ee flip-ee dfu-start 436program teensy dfu flip dfu-ee flip-ee dfu-start \
437flash dfu-split-left dfu-split-right \
438avrdude-split-left avrdude-split-right \
439avrdude-loop usbasp