Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make Zcheripurecap depend on Zstid #472

Open
francislaus opened this issue Dec 10, 2024 · 3 comments
Open

Make Zcheripurecap depend on Zstid #472

francislaus opened this issue Dec 10, 2024 · 3 comments

Comments

@francislaus
Copy link
Contributor

One of the biggest advantages of CHERI is compartmentalisation. It seems sensible to make Zcheripurecap depend on the existence of the Zstid extension.

@arichardson
Copy link
Collaborator

I agree that compartmentalization is essential for CHERI programming models, but I'm not sure we need that dependency.

IMO this dependency really should be set as part of a "cheri purecap profile" since there is no interdependency between these extensions and in theory you could have Zstid without CHERI or CHERI without Zstid.
I think keeping them separate and just strongly recommending both are implemented (or ideally having a profile) should be sufficient.

I am also not sure how useful this extension is without CHERI - since there is no ASR I can only see it being useful if it's only programmable by the mode above?

@davidchisnall
Copy link

Completely agreed (with @arichardson). CHERIoT has a rich compartmentalisation model and does not use Zstid (we may replace out use of MTDC with it in a version rebased on Zcheripurecap) but they’re orthogonal features. Zcheripurecap should remain the minimum set of features for CHERI, not a wishlist of all of the things that we might want.

@PeterRugg
Copy link
Contributor

Note that I'm not sure Zstid without CHERI makes sense. It's only ASR that makes the register read-only, so without CHERI it's just another integer CSR that can be written by anyone in your ring.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants