Emulating CHERIoTΒΆ

Pydrofoil can also be used to build an emulator for CHERIoT, based on the CHERIoT Sail model (which is iteself an extension of the RISC-V Sail model).

To build an emulator for CHERIoT, you can run the following in your Pydrofoil checkout:

make pydrofoil-cheriot

The resulting binary can run both the example applications from the cheriot-rtos repo:

./pydrofoil-cheriot cheriot/input/hello_world

As well as the tests:

./pydrofoil-cheriot cheriot/input/test-suite

Also, the allocator benchmark:

./pydrofoil-cheriot cheriot/input/allocator-benchmark

Performance seems to be roughly in the 5-10 MIPS range, which is an order of magnitude faster than the default Sail-based emulator.