Skip to content
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] Adjust the internal flash layout #19523

Merged
merged 36 commits into from
Jun 13, 2022

Conversation

selissia
Copy link
Contributor

Problem

  • On EFR32 device the last page of the flash must be reserved for the manufacturing tokens
  • The certificate pointer in ApplicationProperties_t should be initialized to NULL

Change overview

  • Adjust the internal flash layout in the linker file to reserve the last page for the manufacturing tokens
  • Initialize the certificate pointer in ApplicationProperties_t to NULL, it will be updated when the certificate is injected

Testing

Tested Secure Boot (OTA and directly written) with image signing and encryption on BRD4161A.

kowsisoundhar12 and others added 30 commits March 8, 2022 22:28
* Added new manual scripts

* Added Auto generated File
* [ota] Store Default OTA Providers in flash

Store Default OTA Providers in flash each time the attribute
is modified and load it back on the application startup.

* Restyled by clang-format

* Fix build and reduce flash usage

Co-authored-by: Restyled.io <[email protected]>
@github-actions
Copy link

github-actions bot commented Jun 13, 2022

PR #19523: Size comparison from c1e1d01 to d24a6ec

Increases (1 build for telink)
platform target config section c1e1d01 d24a6ec change % change
telink light-switch-app tlsr9518adk80d (read/write) 786716 786724 8 0.0
text 556632 556634 2 0.0
Decreases (5 builds for efr32)
platform target config section c1e1d01 d24a6ec change % change
efr32 lighting-app BRD4161A (read only) 919248 919112 -136 -0.0
.text 919240 919104 -136 -0.0
BRD4161A+rpc (read only) 953412 953276 -136 -0.0
.text 953404 953268 -136 -0.0
BRD4161A+rs911x (read only) 794364 794228 -136 -0.0
.text 794356 794220 -136 -0.0
lock-app BRD4161A+wf200 (read only) 962652 962532 -120 -0.0
.text 962644 962524 -120 -0.0
window-app BRD4161A (read only) 904304 904168 -136 -0.0
.text 904296 904160 -136 -0.0
Full report (39 builds for cc13x2_26x2, cyw30739, efr32, k32w, linux, mbed, nrfconnect, p6, telink)
platform target config section c1e1d01 d24a6ec change % change
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 656343 656343 0 0.0
(read/write) 194544 194544 0 0.0
.bss 73780 73780 0 0.0
.data 3416 3416 0 0.0
.rodata 86527 86527 0 0.0
.text 569504 569504 0 0.0
all-clusters-minimal-app LP_CC2652R7 (read only) 644835 644835 0 0.0
(read/write) 157276 157276 0 0.0
.bss 73004 73004 0 0.0
.data 3356 3356 0 0.0
.rodata 90035 90035 0 0.0
.text 554480 554480 0 0.0
lock-ftd LP_CC2652R7 (read only) 687707 687707 0 0.0
(read/write) 154252 154252 0 0.0
.bss 71740 71740 0 0.0
.data 3280 3280 0 0.0
.rodata 98859 98859 0 0.0
.text 588364 588364 0 0.0
lock-mtd LP_CC2652R7 (read only) 637115 637115 0 0.0
(read/write) 144872 144872 0 0.0
.bss 67476 67476 0 0.0
.data 3280 3280 0 0.0
.rodata 98739 98739 0 0.0
.text 537884 537884 0 0.0
pump-app LP_CC2652R7 (read only) 669083 669083 0 0.0
(read/write) 173788 173788 0 0.0
.bss 71884 71884 0 0.0
.data 3316 3316 0 0.0
.rodata 86979 86979 0 0.0
.text 581620 581620 0 0.0
pump-controller-app LP_CC2652R7 (read only) 659655 659655 0 0.0
(read/write) 183320 183320 0 0.0
.bss 71988 71988 0 0.0
.data 3276 3276 0 0.0
.rodata 84879 84879 0 0.0
.text 574292 574292 0 0.0
shell LP_CC2652R7 (read only) 686470 686470 0 0.0
(read/write) 159912 159912 0 0.0
.bss 76076 76076 0 0.0
.data 3420 3420 0 0.0
.rodata 109598 109598 0 0.0
.text 576560 576560 0 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 606578 606578 0 0.0
.app_xip_area 465076 465076 0 0.0
.bss 84432 84432 0 0.0
.data 756 756 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
lock cyw930739m2evb_01 (read/write) 603678 603678 0 0.0
.app_xip_area 462032 462032 0 0.0
.bss 84608 84608 0 0.0
.data 724 724 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 611382 611382 0 0.0
.app_xip_area 470808 470808 0 0.0
.bss 83616 83616 0 0.0
.data 644 644 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A (read only) 919248 919112 -136 -0.0
(read/write) 133432 133432 0 0.0
.bss 131320 131320 0 0.0
.data 2112 2112 0 0.0
.text 919240 919104 -136 -0.0
BRD4161A+rpc (read only) 953412 953276 -136 -0.0
(read/write) 150124 150124 0 0.0
.bss 147808 147808 0 0.0
.data 2316 2316 0 0.0
.text 953404 953268 -136 -0.0
BRD4161A+rs911x (read only) 794364 794228 -136 -0.0
(read/write) 129716 129716 0 0.0
.bss 127596 127596 0 0.0
.data 2120 2120 0 0.0
.text 794356 794220 -136 -0.0
lock-app BRD4161A+wf200 (read only) 962652 962532 -120 -0.0
(read/write) 130060 130060 0 0.0
.bss 127972 127972 0 0.0
.data 2088 2088 0 0.0
.text 962644 962524 -120 -0.0
window-app BRD4161A (read only) 904304 904168 -136 -0.0
(read/write) 133512 133512 0 0.0
.bss 131400 131400 0 0.0
.data 2108 2108 0 0.0
.text 904296 904160 -136 -0.0
k32w light k32w061+release (read/write) 657264 657264 0 0.0
.bss 69748 69748 0 0.0
.data 2028 2028 0 0.0
.text 579688 579688 0 0.0
lock k32w061+release (read/write) 718860 718860 0 0.0
.bss 70180 70180 0 0.0
.data 2000 2000 0 0.0
.text 640880 640880 0 0.0
linux all-clusters-app debug (read only) 2918857 2918857 0 0.0
(read/write) 188560 188560 0 0.0
.bss 95776 95776 0 0.0
.data 2048 2048 0 0.0
.data.rel.ro 84520 84520 0 0.0
.dynamic 608 608 0 0.0
.got 4544 4544 0 0.0
.init 27 27 0 0.0
.init_array 1032 1032 0 0.0
.rodata 258205 258205 0 0.0
.text 2485026 2485026 0 0.0
all-clusters-minimal-app debug (read only) 2769193 2769193 0 0.0
(read/write) 179888 179888 0 0.0
.bss 94944 94944 0 0.0
.data 1920 1920 0 0.0
.data.rel.ro 76872 76872 0 0.0
.dynamic 608 608 0 0.0
.got 4496 4496 0 0.0
.init 27 27 0 0.0
.init_array 1032 1032 0 0.0
.rodata 258621 258621 0 0.0
.text 2337458 2337458 0 0.0
bridge-app debug+rpc (read only) 2247553 2247553 0 0.0
(read/write) 158752 158752 0 0.0
.bss 82976 82976 0 0.0
.data 3760 3760 0 0.0
.data.rel.ro 66232 66232 0 0.0
.dynamic 608 608 0 0.0
.got 4400 4400 0 0.0
.init 27 27 0 0.0
.init_array 728 728 0 0.0
.rodata 191040 191040 0 0.0
.text 1896530 1896530 0 0.0
chip-tool debug (read only) 9815973 9815973 0 0.0
(read/write) 623496 623496 0 0.0
.bss 25440 25440 0 0.0
.data 1088 1088 0 0.0
.data.rel.ro 590696 590696 0 0.0
.dynamic 624 624 0 0.0
.got 5000 5000 0 0.0
.init 27 27 0 0.0
.init_array 640 640 0 0.0
.rodata 506805 506805 0 0.0
.text 7868549 7868549 0 0.0
chip-tool-no-interactive-ipv6only arm64 (read only) 9563860 9563860 0 0.0
(read/write) 689841 689841 0 0.0
.bss 43697 43697 0 0.0
.data 1152 1152 0 0.0
.data.rel.ro 626128 626128 0 0.0
.dynamic 528 528 0 0.0
.got 15056 15056 0 0.0
.init 24 24 0 0.0
.init_array 192 192 0 0.0
.rodata 468788 468788 0 0.0
.text 7518980 7518980 0 0.0
lighting-app debug+rpc (read only) 2497497 2497497 0 0.0
(read/write) 163416 163416 0 0.0
.bss 84288 84288 0 0.0
.data 2064 2064 0 0.0
.data.rel.ro 71176 71176 0 0.0
.dynamic 608 608 0 0.0
.got 4432 4432 0 0.0
.init 27 27 0 0.0
.init_array 816 816 0 0.0
.rodata 207144 207144 0 0.0
.text 2122162 2122162 0 0.0
lock-app debug (read only) 2443465 2443465 0 0.0
(read/write) 158488 158488 0 0.0
.bss 82944 82944 0 0.0
.data 1552 1552 0 0.0
.data.rel.ro 68120 68120 0 0.0
.dynamic 608 608 0 0.0
.got 4432 4432 0 0.0
.init 27 27 0 0.0
.init_array 784 784 0 0.0
.rodata 221192 221192 0 0.0
.text 2059074 2059074 0 0.0
ota-provider-app debug (read only) 2281729 2281729 0 0.0
(read/write) 152688 152688 0 0.0
.bss 82624 82624 0 0.0
.data 1784 1784 0 0.0
.data.rel.ro 62456 62456 0 0.0
.dynamic 608 608 0 0.0
.got 4496 4496 0 0.0
.init 27 27 0 0.0
.init_array 680 680 0 0.0
.rodata 197336 197336 0 0.0
.text 1923202 1923202 0 0.0
ota-requestor-app debug (read only) 2329289 2329289 0 0.0
(read/write) 155504 155504 0 0.0
.bss 83328 83328 0 0.0
.data 1976 1976 0 0.0
.data.rel.ro 64392 64392 0 0.0
.dynamic 608 608 0 0.0
.got 4456 4456 0 0.0
.init 27 27 0 0.0
.init_array 712 712 0 0.0
.rodata 199520 199520 0 0.0
.text 1964738 1964738 0 0.0
shell debug (read only) 2599937 2599937 0 0.0
(read/write) 219416 219416 0 0.0
.bss 134568 134568 0 0.0
.data 1392 1392 0 0.0
.data.rel.ro 77704 77704 0 0.0
.dynamic 608 608 0 0.0
.got 4176 4176 0 0.0
.init 27 27 0 0.0
.init_array 936 936 0 0.0
.rodata 229778 229778 0 0.0
.text 2210866 2210866 0 0.0
thermostat-no-ble arm64 (read only) 2557916 2557916 0 0.0
(read/write) 191409 191409 0 0.0
.bss 99377 99377 0 0.0
.data 1560 1560 0 0.0
.data.rel.ro 82376 82376 0 0.0
.dynamic 528 528 0 0.0
.got 5080 5080 0 0.0
.init 24 24 0 0.0
.init_array 400 400 0 0.0
.rodata 161332 161332 0 0.0
.text 2158912 2158912 0 0.0
tv-app debug (read only) 3050873 3050873 0 0.0
(read/write) 289864 289864 0 0.0
.bss 200200 200200 0 0.0
.data 4688 4688 0 0.0
.data.rel.ro 78528 78528 0 0.0
.dynamic 608 608 0 0.0
.got 4848 4848 0 0.0
.init 27 27 0 0.0
.init_array 952 952 0 0.0
.rodata 242720 242720 0 0.0
.text 2622370 2622370 0 0.0
tv-casting-app debug (read only) 5349977 5349977 0 0.0
(read/write) 232312 232312 0 0.0
.bss 88072 88072 0 0.0
.data 2480 2480 0 0.0
.data.rel.ro 135528 135528 0 0.0
.dynamic 608 608 0 0.0
.got 4712 4712 0 0.0
.init 27 27 0 0.0
.init_array 872 872 0 0.0
.rodata 342368 342368 0 0.0
.text 4656338 4656338 0 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2432808 2432808 0 0.0
.bss 208988 208988 0 0.0
.data 5888 5888 0 0.0
.text 1395452 1395452 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1195771 1195771 0 0.0
bss 141591 141591 0 0.0
rodata 155316 155316 0 0.0
text 819892 819892 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1143531 1143531 0 0.0
bss 140808 140808 0 0.0
rodata 131828 131828 0 0.0
text 791972 791972 0 0.0
p6 all-clusters-app default (read/write) 2549328 2549328 0 0.0
.bss 143416 143416 0 0.0
.data 2832 2832 0 0.0
.text 1507592 1507592 0 0.0
all-clusters-minimal-app default (read/write) 2494128 2494128 0 0.0
.bss 142624 142624 0 0.0
.data 2776 2776 0 0.0
.text 1452392 1452392 0 0.0
light-app default (read/write) 2425576 2425576 0 0.0
.bss 135736 135736 0 0.0
.data 2624 2624 0 0.0
.text 1383840 1383840 0 0.0
lock-app default (read/write) 2445968 2445968 0 0.0
.bss 135560 135560 0 0.0
.data 2600 2600 0 0.0
.text 1404232 1404232 0 0.0
telink light-switch-app tlsr9518adk80d (read/write) 786716 786724 8 0.0
bss 70876 70876 0 0.0
noinit 40416 40416 0 0.0
text 556632 556634 2 0.0
lighting-app tlsr9518adk80d (read/write) 806728 806728 0 0.0
bss 71128 71128 0 0.0
noinit 40416 40416 0 0.0
text 573346 573346 0 0.0

@selissia selissia merged commit 634519e into project-chip:master Jun 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants