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

Implement simple uart-based updater for the bootrom #2267

Merged
merged 1 commit into from
Jun 19, 2024

Conversation

grg-haas
Copy link
Contributor

In Keystone (https://github.com/keystone-enclave/keystone), we'd like to be able to run automated CI tests for all of our platforms to make sure that code changes don't break things, as much as possible. One difficulty is that many boards don't support updating firmware remotely. For CVA6 specifically, the firmware update process involves removing the microSD card, flashing a new image, and inserting it again. This does not work well for our remote tests.

This PR implements a simple UART-based updater in the bootrom. By hitting a key during boot, a user can then transfer an image of a specific size directly to memory and boot it. We plan to transfer a uboot image with TFTP capabilities, allowing us to then quickly flash the much bigger OS image as well.

Copy link
Contributor

❌ failed run, report available here.

@grg-haas grg-haas force-pushed the feature/updater-bootrom branch from 2fba581 to 69c6a14 Compare June 18, 2024 16:21
Copy link
Contributor

✔️ successful run, report available here.

@JeanRochCoulon
Copy link
Contributor

@Gchauvon This feature seems interesting to reload 32 or 64bits Linux image on SDCard and boot it. Can you review the PR ?

Copy link
Contributor

@Gchauvon Gchauvon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@JeanRochCoulon JeanRochCoulon merged commit c92245b into openhwgroup:master Jun 19, 2024
10 checks passed
grg-haas added a commit to keystone-enclave/keystone that referenced this pull request Jun 24, 2024
This PR extends our CI system to also run tests on real CVA6 hardware,
to ensure that we don't inadvertently break this platform. The CI
infrastructure depends on a bitstream version that includes our changes
to the bootrom (openhwgroup/cva6#2267), which
implement a simple UART-based firmware flashing functionality.

As part of extending our CI to this platform, we spent some effort to
make the system hostable and extensible by others. We check in some
previously unofficial helper scripts that operate an FT245R relay board,
enabling us to turn boards off and on remotely. We also include some
infrastructure for discovering serial ports (since our runner machine
has many of these).
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.

3 participants