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

[K32W0] SDK 2.6.11 fixes & features #26827

Merged
merged 58 commits into from
Jun 1, 2023

Conversation

marius-alex-tache
Copy link
Contributor

@marius-alex-tache marius-alex-tache commented May 25, 2023

Changelog:

  • Add chip_with_pdm_encryption as gn build arg to enable/disable PDM encryption.
  • Add SSBL OTA support.
  • OTA multi-image now supports OTA payload with different configurations based on the following elements: application, SSBL, factory data or custom OTA payload.
  • OTA multi-image now supports custom OTA payload by using a JSON schema to define the configuration.
  • Add factory data OTA restore mechanism to revert to old data in case of error.
  • Fix a rotating device id bug.
  • Add a postbuild step that automatically signs the K32W0 binaries.
  • Other fixes and README updates.

Signed-off-by: Andrei Menzopol [email protected]
Signed-off-by: Ethan Tan [email protected]
Signed-off-by: Marius Tache [email protected]
Signed-off-by: Martin Cuvelier [email protected]
Signed-off-by: Mihai Ignat [email protected]

@CLAassistant
Copy link

CLAassistant commented May 25, 2023

CLA assistant check
All committers have signed the CLA.

@github-actions github-actions bot added documentation Improvements or additions to documentation examples platform scripts labels May 25, 2023
@github-actions
Copy link

github-actions bot commented May 25, 2023

PR #26827: Size comparison from 9f43988 to 6a9bbed

