-
Notifications
You must be signed in to change notification settings - Fork 0
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
Add support for the ibex-super-system #40
base: rivos/main
Are you sure you want to change the base?
Conversation
I should have made this as a draft. It still needs some cleanup and requires #41. |
00d6de7
to
4cff3e1
Compare
The test suite is not included as it will not pass. When running the unaligned instruction test, it will hang the core. |
Why is that? Shouldn't it be caught by the M-mode kernel and not result in a hang? |
The exception never gets thrown. Jumping to the aligned address on either side generates an illegal instruction, but the unaligned case just hangs. Attempting to r/w from the same address also generates the correct exceptions. |
|
||
#[entry] | ||
fn main() -> ! { | ||
const CYCLES_PER_MS: u32 = 0x60_0000; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where does this value come from?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just made it up, any values much smaller and it interrupts so fast the core cannot do anything. I tried to calculate the correct value based on the FPGA clock, but that was absurdly slow. I think I was missing something about what clock frequency the FPGA was actually running at.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably add a comment or a bug to follow-up on this if you plan to push this in as is?
Is that a known bug with the system? As per the priv spec, this should throw an "instruction address misaligned" exception. What test is this exactly that fails? Also, does this help:
|
This chip will be useful for FPGA testing
fcab4c7
to
f05b38c
Compare
That will not help, the trap handler never gets called. Even re flashing hubris does not help (which initiates a reset), I have to fully power cycle the FPGA. The actual test cause is |
This is useful for verifing hubris functionality on actual hardware.
f05b38c
to
5c78e8d
Compare
Adds chip and demo apps for the ibex super system. This is needed for testing on the FPGA.