-
-
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
Add customisable EEPROM driver selection #7274
Conversation
I’ve tested this with ARM hardware that didn’t have EEPROM support — oscilloscope decoder matches expected output. I’ve also tested building this for handwired/onekey/promicro — verifying the elf with avr-objdump shows that the eeprom_xxxx_yyyy functions have been replaced by the new equivalents. Have not tested with actual hardware as yet. I do note that I need to update documentation to specify which flag needs to be set in rules.mk for boards wishing to use this functionality. |
After a bit of discussion on Discord with @zvecr and @drashna:
|
0165348
to
fda554e
Compare
I think the restructuring should be okay now -- as per the docs updates we should be able to use Tested builds with vendor/i2c/transient -- all objdump output for both AVR and ARM matches what I'd expect, and it's been tested with ARM hardware talking over i2c. |
fda554e
to
4753511
Compare
4753511
to
178bc0a
Compare
178bc0a
to
0046928
Compare
0046928
to
9b29bfe
Compare
9b29bfe
to
2f9fc33
Compare
Just a heads up, you don't need to keep on squashing commits. We can do that when the PR is done. However, either way is just fine. |
Habit. People at work like "forgetting" to squash. 💯 |
lol. Not a problem, either way. Also, does this work with the Massdrop boards? |
Seems not: |
Okay, that doesn't surprise me. While I would like it to be added, but I think that would be best as a separate PR, later on. |
Anything else required at this point? |
Only thing for me is testing on a Kinetis based board. Mine should arrive friday. |
a24b139
to
a478cf7
Compare
a478cf7
to
4cd0b8f
Compare
Identified (and fixed) an issue with LTO (surprise surprise) -- the buffer address and buffer size needed to be aligned to 4 bytes in order to get things to link correctly. The issue when enabled:
|
Anything still pending, other than reviews? |
So .... umm.... what happened to the |
Reinstated. |
b59fb6f
to
316ef08
Compare
316ef08
to
98ca076
Compare
- uprintf -> dprintf - Fix atsam "vendor" eeprom. - Bump Kinetis K20x to 64 bytes, too. - Rollback Kinetis to 32 bytes as partitioning can only be done once. Add warning about changing the value. - Change RAM-backed "fake" EEPROM implementations to match eeconfig's current usage. - Add 24LC128 by request.
98ca076
to
6472d6e
Compare
- uprintf -> dprintf - Fix atsam "vendor" eeprom. - Bump Kinetis K20x to 64 bytes, too. - Rollback Kinetis to 32 bytes as partitioning can only be done once. Add warning about changing the value. - Change RAM-backed "fake" EEPROM implementations to match eeconfig's current usage. - Add 24LC128 by request.
- uprintf -> dprintf - Fix atsam "vendor" eeprom. - Bump Kinetis K20x to 64 bytes, too. - Rollback Kinetis to 32 bytes as partitioning can only be done once. Add warning about changing the value. - Change RAM-backed "fake" EEPROM implementations to match eeconfig's current usage. - Add 24LC128 by request.
* Add additional fixes to EEPROM driver selection (qmk#7274) - uprintf -> dprintf - Fix atsam "vendor" eeprom. - Bump Kinetis K20x to 64 bytes, too. - Rollback Kinetis to 32 bytes as partitioning can only be done once. Add warning about changing the value. - Change RAM-backed "fake" EEPROM implementations to match eeconfig's current usage. - Add 24LC128 by request. * format code according to conventions [skip ci] Co-authored-by: Nick Brassel <nick@tzarc.org> Co-authored-by: QMK Bot <hello@qmk.fm> Co-authored-by: Florian Didron <fdidron@users.noreply.github.com>
- uprintf -> dprintf - Fix atsam "vendor" eeprom. - Bump Kinetis K20x to 64 bytes, too. - Rollback Kinetis to 32 bytes as partitioning can only be done once. Add warning about changing the value. - Change RAM-backed "fake" EEPROM implementations to match eeconfig's current usage. - Add 24LC128 by request.
* Add additional fixes to EEPROM driver selection (qmk#7274) - uprintf -> dprintf - Fix atsam "vendor" eeprom. - Bump Kinetis K20x to 64 bytes, too. - Rollback Kinetis to 32 bytes as partitioning can only be done once. Add warning about changing the value. - Change RAM-backed "fake" EEPROM implementations to match eeconfig's current usage. - Add 24LC128 by request. * format code according to conventions [skip ci] Co-authored-by: Nick Brassel <nick@tzarc.org> Co-authored-by: QMK Bot <hello@qmk.fm> Co-authored-by: Florian Didron <fdidron@users.noreply.github.com>
- uprintf -> dprintf - Fix atsam "vendor" eeprom. - Bump Kinetis K20x to 64 bytes, too. - Rollback Kinetis to 32 bytes as partitioning can only be done once. Add warning about changing the value. - Change RAM-backed "fake" EEPROM implementations to match eeconfig's current usage. - Add 24LC128 by request.
- uprintf -> dprintf - Fix atsam "vendor" eeprom. - Bump Kinetis K20x to 64 bytes, too. - Rollback Kinetis to 32 bytes as partitioning can only be done once. Add warning about changing the value. - Change RAM-backed "fake" EEPROM implementations to match eeconfig's current usage. - Add 24LC128 by request.
- uprintf -> dprintf - Fix atsam "vendor" eeprom. - Bump Kinetis K20x to 64 bytes, too. - Rollback Kinetis to 32 bytes as partitioning can only be done once. Add warning about changing the value. - Change RAM-backed "fake" EEPROM implementations to match eeconfig's current usage. - Add 24LC128 by request.
Description
Adds support for external I2C EEPROM devices to QMK.
AVR devices normally have onboard EEPROM storage -- this will override the existing functionality provided by avr-libc, re-routing the eeconfig functions to external storage instead.
Not all ARM devices have support for emulated flash-based EEPROM -- this overrides any existing implementation, also re-routing the eeconfig functions to external storage.
Types of Changes
Checklist