-
Notifications
You must be signed in to change notification settings - Fork 86
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
feat: add 64-bit RISC-V support #441
Conversation
e1cd2d8
to
d687904
Compare
I actually found my old files and there seem to be local changes that I did not yet commit. I will try to commit and push all changes as soon as possible and explain how to run the examples with QEMU. While trying out the code with a current QEMU version I also ran into a page fault. |
For me, rusty-demo runs fine. :) Getting your fixes would be wonderful, but I assume they will be easy to apply on a rebased version of your work? Edit: The kernel does not compile when enabling network (tries to do a bunch of x86-specific pci and rtl network card stuff) if that's what you mean. |
7656297
to
c08bc87
Compare
Yes, the fix for the page table is very simple and should be easy to apply. The local changes I mentioned were unfinished rebases of libhermit-rs and rusty-hermit. The rebase of libhermit-rs can be found here: https://github.com/simonschoening/libhermit-rs/tree/riscv_rebase), but I think the "riscv_neu" branch is more recent. I also tried to rebase the rusty-hermit repository using a JSON file to define the target (https://github.com/simonschoening/rusty-hermit/tree/riscv_rebase). But this will not be necessary since the riscv64gc-unknown-hermit target was already merged? I really would like to try out your rebase. What command do you use to compile the examples? About networking: The pci feature never worked, I always used To build and run the https://github.com/simonschoening/rusty-hermit/tree/riscv_rebase repository, the following commands should work:
The loader can be build with |
Thanks for your reply! :) hermit-os/kernel#800 is my rebase of your To reproduce, build the latest Rust commit (RISC-V target is merged now, and you are a contributor to the Rust compiler 🥳). A description is now live at *-unknown-hermit - The rustc book.
This assumes the newly built Rust toolchain registered as Regarding SMP: This seems stubbed, right? So no real SMP support in Regarding networking: I did not test that yet, but I'll give your config a try. We moved the TCP stack into the kernel meanwhile, so maybe some things broke during my rebase, but maybe not. 🤷 Anyway, I'll be busy with other stuff for the next two weeks, but after that, I'll work on this again. :) Please don't hesitate to reach out if you have further questions. :) |
SMP should work, I moved the I can't remember the reason behind this. Maybe there is no technical reason at all 😅 . |
Ah, good to know. :) |
72f37d6
to
77ba183
Compare
Co-authored-by: Martin Kröning <[email protected]> Signed-off-by: Martin Kröning <[email protected]>
This is a rebase and squash of simonschoening@4768570.
This is using the
riscv64gc-unknown-hermit
target from hermitcore/rust/riscv64gc-unknown-hermit.CC: @simonschoening