-
Notifications
You must be signed in to change notification settings - Fork 1
Various changes and additions #2
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
Conversation
d53c148 to
e8f62b1
Compare
|
For the sake of smaller PRs: #3 is the next batch |
e8f62b1 to
fe56c15
Compare
|
Updated to use rust-embedded/riscv-rt#95 instead of hard-coding the QEMU device tree address. |
|
Friendly ping :) #3 is the next part of this |
src/lib.rs
Outdated
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.
Is this also works on x86/x86_64?
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.
qemu-system-i386 and qemu-system-x86_64 don’t expose a memory-mapped fw-cfg device, so there is no valid address that could be passed to this constructor. But if you somehow had an x86/x86_64 with such a device, this should work.
The I/O port mode is only available on x86 or x86-64: rename the constructor and add conditionally-compile it accordingly.
fe56c15 to
ceae702
Compare
|
Sorry I forgot about this! 😅 Again if you prefer single-purpose PRs, #4 is the next batch of commits from this one. |
|
Thanks. I will go ahead and merge this larger one. |
This PR contains various changes and additions. I would have preferred to find a meaningful split of them into multiple PRs that I could send independently, but I expect this would have caused merge conflicts so here is everything a single linear branch on top of #1. Please see individual commit messages.
At a high-level, I’m trying to use QEMU’s
ramfbdevice from RISC-V guest code, which for involves memory-mapped fw_cfg instead of port I/O, writing to a fw_cfg file instead of just reading, and DMA access (required for writing) instead of just the data register. RISC-V support is added to the test harness and CI in order to have coverage for the memory-mapped mode. Also as drive-by changes: supporting stable Rust, adding a file iterator.