Skip to content

loader: add ota#424

Open
gibix wants to merge 1 commit into
arduino:mainfrom
gibix:feat/ota
Open

loader: add ota#424
gibix wants to merge 1 commit into
arduino:mainfrom
gibix:feat/ota

Conversation

@gibix

@gibix gibix commented Apr 14, 2026

Copy link
Copy Markdown
Member

This is a first porting of portenta_ota and

The main "change" is that now the ota payload contains <llext loader + padding + user sketch>

Features

  • http
  • https
  • chunked http
  • lzss compression
  • example with ethernet
  • example with progress download
  • user callback for ota compleated

Boards

  • portentah7 (compile and tested)
  • opta
  • giga
  • c33

Step to reproduce

  • build extra/ota-pack
  • rebuild the core for you board
  • compile an example (blink) and save the .ota file from the output dir
  • run a simple http server python -m http.server 8000 in the directory that contains the sketch
  • flash the bootloader
  • flash the ota example sketch

@gibix gibix changed the title Feat/ota feat: ota Apr 14, 2026
@gibix gibix changed the title feat: ota feat: portenta ota Apr 14, 2026
@CLAassistant

CLAassistant commented Apr 14, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@gibix gibix changed the title feat: portenta ota feat: ota May 14, 2026
@gibix gibix marked this pull request as ready for review May 14, 2026 10:25
@gibix gibix changed the title feat: ota loader: add ota May 14, 2026
On boot, install /ota:/UPDATE.BIN into the user_sketch partition when
the file is present. Validates the inner sketch header and bounds, and
keeps UPDATE.BIN on post-erase failure so the next boot can retry.

Signed-off-by: Gilberto Conti <g.conti@arduino.cc>
@github-actions

Copy link
Copy Markdown

Built 0.55.3-0.pr.424.63+6d33c9d8

CI run FAILED: ❌ giga, ❌ nano33ble, ❌ nano_matter, ❌ nicla_sense, ❌ nicla_vision, ❌ opta, ❌ portentac33, ❌ portentah7, ❌ unoq, ❌ ek_ra8d1, ❌ frdm_mcxn947, ❌ frdm_rw612

ArtifactBoardCoreTestsRAMSketchesWarningsErrors
zephyr_contrib ek_ra8d1 📗

11.9%

2-2
frdm_mcxn947 7 🏷️

58.0%

2-2
frdm_rw612 2 🏷️

83.0%

2-2
zephyr_main giga 5 🏷️

54.7%

58-58
nano33ble 1 🏷️

78.8%

30-30
nano_matter 1 🏷️

⚠️ 86.1%

22-22
nicla_sense 2 🏷️

⚠️ 87.6%

18-18
nicla_vision 5 🏷️

57.0%

52-50 (+2*)
opta 5 🏷️

57.7%

62-62
portentac33 3 🏷️

⚠️ 95.8%

66-66
portentah7 4 🏷️

58.5%

74-74
zephyr_unoq unoq 📗

43.5%

56-56
Legend

BoardTestStatus description
🔥 🔥 Test run failed to complete.
🔴 Test completed with unexpected errors.
⁉️ ⁉️ Test was expected to fail but passed; exception entry is outdated.
✔️* 🚫 Test completed with errors, but all are known/expected.
✅* 🟡 Test completed with some warnings; no errors detected.
🟢 Test passed successfully, with no warnings or errors.
🌑 🌑 Test was skipped.

Caution

zephyr_contrib is blocked due to failures on ek_ra8d1, frdm_mcxn947, frdm_rw612!

Caution

zephyr_main is blocked due to failures on giga, nano33ble, nano_matter, nicla_sense, nicla_vision, opta, portentac33, portentah7!

Caution

zephyr_unoq is blocked due to failures on unoq!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants