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

[OTA] Support multiple sequential BDX transfers #13329

Merged
merged 1 commit into from
Jan 6, 2022

Conversation

carol-apple
Copy link
Contributor

Problem

Once an initial BDX transfer occurs for OTA, a sequential transfer fails. The initialization of the BDX transfer session was being done when the OTA Provider is first started. Any sequential transfers are in a bad state and cannot proceed.
Fixes: #9737

Change overview

  • PrepareForTransfer should be called for every new OTA download after QueryImage request is received
  • An instance of BdxOtaSender has been moved into OTAProviderExample class so that each new transfer can be properly initialized
  • The filed to be transferred is now closed after each block is processed
  • Some states within the BDXDownloader class are reset after transfer complete

Testing

The basic Linux OTA requestor/provider transfer completes successfully. Any subsequent transfers also complete successfully.

@github-actions
Copy link

github-actions bot commented Jan 6, 2022

PR #13329: Size comparison from a0e8e3a to d514b64

Full report (31 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section a0e8e3a d514b64 change % change
efr32 lighting-app BRD4161A (read only) 829732 829732 0 0.0
(read/write) 127068 127068 0 0.0
.bss 125192 125192 0 0.0
.data 1876 1876 0 0.0
.text 829724 829724 0 0.0
BRD4161A+rpc (read only) 817344 817344 0 0.0
(read/write) 143736 143736 0 0.0
.bss 141760 141760 0 0.0
.data 1976 1976 0 0.0
.text 817336 817336 0 0.0
window-app BRD4161A (read only) 803180 803180 0 0.0
(read/write) 126008 126008 0 0.0
.bss 124176 124176 0 0.0
.data 1832 1832 0 0.0
.text 803172 803172 0 0.0
esp32 all-clusters-app c3devkit (read only) 889178 889178 0 0.0
(read/write) 1313770 1313770 0 0.0
.dram0.bss 69288 69288 0 0.0
.dram0.data 14236 14236 0 0.0
.flash.rodata 177184 177184 0 0.0
.flash.text 889178 889178 0 0.0
.iram0.text 62254 62254 0 0.0
m5stack (read only) 949083 949083 0 0.0
(read/write) 445352 445352 0 0.0
.dram0.bss 73776 73776 0 0.0
.dram0.data 34064 34064 0 0.0
.flash.rodata 206504 206504 0 0.0
.flash.text 943699 943699 0 0.0
.iram0.text 122671 122671 0 0.0
k32w light k32w061+release (read/write) 648472 648472 0 0.0
.bss 76216 76216 0 0.0
.data 1904 1904 0 0.0
.text 564552 564552 0 0.0
lock k32w061+release (read/write) 633296 633296 0 0.0
.bss 75928 75928 0 0.0
.data 1860 1860 0 0.0
.text 549708 549708 0 0.0
linux chip-tool-ipv6only arm64 (read only) 7011644 7011644 0 0.0
(read/write) 324849 324849 0 0.0
.bss 54209 54209 0 0.0
.data 1096 1096 0 0.0
.data.rel.ro 208968 208968 0 0.0
.dynamic 560 560 0 0.0
.got 56888 56888 0 0.0
.init 24 24 0 0.0
.init_array 168 168 0 0.0
.rodata 383108 383108 0 0.0
.text 5936260 5936260 0 0.0
thermostat-no-ble arm64 (read only) 2024412 2024412 0 0.0
(read/write) 144049 144049 0 0.0
.bss 64001 64001 0 0.0
.data 880 880 0 0.0
.data.rel.ro 72296 72296 0 0.0
.dynamic 560 560 0 0.0
.got 3936 3936 0 0.0
.init 24 24 0 0.0
.init_array 296 296 0 0.0
.rodata 128524 128524 0 0.0
.text 1683216 1683216 0 0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2346288 2346288 0 0.0
.bss 188548 188548 0 0.0
.data 5312 5312 0 0.0
.text 1308864 1308864 0 0.0
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2329512 2329512 0 0.0
.bss 180624 180624 0 0.0
.data 5552 5552 0 0.0
.text 1292112 1292112 0 0.0
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2302672 2302672 0 0.0
.bss 179672 179672 0 0.0
.data 5544 5544 0 0.0
.text 1265272 1265272 0 0.0
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1140008 1140008 0 0.0
.bss 11756 11756 0 0.0
.data 4368 4368 0 0.0
.text 103392 103392 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2053888 2053888 0 0.0
.bss 156972 156972 0 0.0
.data 4864 4864 0 0.0
.text 1016488 1016488 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 935763 935763 0 0.0
bss 118188 118188 0 0.0
rodata 108048 108048 0 0.0
text 631948 631948 0 0.0
nrf52840dk_nrf52840+rpc (read/write) 922115 922115 0 0.0
bss 115232 115232 0 0.0
rodata 101464 101464 0 0.0
text 627260 627260 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 846706 846706 0 0.0
bss 116080 116080 0 0.0
rodata 101220 101220 0 0.0
text 548888 548888 0 0.0
lock-app nrf52840dk_nrf52840 (read/write) 907875 907875 0 0.0
bss 117376 117376 0 0.0
rodata 103320 103320 0 0.0
text 609820 609820 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 819046 819046 0 0.0
bss 115296 115296 0 0.0
rodata 96544 96544 0 0.0
text 526796 526796 0 0.0
pigweed-app nrf52840dk_nrf52840 (read/write) 542351 542351 0 0.0
bss 52588 52588 0 0.0
rodata 50668 50668 0 0.0
text 376892 376892 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 909151 909151 0 0.0
bss 117136 117136 0 0.0
rodata 103532 103532 0 0.0
text 611032 611032 0 0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 905987 905987 0 0.0
bss 117164 117164 0 0.0
rodata 102792 102792 0 0.0
text 608568 608568 0 0.0
shell nrf52840dk_nrf52840 (read/write) 796843 796843 0 0.0
bss 109536 109536 0 0.0
rodata 78188 78188 0 0.0
text 532664 532664 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 709670 709670 0 0.0
bss 107424 107424 0 0.0
rodata 72492 72492 0 0.0
text 450340 450340 0 0.0
p6 all-clusters-app default (read/write) 2401288 2401288 0 0.0
.bss 116748 116748 0 0.0
.data 2592 2592 0 0.0
.text 1359552 1359552 0 0.0
light-app default (read/write) 2324568 2324568 0 0.0
.bss 105872 105872 0 0.0
.data 2384 2384 0 0.0
.text 1282832 1282832 0 0.0
lock-app default (read/write) 2296768 2296768 0 0.0
.bss 104752 104752 0 0.0
.data 2336 2336 0 0.0
.text 1255032 1255032 0 0.0
qpg lighting-app qpg6105+debug (read only) 531664 531664 0 0.0
(read/write) 146936 146936 0 0.0
.bss 86672 86672 0 0.0
.data 1004 1004 0 0.0
.text 526344 526344 0 0.0
lock-app qpg6105+debug (read only) 503444 503444 0 0.0
(read/write) 146940 146940 0 0.0
.bss 85808 85808 0 0.0
.data 952 952 0 0.0
.text 498124 498124 0 0.0
persistent-storage-app qpg6105+debug (read only) 106448 106448 0 0.0
(read/write) 146938 146938 0 0.0
.bss 36146 36146 0 0.0
.data 288 288 0 0.0
.text 101128 101128 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 832242 832242 0 0.0
bss 86856 86856 0 0.0
noinit 37160 37160 0 0.0
text 580682 580682 0 0.0

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.

[ota-provider-app] support multiple sequential BDX transfers
3 participants