Replies: 2 comments
-
Overall this looks great to me and I think having all of this explicitly written out is definitely helpful. Making this a wiki page that we keep up to date sounds good. The list seems pretty extensive already. The only major thing that I can think of to add would be RVVI support under the Verification Interface section. I'll try and put together a full list of the extensions that are not yet supported to add to this. I have most of that list already from when I created the new list of supported extensions. |
Beta Was this translation helpful? Give feedback.
-
Added to the wiki: https://github.com/riscv/sail-riscv/wiki/Roadmap |
Beta Was this translation helpful? Give feedback.
-
In my head I've got a list of areas where the model needs work and the main priorities in each area. I thought it would be worth writing down as a roadmap. If this proposal is acceptable we can move it to a wiki page.
Sail Roadmap
These are the main areas where work is happening. Indentation indicates dependencies.
Configuration
The implementation defined behaviour in RISC-V is near limitless, but only a small number of configuration flags are exposed by the emulator currently because they are very tedious to wire in.
Alasdair Armstrong is working on adding a native configuration system to the Sail language which will be a lot easier to use.
sys_foo_enable()
style callbacks to Alasdair's new native config system, once implemented. #495Testing & Infrastructure
Currently the code is not tested at all well. There's just a very old version of the riscv-tests in the repo. Ideally we would have unit tests written in Sail, and a wide range of ELF tests. It would also be beneficial to avoid requiring users to set up a cross-compiler, RISCOF, etc. to run the tests since that is quite onerous. But we don't want to store ELF binaries in the repo like we currently do. See Jessica's comment in #114.
Extensions
The two biggest missing pieces are Hypervisor and Vector Crypto. There are a number of smaller extensions that are missing too.
Verification Interface
Currently the only programmatic verification interface is RVFI-DII, but it only works over TCP and is quite limited. The goal is to expose a library interface, and a machine readable execution log.
Beta Was this translation helpful? Give feedback.
All reactions