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

System registers #86

Open
BugraEryilmaz opened this issue Nov 26, 2024 · 4 comments
Open

System registers #86

BugraEryilmaz opened this issue Nov 26, 2024 · 4 comments
Assignees

Comments

@BugraEryilmaz
Copy link
Contributor

There are many bugs related to system registers. I will mention all of them here

Description
Daif is not kept in PSTATE anymore inside qemu. Sync should not rely on PSTATE and it should get the value separately.

Expected Behavior
After sync, we should get the correct DAIF values from qemu.

Actual Behavior
it always reads 0.

Fix: 04f70b6
Fix also requires API change: parsa-epfl/libqflex@b583c7b

@BugraEryilmaz BugraEryilmaz self-assigned this Nov 26, 2024
@BugraEryilmaz
Copy link
Contributor Author

Description
DAIFset and DAIFclr instructions decoded incorrectly. They do not update DAIF properly.

Expected Behavior
DAIF should be updated with correct value after the instruction.

Actual Behavior
It never updates DAIF.

Fix: d444a72

@BugraEryilmaz
Copy link
Contributor Author

Description
Actions used by DAIFset and DAIFclr instructions have incorrect values.

Expected Behavior
DAIF should be updated with correct value after the instruction.

Actual Behavior
It updates with wrong value.

Fix: 1997ce4
5a4590c#diff-7cf2530e400638e56e9bfc4184f80dbc61bc47b605c1686751392c7a80c52b9fR1149

@BugraEryilmaz
Copy link
Contributor Author

Description
DCZID_EL0 system register does not sync properly.

Expected Behavior
DCZID_EL0 should be filled with correct value after a resync.

Actual Behavior
It never gets updated.

Fix: eb8e627
Fix also requires a small modification to the libqflex: 92a80a118ee09e2aef098aa633de6a12bbd83c1f

@BugraEryilmaz
Copy link
Contributor Author

Description
MSR instructions do not update system registers.

Expected Behavior
MSR instructions should write to the given system register if it is supported.

Actual Behavior
It never writes to the system registers.

Fix: 5a4590c

branylagaffe pushed a commit that referenced this issue Nov 28, 2024
Small fix for DAIFset
branylagaffe pushed a commit that referenced this issue Nov 28, 2024
branylagaffe pushed a commit that referenced this issue Dec 18, 2024
Small fix for DAIFset
branylagaffe pushed a commit that referenced this issue Dec 18, 2024
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