diff options
author | Nick Brassel <nick@tzarc.org> | 2021-11-03 08:26:40 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-03 08:26:40 +1100 |
commit | 5da04fb45b0d5cddc6f49f88ea9c6a4037ef82ce (patch) | |
tree | 6fb7eafbbbef1278200421290659a13d208d7c31 /tmk_core | |
parent | 387edab52b1c1ab7585c4c1a11d997a6a90a505c (diff) | |
download | qmk_firmware-5da04fb45b0d5cddc6f49f88ea9c6a4037ef82ce.tar.gz qmk_firmware-5da04fb45b0d5cddc6f49f88ea9c6a4037ef82ce.zip |
Update to ChibiOS 20.3.4, support builds against trunk (#14208)
* Add support for building against ChibiOS svn/trunk.
* Swap to 21.6.x
* Update to latest branch revision as released version is broken.
* Updated configs.
* Conf updates.
* Updated ChibiOS
* Convert STM32L422 to actual L422 ChibiOS platform.
* Downgrade to 20.3.4 as ChibiOS 21.6.x is being aborted.
* Rollback L422-based boards.
Diffstat (limited to 'tmk_core')
-rw-r--r-- | tmk_core/chibios.mk | 24 | ||||
-rw-r--r-- | tmk_core/protocol/chibios/usb_main.c | 12 |
2 files changed, 30 insertions, 6 deletions
diff --git a/tmk_core/chibios.mk b/tmk_core/chibios.mk index 957a259229..6b298732c2 100644 --- a/tmk_core/chibios.mk +++ b/tmk_core/chibios.mk @@ -42,6 +42,11 @@ ifeq ($(strip $(MCU)), risc-v) PLATFORM_MK = $(CHIBIOS_CONTRIB)/os/hal/ports/GD/GD32VF103/platform.mk else # ARM Support + CHIBIOS_PORT ?= + ifeq ("$(CHIBIOS_PORT)","") + CHIBIOS_PORT = ARMv$(ARMV)-M + endif + # Startup files. Try a few different locations, for compability with old versions and # for things hardware in the contrib repository STARTUP_MK = $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/startup_$(MCU_STARTUP).mk @@ -52,15 +57,24 @@ else endif endif - # Compability with old version - PORT_V = $(CHIBIOS)/os/rt/ports/ARMCMx/compilers/GCC/mk/port_v$(ARMV)m.mk + # Port files. Try a few different locations, for compability with old versions and + # for things hardware in the contrib repository + PORT_V = $(CHIBIOS)/os/common/ports/$(CHIBIOS_PORT)/compilers/GCC/mk/port.mk ifeq ("$(wildcard $(PORT_V))","") - PORT_V = $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v$(ARMV)m.mk + PORT_V = $(CHIBIOS)/os/rt/ports/ARMCMx/compilers/GCC/mk/port_v$(ARMV)m.mk + ifeq ("$(wildcard $(PORT_V))","") + PORT_V = $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v$(ARMV)m.mk + endif endif - RULESPATH = $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC + # Rules location. Try a few different locations, for compability with old versions and + # for things hardware in the contrib repository + RULESPATH = $(CHIBIOS)/os/common/ports/$(CHIBIOS_PORT)/compilers/GCC ifeq ("$(wildcard $(RULESPATH)/rules.mk)","") - RULESPATH = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC + RULESPATH = $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC + ifeq ("$(wildcard $(RULESPATH)/rules.mk)","") + RULESPATH = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC + endif endif endif diff --git a/tmk_core/protocol/chibios/usb_main.c b/tmk_core/protocol/chibios/usb_main.c index 3b16a0ff7b..a7db3e3ab1 100644 --- a/tmk_core/protocol/chibios/usb_main.c +++ b/tmk_core/protocol/chibios/usb_main.c @@ -71,7 +71,12 @@ uint8_t keyboard_protocol __attribute__((aligned(2))) = 1; uint8_t keyboard_led_state = 0; volatile uint16_t keyboard_idle_count = 0; static virtual_timer_t keyboard_idle_timer; -static void keyboard_idle_timer_cb(void *arg); + +#if CH_KERNEL_MAJOR >= 7 +static void keyboard_idle_timer_cb(struct ch_virtual_timer *, void *arg); +#elif CH_KERNEL_MAJOR <= 6 +static void keyboard_idle_timer_cb(void *arg); +#endif report_keyboard_t keyboard_report_sent = {{0}}; #ifdef MOUSE_ENABLE @@ -774,7 +779,12 @@ void kbd_sof_cb(USBDriver *usbp) { (void)usbp; } /* Idle requests timer code * callback (called from ISR, unlocked state) */ +#if CH_KERNEL_MAJOR >= 7 +static void keyboard_idle_timer_cb(struct ch_virtual_timer *timer, void *arg) { + (void)timer; +#elif CH_KERNEL_MAJOR <= 6 static void keyboard_idle_timer_cb(void *arg) { +#endif USBDriver *usbp = (USBDriver *)arg; osalSysLockFromISR(); |