Increases (8 builds for bl602, bl702, cyw30739, esp32, psoc6)
platform target config section 9f43988 6a9bbed change % change
bl602 lighting-app bl602 (read/write) 1356486 1356494 8 0.0
.text 1036622 1036626 4 0.0
bl602+rpc .text 1067978 1067982 4 0.0
bl702 lighting-app bl702+rpc .debug_info 4707757 47077576 2 0.0
.text 1040212 1040216 4 0.0
cyw30739 switch cyw930739m2evb_01 (read/write) 531091 531099 8 0.0
.app_xip_area 422077 422085 8 0.0
esp32 all-clusters-app c3devkit (read/write) 1583800 1583808 8 0.0
.flash.rodata 213504 213512 8 0.0
m5stack (read/write) 492966 492970 4 0.0
.flash.rodata 241304 241308 4 0.0
psoc6 all-clusters cy8ckit_062s2_43012 .debug_info 28331846 28331847 1 0.0
lock cy8ckit_062s2_43012 .debug_info 23389071 23389072 1 0.0
Decreases (3 builds for cyw30739, esp32, psoc6)
platform target config section 9f43988 6a9bbed change % change
cyw30739 light cyw930739m2evb_01 (read/write) 524595 524587 -8 -0.0
.app_xip_area 417389 417381 -8 -0.0
esp32 all-clusters-app c3devkit (read only) 1054288 1054286 -2 -0.0
.flash.text 1054288 1054286 -2 -0.0
psoc6 all-clusters-minimal cy8ckit_062s2_43012 .debug_info 27951407 27951406 -1 -0.0
Full report (35 builds for bl602, bl702, cc32xx, cyw30739, esp32, linux, mbed, nrfconnect, psoc6, qpg)
platform target config section 9f43988 6a9bbed change % change
bl602 lighting-app bl602 (read/write) 1356486 1356494 8 0.0
.bss 87886 87886 0 0.0
.data 9648 9648 0 0.0
.text 1036622 1036626 4 0.0
bl602+rpc (read/write) 1402762 1402762 0 0.0
.bss 95934 95934 0 0.0
.data 10040 10040 0 0.0
.text 1067978 1067982 4 0.0
bl702 lighting-app bl702 (read only) 3358 3358 0 0.0
(read/write) 1188271 1188271 0 0.0
.bleromro 6342 6342 0 0.0
.bleromrw 124 124 0 0.0
.boot2 328 328 0 0.0
.bss 67585 67585 0 0.0
.bss_psram 24656 24656 0 0.0
.comment 48 48 0 0.0
.data 3952 3952 0 0.0
.debug_abbrev 1555771 1555771 0 0.0
.debug_aranges 136024 136024 0 0.0
.debug_frame 500368 500368 0 0.0
.debug_info 42151514 42151514 0 0.0
.debug_line 5371030 5371030 0 0.0
.debug_loc 3496155 3496155 0 0.0
.debug_ranges 375656 375656 0 0.0
.debug_str 3837238 3837238 0 0.0
.hbn 536 536 0 0.0
.hbn_noinit 260 260 0 0.0
.init 342 342 0 0.0
.init_array 140 140 0 0.0
.psram 0 0 0 0.0
.riscv.attributes 47 47 0 0.0
.rodata 107168 107168 0 0.0
.rsvd 4 4 0 0.0
.sha_ocram 72 72 0 0.0
.shstrtab 304 304 0 0.0
.stack 2048 2048 0 0.0
.strtab 582392 582392 0 0.0
.symtab 175632 175632 0 0.0
.tcm_data 28 28 0 0.0
.tcmcode 3358 3358 0 0.0
.text 0 0 0 0.0
966824 966824 0 0.0
bl702+rpc (read only) 3358 3358 0 0.0
(read/write) 1277075 1277075 0 0.0
.bleromro 6342 6342 0 0.0
.bleromrw 124 124 0 0.0
.boot2 328 328 0 0.0
.bss 75633 75633 0 0.0
.bss_psram 25056 25056 0 0.0
.comment 48 48 0 0.0
.data 4504 4504 0 0.0
.debug_abbrev 1714754 1714754 0 0.0
.debug_aranges 144312 144312 0 0.0
.debug_frame 528380 528380 0 0.0
.debug_info 4707757 47077576 2 0.0
.debug_line 5786947 5786947 0 0.0
.debug_loc 3698987 3698987 0 0.0
.debug_ranges 401016 401016 0 0.0
.debug_str 4262755 4262755 0 0.0
.hbn 536 536 0 0.0
.hbn_noinit 260 260 0 0.0
.init 342 342 0 0.0
.init_array 156 156 0 0.0
.psram 0 0 0 0.0
.riscv.attributes 47 47 0 0.0
.rodata 121248 121248 0 0.0
.rsvd 4 4 0 0.0
.sha_ocram 72 72 0 0.0
.shstrtab 304 304 0 0.0
.stack 2048 2048 0 0.0
.strtab 643712 643712 0 0.0
.symtab 194128 194128 0 0.0
.tcm_data 28 28 0 0.0
.tcmcode 3358 3358 0 0.0
.text 0 0 0 0.0
1040212 1040216 4 0.0
cc32xx lock CC3235SF_LAUNCHXL (blank) 0 0 0 0.0
(read only) 605746 605746 0 0.0
(read/write) 204164 204164 0 0.0
.ARM.attributes 44 44 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 197576 197576 0 0.0
.comment 206 206 0 0.0
.data 1468 1468 0 0.0
.debug_abbrev 955088 955088 0 0.0
.debug_aranges 104344 104344 0 0.0
.debug_frame 353240 353240 0 0.0
.debug_info 20535797 20535797 0 0.0
.debug_line 2715071 2715071 0 0.0
.debug_line_str 513 513 0 0.0
.debug_loc 33340 33340 0 0.0
.debug_loclists 1532266 1532266 0 0.0
.debug_ranges 4984 4984 0 0.0
.debug_rnglists 96780 96780 0 0.0
.debug_str 3262257 3262257 0 0.0
.ramVecs 780 780 0 0.0
.resetVecs 64 64 0 0.0
.rodata 104378 104378 0 0.0
.shstrtab 265 265 0 0.0
.stack 2048 2048 0 0.0
.strtab 484213 484213 0 0.0
.symtab 287456 287456 0 0.0
.text 499244 499244 0 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 524595 524587 -8 -0.0
.app_xip_area 417389 417381 -8 -0.0
.bss 62184 62184 0 0.0
.data 712 712 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
lock cyw930739m2evb_01 (read/write) 529299 529299 0 0.0
.app_xip_area 416789 416789 0 0.0
.bss 67480 67480 0 0.0
.data 720 720 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
ota-requestor cyw930739m2evb_01 (read/write) 566307 566307 0 0.0
.app_xip_area 459861 459861 0 0.0
.bss 61472 61472 0 0.0
.data 668 668 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
switch cyw930739m2evb_01 (read/write) 531091 531099 8 0.0
.app_xip_area 422077 422085 8 0.0
.bss 63960 63960 0 0.0
.data 744 744 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
esp32 all-clusters-app c3devkit (read only) 1054288 1054286 -2 -0.0
(read/write) 1583800 1583808 8 0.0
.dram0.bss 77192 77192 0 0.0
.dram0.data 13964 13964 0 0.0
.flash.rodata 213504 213512 8 0.0
.flash.text 1054288 1054286 -2 -0.0
.iram0.text 76538 76538 0 0.0
m5stack (read only) 1101779 1101779 0 0.0
(read/write) 492966 492970 4 0.0
.dram0.bss 82208 82208 0 0.0
.dram0.data 34300 34300 0 0.0
.flash.rodata 241304 241308 4 0.0
.flash.text 1096395 1096395 0 0.0
.iram0.text 126055 126055 0 0.0
linux all-clusters-app debug (read only) 3149453 3149453 0 0.0
(read/write) 152904 152904 0 0.0
.bss 60224 60224 0 0.0
.data 2160 2160 0 0.0
.data.rel.ro 84016 84016 0 0.0
.dynamic 608 608 0 0.0
.got 4728 4728 0 0.0
.init 27 27 0 0.0
.init_array 1120 1120 0 0.0
.rodata 231016 231016 0 0.0
.text 2732341 2732341 0 0.0
all-clusters-minimal-app debug (read only) 2957397 2957397 0 0.0
(read/write) 145792 145792 0 0.0
.bss 59328 59328 0 0.0
.data 2128 2128 0 0.0
.data.rel.ro 77936 77936 0 0.0
.dynamic 608 608 0 0.0
.got 4664 4664 0 0.0
.init 27 27 0 0.0
.init_array 1080 1080 0 0.0
.rodata 224296 224296 0 0.0
.text 2550661 2550661 0 0.0
bridge-app debug (read only) 2517549 2517549 0 0.0
(read/write) 129648 129648 0 0.0
.bss 50232 50232 0 0.0
.data 3824 3824 0 0.0
.data.rel.ro 69608 69608 0 0.0
.dynamic 608 608 0 0.0
.got 4568 4568 0 0.0
.init 27 27 0 0.0
.init_array 784 784 0 0.0
.rodata 173224 173224 0 0.0
.text 2172005 2172005 0 0.0
chip-tool debug (read only) 13688001 13688001 0 0.0
(read/write) 676552 676552 0 0.0
.bss 26424 26424 0 0.0
.data 3042 3042 0 0.0
.data.rel.ro 640296 640296 0 0.0
.dynamic 608 608 0 0.0
.got 5360 5360 0 0.0
.init 27 27 0 0.0
.init_array 776 776 0 0.0
.rodata 660205 660205 0 0.0
.text 11456692 11456692 0 0.0
chip-tool-ipv6only arm64 (read only) 12863132 12863132 0 0.0
(read/write) 728440 728440 0 0.0
.bss 34392 34392 0 0.0
.data 3008 3008 0 0.0
.data.rel.ro 669872 669872 0 0.0
.dynamic 560 560 0 0.0
.got 15952 15952 0 0.0
.init 24 24 0 0.0
.init_array 216 216 0 0.0
.rodata 602000 602000 0 0.0
.text 10533364 10533364 0 0.0
dynamic-bridge-app-ipv6only debug (read only) 2581197 2581197 0 0.0
(read/write) 126840 126840 0 0.0
.bss 47544 47544 0 0.0
.data 2864 2864 0 0.0
.data.rel.ro 70192 70192 0 0.0
.dynamic 624 624 0 0.0
.got 4800 4800 0 0.0
.init 27 27 0 0.0
.init_array 792 792 0 0.0
.rodata 175944 175944 0 0.0
.text 2227893 2227893 0 0.0
lighting-app debug+rpc+ui (read only) 3245433 3245433 0 0.0
(read/write) 132272 132272 0 0.0
.bss 48032 48032 0 0.0
.data 2704 2704 0 0.0
.data.rel.ro 74736 74736 0 0.0
.dynamic 656 656 0 0.0
.got 5240 5240 0 0.0
.init 27 27 0 0.0
.init_array 872 872 0 0.0
.rodata 284628 284628 0 0.0
.text 2769010 2769010 0 0.0
lock-app debug (read only) 2657781 2657781 0 0.0
(read/write) 123624 123624 0 0.0
.bss 45952 45952 0 0.0
.data 1904 1904 0 0.0
.data.rel.ro 69648 69648 0 0.0
.dynamic 608 608 0 0.0
.got 4648 4648 0 0.0
.init 27 27 0 0.0
.init_array 832 832 0 0.0
.rodata 206280 206280 0 0.0
.text 2278805 2278805 0 0.0
ota-provider-app debug (read only) 2209629 2209629 0 0.0
(read/write) 103672 103672 0 0.0
.bss 44528 44528 0 0.0
.data 2112 2112 0 0.0
.data.rel.ro 51944 51944 0 0.0
.dynamic 608 608 0 0.0
.got 3800 3800 0 0.0
.init 27 27 0 0.0
.init_array 672 672 0 0.0
.rodata 154376 154376 0 0.0
.text 1913733 1913733 0 0.0
ota-requestor-app debug (read only) 2376661 2376661 0 0.0
(read/write) 111464 111464 0 0.0
.bss 46960 46960 0 0.0
.data 2512 2512 0 0.0
.data.rel.ro 56800 56800 0 0.0
.dynamic 608 608 0 0.0
.got 3784 3784 0 0.0
.init 27 27 0 0.0
.init_array 752 752 0 0.0
.rodata 158440 158440 0 0.0
.text 2067829 2067829 0 0.0
shell debug (read only) 2686025 2686025 0 0.0
(read/write) 141328 141328 0 0.0
.bss 59176 59176 0 0.0
.data 1232 1232 0 0.0
.data.rel.ro 75080 75080 0 0.0
.dynamic 608 608 0 0.0
.got 4128 4128 0 0.0
.init 27 27 0 0.0
.init_array 1056 1056 0 0.0
.rodata 199538 199538 0 0.0
.text 2324322 2324322 0 0.0
thermostat-no-ble arm64 (read only) 2523660 2523660 0 0.0
(read/write) 142552 142552 0 0.0
.bss 53496 53496 0 0.0
.data 1784 1784 0 0.0
.data.rel.ro 77792 77792 0 0.0
.dynamic 560 560 0 0.0
.got 5432 5432 0 0.0
.init 24 24 0 0.0
.init_array 392 392 0 0.0
.rodata 129376 129376 0 0.0
.text 2130692 2130692 0 0.0
tv-app debug (read only) 3313841 3313841 0 0.0
(read/write) 261544 261544 0 0.0
.bss 171264 171264 0 0.0
.data 4080 4080 0 0.0
.data.rel.ro 79480 79480 0 0.0
.dynamic 608 608 0 0.0
.got 5000 5000 0 0.0
.init 27 27 0 0.0
.init_array 1088 1088 0 0.0
.rodata 222648 222648 0 0.0
.text 2895010 2895010 0 0.0
tv-casting-app debug (read only) 7415193 7415193 0 0.0
(read/write) 195280 195280 0 0.0
.bss 52096 52096 0 0.0
.data 1744 1744 0 0.0
.data.rel.ro 134872 134872 0 0.0
.dynamic 608 608 0 0.0
.got 4920 4920 0 0.0
.init 27 27 0 0.0
.init_array 1000 1000 0 0.0
.rodata 317836 317836 0 0.0
.text 6728498 6728498 0 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2495368 2495368 0 0.0
.bss 216304 216304 0 0.0
.data 5144 5144 0 0.0
.text 1458052 1458052 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read only) 4 4 0 0.0
(read/write) 1178080 1178080 0 0.0
bss 155621 155621 0 0.0
rodata 133072 133072 0 0.0
text 808680 808680 0 0.0
nrf7002dk_nrf5340_cpuapp (read only) 4 4 0 0.0
(read/write) 1437808 1437808 0 0.0
bss 135361 135361 0 0.0
rodata 229088 229088 0 0.0
text 779276 779276 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read only) 4 4 0 0.0
(read/write) 1124300 1124300 0 0.0
bss 154773 154773 0 0.0
rodata 109836 109836 0 0.0
text 778980 778980 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 (read only) 840616 840616 0 0.0
(read/write) 1709204 1709204 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 190164 190164 0 0.0
.comment 212 212 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2560 2560 0 0.0
.debug_abbrev 1286148 1286148 0 0.0
.debug_aranges 131752 131752 0 0.0
.debug_frame 438004 438004 0 0.0
.debug_info 28331846 28331847 1 0.0
.debug_line 3814223 3814223 0 0.0
.debug_line_str 957 957 0 0.0
.debug_loclists 2066593 2066593 0 0.0
.debug_rnglists 130769 130769 0 0.0
.debug_str 3774484 3774484 0 0.0
.heap 840616 840616 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 296 296 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 720359 720359 0 0.0
.symtab 467904 467904 0 0.0
.text 1508092 1508092 0 0.0
.zero.table 8 8 0 0.0
text 0 0 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 (read only) 841424 841424 0 0.0
(read/write) 1650268 1650268 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 189364 189364 0 0.0
.comment 212 212 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2552 2552 0 0.0
.debug_abbrev 1275887 1275887 0 0.0
.debug_aranges 131000 131000 0 0.0
.debug_frame 440444 440444 0 0.0
.debug_info 27951407 27951406 -1 -0.0
.debug_line 3827423 3827423 0 0.0
.debug_line_str 981 981 0 0.0
.debug_loclists 2057505 2057505 0 0.0
.debug_rnglists 129718 129718 0 0.0
.debug_str 3763243 3763243 0 0.0
.heap 841424 841424 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 296 296 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 676726 676726 0 0.0
.symtab 452352 452352 0 0.0
.text 1449964 1449964 0 0.0
.zero.table 0 0 0 0.0
8 8 0 0.0
light cy8ckit_062s2_43012 (read only) 849736 849736 0 0.0
(read/write) 1571276 1571276 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 181220 181220 0 0.0
.comment 212 212 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2384 2384 0 0.0
.debug_abbrev 1108717 1108717 0 0.0
.debug_aranges 121032 121032 0 0.0
.debug_frame 403276 403276 0 0.0
.debug_info 23224399 23224399 0 0.0
.debug_line 3388513 3388513 0 0.0
.debug_line_str 942 942 0 0.0
.debug_loclists 1887392 1887392 0 0.0
.debug_rnglists 119255 119255 0 0.0
.debug_str 3569262 3569262 0 0.0
.heap 849736 849736 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 296 296 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 592106 592106 0 0.0
.symtab 414352 414352 0 0.0
.text 1379284 1379284 0 0.0
.zero.table 0 0 0 0.0
8 8 0 0.0
lock cy8ckit_062s2_43012 (read only) 821952 821952 0 0.0
(read/write) 1627892 1627892 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 208996 208996 0 0.0
.comment 212 212 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2392 2392 0 0.0
.debug_abbrev 1107835 1107835 0 0.0
.debug_aranges 121536 121536 0 0.0
.debug_frame 405368 405368 0 0.0
.debug_info 23389071 23389072 1 0.0
.debug_line 3385032 3385032 0 0.0
.debug_line_str 933 933 0 0.0
.debug_loclists 1900865 1900865 0 0.0
.debug_rnglists 119711 119711 0 0.0
.debug_str 3584280 3584280 0 0.0
.heap 821952 821952 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 296 296 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 596120 596120 0 0.0
.symtab 416688 416688 0 0.0
.text 1408116 1408116 0 0.0
.zero.table 0 0 0 0.0
8 8 0 0.0
qpg lighting-app qpg6105+debug (read/write) 1170696 1170696 0 0.0
.bss 99928 99928 0 0.0
.data 856 856 0 0.0
.text 617796 617796 0 0.0
lock-app qpg6105+debug (read/write) 1139908 1139908 0 0.0
.bss 94824 94824 0 0.0
.data 856 856 0 0.0
.text 587008 587008 0 0.0

