OpenSBI is the default bios used for RISC-V running under qemu. This change adds support for enabling the default bios and modifying the start up code of xv6 to support it. I created this change as a way to test out the functionality of OpenSBI but I think it might be a worthwhile change for others as well. OpenSBI is quickly becoming the default on real RISC-V hardware. Having support here opens the possibility of running xv6 on low cost RISC-V hardware in the future.
One note, there are currently four usertests that seem to hang the system
forkforkfork
openiput
killstatus
preempt
I believe that all of these are actually broken in the main branch as well and show up in this change due to the change in the timer code. If I tweak the timer in the main branch from 1/10 of a second to something else I can get these same tests to hang. Before I spend time digging into the root issue with these tests though I wanted to submit this pull request and see if there was sufficient interest in having these OpenSBI changes merged into the original project.
OpenSBI is the default bios used for RISC-V running under qemu. This change adds support for enabling the default bios and modifying the start up code of xv6 to support it. I created this change as a way to test out the functionality of OpenSBI but I think it might be a worthwhile change for others as well. OpenSBI is quickly becoming the default on real RISC-V hardware. Having support here opens the possibility of running xv6 on low cost RISC-V hardware in the future.
One note, there are currently four usertests that seem to hang the system
I believe that all of these are actually broken in the main branch as well and show up in this change due to the change in the timer code. If I tweak the timer in the main branch from 1/10 of a second to something else I can get these same tests to hang. Before I spend time digging into the root issue with these tests though I wanted to submit this pull request and see if there was sufficient interest in having these OpenSBI changes merged into the original project.