aboutsummaryrefslogtreecommitdiff
path: root/tmk_core
diff options
context:
space:
mode:
authorNick Brassel <nick@tzarc.org>2020-06-06 18:52:19 +1000
committerJames Young <18669334+noroadsleft@users.noreply.github.com>2020-08-29 14:30:02 -0700
commit385d49cc39b57e74203e0c1c78c0789d249e4742 (patch)
treedbd8b3f7bc30a9d40d51ffaa5cd5a93d5eb47359 /tmk_core
parent5cc3ab38c9148cd6bc7ccdba176a88fbb95653b1 (diff)
downloadqmk_firmware-385d49cc39b57e74203e0c1c78c0789d249e4742.tar.gz
qmk_firmware-385d49cc39b57e74203e0c1c78c0789d249e4742.zip
Initial work for consolidation of ChibiOS platform files (#8327)
* Initial work for consolidation of board files and default ChibiOS configs. * Migrate F401/F411 black pills for testing. * Add early init bootloader jump flag. * Add support for I2C in order to use i2c_scanner keymap. * Add F401/F411 HSE bypass to get things booting. * Exempt "hooked" ChibiOS conf files from updater script. * Fix up ordering for bootloader_defs file check. * Match previous $(KEYBOARD_PATHS) value for Proton-C, updated for all board configs.
Diffstat (limited to 'tmk_core')
-rw-r--r--tmk_core/chibios.mk113
1 files changed, 85 insertions, 28 deletions
diff --git a/tmk_core/chibios.mk b/tmk_core/chibios.mk
index 09aaddeef..4e8abc9be 100644
--- a/tmk_core/chibios.mk
+++ b/tmk_core/chibios.mk
@@ -50,11 +50,42 @@ PLATFORM_MK = $(CHIBIOS_CONTRIB)/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)/$(PLAT
50endif 50endif
51include $(PLATFORM_MK) 51include $(PLATFORM_MK)
52 52
53BOARD_MK :=
54
55ifneq ("$(wildcard $(KEYBOARD_PATH_5)/boards/$(BOARD)/board.mk)","")
56 BOARD_PATH = $(KEYBOARD_PATH_5)
57 BOARD_MK += $(KEYBOARD_PATH_5)/boards/$(BOARD)/board.mk
58else ifneq ("$(wildcard $(KEYBOARD_PATH_4)/boards/$(BOARD)/board.mk)","")
59 BOARD_PATH = $(KEYBOARD_PATH_4)
60 BOARD_MK += $(KEYBOARD_PATH_4)/boards/$(BOARD)/board.mk
61else ifneq ("$(wildcard $(KEYBOARD_PATH_3)/boards/$(BOARD)/board.mk)","")
62 BOARD_PATH = $(KEYBOARD_PATH_3)
63 BOARD_MK += $(KEYBOARD_PATH_3)/boards/$(BOARD)/board.mk
64else ifneq ("$(wildcard $(KEYBOARD_PATH_2)/boards/$(BOARD)/board.mk)","")
65 BOARD_PATH = $(KEYBOARD_PATH_2)
66 BOARD_MK += $(KEYBOARD_PATH_2)/boards/$(BOARD)/board.mk
67else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/boards/$(BOARD)/board.mk)","")
68 BOARD_PATH = $(KEYBOARD_PATH_1)
69 BOARD_MK += $(KEYBOARD_PATH_1)/boards/$(BOARD)/board.mk
70else ifneq ("$(wildcard $(TOP_DIR)/platforms/chibios/$(BOARD)/board/board.mk)","")
71 BOARD_PATH = $(TOP_DIR)/platforms/chibios/$(BOARD)
72 BOARD_MK += $(TOP_DIR)/platforms/chibios/$(BOARD)/board/board.mk
73 KEYBOARD_PATHS += $(BOARD_PATH)/configs
74endif
75
76ifeq ("$(wildcard $(BOARD_MK))","")
77 BOARD_MK = $(CHIBIOS)/os/hal/boards/$(BOARD)/board.mk
78 ifeq ("$(wildcard $(BOARD_MK))","")
79 BOARD_MK = $(CHIBIOS_CONTRIB)/os/hal/boards/$(BOARD)/board.mk
80 endif
81endif
82
53# Bootloader address 83# Bootloader address
54ifdef STM32_BOOTLOADER_ADDRESS 84ifdef STM32_BOOTLOADER_ADDRESS
55 OPT_DEFS += -DSTM32_BOOTLOADER_ADDRESS=$(STM32_BOOTLOADER_ADDRESS) 85 OPT_DEFS += -DSTM32_BOOTLOADER_ADDRESS=$(STM32_BOOTLOADER_ADDRESS)
56endif 86endif
57 87
88# Work out if we need to set up the include for the bootloader definitions
58ifneq ("$(wildcard $(KEYBOARD_PATH_5)/bootloader_defs.h)","") 89ifneq ("$(wildcard $(KEYBOARD_PATH_5)/bootloader_defs.h)","")
59 OPT_DEFS += -include $(KEYBOARD_PATH_5)/bootloader_defs.h 90 OPT_DEFS += -include $(KEYBOARD_PATH_5)/bootloader_defs.h
60else ifneq ("$(wildcard $(KEYBOARD_PATH_5)/boards/$(BOARD)/bootloader_defs.h)","") 91else ifneq ("$(wildcard $(KEYBOARD_PATH_5)/boards/$(BOARD)/bootloader_defs.h)","")
@@ -75,38 +106,52 @@ else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/bootloader_defs.h)","")
75 OPT_DEFS += -include $(KEYBOARD_PATH_1)/bootloader_defs.h 106 OPT_DEFS += -include $(KEYBOARD_PATH_1)/bootloader_defs.h
76else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/boards/$(BOARD)/bootloader_defs.h)","") 107else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/boards/$(BOARD)/bootloader_defs.h)","")
77 OPT_DEFS += -include $(KEYBOARD_PATH_1)/boards/$(BOARD)/bootloader_defs.h 108 OPT_DEFS += -include $(KEYBOARD_PATH_1)/boards/$(BOARD)/bootloader_defs.h
78else ifneq ("$(wildcard $(TOP_DIR)/drivers/boards/$(BOARD)/bootloader_defs.h)","") 109else ifneq ("$(wildcard $(BOARD_PATH)/configs/bootloader_defs.h)","")
79 OPT_DEFS += -include $(TOP_DIR)/drivers/boards/$(BOARD)/bootloader_defs.h 110 OPT_DEFS += -include $(BOARD_PATH)/configs/bootloader_defs.h
80endif 111endif
81 112
82BOARD_MK := 113# Work out the config file directories
114ifneq ("$(wildcard $(KEYBOARD_PATH_5)/chconf.h)","")
115 CHCONFDIR = $(KEYBOARD_PATH_5)
116else ifneq ("$(wildcard $(KEYBOARD_PATH_4)/chconf.h)","")
117 CHCONFDIR = $(KEYBOARD_PATH_4)
118else ifneq ("$(wildcard $(KEYBOARD_PATH_3)/chconf.h)","")
119 CHCONFDIR = $(KEYBOARD_PATH_3)
120else ifneq ("$(wildcard $(KEYBOARD_PATH_2)/chconf.h)","")
121 CHCONFDIR = $(KEYBOARD_PATH_2)
122else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/chconf.h)","")
123 CHCONFDIR = $(KEYBOARD_PATH_1)
124else ifneq ("$(wildcard $(TOP_DIR)/platforms/chibios/$(BOARD)/configs/chconf.h)","")
125 CHCONFDIR = $(TOP_DIR)/platforms/chibios/$(BOARD)/configs
126endif
83 127
84ifneq ("$(wildcard $(KEYBOARD_PATH_5)/boards/$(BOARD)/board.mk)","") 128ifneq ("$(wildcard $(KEYBOARD_PATH_5)/halconf.h)","")
85 BOARD_PATH = $(KEYBOARD_PATH_5) 129 HALCONFDIR = $(KEYBOARD_PATH_5)
86 BOARD_MK += $(KEYBOARD_PATH_5)/boards/$(BOARD)/board.mk 130else ifneq ("$(wildcard $(KEYBOARD_PATH_4)/halconf.h)","")
87else ifneq ("$(wildcard $(KEYBOARD_PATH_4)/boards/$(BOARD)/board.mk)","") 131 HALCONFDIR = $(KEYBOARD_PATH_4)
88 BOARD_PATH = $(KEYBOARD_PATH_4) 132else ifneq ("$(wildcard $(KEYBOARD_PATH_3)/halconf.h)","")
89 BOARD_MK += $(KEYBOARD_PATH_4)/boards/$(BOARD)/board.mk 133 HALCONFDIR = $(KEYBOARD_PATH_3)
90else ifneq ("$(wildcard $(KEYBOARD_PATH_3)/boards/$(BOARD)/board.mk)","") 134else ifneq ("$(wildcard $(KEYBOARD_PATH_2)/halconf.h)","")
91 BOARD_PATH = $(KEYBOARD_PATH_3) 135 HALCONFDIR = $(KEYBOARD_PATH_2)
92 BOARD_MK += $(KEYBOARD_PATH_3)/boards/$(BOARD)/board.mk 136else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/halconf.h)","")
93else ifneq ("$(wildcard $(KEYBOARD_PATH_2)/boards/$(BOARD)/board.mk)","") 137 HALCONFDIR = $(KEYBOARD_PATH_1)
94 BOARD_PATH = $(KEYBOARD_PATH_2) 138else ifneq ("$(wildcard $(TOP_DIR)/platforms/chibios/$(BOARD)/configs/halconf.h)","")
95 BOARD_MK += $(KEYBOARD_PATH_2)/boards/$(BOARD)/board.mk 139 HALCONFDIR = $(TOP_DIR)/platforms/chibios/$(BOARD)/configs
96else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/boards/$(BOARD)/board.mk)","")
97 BOARD_PATH = $(KEYBOARD_PATH_1)
98 BOARD_MK += $(KEYBOARD_PATH_1)/boards/$(BOARD)/board.mk
99else ifneq ("$(wildcard $(TOP_DIR)/drivers/boards/$(BOARD)/board.mk)","")
100 BOARD_PATH = $(TOP_DIR)/drivers
101 BOARD_MK += $(TOP_DIR)/drivers/boards/$(BOARD)/board.mk
102endif 140endif
103 141
104ifeq ("$(wildcard $(BOARD_MK))","") 142# HAL-OSAL files (optional).
105 BOARD_MK = $(CHIBIOS)/os/hal/boards/$(BOARD)/board.mk 143include $(CHIBIOS)/os/hal/hal.mk
106 ifeq ("$(wildcard $(BOARD_MK))","") 144
107 BOARD_MK = $(CHIBIOS_CONTRIB)/os/hal/boards/$(BOARD)/board.mk 145ifeq ("$(PLATFORM_NAME)","")
108 endif 146 PLATFORM_NAME = platform
147endif
148
149PLATFORM_MK = $(CHIBIOS)/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)/$(PLATFORM_NAME).mk
150ifeq ("$(wildcard $(PLATFORM_MK))","")
151PLATFORM_MK = $(CHIBIOS_CONTRIB)/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)/$(PLATFORM_NAME).mk
109endif 152endif
153include $(PLATFORM_MK)
154
110 155
111include $(BOARD_MK) 156include $(BOARD_MK)
112-include $(CHIBIOS)/os/hal/osal/rt/osal.mk # ChibiOS <= 19.x 157-include $(CHIBIOS)/os/hal/osal/rt/osal.mk # ChibiOS <= 19.x
@@ -138,8 +183,8 @@ else ifneq ("$(wildcard $(KEYBOARD_PATH_2)/ld/$(MCU_LDSCRIPT).ld)","")
138 LDSCRIPT = $(KEYBOARD_PATH_2)/ld/$(MCU_LDSCRIPT).ld 183 LDSCRIPT = $(KEYBOARD_PATH_2)/ld/$(MCU_LDSCRIPT).ld
139else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/ld/$(MCU_LDSCRIPT).ld)","") 184else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/ld/$(MCU_LDSCRIPT).ld)","")
140 LDSCRIPT = $(KEYBOARD_PATH_1)/ld/$(MCU_LDSCRIPT).ld 185 LDSCRIPT = $(KEYBOARD_PATH_1)/ld/$(MCU_LDSCRIPT).ld
141else ifneq ("$(wildcard $(TOP_DIR)/drivers/boards/ld/$(MCU_LDSCRIPT).ld)","") 186else ifneq ("$(wildcard $(TOP_DIR)/platforms/chibios/ld/$(MCU_LDSCRIPT).ld)","")
142 LDSCRIPT = $(TOP_DIR)/drivers/boards/ld/$(MCU_LDSCRIPT).ld 187 LDSCRIPT = $(TOP_DIR)/platforms/chibios/ld/$(MCU_LDSCRIPT).ld
143else ifneq ("$(wildcard $(STARTUPLD_CONTRIB)/$(MCU_LDSCRIPT).ld)","") 188else ifneq ("$(wildcard $(STARTUPLD_CONTRIB)/$(MCU_LDSCRIPT).ld)","")
144 LDSCRIPT = $(STARTUPLD_CONTRIB)/$(MCU_LDSCRIPT).ld 189 LDSCRIPT = $(STARTUPLD_CONTRIB)/$(MCU_LDSCRIPT).ld
145 USE_CHIBIOS_CONTRIB = yes 190 USE_CHIBIOS_CONTRIB = yes
@@ -163,6 +208,7 @@ QUANTUM_LIB_SRC += $(STARTUPASM) $(PORTASM) $(OSALASM)
163CHIBISRC := $(patsubst $(TOP_DIR)/%,%,$(CHIBISRC)) 208CHIBISRC := $(patsubst $(TOP_DIR)/%,%,$(CHIBISRC))
164 209
165EXTRAINCDIRS += $(CHIBIOS)/os/license $(CHIBIOS)/os/oslib/include \ 210EXTRAINCDIRS += $(CHIBIOS)/os/license $(CHIBIOS)/os/oslib/include \
211 $(TOP_DIR)/platforms/chibios/$(BOARD)/configs \
166 $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ 212 $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
167 $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ 213 $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \
168 $(STREAMSINC) $(CHIBIOS)/os/various $(COMMON_VPATH) 214 $(STREAMSINC) $(CHIBIOS)/os/various $(COMMON_VPATH)
@@ -182,6 +228,8 @@ else ifneq ("$(wildcard $(KEYBOARD_PATH_2)/halconf_community.h)","")
182 USE_CHIBIOS_CONTRIB = yes 228 USE_CHIBIOS_CONTRIB = yes
183else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/halconf_community.h)","") 229else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/halconf_community.h)","")
184 USE_CHIBIOS_CONTRIB = yes 230 USE_CHIBIOS_CONTRIB = yes
231else ifneq ("$(wildcard $(TOP_DIR)/platforms/chibios/$(BOARD)/configs/halconf_community.h)","")
232 USE_CHIBIOS_CONTRIB = yes
185endif 233endif
186 234
187ifeq ($(strip $(USE_CHIBIOS_CONTRIB)),yes) 235ifeq ($(strip $(USE_CHIBIOS_CONTRIB)),yes)
@@ -194,6 +242,15 @@ endif
194# Project, sources and paths 242# Project, sources and paths
195############################################################################## 243##############################################################################
196 244
245##############################################################################
246# Injected configs
247#
248ifneq ("$(wildcard $(BOARD_PATH)/configs/config.h)","")
249 CONFIG_H += $(BOARD_PATH)/configs/config.h
250endif
251ifneq ("$(wildcard $(BOARD_PATH)/configs/post_config.h)","")
252 POST_CONFIG_H += $(BOARD_PATH)/configs/post_config.h
253endif
197 254
198############################################################################## 255##############################################################################
199# Compiler settings 256# Compiler settings