@github-actions
Copy link

github-actions bot commented May 30, 2023

PR #26827: Size comparison from 22de5a0 to df7dec3

Increases above 0.2%:

platform target config section 22de5a0 df7dec3b change % change
k32w contact k32w0+release (read/write) 82704 90108 7404 9.0
.bss 65888 66104 216 0.3
light k32w0+release (read/write) 82356 89756 7400 9.0
.bss 65552 65768 216 0.3
lock k32w0+release (read/write) 80352 87556 7204 9.0
Increases (10 builds for bl602, esp32, k32w, psoc6, qpg, telink)
platform target config section 22de5a0 df7dec3b change % change
bl602 lighting-app bl602 (read/write) 1356414 1356422 8 0.0
.text 1036480 1036482 2 0.0
esp32 all-clusters-app m5stack (read/write) 493150 493154 4 0.0
.flash.rodata 241472 241476 4 0.0
k32w contact k32w0+release (read only) 583660 584764 1104 0.2
(read/write) 82704 90108 7404 9.0
.bss 65888 66104 216 0.3
.text 583124 584228 1104 0.2
light k32w0+release (read only) 582620 583724 1104 0.2
(read/write) 82356 89756 7400 9.0
.bss 65552 65768 216 0.3
.text 582084 583188 1104 0.2
lock k32w0+release (read only) 556108 556140 32 0.0
(read/write) 80352 87556 7204 9.0
.bss 63624 63632 8 0.0
.text 555572 555604 32 0.0
psoc6 all-clusters-minimal cy8ckit_062s2_43012 .debug_info 31053521 31053522 1 0.0
lock cy8ckit_062s2_43012 .debug_info 25852965 25852967 2 0.0
qpg lighting-app qpg6105+debug (read/write) 1170720 1170728 8 0.0
.text 617820 617828 8 0.0
telink all-clusters-minimal-app tlsr9518adk80d text 651784 651788 4 0.0
light-switch-app tlsr9518adk80d text 598706 598708 2 0.0
Decreases (15 builds for bl702, cc13x4_26x4, efr32, esp32, k32w, psoc6, qpg, telink)
platform target config section 22de5a0 df7dec3b change % change
bl702 lighting-app bl702+rpc .debug_info 49712781 49712780 -1 -0.0
.text 1040074 1040072 -2 -0.0
cc13x4_26x4 lock-ftd LP_EM_CC1354P10_6 (read only) 739279 739271 -8 -0.0
.text 662532 662524 -8 -0.0
efr32 lock-app BRD4161A+wf200 (read/write) 1068880 1068872 -8 -0.0
.text 892564 892556 -8 -0.0
esp32 all-clusters-app c3devkit (read only) 1054904 1054900 -4 -0.0
.flash.text 1054904 1054900 -4 -0.0
k32w contact k32w0+release .data 2192 2168 -24 -1.1
light k32w0+release .data 2180 2156 -24 -1.1
lock k32w0+release .data 2104 2100 -4 -0.2
psoc6 all-clusters cy8ckit_062s2_43012 .debug_info 31497587 31497586 -1 -0.0
light cy8ckit_062s2_43012 .debug_info 25731434 25731432 -2 -0.0
qpg lock-app qpg6105+debug (read/write) 1139948 1139940 -8 -0.0
.text 587048 587040 -8 -0.0
telink lighting-app tlsr9518adk80d (read/write) 943404 943396 -8 -0.0
text 658442 658440 -2 -0.0
lighting-app-rpc tlsr9518adk80d (read/write) 1011828 1011820 -8 -0.0
text 702906 702902 -4 -0.0
lock-app tlsr9518adk80d text 612754 612752 -2 -0.0
temperature-measurement-app tlsr9518adk80d text 576096 576094 -2 -0.0
window-covering tlsr9518adk80d text 596118 596116 -2 -0.0
Full report (66 builds for bl602, bl702, cc13x2_26x2, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, telink)
platform target config section 22de5a0 df7dec3b change % change
bl602 lighting-app bl602 (read/write) 1356414 1356422 8 0.0
.bss 87886 87886 0 0.0
.data 9648 9648 0 0.0
.text 1036480 1036482 2 0.0
bl602+rpc (read/write) 1402690 1402690 0 0.0
.bss 95934 95934 0 0.0
.data 10040 10040 0 0.0
.text 1067840 1067840 0 0.0
bl702 lighting-app bl702 (read only) 3358 3358 0 0.0
(read/write) 1188191 1188191 0 0.0
.bleromro 6342 6342 0 0.0
.bleromrw 124 124 0 0.0
.boot2 328 328 0 0.0
.bss 67585 67585 0 0.0
.bss_psram 24656 24656 0 0.0
.comment 48 48 0 0.0
.data 3952 3952 0 0.0
.debug_abbrev 1555700 1555700 0 0.0
.debug_aranges 148824 148824 0 0.0
.debug_frame 547940 547940 0 0.0
.debug_info 44764796 44764796 0 0.0
.debug_line 5587683 5587683 0 0.0
.debug_loc 3812668 3812668 0 0.0
.debug_ranges 393080 393080 0 0.0
.debug_str 4329332 4329332 0 0.0
.hbn 536 536 0 0.0
.hbn_noinit 260 260 0 0.0
.init 342 342 0 0.0
.init_array 140 140 0 0.0
.psram 0 0 0 0.0
.riscv.attributes 47 47 0 0.0
.rodata 107232 107232 0 0.0
.rsvd 4 4 0 0.0
.sha_ocram 72 72 0 0.0
.shstrtab 304 304 0 0.0
.stack 2048 2048 0 0.0
.strtab 582494 582494 0 0.0
.symtab 175632 175632 0 0.0
.tcm_data 28 28 0 0.0
.tcmcode 3358 3358 0 0.0
.text 0 0 0 0.0
966684 966684 0 0.0
bl702+rpc (read only) 3358 3358 0 0.0
(read/write) 1277011 1277011 0 0.0
.bleromro 6342 6342 0 0.0
.bleromrw 124 124 0 0.0
.boot2 328 328 0 0.0
.bss 75633 75633 0 0.0
.bss_psram 25056 25056 0 0.0
.comment 48 48 0 0.0
.data 4504 4504 0 0.0
.debug_abbrev 1714683 1714683 0 0.0
.debug_aranges 157112 157112 0 0.0
.debug_frame 575952 575952 0 0.0
.debug_info 49712781 49712780 -1 -0.0
.debug_line 6003600 6003600 0 0.0
.debug_loc 4015364 4015364 0 0.0
.debug_ranges 418440 418440 0 0.0
.debug_str 4754849 4754849 0 0.0
.hbn 536 536 0 0.0
.hbn_noinit 260 260 0 0.0
.init 342 342 0 0.0
.init_array 156 156 0 0.0
.psram 0 0 0 0.0
.riscv.attributes 47 47 0 0.0
.rodata 121328 121328 0 0.0
.rsvd 4 4 0 0.0
.sha_ocram 72 72 0 0.0
.shstrtab 304 304 0 0.0
.stack 2048 2048 0 0.0
.strtab 643814 643814 0 0.0
.symtab 194128 194128 0 0.0
.tcm_data 28 28 0 0.0
.tcmcode 3358 3358 0 0.0
.text 0 0 0 0.0
1040074 1040072 -2 -0.0
cc13x2_26x2 lock-mtd LP_CC2652R7 (read only) 658131 658131 0 0.0
(read/write) 158713 158713 0 0.0
.bss 80376 80376 0 0.0
.data 3272 3272 0 0.0
.rodata 77115 77115 0 0.0
.text 580524 580524 0 0.0
pump-app LP_CC2652R7 (read only) 648839 648839 0 0.0
(read/write) 153177 153177 0 0.0
.bss 74600 74600 0 0.0
.data 3264 3264 0 0.0
.rodata 79695 79695 0 0.0
.text 568656 568656 0 0.0
pump-controller-app LP_CC2652R7 (read only) 634343 634343 0 0.0
(read/write) 153317 153317 0 0.0
.bss 74744 74744 0 0.0
.data 3260 3260 0 0.0
.rodata 75575 75575 0 0.0
.text 558280 558280 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 (read only) 747267 747267 0 0.0
(read/write) 170152 170152 0 0.0
.bss 92488 92488 0 0.0
.data 3464 3464 0 0.0
.rodata 79687 79687 0 0.0
.text 667192 667192 0 0.0
lock-ftd LP_EM_CC1354P10_6 (read only) 739279 739271 -8 -0.0
(read/write) 175372 175372 0 0.0
.bss 97712 97712 0 0.0
.data 3460 3460 0 0.0
.rodata 76355 76355 0 0.0
.text 662532 662524 -8 -0.0
lock-mtd LP_EM_CC1354P10_6 (read only) 727419 727419 0 0.0
(read/write) 169980 169980 0 0.0
.bss 92320 92320 0 0.0
.data 3460 3460 0 0.0
.rodata 102319 102319 0 0.0
.text 624712 624712 0 0.0
pump-app LP_EM_CC1354P10_6 (read only) 680811 680811 0 0.0
(read/write) 164444 164444 0 0.0
.bss 86544 86544 0 0.0
.data 3452 3452 0 0.0
.rodata 76879 76879 0 0.0
.text 603540 603540 0 0.0
pump-controller-app LP_EM_CC1354P10_6 (read only) 666283 666283 0 0.0
(read/write) 164576 164576 0 0.0
.bss 86688 86688 0 0.0
.data 3448 3448 0 0.0
.rodata 72727 72727 0 0.0
.text 593164 593164 0 0.0
cc32xx lock CC3235SF_LAUNCHXL (blank) 0 0 0 0.0
(read only) 605754 605754 0 0.0
(read/write) 204164 204164 0 0.0
.ARM.attributes 44 44 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 197576 197576 0 0.0
.comment 206 206 0 0.0
.data 1468 1468 0 0.0
.debug_abbrev 955131 955131 0 0.0
.debug_aranges 118056 118056 0 0.0
.debug_frame 403184 403184 0 0.0
.debug_info 22897508 22897508 0 0.0
.debug_line 2871268 2871268 0 0.0
.debug_line_str 513 513 0 0.0
.debug_loc 33340 33340 0 0.0
.debug_loclists 1719193 1719193 0 0.0
.debug_ranges 4984 4984 0 0.0
.debug_rnglists 107111 107111 0 0.0
.debug_str 3768357 3768357 0 0.0
.ramVecs 780 780 0 0.0
.resetVecs 64 64 0 0.0
.rodata 104402 104402 0 0.0
.shstrtab 265 265 0 0.0
.stack 2048 2048 0 0.0
.strtab 484235 484235 0 0.0
.symtab 287456 287456 0 0.0
.text 499232 499232 0 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 524475 524475 0 0.0
.app_xip_area 417269 417269 0 0.0
.bss 62184 62184 0 0.0
.data 712 712 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
lock cyw930739m2evb_01 (read/write) 529179 529179 0 0.0
.app_xip_area 416669 416669 0 0.0
.bss 67480 67480 0 0.0
.data 720 720 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
ota-requestor cyw930739m2evb_01 (read/write) 566347 566347 0 0.0
.app_xip_area 459901 459901 0 0.0
.bss 61472 61472 0 0.0
.data 668 668 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
switch cyw930739m2evb_01 (read/write) 530971 530971 0 0.0
.app_xip_area 421957 421957 0 0.0
.bss 63960 63960 0 0.0
.data 744 744 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A+rs9116 (read/write) 964284 964284 0 0.0
.bss 179680 179680 0 0.0
.data 2136 2136 0 0.0
.text 782448 782448 0 0.0
BRD4187C (read/write) 1001000 1001000 0 0.0
.bss 159412 159412 0 0.0
.data 2780 2780 0 0.0
.text 838788 838788 0 0.0
lock-app BRD4161A+wf200 (read/write) 1068880 1068872 -8 -0.0
.bss 174144 174144 0 0.0
.data 2152 2152 0 0.0
.text 892564 892556 -8 -0.0
window-app BRD4187C (read/write) 1076244 1076244 0 0.0
.bss 143884 143884 0 0.0
.data 2676 2676 0 0.0
.text 929664 929664 0 0.0
esp32 all-clusters-app c3devkit (read only) 1054904 1054900 -4 -0.0
(read/write) 1584000 1584000 0 0.0
.dram0.bss 77208 77208 0 0.0
.dram0.data 13964 13964 0 0.0
.flash.rodata 213688 213688 0 0.0
.flash.text 1054904 1054900 -4 -0.0
.iram0.text 76740 76740 0 0.0
m5stack (read only) 1102115 1102115 0 0.0
(read/write) 493150 493154 4 0.0
.dram0.bss 82224 82224 0 0.0
.dram0.data 34304 34304 0 0.0
.flash.rodata 241472 241476 4 0.0
.flash.text 1096731 1096731 0 0.0
.iram0.text 126055 126055 0 0.0
k32w contact k32w0+release (read only) 583660 584764 1104 0.2
(read/write) 82704 90108 7404 9.0
.bss 65888 66104 216 0.3
.data 2192 2168 -24 -1.1
.text 583124 584228 1104 0.2
light k32w0+release (read only) 582620 583724 1104 0.2
(read/write) 82356 89756 7400 9.0
.bss 65552 65768 216 0.3
.data 2180 2156 -24 -1.1
.text 582084 583188 1104 0.2
lock k32w0+release (read only) 556108 556140 32 0.0
(read/write) 80352 87556 7204 9.0
.bss 63624 63632 8 0.0
.data 2104 2100 -4 -0.2
.text 555572 555604 32 0.0
linux all-clusters-app debug (read only) 3151789 3151789 0 0.0
(read/write) 153064 153064 0 0.0
.bss 60224 60224 0 0.0
.data 2160 2160 0 0.0
.data.rel.ro 84176 84176 0 0.0
.dynamic 608 608 0 0.0
.got 4728 4728 0 0.0
.init 27 27 0 0.0
.init_array 1120 1120 0 0.0
.rodata 231048 231048 0 0.0
.text 2734597 2734597 0 0.0
all-clusters-minimal-app debug (read only) 2959613 2959613 0 0.0
(read/write) 145856 145856 0 0.0
.bss 59328 59328 0 0.0
.data 2128 2128 0 0.0
.data.rel.ro 78000 78000 0 0.0
.dynamic 608 608 0 0.0
.got 4664 4664 0 0.0
.init 27 27 0 0.0
.init_array 1080 1080 0 0.0
.rodata 224360 224360 0 0.0
.text 2552789 2552789 0 0.0
bridge-app debug (read only) 2519437 2519437 0 0.0
(read/write) 129648 129648 0 0.0
.bss 50232 50232 0 0.0
.data 3824 3824 0 0.0
.data.rel.ro 69608 69608 0 0.0
.dynamic 608 608 0 0.0
.got 4568 4568 0 0.0
.init 27 27 0 0.0
.init_array 784 784 0 0.0
.rodata 173256 173256 0 0.0
.text 2173861 2173861 0 0.0
chip-tool debug (read only) 15462281 15462281 0 0.0
(read/write) 704680 704680 0 0.0
.bss 26424 26424 0 0.0
.data 3042 3042 0 0.0
.data.rel.ro 668424 668424 0 0.0
.dynamic 608 608 0 0.0
.got 5360 5360 0 0.0
.init 27 27 0 0.0
.init_array 776 776 0 0.0
.rodata 683509 683509 0 0.0
.text 13143588 13143588 0 0.0
chip-tool-ipv6only arm64 (read only) 14792596 14792596 0 0.0
(read/write) 757512 757512 0 0.0
.bss 34408 34408 0 0.0
.data 3008 3008 0 0.0
.data.rel.ro 698200 698200 0 0.0
.dynamic 560 560 0 0.0
.got 16656 16656 0 0.0
.init 24 24 0 0.0
.init_array 224 224 0 0.0
.rodata 619608 619608 0 0.0
.text 12380708 12380708 0 0.0
dynamic-bridge-app-ipv6only debug (read only) 2583101 2583101 0 0.0
(read/write) 126840 126840 0 0.0
.bss 47544 47544 0 0.0
.data 2864 2864 0 0.0
.data.rel.ro 70192 70192 0 0.0
.dynamic 624 624 0 0.0
.got 4800 4800 0 0.0
.init 27 27 0 0.0
.init_array 792 792 0 0.0
.rodata 175976 175976 0 0.0
.text 2229765 2229765 0 0.0
lighting-app debug+rpc+ui (read only) 3268665 3268665 0 0.0
(read/write) 134048 134048 0 0.0
.bss 49088 49088 0 0.0
.data 2704 2704 0 0.0
.data.rel.ro 75416 75416 0 0.0
.dynamic 656 656 0 0.0
.got 5264 5264 0 0.0
.init 27 27 0 0.0
.init_array 888 888 0 0.0
.rodata 284884 284884 0 0.0
.text 2790082 2790082 0 0.0
lock-app debug (read only) 2659621 2659621 0 0.0
(read/write) 123624 123624 0 0.0
.bss 45952 45952 0 0.0
.data 1904 1904 0 0.0
.data.rel.ro 69648 69648 0 0.0
.dynamic 608 608 0 0.0
.got 4648 4648 0 0.0
.init 27 27 0 0.0
.init_array 832 832 0 0.0
.rodata 206312 206312 0 0.0
.text 2280613 2280613 0 0.0
ota-provider-app debug (read only) 2210573 2210573 0 0.0
(read/write) 103672 103672 0 0.0
.bss 44528 44528 0 0.0
.data 2112 2112 0 0.0
.data.rel.ro 51944 51944 0 0.0
.dynamic 608 608 0 0.0
.got 3800 3800 0 0.0
.init 27 27 0 0.0
.init_array 672 672 0 0.0
.rodata 154408 154408 0 0.0
.text 1914645 1914645 0 0.0
ota-requestor-app debug (read only) 2378149 2378149 0 0.0
(read/write) 111464 111464 0 0.0
.bss 46960 46960 0 0.0
.data 2512 2512 0 0.0
.data.rel.ro 56800 56800 0 0.0
.dynamic 608 608 0 0.0
.got 3784 3784 0 0.0
.init 27 27 0 0.0
.init_array 752 752 0 0.0
.rodata 158472 158472 0 0.0
.text 2069285 2069285 0 0.0
shell debug (read only) 2688345 2688345 0 0.0
(read/write) 141488 141488 0 0.0
.bss 59176 59176 0 0.0
.data 1232 1232 0 0.0
.data.rel.ro 75240 75240 0 0.0
.dynamic 608 608 0 0.0
.got 4128 4128 0 0.0
.init 27 27 0 0.0
.init_array 1056 1056 0 0.0
.rodata 199570 199570 0 0.0
.text 2326562 2326562 0 0.0
thermostat-no-ble arm64 (read only) 2537532 2537532 0 0.0
(read/write) 142696 142696 0 0.0
.bss 53496 53496 0 0.0
.data 1736 1736 0 0.0
.data.rel.ro 77960 77960 0 0.0
.dynamic 560 560 0 0.0
.got 5416 5416 0 0.0
.init 24 24 0 0.0
.init_array 400 400 0 0.0
.rodata 129288 129288 0 0.0
.text 2146372 2146372 0 0.0
tv-app debug (read only) 3315697 3315697 0 0.0
(read/write) 261512 261512 0 0.0
.bss 171232 171232 0 0.0
.data 4080 4080 0 0.0
.data.rel.ro 79480 79480 0 0.0
.dynamic 608 608 0 0.0
.got 5000 5000 0 0.0
.init 27 27 0 0.0
.init_array 1088 1088 0 0.0
.rodata 222744 222744 0 0.0
.text 2896770 2896770 0 0.0
tv-casting-app debug (read only) 9048265 9048265 0 0.0
(read/write) 217904 217904 0 0.0
.bss 52064 52064 0 0.0
.data 1744 1744 0 0.0
.data.rel.ro 157528 157528 0 0.0
.dynamic 608 608 0 0.0
.got 4920 4920 0 0.0
.init 27 27 0 0.0
.init_array 1000 1000 0 0.0
.rodata 327660 327660 0 0.0
.text 8295730 8295730 0 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2495504 2495504 0 0.0
.bss 216304 216304 0 0.0
.data 5144 5144 0 0.0
.text 1458188 1458188 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read only) 4 4 0 0.0
(read/write) 1178228 1178228 0 0.0
bss 155643 155643 0 0.0
rodata 133220 133220 0 0.0
text 808688 808688 0 0.0
nrf7002dk_nrf5340_cpuapp (read only) 4 4 0 0.0
(read/write) 1437988 1437988 0 0.0
bss 135383 135383 0 0.0
rodata 229236 229236 0 0.0
text 779304 779304 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read only) 4 4 0 0.0
(read/write) 1124332 1124332 0 0.0
bss 154784 154784 0 0.0
rodata 109900 109900 0 0.0
text 778936 778936 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 (read only) 840592 840592 0 0.0
(read/write) 1709340 1709340 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 190188 190188 0 0.0
.comment 212 212 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2560 2560 0 0.0
.debug_abbrev 1286161 1286161 0 0.0
.debug_aranges 145472 145472 0 0.0
.debug_frame 486528 486528 0 0.0
.debug_info 31497587 31497586 -1 -0.0
.debug_line 3970195 3970195 0 0.0
.debug_line_str 957 957 0 0.0
.debug_loclists 2258868 2258868 0 0.0
.debug_rnglists 141106 141106 0 0.0
.debug_str 4280969 4280969 0 0.0
.heap 840592 840592 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 296 296 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 720491 720491 0 0.0
.symtab 467936 467936 0 0.0
.text 1508204 1508204 0 0.0
.zero.table 8 8 0 0.0
text 0 0 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 (read only) 841416 841416 0 0.0
(read/write) 1650316 1650316 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 189372 189372 0 0.0
.comment 212 212 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2552 2552 0 0.0
.debug_abbrev 1275895 1275895 0 0.0
.debug_aranges 144712 144712 0 0.0
.debug_frame 488952 488952 0 0.0
.debug_info 31053521 31053522 1 0.0
.debug_line 3983355 3983355 0 0.0
.debug_line_str 981 981 0 0.0
.debug_loclists 2249759 2249759 0 0.0
.debug_rnglists 140049 140049 0 0.0
.debug_str 4269649 4269649 0 0.0
.heap 841416 841416 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 296 296 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 676756 676756 0 0.0
.symtab 452352 452352 0 0.0
.text 1450004 1450004 0 0.0
.zero.table 0 0 0 0.0
8 8 0 0.0
light cy8ckit_062s2_43012 (read only) 849736 849736 0 0.0
(read/write) 1571276 1571276 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 181220 181220 0 0.0
.comment 212 212 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2384 2384 0 0.0
.debug_abbrev 1108765 1108765 0 0.0
.debug_aranges 134744 134744 0 0.0
.debug_frame 451784 451784 0 0.0
.debug_info 25731434 25731432 -2 -0.0
.debug_line 3544534 3544534 0 0.0
.debug_line_str 942 942 0 0.0
.debug_loclists 2079745 2079745 0 0.0
.debug_rnglists 129586 129586 0 0.0
.debug_str 4075469 4075469 0 0.0
.heap 849736 849736 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 296 296 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 592238 592238 0 0.0
.symtab 414352 414352 0 0.0
.text 1379284 1379284 0 0.0
.zero.table 0 0 0 0.0
8 8 0 0.0
lock cy8ckit_062s2_43012 (read only) 821960 821960 0 0.0
(read/write) 1627876 1627876 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 208988 208988 0 0.0
.comment 212 212 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2392 2392 0 0.0
.debug_abbrev 1107875 1107875 0 0.0
.debug_aranges 135248 135248 0 0.0
.debug_frame 453876 453876 0 0.0
.debug_info 25852965 25852967 2 0.0
.debug_line 3541014 3541014 0 0.0
.debug_line_str 933 933 0 0.0
.debug_loclists 2093192 2093192 0 0.0
.debug_rnglists 130042 130042 0 0.0
.debug_str 4090380 4090380 0 0.0
.heap 821960 821960 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 296 296 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 596154 596154 0 0.0
.symtab 416688 416688 0 0.0
.text 1408108 1408108 0 0.0
.zero.table 0 0 0 0.0
8 8 0 0.0
qpg lighting-app qpg6105+debug (read/write) 1170720 1170728 8 0.0
.bss 99928 99928 0 0.0
.data 856 856 0 0.0
.text 617820 617828 8 0.0
lock-app qpg6105+debug (read/write) 1139948 1139940 -8 -0.0
.bss 94824 94824 0 0.0
.data 856 856 0 0.0
.text 587048 587040 -8 -0.0
telink all-clusters-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 1014688 1014688 0 0.0
bss 99044 99044 0 0.0
text 689920 689920 0 0.0
all-clusters-minimal-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 950212 950212 0 0.0
bss 98068 98068 0 0.0
text 651784 651788 4 0.0
bridge-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 928256 928256 0 0.0
bss 100300 100300 0 0.0
text 641446 641446 0 0.0
contact-sensor-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 859404 859404 0 0.0
bss 89960 89960 0 0.0
text 584088 584088 0 0.0
light-switch-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 875720 875720 0 0.0
bss 90128 90128 0 0.0
text 598706 598708 2 0.0
lighting-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 943404 943396 -8 -0.0
bss 98320 98320 0 0.0
text 658442 658440 -2 -0.0
lighting-app-factory-data tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 954776 954776 0 0.0
bss 102568 102568 0 0.0
text 665958 665958 0 0.0
lighting-app-rpc tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 1011828 1011820 -8 -0.0
bss 99884 99884 0 0.0
text 702906 702902 -4 -0.0
lighting-app-shell tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 1044252 1044252 0 0.0
bss 110968 110968 0 0.0
text 723474 723474 0 0.0
lock-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 914476 914476 0 0.0
bss 90624 90624 0 0.0
text 612754 612752 -2 -0.0
ota-requestor-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 882068 882068 0 0.0
bss 91228 91228 0 0.0
text 606032 606032 0 0.0
pump-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 865428 865428 0 0.0
bss 90092 90092 0 0.0
text 590266 590266 0 0.0
pump-controller-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 852216 852216 0 0.0
bss 89892 89892 0 0.0
text 580384 580384 0 0.0
temperature-measurement-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 848396 848396 0 0.0
bss 89800 89800 0 0.0
text 576096 576094 -2 -0.0
thermostat tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 880592 880592 0 0.0
bss 91520 91520 0 0.0
text 600876 600876 0 0.0
window-covering tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 876768 876768 0 0.0
bss 91928 91928 0 0.0
text 596118 596116 -2 -0.0

