openhwgroup / cva6

The CORE-V CVA6 is an Application class 6-stage RISC-V CPU capable of booting Linux
https://docs.openhwgroup.org/projects/cva6-user-manual/
Other
2.14k stars 652 forks source link

Implement simple uart-based updater for the bootrom #2267

Closed grg-haas closed 1 week ago

grg-haas commented 1 week ago

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.

github-actions[bot] commented 1 week ago

:x: failed run, report available here.

github-actions[bot] commented 1 week ago

:heavy_check_mark: successful run, report available here.

JeanRochCoulon commented 1 week ago

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