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

[nrfconnect] Enabled factory data protection against writing in internal memory #20205

Conversation

ArekBalysNordic
Copy link
Contributor

Problem

Factory data flash partition should be protected from write by firmware and OTA DFU.
This partition can be replaced only via a programmer.

Change overview

Added Fprotect hardware flash protection driver to protect factory data partition against write.

Testing

Tested on nRF52DK

…emory

Factory data flash partition should be protected from write by firmware
and OTA DFU.
This partition can be replaced only via programmer.
@github-actions
Copy link

github-actions bot commented Jul 1, 2022

PR #20205: Size comparison from 6c6dca3 to f1477c7

Increases (3 builds for cc13x2_26x2, telink)
platform target config section 6c6dca3 f1477c7 change % change
cc13x2_26x2 all-clusters-minimal-app LP_CC2652R7 (read only) 654131 654139 8 0.0
.text 562236 562244 8 0.0
telink light-switch-app tlsr9518adk80d (read/write) 796384 796392 8 0.0
text 564904 564906 2 0.0
lighting-app tlsr9518adk80d text 581258 581260 2 0.0
Decreases (3 builds for cc13x2_26x2, efr32, nrfconnect)
platform target config section 6c6dca3 f1477c7 change % change
cc13x2_26x2 all-clusters-minimal-app LP_CC2652R7 (read/write) 196388 196380 -8 -0.0
efr32 lock-app BRD4161A+wf200 (read/write) 1126920 1126904 -16 -0.0
.text 980652 980636 -16 -0.0
nrfconnect lighting-app nrf52840dk_nrf52840 text 818252 818248 -4 -0.0
Full report (49 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
platform target config section 6c6dca3 f1477c7 change % change
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 665363 665363 0 0.0
(read/write) 185860 185860 0 0.0
.bss 74116 74116 0 0.0
.data 3356 3356 0 0.0
.rodata 88099 88099 0 0.0
.text 576948 576948 0 0.0
all-clusters-minimal-app LP_CC2652R7 (read only) 654131 654139 8 0.0
(read/write) 196388 196380 -8 -0.0
.bss 73412 73412 0 0.0
.data 3356 3356 0 0.0
.rodata 91579 91579 0 0.0
.text 562236 562244 8 0.0
lock-ftd LP_CC2652R7 (read only) 667943 667943 0 0.0
(read/write) 173424 173424 0 0.0
.bss 71148 71148 0 0.0
.data 3280 3280 0 0.0
.rodata 76191 76191 0 0.0
.text 591272 591272 0 0.0
lock-mtd LP_CC2652R7 (read only) 617359 617359 0 0.0
(read/write) 144264 144264 0 0.0
.bss 66868 66868 0 0.0
.data 3280 3280 0 0.0
.rodata 76071 76071 0 0.0
.text 540800 540800 0 0.0
pump-app LP_CC2652R7 (read only) 677287 677287 0 0.0
(read/write) 164928 164928 0 0.0
.bss 71228 71228 0 0.0
.data 3280 3280 0 0.0
.rodata 88439 88439 0 0.0
.text 588364 588364 0 0.0
pump-controller-app LP_CC2652R7 (read only) 663127 663127 0 0.0
(read/write) 179208 179208 0 0.0
.bss 71348 71348 0 0.0
.data 3276 3276 0 0.0
.rodata 84279 84279 0 0.0
.text 578368 578368 0 0.0
shell LP_CC2652R7 (read only) 657806 657806 0 0.0
(read/write) 188920 188920 0 0.0
.bss 76420 76420 0 0.0
.data 3360 3360 0 0.0
.rodata 84846 84846 0 0.0
.text 572644 572644 0 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 578750 578750 0 0.0
.app_xip_area 457528 457528 0 0.0
.bss 64184 64184 0 0.0
.data 716 716 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
lock cyw930739m2evb_01 (read/write) 580398 580398 0 0.0
.app_xip_area 458984 458984 0 0.0
.bss 64376 64376 0 0.0
.data 720 720 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 581814 581814 0 0.0
.app_xip_area 461440 461440 0 0.0
.bss 63392 63392 0 0.0
.data 660 660 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A (read/write) 1080172 1080172 0 0.0
.bss 132996 132996 0 0.0
.data 2048 2048 0 0.0
.text 945108 945108 0 0.0
BRD4161A+rpc (read/write) 1134532 1134532 0 0.0
.bss 149676 149676 0 0.0
.data 2260 2260 0 0.0
.text 982576 982576 0 0.0
BRD4161A+rs911x (read/write) 946276 946276 0 0.0
.bss 140768 140768 0 0.0
.data 2048 2048 0 0.0
.text 803440 803440 0 0.0
lock-app BRD4161A+wf200 (read/write) 1126920 1126904 -16 -0.0
.bss 144184 144184 0 0.0
.data 2060 2060 0 0.0
.text 980652 980636 -16 -0.0
window-app BRD4161A (read/write) 1065436 1065436 0 0.0
.bss 133076 133076 0 0.0
.data 2076 2076 0 0.0
.text 930260 930260 0 0.0
esp32 all-clusters-app c3devkit (read only) 1018702 1018702 0 0.0
(read/write) 1484906 1484906 0 0.0
.dram0.bss 70080 70080 0 0.0
.dram0.data 14600 14600 0 0.0
.flash.rodata 214792 214792 0 0.0
.flash.text 1018702 1018702 0 0.0
.iram0.text 62902 62902 0 0.0
m5stack (read only) 1072735 1072735 0 0.0
(read/write) 486984 486984 0 0.0
.dram0.bss 75600 75600 0 0.0
.dram0.data 34144 34144 0 0.0
.flash.rodata 245244 245244 0 0.0
.flash.text 1067351 1067351 0 0.0
.iram0.text 123267 123267 0 0.0
k32w light k32w061+release (read/write) 658112 658112 0 0.0
.bss 69516 69516 0 0.0
.data 1992 1992 0 0.0
.text 580804 580804 0 0.0
lock k32w061+release (read/write) 684692 684692 0 0.0
.bss 69980 69980 0 0.0
.data 2004 2004 0 0.0
.text 606908 606908 0 0.0
linux all-clusters-app debug (read only) 2955297 2955297 0 0.0
(read/write) 154744 154744 0 0.0
.bss 61536 61536 0 0.0
.data 2048 2048 0 0.0
.data.rel.ro 84968 84968 0 0.0
.dynamic 608 608 0 0.0
.got 4536 4536 0 0.0
.init 27 27 0 0.0
.init_array 1040 1040 0 0.0
.rodata 263229 263229 0 0.0
.text 2514882 2514882 0 0.0
all-clusters-minimal-app debug (read only) 2809441 2809441 0 0.0
(read/write) 146680 146680 0 0.0
.bss 60864 60864 0 0.0
.data 2048 2048 0 0.0
.data.rel.ro 77608 77608 0 0.0
.dynamic 608 608 0 0.0
.got 4488 4488 0 0.0
.init 27 27 0 0.0
.init_array 1040 1040 0 0.0
.rodata 264925 264925 0 0.0
.text 2369506 2369506 0 0.0
bridge-app debug+rpc (read only) 2312409 2312409 0 0.0
(read/write) 125504 125504 0 0.0
.bss 48928 48928 0 0.0
.data 3824 3824 0 0.0
.data.rel.ro 66984 66984 0 0.0
.dynamic 608 608 0 0.0
.got 4392 4392 0 0.0
.init 27 27 0 0.0
.init_array 728 728 0 0.0
.rodata 197952 197952 0 0.0
.text 1952722 1952722 0 0.0
chip-tool debug (read only) 10171941 10171941 0 0.0
(read/write) 611816 611816 0 0.0
.bss 24384 24384 0 0.0
.data 1088 1088 0 0.0
.data.rel.ro 580032 580032 0 0.0
.dynamic 624 624 0 0.0
.got 5016 5016 0 0.0
.init 27 27 0 0.0
.init_array 640 640 0 0.0
.rodata 509093 509093 0 0.0
.text 8251813 8251813 0 0.0
chip-tool-no-interactive-ipv6only arm64 (read only) 9903748 9903748 0 0.0
(read/write) 676609 676609 0 0.0
.bss 42609 42609 0 0.0
.data 1152 1152 0 0.0
.data.rel.ro 615592 615592 0 0.0
.dynamic 528 528 0 0.0
.got 13448 13448 0 0.0
.init 24 24 0 0.0
.init_array 192 192 0 0.0
.rodata 471764 471764 0 0.0
.text 7890084 7890084 0 0.0
lighting-app debug+rpc (read only) 2548185 2548185 0 0.0
(read/write) 129528 129528 0 0.0
.bss 49440 49440 0 0.0
.data 2096 2096 0 0.0
.data.rel.ro 72136 72136 0 0.0
.dynamic 608 608 0 0.0
.got 4392 4392 0 0.0
.init 27 27 0 0.0
.init_array 816 816 0 0.0
.rodata 213640 213640 0 0.0
.text 2164578 2164578 0 0.0
lock-app debug (read only) 2510577 2510577 0 0.0
(read/write) 124504 124504 0 0.0
.bss 47840 47840 0 0.0
.data 1712 1712 0 0.0
.data.rel.ro 69096 69096 0 0.0
.dynamic 608 608 0 0.0
.got 4424 4424 0 0.0
.init 27 27 0 0.0
.init_array 784 784 0 0.0
.rodata 228328 228328 0 0.0
.text 2117106 2117106 0 0.0
ota-provider-app debug (read only) 2319089 2319089 0 0.0
(read/write) 118312 118312 0 0.0
.bss 47488 47488 0 0.0
.data 1944 1944 0 0.0
.data.rel.ro 63096 63096 0 0.0
.dynamic 608 608 0 0.0
.got 4488 4488 0 0.0
.init 27 27 0 0.0
.init_array 672 672 0 0.0
.rodata 203416 203416 0 0.0
.text 1952898 1952898 0 0.0
ota-requestor-app debug (read only) 2436257 2436257 0 0.0
(read/write) 125216 125216 0 0.0
.bss 49856 49856 0 0.0
.data 2232 2232 0 0.0
.data.rel.ro 67288 67288 0 0.0
.dynamic 608 608 0 0.0
.got 4480 4480 0 0.0
.init 27 27 0 0.0
.init_array 728 728 0 0.0
.rodata 207424 207424 0 0.0
.text 2057682 2057682 0 0.0
shell debug (read only) 2544961 2544961 0 0.0
(read/write) 141064 141064 0 0.0
.bss 57448 57448 0 0.0
.data 1264 1264 0 0.0
.data.rel.ro 76688 76688 0 0.0
.dynamic 608 608 0 0.0
.got 4096 4096 0 0.0
.init 27 27 0 0.0
.init_array 920 920 0 0.0
.rodata 227346 227346 0 0.0
.text 2161250 2161250 0 0.0
thermostat-no-ble arm64 (read only) 2591988 2591988 0 0.0
(read/write) 158289 158289 0 0.0
.bss 65249 65249 0 0.0
.data 1704 1704 0 0.0
.data.rel.ro 83240 83240 0 0.0
.dynamic 528 528 0 0.0
.got 5072 5072 0 0.0
.init 24 24 0 0.0
.init_array 400 400 0 0.0
.rodata 165348 165348 0 0.0
.text 2186864 2186864 0 0.0
tv-app debug (read only) 3098689 3098689 0 0.0
(read/write) 257704 257704 0 0.0
.bss 167016 167016 0 0.0
.data 4848 4848 0 0.0
.data.rel.ro 79392 79392 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 249216 249216 0 0.0
.text 2661570 2661570 0 0.0
tv-casting-app debug (read only) 5556057 5556057 0 0.0
(read/write) 161712 161712 0 0.0
.bss 50248 50248 0 0.0
.data 2416 2416 0 0.0
.data.rel.ro 102824 102824 0 0.0
.dynamic 608 608 0 0.0
.got 4720 4720 0 0.0
.init 27 27 0 0.0
.init_array 864 864 0 0.0
.rodata 343337 343337 0 0.0
.text 4935794 4935794 0 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2447312 2447312 0 0.0
.bss 213940 213940 0 0.0
.data 5872 5872 0 0.0
.text 1409956 1409956 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1173131 1173131 0 0.0
bss 142884 142884 0 0.0
rodata 141356 141356 0 0.0
text 809976 809976 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1153983 1153983 0 0.0
bss 142120 142120 0 0.0
rodata 133288 133288 0 0.0
text 799672 799672 0 0.0
lighting-app nrf52840dk_nrf52840 (read/write) 1165291 1165291 0 0.0
bss 144447 144447 0 0.0
rodata 123732 123732 0 0.0
text 818252 818248 -4 -0.0
nrf52840dk_nrf52840+rpc (read/write) 1135579 1135579 0 0.0
bss 144892 144892 0 0.0
rodata 115204 115204 0 0.0
text 796260 796260 0 0.0
nrf52840dongle_nrf52840 (read/write) 1072091 1072091 0 0.0
bss 151678 151678 0 0.0
rodata 92772 92772 0 0.0
text 746640 746640 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 1068974 1068974 0 0.0
bss 140818 140818 0 0.0
rodata 116148 116148 0 0.0
text 730960 730960 0 0.0
lock-app nrf52840dk_nrf52840 (read/write) 1125259 1125259 0 0.0
bss 135415 135415 0 0.0
rodata 141172 141172 0 0.0
text 769972 769972 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 1029242 1029242 0 0.0
bss 131818 131818 0 0.0
rodata 133648 133648 0 0.0
text 682740 682740 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 1078259 1078259 0 0.0
bss 134342 134342 0 0.0
rodata 117116 117116 0 0.0
text 747956 747956 0 0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 1066143 1066143 0 0.0
bss 134137 134137 0 0.0
rodata 113896 113896 0 0.0
text 739328 739328 0 0.0
p6 all-clusters-app default (read/write) 2562928 2562928 0 0.0
.bss 149120 149120 0 0.0
.data 2776 2776 0 0.0
.text 1521192 1521192 0 0.0
all-clusters-minimal-app default (read/write) 2508792 2508792 0 0.0
.bss 148400 148400 0 0.0
.data 2776 2776 0 0.0
.text 1467056 1467056 0 0.0
light-app default (read/write) 2439160 2439160 0 0.0
.bss 140456 140456 0 0.0
.data 2592 2592 0 0.0
.text 1397424 1397424 0 0.0
lock-app default (read/write) 2465576 2465576 0 0.0
.bss 140304 140304 0 0.0
.data 2600 2600 0 0.0
.text 1423840 1423840 0 0.0
telink light-switch-app tlsr9518adk80d (read/write) 796384 796392 8 0.0
bss 70560 70560 0 0.0
noinit 40416 40416 0 0.0
text 564904 564906 2 0.0
lighting-app tlsr9518adk80d (read/write) 816252 816252 0 0.0
bss 71404 71404 0 0.0
noinit 40416 40416 0 0.0
text 581258 581260 2 0.0

@ArekBalysNordic ArekBalysNordic changed the title [nrfconnect] Enabled factory data protection from write in internal memory [nrfconnect] Enabled factory data protection against writing in internal memory Jul 1, 2022
@woody-apple
Copy link
Contributor

Fast tracking platform updates

@tcarmelveilleux tcarmelveilleux merged commit 74c51c1 into project-chip:master Jul 4, 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.

4 participants