@andy31415 andy31415 merged commit c524637 into project-chip:master Jun 1, 2023
marius-alex-tache added a commit to NXP/matter that referenced this pull request Jun 21, 2023
* [K32W0] Sync with SDK NCCL change

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Add a flag chip_with_pdm_encryption to disable PDM encryption

* [K32W0] Fix name for OPENTHREAD_CONFIG_MAC_DEFAULT_MAX_FRAME_RETRIES_DIRECT

* [K32W0] Fix reboot reason bug

* [K32W0] Change date type for rebootCause, uint8_t is enough

* [K32W0] Add stop advertising retry

If stop advertising fails (timeout on event wait), then
rearm the timer as fast as possible to retry.
Once stop advertising is successful, slow advertising can start.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Add ExitAction to OTATlvProcessor API

An OTA TLV processor should have the option of executing an action
when before a new processor is selected. This is called an exit
action. It should be useful in the context of transferring multiple
OTA images in external flash.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Update OTA SDK usage

* Application and bootloader processors are now the same, referred to as
firmware processor.
* Application can now register callbacks for descriptor
processing.
* When using default processors, the OTA flags gOTAUseCustomOtaEntry
and gOTAAllowCustomStartAddress are defined and set to 1.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Add JSON support for custom TLVs

*A user can now specify a custom TLV format (tag, descriptor and path)
by following the design of the ota_payload.schema. Option `--json` should
be used to specify the JSON file path.
* Add SSBL payload generation.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Call ExitAction from TLV processor when all block has been consumed - Move code from ApplyAction to ExitAction method

