microsoft / cheriot-ibex

cheriot-ibex is a RTL implementation of CHERIoT ISA based on LowRISC's Ibex core.
Apache License 2.0
73 stars 14 forks source link

Suggested improvements to the Ibex revoker #4

Closed davidchisnall closed 6 months ago

davidchisnall commented 1 year ago

Currently, the Ibex's revoker has a single control register, which contains the epoch and the running status. There are a few things that would make this more useful:

kliuMsft commented 1 year ago

The memory mapped register block is actually implemented outside of the ibex core (similar to clic). So we will probably implement the suggested changes when make the arty a7 FPGA release.

kliuMsft commented 1 year ago

Also - note that if we make the "start" bit stateless, firmware will need to clear the bit before the hardware state machine completes, otherwise the state machine will immediately restart after it completes.

davidchisnall commented 1 year ago

On Flute, it isn’t really a register, it’s an edge-triggered signal. Writing to it starts the operation, but reading from it doesn’t do anything.

kliuMsft commented 1 year ago

Ok, I am making it a single-cycle pulse triggered by writing a '1' to the bit location. The pulse will kick off the hardware revoker if it is currently idle, and if the revoker is running the pulse will be ignored

kliuMsft commented 6 months ago

@davidchisnall, shoudl we close this one?

davidchisnall commented 6 months ago

I believe all of these are now implemented.