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

Update stage0 #209

Merged
merged 1 commit into from
Apr 29, 2024
Merged

Update stage0 #209

merged 1 commit into from
Apr 29, 2024

Commits on Apr 23, 2024

  1. Add the ability to update the RoT boot loader (stage0)

    SpComponent::Stage0 (boot loader) is distinct from SpComponent::ROT (Hubris).
    
    There is no support for an atomic switch-over to stage0 bank 1 (stage0next).
    Copy from stage0next to stage0 is allowed if stage0next signatuire is valid at boot
    time and contents still match boot-time contents.
    
    Note: Only one stage0 update should be in process in a rack at a time to reduce the
    chance of an interrupted copy bricking a subsystem.
    
    RotStateV3 includes the FWID of all RoT image flash banks and error
    information if an image is not valid. The FWID for invalid banks is
    always computed and reported. This allows us to distinguish between
    completly erased banks and those that are not completely erased:
    
    The FWID over any erased bank is the "a7ff..." value below:
    ```
    $ touch empty.bin
    $ rot-fwid empty.bin
    empty.bin 0 a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a
    ```
    
    Add a versioned RoT Boot Info message to facilitate update of RoT Hubris independant
    of SP or RoT being on a later version than the other.
    
    SpStateV3 does not contain RotState because coupling them and allowing for version skew
    over-complicates things.
    
    Implement Display for RotState* for nicer human output.
    
    Bumped the faux-mgs crate version
    
    Add test for SpStateV3
    lzrd committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    e8a4d55 View commit details
    Browse the repository at this point in the history