* [K32W0] Update usage of new OTA SDK APIs

* [K32W0] Set custom OTA entry flags

Custom OTA entry structure will be saved at the top of external flash by default.
Fix heap start address. It should start after the stack size is subtracted from the top.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Access OTA entry at Init and check OTA status

* [K32W0] Update OTA tool to support SSBL

Add a few examples to generate:
* application update image
* factory data update image
* SSBL update image
* app + SSBL + factory data update image
* maximum number of custom OTA entries image

Add README for K32W OTA.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Add example for max entries testing

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Split default processors options

* chip_enable_ota_firmware_processor enables the firmware (App/SSBL)
processor. Enabled by default.
* chip_enable_ota_factory_data_processor enables the factory data
processor. Disabled by default.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Update README SSBL/PSECT sections

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Bring README files up to date

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Fix chip_crypto_flavour name

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Fix readmes for k32w0 apps

* [K32W0] Update SecLib path in SDK build file

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Fix typo in README files regarding OTA image tool

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Extend factory data restore mechanism

The default restore mechanism is implemented as a weak function:
`FactoryDataDefaultRestoreMechanism`. It is registered in
`K32W0FactoryDataProvider::Init`, before factory data validation,
and it can be overwritten at application level.

Application can register additional restore mechanisms using the API:
`K32W0FactoryDataProvider::RegisterRestoreMechanism`.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Improve rotating device id

