Skip to content

Configure and store "golden" image #312

Description

@AtomicFS

Is your feature request related to a problem? Please describe.
It would be incredibly useful to have some means of configuring and also storing few special firmware-images. What I have in mind:

  • stock firmware - a copy of the stock firmware that came with the board
  • good known firmware (golden image) which is firmware that is known to work, or last good known firmware from development
  • last used firmware - copy of the last firmware that was flashed that is neither of the above
  • and would also be handy to have a firmware history (maybe simple JSON file) with date-time and hash of the firmware that was flashed.

As a DevOps team, we are often asked to debug the board, and it can be impossible to tell if the board is broken, or the firmware - especially when developers work or firmware. This often means that we have to flash good known firmware / golden image, and verify that the board boots and works. But it can be difficult sometimes to get our hands on such image, we have to ask people, then store it somewhere for our own use, etc.

In addition, when using flash emulators like EM100, they do not have persistent memory and loose the content on power-cycle. It would be very appreciated if there was a always available fallback.

Describe the solution you'd like
I would like to have a directory somewhere on the DUT worker, where these things are stored. This would also mean that we can use rsync or other tools to keep them up-to-date or make backups.

The directory could be for example like this:

  • /etc/dut/firmware-data/
    • stock_firmware.rom
    • good_known_firmware.rom
    • last_used_firmware.rom
    • history.json

The should also be some easy to use way to flash any of these images. Some short-hand or alias or something, so that the user does not have to know where these images are stored. Maybe something like:

dutctl -s ... flash golden

Describe alternatives you've considered
N/A

Additional context
N/A

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: coredutagent server, RPC, config and backend internalsarea: modulesModule ecosystem and the module interfaceneeds designNeeds a design discussion or decision before work starts

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions