* Misc size regression script improvements.
- Sets environment variable SIZE_REGRESSION_EXECUTING during execution
so hook scripts like `post-checkout` may skip processing.
- Forces checkout of the target branch, including removal of all
temporary object files in the process.
- Prints out a warning on exit stating that the git repository is in an
indeterminate state, and the user needs to swap back to whatever
intended branch they were working with originally.
* Remove `git clean`
* [Core] Fix RISC-V toolchain installation
The risc-v toolchain is only available on distributions based on Debian 11+
so we check for their availability before installing them.
* [Core] Fix heap symbols and syscalls for picolibc
picolibc internally uses __heap_start and __heap_end instead of the
defacto chibios linker script standard __heap_base__ and __heap_end__
therefore we introduce these symbols as an alias. Usually all memory
used within QMK is statically allocated, but some algorithms make usage
of malloc and friends.
Also the timeval struct is not defined by picolibc for syscalls, therefore it
is declared as stub.
* 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.
* Add support for RISC-V builds and GD32VF103 MCU
* Add toolchain selection in chibios.mk based on the mcu selected in
mcu_selection.mk
* Reorder and added comments to chibios.mk to have a streamlined makefile
* Add GD32VF103 mcu to possible targets for QMK.
* Add STM32 compatibility for GD32VF103 MCU, this is hacky but more efficent
then rewriting every driver.
* Add GigaDevice DFU bootloader as flash target, please note that
dfu-util of at least version 0.10 is needed.
* Add analog driver compatibility
* Add apa102 bitbang driver compatibility
* Add ws2812 bitbang driver compatibility
* Add eeprom in flash emulation compatibility
* Allow faster re-builds with ccache
* Add SiPeed Longan Nano to platform files
* Add SiPeed Longan Nano Onekeys
* Make quine compatible with other bootloaders
* Support builds with picolibc
* Add risc-v toolchain to arch and debian/ubuntu scripts
* Nix: Allow calls to `bin/qmk` even when the build was started by `qmk`
The `$PATH` modifications performed by the Nix wrapper for the `qmk`
executable prevent `bin/qmk` from working properly (the changed `$PATH`
contains a wrong `python3` executable which does not have the needed
Python modules in its module path). As a workaround, disable the
generation of that wrapper for the `qmk` Python package (there is yet
another wrapper generated while building the Python environment, which
would still set the Python module path properly when running `qmk`).
Although `bin/qmk` is officially deprecated, QMK CLI still invokes it in
some cases (at least `qmk doctor` and `qmk pytest`), therefore keeping
these invocations working is useful.
* Nix: Update `util/nix/pyproject.toml` to match `requirements*.txt`
Update the Python dependency information used by Poetry to match the
current state of the qmk_firmware code.
* Nix: Bump QMK CLI dependency to 1.0.0; bump other Python deps
Update Python dependencies for nix-shell to the most recent releases:
- dotty-dict: 1.3.0 -> no longer used
- milc: 1.4.2 -> 1.6.2
- pep8-naming: 0.11.1 -> 0.12.1
- pygments: 2.9.0 -> 2.10.0
- pyrsistent: 0.17.3 -> 0.18.0
- pyusb: 1.1.1 -> 1.2.1
- setuptools-scm: 6.0.1 -> no longer used
- qmk: 0.1.0 -> 1.0.0
- qmk-dotty-dict: not used -> 1.3.0.post1
- yapf: 0.30.0 -> 0.31.0
Note to self: The command to update Python dependencies changed to:
( cd util/nix && nix run 'nixpkgs#poetry' -- update --lock )