Add README section related to rotating device id.
If unique id is not found in factory data, use the
default one.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Fix error status for rotating device id getter

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Add retry mechanism when OTA is aborted

Upon an aborted transfer, the OTA will retry a query on the
backed up provider if CONFIG_CHIP_K32W0_OTA_ABORT_HOOK is set.

The retry mechanism is disabled by default.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Add ota_custom_entry_address option

ota_custom_entry_address specifies at which address in external flash
the OTA custom entry is saved during OTA. By default, it is set to the
end of the PDM area: 0x000C1000.

Add internal/external flash description in linker.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Revert all applied actions upon error

AbortAction for all selected OTA TLV processors will be called
if any processor fails to apply its action. This is a safety
mechanism to avoid having incompatible apps/data caused by partial
updates (e.g. incompatibility between SSBL and app).

Other changes:
* Clean factory data RAM buffer

* Increase reset resilience during OTA

During OTA, if factory data is updated, it is firstly backed up
in a PDM entry with id kNvmId_FactoryDataBackup. This entry should
be deleted only if the OTA entry state is otaApplied, which means
the device reset happened as expected.

If OTA entry state is not otaApplied, it means the reset was caused
by a different factor (e.g. power loss etc.) and the factory data
should be restored from the PDM (for the default registered mechanism).

* AbortAction should delete PDM id for factory data backup

* Add reset state for OTATlvProcessor base class

Derived classes should call OTATlvProcessor::ClearInternal() whenever
they want to reset their state.

* Update abort action for firmware processor

