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

Desire that M-mode app and U-mode app be binary compatible when changing the selected CXU #21

Open
BrandonFrei opened this issue Feb 7, 2024 · 0 comments

Comments

@BrandonFrei
Copy link

BrandonFrei commented Feb 7, 2024

Summary

The idea is both m-mode applications and u-mode applications use the exact same instruction sequence, so there is (no?) need to have a different code base for accelerated software. This will force software to always use U-mode to select a CXU.

Spec changes required

  • rename cx_index to cx_selector
  • always use cx_selector
  • if scx_table points to valid virtual address, writes to cx_selector do a lookup in scx_table and write result to mcx_selector as per current spec
  • if scx_table points to special sentinel value (eg all ones or all zeros), or is uninitialized, then writes to cx_selector are mirrored as writes to scx_table

Possible Issues

  • Correct behaviour needs to be ensured when scx_table is incorrect or uninitialized. That is, writes to mcx_selector (the old way) always works and never fails (as long as the value written is correct), but writes to cx_selector may not work if scx_table is misconfigured. This may be a concern for applications to always rely on scx_selector.
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

1 participant