diff options
author | Nick Brassel <nick@tzarc.org> | 2020-06-06 18:52:19 +1000 |
---|---|---|
committer | James Young <18669334+noroadsleft@users.noreply.github.com> | 2020-08-29 14:30:02 -0700 |
commit | 385d49cc39b57e74203e0c1c78c0789d249e4742 (patch) | |
tree | dbd8b3f7bc30a9d40d51ffaa5cd5a93d5eb47359 /tmk_core | |
parent | 5cc3ab38c9148cd6bc7ccdba176a88fbb95653b1 (diff) | |
download | qmk_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.mk | 113 |
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 | |||
50 | endif | 50 | endif |
51 | include $(PLATFORM_MK) | 51 | include $(PLATFORM_MK) |
52 | 52 | ||
53 | BOARD_MK := | ||
54 | |||
55 | ifneq ("$(wildcard $(KEYBOARD_PATH_5)/boards/$(BOARD)/board.mk)","") | ||
56 | BOARD_PATH = $(KEYBOARD_PATH_5) | ||
57 | BOARD_MK += $(KEYBOARD_PATH_5)/boards/$(BOARD)/board.mk | ||
58 | else 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 | ||
61 | else 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 | ||
64 | else 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 | ||
67 | else 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 | ||
70 | else 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 | ||
74 | endif | ||
75 | |||
76 | ifeq ("$(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 | ||
81 | endif | ||
82 | |||
53 | # Bootloader address | 83 | # Bootloader address |
54 | ifdef STM32_BOOTLOADER_ADDRESS | 84 | ifdef STM32_BOOTLOADER_ADDRESS |
55 | OPT_DEFS += -DSTM32_BOOTLOADER_ADDRESS=$(STM32_BOOTLOADER_ADDRESS) | 85 | OPT_DEFS += -DSTM32_BOOTLOADER_ADDRESS=$(STM32_BOOTLOADER_ADDRESS) |
56 | endif | 86 | endif |
57 | 87 | ||
88 | # Work out if we need to set up the include for the bootloader definitions | ||
58 | ifneq ("$(wildcard $(KEYBOARD_PATH_5)/bootloader_defs.h)","") | 89 | ifneq ("$(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 |
60 | else ifneq ("$(wildcard $(KEYBOARD_PATH_5)/boards/$(BOARD)/bootloader_defs.h)","") | 91 | else 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 |
76 | else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/boards/$(BOARD)/bootloader_defs.h)","") | 107 | else 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 |
78 | else ifneq ("$(wildcard $(TOP_DIR)/drivers/boards/$(BOARD)/bootloader_defs.h)","") | 109 | else 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 |
80 | endif | 111 | endif |
81 | 112 | ||
82 | BOARD_MK := | 113 | # Work out the config file directories |
114 | ifneq ("$(wildcard $(KEYBOARD_PATH_5)/chconf.h)","") | ||
115 | CHCONFDIR = $(KEYBOARD_PATH_5) | ||
116 | else ifneq ("$(wildcard $(KEYBOARD_PATH_4)/chconf.h)","") | ||
117 | CHCONFDIR = $(KEYBOARD_PATH_4) | ||
118 | else ifneq ("$(wildcard $(KEYBOARD_PATH_3)/chconf.h)","") | ||
119 | CHCONFDIR = $(KEYBOARD_PATH_3) | ||
120 | else ifneq ("$(wildcard $(KEYBOARD_PATH_2)/chconf.h)","") | ||
121 | CHCONFDIR = $(KEYBOARD_PATH_2) | ||
122 | else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/chconf.h)","") | ||
123 | CHCONFDIR = $(KEYBOARD_PATH_1) | ||
124 | else ifneq ("$(wildcard $(TOP_DIR)/platforms/chibios/$(BOARD)/configs/chconf.h)","") | ||
125 | CHCONFDIR = $(TOP_DIR)/platforms/chibios/$(BOARD)/configs | ||
126 | endif | ||
83 | 127 | ||
84 | ifneq ("$(wildcard $(KEYBOARD_PATH_5)/boards/$(BOARD)/board.mk)","") | 128 | ifneq ("$(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 | 130 | else ifneq ("$(wildcard $(KEYBOARD_PATH_4)/halconf.h)","") |
87 | else ifneq ("$(wildcard $(KEYBOARD_PATH_4)/boards/$(BOARD)/board.mk)","") | 131 | HALCONFDIR = $(KEYBOARD_PATH_4) |
88 | BOARD_PATH = $(KEYBOARD_PATH_4) | 132 | else ifneq ("$(wildcard $(KEYBOARD_PATH_3)/halconf.h)","") |
89 | BOARD_MK += $(KEYBOARD_PATH_4)/boards/$(BOARD)/board.mk | 133 | HALCONFDIR = $(KEYBOARD_PATH_3) |
90 | else ifneq ("$(wildcard $(KEYBOARD_PATH_3)/boards/$(BOARD)/board.mk)","") | 134 | else 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 | 136 | else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/halconf.h)","") |
93 | else ifneq ("$(wildcard $(KEYBOARD_PATH_2)/boards/$(BOARD)/board.mk)","") | 137 | HALCONFDIR = $(KEYBOARD_PATH_1) |
94 | BOARD_PATH = $(KEYBOARD_PATH_2) | 138 | else 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 |
96 | else 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 | ||
99 | else 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 | ||
102 | endif | 140 | endif |
103 | 141 | ||
104 | ifeq ("$(wildcard $(BOARD_MK))","") | 142 | # HAL-OSAL files (optional). |
105 | BOARD_MK = $(CHIBIOS)/os/hal/boards/$(BOARD)/board.mk | 143 | include $(CHIBIOS)/os/hal/hal.mk |
106 | ifeq ("$(wildcard $(BOARD_MK))","") | 144 | |
107 | BOARD_MK = $(CHIBIOS_CONTRIB)/os/hal/boards/$(BOARD)/board.mk | 145 | ifeq ("$(PLATFORM_NAME)","") |
108 | endif | 146 | PLATFORM_NAME = platform |
147 | endif | ||
148 | |||
149 | PLATFORM_MK = $(CHIBIOS)/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)/$(PLATFORM_NAME).mk | ||
150 | ifeq ("$(wildcard $(PLATFORM_MK))","") | ||
151 | PLATFORM_MK = $(CHIBIOS_CONTRIB)/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)/$(PLATFORM_NAME).mk | ||
109 | endif | 152 | endif |
153 | include $(PLATFORM_MK) | ||
154 | |||
110 | 155 | ||
111 | include $(BOARD_MK) | 156 | include $(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 |
139 | else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/ld/$(MCU_LDSCRIPT).ld)","") | 184 | else 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 |
141 | else ifneq ("$(wildcard $(TOP_DIR)/drivers/boards/ld/$(MCU_LDSCRIPT).ld)","") | 186 | else 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 |
143 | else ifneq ("$(wildcard $(STARTUPLD_CONTRIB)/$(MCU_LDSCRIPT).ld)","") | 188 | else 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) | |||
163 | CHIBISRC := $(patsubst $(TOP_DIR)/%,%,$(CHIBISRC)) | 208 | CHIBISRC := $(patsubst $(TOP_DIR)/%,%,$(CHIBISRC)) |
164 | 209 | ||
165 | EXTRAINCDIRS += $(CHIBIOS)/os/license $(CHIBIOS)/os/oslib/include \ | 210 | EXTRAINCDIRS += $(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 |
183 | else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/halconf_community.h)","") | 229 | else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/halconf_community.h)","") |
184 | USE_CHIBIOS_CONTRIB = yes | 230 | USE_CHIBIOS_CONTRIB = yes |
231 | else ifneq ("$(wildcard $(TOP_DIR)/platforms/chibios/$(BOARD)/configs/halconf_community.h)","") | ||
232 | USE_CHIBIOS_CONTRIB = yes | ||
185 | endif | 233 | endif |
186 | 234 | ||
187 | ifeq ($(strip $(USE_CHIBIOS_CONTRIB)),yes) | 235 | ifeq ($(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 | # | ||
248 | ifneq ("$(wildcard $(BOARD_PATH)/configs/config.h)","") | ||
249 | CONFIG_H += $(BOARD_PATH)/configs/config.h | ||
250 | endif | ||
251 | ifneq ("$(wildcard $(BOARD_PATH)/configs/post_config.h)","") | ||
252 | POST_CONFIG_H += $(BOARD_PATH)/configs/post_config.h | ||
253 | endif | ||
197 | 254 | ||
198 | ############################################################################## | 255 | ############################################################################## |
199 | # Compiler settings | 256 | # Compiler settings |