OTA_ResetCurrentEepromAddress should be called before setting
the offset to 0 through OTA_SetStartEepromOffset. Otherwise,
a check in OTA_SetStartEepromOffset will fail and the state is
not reset correctly.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Add SPIFI_DUAL_MODE_SUPPORT info in README files

For K32W041AM, the multi-image SSBL must also be compiled with
SPIFI_DUAL_MODE_SUPPORT=1.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Enclose CheckOtaEntry in OTA flag

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Enclose factory data backup usage in corresponding flag

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Update SDK in README files

Fix minor issue with image partitions information.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Fix DiagnosticDataProvider memory leak

GetNetworkInterfaces returns some dynamically allocated data,
which is supposed to be freed upon calling ReleaseNetworkInterfaces.

Our platform implementation was using the default implementation of
ReleaseNetworkInterfaces (which does nothing). This is an obvious memory leak,
since subsequent calls to GetNetworkInterfaces dynamically allocated data that
was never freed.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Automate output binary signing

Add BUILD.gn changes to call a python script postbuild
that signs the output binary.

Add signing python script.

Update readme files.

Signed-off-by: Andrei Menzopol <[email protected]>

* [K32W0] Fix chip_crypto_flavor typo

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Bump ot-nxp to latest

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Fix OTA generation tool

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Bump ot-nxp to latest

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Sync scripts and generated data with development

Updated manufacturing flow.

Signed-off-by: Mihai Ignat <[email protected]>
Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Bump ot-nxp to latest

Signed-off-by: Marius Tache <[email protected]>

* Restyled by whitespace

* Restyled by clang-format

* Restyled by gn

* Restyled by prettier-markdown

* Restyled by shellharden

* Restyled by shfmt

* Restyled by autopep8

* Restyled by isort

* [K32W0] Fix spell check

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Remove some binary examples (not used)

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Fix some lint errors

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Update workflow example yaml to latest

Signed-off-by: Marius Tache <[email protected]>

* Restyled by prettier-markdown

* [K32W0] Fix script issues

Signed-off-by: Marius Tache <[email protected]>

* Restyled by autopep8

* Restyled by isort

* [K32W0] Add PDM ID base value for apps

Applications should use kNvmId_ApplicationBase alongside an
offset to generate their own PDM IDs.

Signed-off-by: Marius Tache <[email protected]>

* Restyled by clang-format

---------

Signed-off-by: Marius Tache <[email protected]>
Signed-off-by: Andrei Menzopol <[email protected]>
Signed-off-by: Mihai Ignat <[email protected]>
Co-authored-by: tanyue518 <[email protected]>
Co-authored-by: Martin Cuvelier <[email protected]>
Co-authored-by: Mihai Ignat <[email protected]>
Co-authored-by: Andrei Menzopol <[email protected]>
Co-authored-by: Restyled.io <[email protected]>
marius-alex-tache added a commit to NXP/matter that referenced this pull request Jun 21, 2023
* [K32W0] Sync with SDK NCCL change

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Add a flag chip_with_pdm_encryption to disable PDM encryption

* [K32W0] Fix name for OPENTHREAD_CONFIG_MAC_DEFAULT_MAX_FRAME_RETRIES_DIRECT

* [K32W0] Fix reboot reason bug

* [K32W0] Change date type for rebootCause, uint8_t is enough

* [K32W0] Add stop advertising retry

If stop advertising fails (timeout on event wait), then
rearm the timer as fast as possible to retry.
Once stop advertising is successful, slow advertising can start.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Add ExitAction to OTATlvProcessor API

An OTA TLV processor should have the option of executing an action
when before a new processor is selected. This is called an exit
action. It should be useful in the context of transferring multiple
OTA images in external flash.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Update OTA SDK usage

* Application and bootloader processors are now the same, referred to as
firmware processor.
* Application can now register callbacks for descriptor
processing.
* When using default processors, the OTA flags gOTAUseCustomOtaEntry
and gOTAAllowCustomStartAddress are defined and set to 1.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Add JSON support for custom TLVs

*A user can now specify a custom TLV format (tag, descriptor and path)
by following the design of the ota_payload.schema. Option `--json` should
be used to specify the JSON file path.
* Add SSBL payload generation.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Call ExitAction from TLV processor when all block has been consumed - Move code from ApplyAction to ExitAction method

* [K32W0] Update usage of new OTA SDK APIs

* [K32W0] Set custom OTA entry flags

Custom OTA entry structure will be saved at the top of external flash by default.
Fix heap start address. It should start after the stack size is subtracted from the top.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Access OTA entry at Init and check OTA status

* [K32W0] Update OTA tool to support SSBL

Add a few examples to generate:
* application update image
* factory data update image
* SSBL update image
* app + SSBL + factory data update image
* maximum number of custom OTA entries image

Add README for K32W OTA.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Add example for max entries testing

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Split default processors options

* chip_enable_ota_firmware_processor enables the firmware (App/SSBL)
processor. Enabled by default.
* chip_enable_ota_factory_data_processor enables the factory data
processor. Disabled by default.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Update README SSBL/PSECT sections

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Bring README files up to date

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Fix chip_crypto_flavour name

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Fix readmes for k32w0 apps

* [K32W0] Update SecLib path in SDK build file

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Fix typo in README files regarding OTA image tool

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Extend factory data restore mechanism

The default restore mechanism is implemented as a weak function:
`FactoryDataDefaultRestoreMechanism`. It is registered in
`K32W0FactoryDataProvider::Init`, before factory data validation,
and it can be overwritten at application level.

Application can register additional restore mechanisms using the API:
`K32W0FactoryDataProvider::RegisterRestoreMechanism`.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Improve rotating device id

Add README section related to rotating device id.
If unique id is not found in factory data, use the
default one.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Fix error status for rotating device id getter

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Add retry mechanism when OTA is aborted

Upon an aborted transfer, the OTA will retry a query on the
backed up provider if CONFIG_CHIP_K32W0_OTA_ABORT_HOOK is set.

The retry mechanism is disabled by default.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Add ota_custom_entry_address option

ota_custom_entry_address specifies at which address in external flash
the OTA custom entry is saved during OTA. By default, it is set to the
end of the PDM area: 0x000C1000.

Add internal/external flash description in linker.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Revert all applied actions upon error

AbortAction for all selected OTA TLV processors will be called
if any processor fails to apply its action. This is a safety
mechanism to avoid having incompatible apps/data caused by partial
updates (e.g. incompatibility between SSBL and app).

Other changes:
* Clean factory data RAM buffer

* Increase reset resilience during OTA

During OTA, if factory data is updated, it is firstly backed up
in a PDM entry with id kNvmId_FactoryDataBackup. This entry should
be deleted only if the OTA entry state is otaApplied, which means
the device reset happened as expected.

If OTA entry state is not otaApplied, it means the reset was caused
by a different factor (e.g. power loss etc.) and the factory data
should be restored from the PDM (for the default registered mechanism).

* AbortAction should delete PDM id for factory data backup

* Add reset state for OTATlvProcessor base class

Derived classes should call OTATlvProcessor::ClearInternal() whenever
they want to reset their state.

* Update abort action for firmware processor

OTA_ResetCurrentEepromAddress should be called before setting
the offset to 0 through OTA_SetStartEepromOffset. Otherwise,
a check in OTA_SetStartEepromOffset will fail and the state is
not reset correctly.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Add SPIFI_DUAL_MODE_SUPPORT info in README files

For K32W041AM, the multi-image SSBL must also be compiled with
SPIFI_DUAL_MODE_SUPPORT=1.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Enclose CheckOtaEntry in OTA flag

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Enclose factory data backup usage in corresponding flag

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Update SDK in README files

Fix minor issue with image partitions information.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Fix DiagnosticDataProvider memory leak

GetNetworkInterfaces returns some dynamically allocated data,
which is supposed to be freed upon calling ReleaseNetworkInterfaces.

Our platform implementation was using the default implementation of
ReleaseNetworkInterfaces (which does nothing). This is an obvious memory leak,
since subsequent calls to GetNetworkInterfaces dynamically allocated data that
was never freed.

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Automate output binary signing

Add BUILD.gn changes to call a python script postbuild
that signs the output binary.

Add signing python script.

Update readme files.

Signed-off-by: Andrei Menzopol <[email protected]>

* [K32W0] Fix chip_crypto_flavor typo

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Bump ot-nxp to latest

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Fix OTA generation tool

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Bump ot-nxp to latest

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Sync scripts and generated data with development

Updated manufacturing flow.

Signed-off-by: Mihai Ignat <[email protected]>
Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Bump ot-nxp to latest

Signed-off-by: Marius Tache <[email protected]>

* Restyled by whitespace

* Restyled by clang-format

* Restyled by gn

* Restyled by prettier-markdown

