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] Automatically build OTA image #13640

Merged
merged 1 commit into from
Jan 18, 2022

Conversation

Damian-Nordic
Copy link
Contributor

Problem

We need a way to build Matter OTA image as part of the build process.

Change overview

  1. Add certain software configuration, such as vendor ID, product ID etc, to Kconfig.
  2. Use values of the Kconfig variables in existing CHIP project configuration.
  3. Add two more Kconfig variables: OTA_IMAGE_BUILD and OTA_IMAGE_EXTRA_ARGS. The first one enables building OTA image file using the ota_image_tool.py script, and the second one allows to pass some extra arguments to that script.

Testing

Build only - verified that the generate image is valid using ota_image_tool.py script.

1. Add certain software configuration, such as vendor ID,
   product ID etc, to Kconfig.
2. Use values of the Kconfig variables in existing CHIP
   project configuration.
3. Add two more Kconfig variables: OTA_IMAGE_BUILD and
   OTA_IMAGE_EXTRA_ARGS. The first one enables building
   OTA image file using the ota_image_tool.py script, and
   the second one allows to pass some extra arguments to
   that script.
@github-actions
Copy link

github-actions bot commented Jan 18, 2022

PR #13640: Size comparison from d611c63 to 2a59049

Decreases (2 builds for nrfconnect)
platform target config section d611c63 2a59049 change % change
nrfconnect pump-app nrf52840dk_nrf52840 (read/write) 915643 915627 -16 -0.0
text 615492 615488 -4 -0.0
pump-controller-app nrf52840dk_nrf52840 text 611416 611412 -4 -0.0
Full report (32 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section d611c63 2a59049 change % change
efr32 lighting-app BRD4161A (read only) 834868 834868 0 0.0
(read/write) 127628 127628 0 0.0
.bss 125744 125744 0 0.0
.data 1884 1884 0 0.0
.text 834860 834860 0 0.0
BRD4161A+rpc (read only) 822264 822264 0 0.0
(read/write) 144288 144288 0 0.0
.bss 142304 142304 0 0.0
.data 1984 1984 0 0.0
.text 822256 822256 0 0.0
window-app BRD4161A (read only) 805456 805456 0 0.0
(read/write) 126320 126320 0 0.0
.bss 124480 124480 0 0.0
.data 1836 1836 0 0.0
.text 805448 805448 0 0.0
esp32 all-clusters-app c3devkit (read only) 912384 912384 0 0.0
(read/write) 1316682 1316682 0 0.0
.dram0.bss 70528 70528 0 0.0
.dram0.data 14284 14284 0 0.0
.flash.rodata 178384 178384 0 0.0
.flash.text 912384 912384 0 0.0
.iram0.text 62056 62056 0 0.0
m5stack (read only) 961223 961223 0 0.0
(read/write) 448848 448848 0 0.0
.dram0.bss 74984 74984 0 0.0
.dram0.data 34064 34064 0 0.0
.flash.rodata 207672 207672 0 0.0
.flash.text 955839 955839 0 0.0
.iram0.text 123399 123399 0 0.0
k32w light k32w061+release (read/write) 659080 659080 0 0.0
.bss 77136 77136 0 0.0
.data 1852 1852 0 0.0
.text 574292 574292 0 0.0
lock k32w061+release (read/write) 661812 661812 0 0.0
.bss 77432 77432 0 0.0
.data 1872 1872 0 0.0
.text 576708 576708 0 0.0
linux chip-tool-ipv6only arm64 (read only) 8049492 8049492 0 0.0
(read/write) 370641 370641 0 0.0
.bss 55217 55217 0 0.0
.data 1096 1096 0 0.0
.data.rel.ro 245856 245856 0 0.0
.dynamic 560 560 0 0.0
.got 64776 64776 0 0.0
.init 24 24 0 0.0
.init_array 168 168 0 0.0
.rodata 419420 419420 0 0.0
.text 6841076 6841076 0 0.0
thermostat-no-ble arm64 (read only) 2042812 2042812 0 0.0
(read/write) 145969 145969 0 0.0
.bss 65089 65089 0 0.0
.data 880 880 0 0.0
.data.rel.ro 73016 73016 0 0.0
.dynamic 560 560 0 0.0
.got 4048 4048 0 0.0
.init 24 24 0 0.0
.init_array 304 304 0 0.0
.rodata 129884 129884 0 0.0
.text 1698336 1698336 0 0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2350112 2350112 0 0.0
.bss 189220 189220 0 0.0
.data 5320 5320 0 0.0
.text 1312688 1312688 0 0.0
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2334568 2334568 0 0.0
.bss 180760 180760 0 0.0
.data 5568 5568 0 0.0
.text 1297168 1297168 0 0.0
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2304912 2304912 0 0.0
.bss 179768 179768 0 0.0
.data 5544 5544 0 0.0
.text 1267512 1267512 0 0.0
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1139712 1139712 0 0.0
.bss 11756 11756 0 0.0
.data 4368 4368 0 0.0
.text 103096 103096 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2054464 2054464 0 0.0
.bss 156876 156876 0 0.0
.data 4864 4864 0 0.0
.text 1017064 1017064 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 943419 943419 0 0.0
bss 119628 119628 0 0.0
rodata 108824 108824 0 0.0
text 637388 637388 0 0.0
nrf52840dk_nrf52840+rpc (read/write) 928899 928899 0 0.0
bss 116672 116672 0 0.0
rodata 101272 101272 0 0.0
text 632784 632784 0 0.0
nrf52840dongle_nrf52840 (read/write) 994095 994095 0 0.0
bss 122472 122472 0 0.0
rodata 113576 113576 0 0.0
text 669588 669588 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 853242 853242 0 0.0
bss 116416 116416 0 0.0
rodata 101996 101996 0 0.0
text 554312 554312 0 0.0
lock-app nrf52840dk_nrf52840 (read/write) 912779 912779 0 0.0
bss 118784 118784 0 0.0
rodata 103792 103792 0 0.0
text 612836 612836 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 822846 822846 0 0.0
bss 115600 115600 0 0.0
rodata 97016 97016 0 0.0
text 529796 529796 0 0.0
pigweed-app nrf52840dk_nrf52840 (read/write) 541835 541835 0 0.0
bss 52588 52588 0 0.0
rodata 50104 50104 0 0.0
text 376940 376940 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 915643 915627 -16 -0.0
bss 118548 118548 0 0.0
rodata 104152 104152 0 0.0
text 615492 615488 -4 -0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 910715 910715 0 0.0
bss 118572 118572 0 0.0
rodata 103264 103264 0 0.0
text 611416 611412 -4 -0.0
shell nrf52840dk_nrf52840 (read/write) 798655 798655 0 0.0
bss 109776 109776 0 0.0
rodata 78388 78388 0 0.0
text 533992 533992 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 711470 711470 0 0.0
bss 107664 107664 0 0.0
rodata 72688 72688 0 0.0
text 451668 451668 0 0.0
p6 all-clusters-app default (read/write) 2405224 2405224 0 0.0
.bss 117556 117556 0 0.0
.data 2600 2600 0 0.0
.text 1363488 1363488 0 0.0
light-app default (read/write) 2330080 2330080 0 0.0
.bss 106128 106128 0 0.0
.data 2392 2392 0 0.0
.text 1288344 1288344 0 0.0
lock-app default (read/write) 2299104 2299104 0 0.0
.bss 104976 104976 0 0.0
.data 2344 2344 0 0.0
.text 1257368 1257368 0 0.0
qpg lighting-app qpg6105+debug (read only) 565088 565088 0 0.0
(read/write) 146940 146940 0 0.0
.bss 89960 89960 0 0.0
.data 1048 1048 0 0.0
.text 559768 559768 0 0.0
lock-app qpg6105+debug (read only) 515500 515500 0 0.0
(read/write) 146936 146936 0 0.0
.bss 88584 88584 0 0.0
.data 972 972 0 0.0
.text 510180 510180 0 0.0
persistent-storage-app qpg6105+debug (read only) 106848 106848 0 0.0
(read/write) 146940 146940 0 0.0
.bss 38512 38512 0 0.0
.data 288 288 0 0.0
.text 101528 101528 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 840826 840826 0 0.0
bss 87316 87316 0 0.0
noinit 37160 37160 0 0.0
text 587790 587790 0 0.0

@andy31415
Copy link
Contributor

fast track: platform specific change

@andy31415 andy31415 merged commit 93bc7f7 into project-chip:master Jan 18, 2022
selissia pushed a commit to selissia/connectedhomeip that referenced this pull request Jan 28, 2022
1. Add certain software configuration, such as vendor ID,
   product ID etc, to Kconfig.
2. Use values of the Kconfig variables in existing CHIP
   project configuration.
3. Add two more Kconfig variables: OTA_IMAGE_BUILD and
   OTA_IMAGE_EXTRA_ARGS. The first one enables building
   OTA image file using the ota_image_tool.py script, and
   the second one allows to pass some extra arguments to
   that script.
step0035 pushed a commit to hank820/connectedhomeip that referenced this pull request Feb 8, 2022
1. Add certain software configuration, such as vendor ID,
   product ID etc, to Kconfig.
2. Use values of the Kconfig variables in existing CHIP
   project configuration.
3. Add two more Kconfig variables: OTA_IMAGE_BUILD and
   OTA_IMAGE_EXTRA_ARGS. The first one enables building
   OTA image file using the ota_image_tool.py script, and
   the second one allows to pass some extra arguments to
   that script.
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.

2 participants