oxidecomputer / hubris

A lightweight, memory-protected, message-passing kernel for deeply embedded systems.
Mozilla Public License 2.0
2.96k stars 169 forks source link

Split `ServerImpl` versus `FlashDriver`, add `FailServer` #1852

Closed mkeeter closed 1 month ago

mkeeter commented 1 month ago

Staged on top of #1851

This PR splits the FMC NOR flash into FlashDriver (talking to the FPGA and flash) and ServerImpl (implementing the HostFlash API). In addition, it adds a non-panicking failure path. In this new failure path, there's a small Idol server which replies with an error to any message.