-
Notifications
You must be signed in to change notification settings - Fork 2.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
[EFR32] Rework NVM3 instances and refactor our KVS implementation to use nvm3 #16877
Conversation
…efr32Config nvm3 driver, tweaks to linkerfile for the nvm3 section
…group nvm3 and kvs init. Set ble default connection params
PR #16877: Size comparison from a86ad03 to 6b7151c Full report (26 builds for cc13x2_26x2, cyw30739, k32w, linux, mbed, nrfconnect, p6, telink)
|
PR #16877: Size comparison from a86ad03 to aeff1be Full report (28 builds for cc13x2_26x2, cyw30739, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
|
PR #16877: Size comparison from a86ad03 to b19772d Increases above 0.2%:
Increases (9 builds for cc13x2_26x2, efr32, linux)
Decreases (27 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, nrfconnect, p6, telink)
Full report (31 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are the codesize measurements just not catching the sections that get smaller? They seem to mostly show .bss and .text increases....
@bzbarsky-apple yes it's a separate section/symbol in the linker before named nvm3_dummy regrouping the 2 nvm3 instances. Now it is just one instance called .nvm saves around 32k of flash + kvs what just allocating another 4 pages that weren't factored in .txt either |
…use nvm3 (project-chip#16877) * Merge chip_nvm3 section into silabs default nvm3 section. Rework the efr32Config nvm3 driver, tweaks to linkerfile for the nvm3 section * Refactore efr32 kvs implementation to use silabs nvm3 driver * Fix some return codes for KVS * Update ldscript for mg24. Add verifications in kvs implementation. Regroup nvm3 and kvs init. Set ble default connection params * Delay keymap commit to nvm, Build argument for kvs entry count, Clean up * Add build option in efr32_sdk.gni and detail in build script * add info in read me * Fix typo, add NVM to wordlist * undo unwanted change to zap and pigweed submodule. * remove mv command
…use nvm3 (project-chip#16877) * Merge chip_nvm3 section into silabs default nvm3 section. Rework the efr32Config nvm3 driver, tweaks to linkerfile for the nvm3 section * Refactore efr32 kvs implementation to use silabs nvm3 driver * Fix some return codes for KVS * Update ldscript for mg24. Add verifications in kvs implementation. Regroup nvm3 and kvs init. Set ble default connection params * Delay keymap commit to nvm, Build argument for kvs entry count, Clean up * Add build option in efr32_sdk.gni and detail in build script * add info in read me * Fix typo, add NVM to wordlist * undo unwanted change to zap and pigweed submodule. * remove mv command
…use nvm3 (project-chip#16877) * Merge chip_nvm3 section into silabs default nvm3 section. Rework the efr32Config nvm3 driver, tweaks to linkerfile for the nvm3 section * Refactore efr32 kvs implementation to use silabs nvm3 driver * Fix some return codes for KVS * Update ldscript for mg24. Add verifications in kvs implementation. Regroup nvm3 and kvs init. Set ble default connection params * Delay keymap commit to nvm, Build argument for kvs entry count, Clean up * Add build option in efr32_sdk.gni and detail in build script * add info in read me * Fix typo, add NVM to wordlist * undo unwanted change to zap and pigweed submodule. * remove mv command
Problem
EFR32 matter examples create a second instance of nvm3 which causes a significant overhead and flash usage impact.
The KVS platform implementation also creates its own flash section using a few flash pages independently from the already 2 existing nvm sections (nvm3 default + chip_nvm3).
Change overview
Testing
Run persistent-storage app on EFR32 for unit testing of the new KVS platform API
Build/Run/Commission/reboot/send commands on all the example apps supported by the EFR32 platform