* Restyled by shellharden

* Restyled by shfmt

* Restyled by autopep8

* Restyled by isort

* [K32W0] Fix spell check

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Remove some binary examples (not used)

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Fix some lint errors

Signed-off-by: Marius Tache <[email protected]>

* [K32W0] Update workflow example yaml to latest

Signed-off-by: Marius Tache <[email protected]>

* Restyled by prettier-markdown

* [K32W0] Fix script issues

Signed-off-by: Marius Tache <[email protected]>

* Restyled by autopep8

* Restyled by isort

* [K32W0] Add PDM ID base value for apps

Applications should use kNvmId_ApplicationBase alongside an
offset to generate their own PDM IDs.

Signed-off-by: Marius Tache <[email protected]>

* Restyled by clang-format

---------

Signed-off-by: Marius Tache <[email protected]>
Signed-off-by: Andrei Menzopol <[email protected]>
Signed-off-by: Mihai Ignat <[email protected]>
Co-authored-by: tanyue518 <[email protected]>
Co-authored-by: Martin Cuvelier <[email protected]>
Co-authored-by: Mihai Ignat <[email protected]>
Co-authored-by: Andrei Menzopol <[email protected]>
Co-authored-by: Restyled.io <[email protected]>
andy31415 pushed a commit that referenced this pull request Jun 21, 2023
* [K32W0] Sync with SDK NCCL change



* [K32W0] Add a flag chip_with_pdm_encryption to disable PDM encryption

* [K32W0] Fix name for OPENTHREAD_CONFIG_MAC_DEFAULT_MAX_FRAME_RETRIES_DIRECT

* [K32W0] Fix reboot reason bug

* [K32W0] Change date type for rebootCause, uint8_t is enough

* [K32W0] Add stop advertising retry

If stop advertising fails (timeout on event wait), then
rearm the timer as fast as possible to retry.
Once stop advertising is successful, slow advertising can start.



* [K32W0] Add ExitAction to OTATlvProcessor API

An OTA TLV processor should have the option of executing an action
when before a new processor is selected. This is called an exit
action. It should be useful in the context of transferring multiple
OTA images in external flash.



* [K32W0] Update OTA SDK usage

* Application and bootloader processors are now the same, referred to as
firmware processor.
* Application can now register callbacks for descriptor
processing.
* When using default processors, the OTA flags gOTAUseCustomOtaEntry
and gOTAAllowCustomStartAddress are defined and set to 1.



* [K32W0] Add JSON support for custom TLVs

*A user can now specify a custom TLV format (tag, descriptor and path)
by following the design of the ota_payload.schema. Option `--json` should
be used to specify the JSON file path.
* Add SSBL payload generation.



* [K32W0] Call ExitAction from TLV processor when all block has been consumed - Move code from ApplyAction to ExitAction method

* [K32W0] Update usage of new OTA SDK APIs

* [K32W0] Set custom OTA entry flags

Custom OTA entry structure will be saved at the top of external flash by default.
Fix heap start address. It should start after the stack size is subtracted from the top.



* [K32W0] Access OTA entry at Init and check OTA status

* [K32W0] Update OTA tool to support SSBL

Add a few examples to generate:
* application update image
* factory data update image
* SSBL update image
* app + SSBL + factory data update image
* maximum number of custom OTA entries image

Add README for K32W OTA.



* [K32W0] Add example for max entries testing



* [K32W0] Split default processors options

* chip_enable_ota_firmware_processor enables the firmware (App/SSBL)
processor. Enabled by default.
* chip_enable_ota_factory_data_processor enables the factory data
processor. Disabled by default.



* [K32W0] Update README SSBL/PSECT sections



* [K32W0] Bring README files up to date



* [K32W0] Fix chip_crypto_flavour name



* [K32W0] Fix readmes for k32w0 apps

* [K32W0] Update SecLib path in SDK build file



* [K32W0] Fix typo in README files regarding OTA image tool



* [K32W0] Extend factory data restore mechanism

The default restore mechanism is implemented as a weak function:
`FactoryDataDefaultRestoreMechanism`. It is registered in
`K32W0FactoryDataProvider::Init`, before factory data validation,
and it can be overwritten at application level.

Application can register additional restore mechanisms using the API:
`K32W0FactoryDataProvider::RegisterRestoreMechanism`.



* [K32W0] Improve rotating device id

Add README section related to rotating device id.
If unique id is not found in factory data, use the
default one.



* [K32W0] Fix error status for rotating device id getter



* [K32W0] Add retry mechanism when OTA is aborted

Upon an aborted transfer, the OTA will retry a query on the
backed up provider if CONFIG_CHIP_K32W0_OTA_ABORT_HOOK is set.

The retry mechanism is disabled by default.



* [K32W0] Add ota_custom_entry_address option

ota_custom_entry_address specifies at which address in external flash
the OTA custom entry is saved during OTA. By default, it is set to the
end of the PDM area: 0x000C1000.

Add internal/external flash description in linker.



* [K32W0] Revert all applied actions upon error

AbortAction for all selected OTA TLV processors will be called
if any processor fails to apply its action. This is a safety
mechanism to avoid having incompatible apps/data caused by partial
updates (e.g. incompatibility between SSBL and app).

Other changes:
* Clean factory data RAM buffer

* Increase reset resilience during OTA

During OTA, if factory data is updated, it is firstly backed up
in a PDM entry with id kNvmId_FactoryDataBackup. This entry should
be deleted only if the OTA entry state is otaApplied, which means
the device reset happened as expected.

If OTA entry state is not otaApplied, it means the reset was caused
by a different factor (e.g. power loss etc.) and the factory data
should be restored from the PDM (for the default registered mechanism).

* AbortAction should delete PDM id for factory data backup

* Add reset state for OTATlvProcessor base class

Derived classes should call OTATlvProcessor::ClearInternal() whenever
they want to reset their state.

* Update abort action for firmware processor

OTA_ResetCurrentEepromAddress should be called before setting
the offset to 0 through OTA_SetStartEepromOffset. Otherwise,
a check in OTA_SetStartEepromOffset will fail and the state is
not reset correctly.



* [K32W0] Add SPIFI_DUAL_MODE_SUPPORT info in README files

For K32W041AM, the multi-image SSBL must also be compiled with
SPIFI_DUAL_MODE_SUPPORT=1.



* [K32W0] Enclose CheckOtaEntry in OTA flag



* [K32W0] Enclose factory data backup usage in corresponding flag



* [K32W0] Update SDK in README files

Fix minor issue with image partitions information.



* [K32W0] Fix DiagnosticDataProvider memory leak

GetNetworkInterfaces returns some dynamically allocated data,
which is supposed to be freed upon calling ReleaseNetworkInterfaces.

Our platform implementation was using the default implementation of
ReleaseNetworkInterfaces (which does nothing). This is an obvious memory leak,
since subsequent calls to GetNetworkInterfaces dynamically allocated data that
was never freed.



* [K32W0] Automate output binary signing

Add BUILD.gn changes to call a python script postbuild
that signs the output binary.

Add signing python script.

Update readme files.



* [K32W0] Fix chip_crypto_flavor typo



* [K32W0] Bump ot-nxp to latest



* [K32W0] Fix OTA generation tool



* [K32W0] Bump ot-nxp to latest



* [K32W0] Sync scripts and generated data with development

Updated manufacturing flow.




* [K32W0] Bump ot-nxp to latest



* Restyled by whitespace

* Restyled by clang-format

* Restyled by gn

* Restyled by prettier-markdown

* Restyled by shellharden

* Restyled by shfmt

* Restyled by autopep8

* Restyled by isort

* [K32W0] Fix spell check



* [K32W0] Remove some binary examples (not used)



* [K32W0] Fix some lint errors



* [K32W0] Update workflow example yaml to latest



* Restyled by prettier-markdown

* [K32W0] Fix script issues



* Restyled by autopep8

* Restyled by isort

* [K32W0] Add PDM ID base value for apps

Applications should use kNvmId_ApplicationBase alongside an
offset to generate their own PDM IDs.



* Restyled by clang-format

---------

Signed-off-by: Marius Tache <[email protected]>
Signed-off-by: Andrei Menzopol <[email protected]>
Signed-off-by: Mihai Ignat <[email protected]>
Co-authored-by: tanyue518 <[email protected]>
Co-authored-by: Martin Cuvelier <[email protected]>
Co-authored-by: Mihai Ignat <[email protected]>
Co-authored-by: Andrei Menzopol <[email protected]>
Co-authored-by: Restyled.io <[email protected]>
@GabrielCouturier GabrielCouturier deleted the upstream-k32w0-2.6.11 branch November 10, 2023 08:13
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.

8 participants