-
-
Notifications
You must be signed in to change notification settings - Fork 40.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ChibiOS upgrade to v19.1.3 #7597
Conversation
Regarding
|
I dont want to be the annoying dude but I have just 1 question:) |
Honestly, a lot of it was automated -- I'd imagine a clang-format was involved at some point. |
It's hard to test all the keyboards using chibios, keeping the current and introducing the v19 chibios as another protocol would be easier. |
That may be the case, but it's unlikely that we'll want to support two ChibiOS versions for eternity, given the frequency of people copypasting of other keyboards. At some point "no" will need to be said when targeting the older ChibiOS with newer boards, and realistically the earlier the better. Given that QMK doesn't seem to remove existing boards, there's only one course of action if the eventual removal of the v17.x ChibiOS is deemed necessary. |
That's just not sustainable long term. We don't have the resources. If you want to maintain your own fork that might be a possibility, but I would not want to do that. One thing we're currently discussing is having stable and development branches, this would probably be a good approach rather than maintaining an old version of chibios and a current one. We'll update everyone once we've discussed things among collaborators and have something like a plan. |
Also in theory we dont need to test "each keyboard" rather each platform |
2234dae
to
81cf2a8
Compare
Confirmed that it was Have modified the scripts to rollback any formatting changes if the ChibiOS upgrade scripts didn't touch them. |
<3 |
tested clueboard 66 rev 4, seemed to work F303 |
hadron v3 with default keymap seems to work. |
hadron ver3 weirdly if I flash my personal keymap it refuses to boot at all. flashing master qmk back on to board brings it back to life. branch is here: https://github.com/yanfali/qmk_firmware/tree/yanfali-chibios-upgrade |
tested my little foot port using CTPC and it also doesn't work on a proton-c. Doesn't boot |
@tzarc I pushed the littlefoot stuff to my fork so you can try it out for yourself since it's only proton c based. You can build it using |
@yanfali just to make sure, you've ran Also, this breaks the bitbang WS2812 implementing, and it breaks solenoid support. And LT, MT, and one shot timeout. And probably more :( Edit: Also, LTO breaks the new chibiOS. If it's enabled, it will basically compile a nice brick. |
yeah used a new clone so it was brand new, had to do that to get sane
behavior on the submodules. I use LT and MT so this is definitely broken
for me then.
…On Sun, Dec 15, 2019 at 8:39 PM Drashna Jaelre ***@***.***> wrote:
@yanfali <https://github.com/yanfali> just to make sure, you've ran make
clean, right? (at least once).
Also, this breaks the bitbang WS2812 implementing, and it breaks solenoid
support. And LT, MT, and one shot timeout. And probably more :(
Anything that relies on a (software) timer seems to be broken.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#7597?email_source=notifications&email_token=AARLSUYRM54MBQYHJNK7TKDQY4BABA5CNFSM4JZAM2QKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEG5PT7I#issuecomment-565901821>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AARLSU3P7R3DVN5ZPY4X4JLQY4BABANCNFSM4JZAM2QA>
.
--
"We do not learn so much by our successes as we learn by failures -- our
own and others'. Especially if we see the failures properly corrected."
-- Frank Lloyd Wright
|
......built directly from your branch, started playing music fine. Weird? |
In discord tz figured out it was compiler versions. 8.3.1 arm doesn't build quite right for latest chibios branch. |
Timers seem like they're cooperating now, rgblight animations are cycling at a (seemingly) normal speed. |
…ripts did nothing to them.
…ters (prep for future versions)
c57ef62
to
61821bc
Compare
* First stab at getting ChibiOS upgraded. * Handful of others now working again. * More updates to boards. * More conversions of boards, hopefully. * Add fix for converter/siemens_tastatur getting PAL_USE_CALLBACKS reset during upgrade. * Restore unmodified/unformatted chibios config files if the upgrade scripts did nothing to them. * Attempt to fix timers. * Timer simplification, 100k back working. * Attempt to sort out 32-bit timer overflow arithmetic for 16-bit timers. * Another attempt at fixing 16-bit timers. * Disable LTO on ChibiOS builds. * Change LTO to a message only. * Actually use proper makefile syntax for printing messages. * Collect ChibiOS and ChibiOS-Contrib versions during build. * Use 64-bit timer internally to match ChibiOS. * Simplified timer. * Fix SPI-based WS2812 driver. * LTO fixes, interrupt handlers were being removed by LTO. * Update updater script to take into account all available mcuconf updaters (prep for future versions) * Fix up ldscript search order. * Fix up another batch of boards. * Add breaking changes log entry. * Add updated board/conf files * Remove staging files.
* First stab at getting ChibiOS upgraded. * Handful of others now working again. * More updates to boards. * More conversions of boards, hopefully. * Add fix for converter/siemens_tastatur getting PAL_USE_CALLBACKS reset during upgrade. * Restore unmodified/unformatted chibios config files if the upgrade scripts did nothing to them. * Attempt to fix timers. * Timer simplification, 100k back working. * Attempt to sort out 32-bit timer overflow arithmetic for 16-bit timers. * Another attempt at fixing 16-bit timers. * Disable LTO on ChibiOS builds. * Change LTO to a message only. * Actually use proper makefile syntax for printing messages. * Collect ChibiOS and ChibiOS-Contrib versions during build. * Use 64-bit timer internally to match ChibiOS. * Simplified timer. * Fix SPI-based WS2812 driver. * LTO fixes, interrupt handlers were being removed by LTO. * Update updater script to take into account all available mcuconf updaters (prep for future versions) * Fix up ldscript search order. * Fix up another batch of boards. * Add breaking changes log entry. * Add updated board/conf files * Remove staging files.
* First stab at getting ChibiOS upgraded. * Handful of others now working again. * More updates to boards. * More conversions of boards, hopefully. * Add fix for converter/siemens_tastatur getting PAL_USE_CALLBACKS reset during upgrade. * Restore unmodified/unformatted chibios config files if the upgrade scripts did nothing to them. * Attempt to fix timers. * Timer simplification, 100k back working. * Attempt to sort out 32-bit timer overflow arithmetic for 16-bit timers. * Another attempt at fixing 16-bit timers. * Disable LTO on ChibiOS builds. * Change LTO to a message only. * Actually use proper makefile syntax for printing messages. * Collect ChibiOS and ChibiOS-Contrib versions during build. * Use 64-bit timer internally to match ChibiOS. * Simplified timer. * Fix SPI-based WS2812 driver. * LTO fixes, interrupt handlers were being removed by LTO. * Update updater script to take into account all available mcuconf updaters (prep for future versions) * Fix up ldscript search order. * Fix up another batch of boards. * Add breaking changes log entry. * Add updated board/conf files * Remove staging files.
* First stab at getting ChibiOS upgraded. * Handful of others now working again. * More updates to boards. * More conversions of boards, hopefully. * Add fix for converter/siemens_tastatur getting PAL_USE_CALLBACKS reset during upgrade. * Restore unmodified/unformatted chibios config files if the upgrade scripts did nothing to them. * Attempt to fix timers. * Timer simplification, 100k back working. * Attempt to sort out 32-bit timer overflow arithmetic for 16-bit timers. * Another attempt at fixing 16-bit timers. * Disable LTO on ChibiOS builds. * Change LTO to a message only. * Actually use proper makefile syntax for printing messages. * Collect ChibiOS and ChibiOS-Contrib versions during build. * Use 64-bit timer internally to match ChibiOS. * Simplified timer. * Fix SPI-based WS2812 driver. * LTO fixes, interrupt handlers were being removed by LTO. * Update updater script to take into account all available mcuconf updaters (prep for future versions) * Fix up ldscript search order. * Fix up another batch of boards. * Add breaking changes log entry. * Add updated board/conf files * Remove staging files.
Description
As per the title, this is a PR in order to upgrade ChibiOS to the latest release version.
The newer ChibiOS itself provides some scripts that are able to upgrade the conf files in use by each board. For
chconf.h
andhalconf.h
this applies to all boards, however, formcuconf.h
this only applies to F303, as that's the only "upgrade script" supplied with the distribution. Other MCUs have been manually updated using diff's and the ChibiOStesthal
definitions.To combat making zillions of other changes, I've also added an interim script --
util/chibios-upgrader.sh
-- which currently builds the 3rdparty dependencies for the ChibiOS upgrade scripts, and performs the update. In order to identify duplicate conf file and board definitions, each file gets pumped through clang-format before generating a checksum, in order to ensure only one distinct copy of each of the updated files is required for deployment into the rest of the repository. Unfortunately, this script is known to be non-functional in its current form on macOS. I'm unsure if this script (along with the "deployed files") should be included in the final merge.The last commit on this PR (" Add updated board/conf files ") is the result of the execution of the upgrade script.
At this stage, the only testing that has been done was with a Proton C and a Blue Pill, both the
handwired/onekey
variants.I've produced binaries from
make all:default
and uploaded them to the following location:https://qmk.tzarc.io/chibios-upgrade/
There are a few outstanding pieces of development required, namely:
Dealing with the submodules:
ver19.1.3
tag. This points to my own copy of the repo, and will need to be updated on QMK's side to ensure consistency.The other aspect is there have been a few definitions that have gone missing due to people modifying the
*conf.h
files (such asCORTEX_ENABLE_WFI_IDLE
), which the ChibiOS upgrade scripts nuke during update.I've kicked off this PR for now to get some official discussion going, as well as provide a forum to decide on a formal plan if/when these changes are integrated.
Types of Changes
Issues Fixed or Closed by This PR
Checklist
TODO
ChibiOS-Contrib modifications made by QMKalready upstreamed, apparently#define
s automatically removed when doing chibios update scriptsCORTEX_ENABLE_WFI_IDLE
-- see Move CORTEX_ENABLE_WFI_IDLE=TRUE to rules.mk files #7766Removed:--in board.h, not modified by ChibiOSusb_lld_disconnect_bus
/usb_lld_disconnect_bus
util/