oxidecomputer / oxidecomputer/hubris

Allow ovewrite of updated images without requiring a Reset

Open
#1,022 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

lpc55 robustness security service processor
Dominant language
Rust
Stars
3.6k
Forks
239
Avg merge
1d 12h
Merged PRs (30d)
23

Description

The update servers on both the RoT and SP (and I believe the control-plane-agent) will not allow an update to start if one has already completed without a reset. While this prevents accidentally reflashing the same image as things currently stand, it prevents the ability to fix an accidental flash which may boot into a bad image before reboot. This could occur and be noticed if, for instance, we staged updates on multiple devices, but only reset them 1 by 1. We'd discover the issue and would want to replace the broken image if possible before reset.

While this doesn't protect against power outages, or things of that nature, it gives us another lever of control that may be useful.

CC @jgallagher @labbott @lzrd @cbiffle

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the update-server handling for the RoT, SP, and control-plane-agent, then reproduce an update that completes without a reset followed by a second update attempt. Done means an updated image can be replaced before reset while retaining protection against accidental reflashing; verify the behavior across the named update servers.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
embedded-iot
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.