-
Notifications
You must be signed in to change notification settings - Fork 253
Add Raspberry Pi 4 target #1253
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
base: main
Are you sure you want to change the base?
Conversation
|
Is this going to be merged at some point? Has the state of the art changed in the meantime, in regards to running MirageOS applications on the RPi 4? |
This PR has some conflicts with the main branch of mirage -- nevertheless, I'd be in favour to merge it once rebased (it doesn't need to have network interfaces etc. before being merged, I can see value in having the (experimental) target easy to use for developers). Especially in resepct to recent improvements thereof in Mirleft concerning audio driver etc. WDYT? |
Yes, let me prepare a release for |
Is this meant as a draft showcase only? It's pity that it is still not finalized. Given the current state of MirageOS what's needed to finalize this? |
At the moment, it's possible to build a simple operating system in OCaml without using MirageOS. MirageOS is simply a tool for choosing the right implementations depending on the target. So you can start experimenting. However, apart from serial communication via pins, Gilbraltar doesn't offer much more. What's really missing is a series of drivers, such as ethernet, to be able to experiment more. Unfortunately, implementing these requires a lot of resources (reading the Linux code or the firmware documentation) and we don't really have the time to go any further. However, if someone is interested in helping us, we'll offer them all the documentation they need to go further 👍. |
This draft is the integration of Gilbraltar, a bare-metal operating system for MirageOS & Raspberry Pi 4.
It requires
mirage-dev#rpi4
which contains several packages to be able to craft a MirageOS for RPi4.An example is available here as an usual MirageOS project. You can test it with:
$ cd unikernel $ mirage configure -t rpi4 $ make depends $ mirage build
Then, you are able to test it with
qemu
and a special patch which virtualize a RPi4 system. This is the full way to build & run the unikernel:TODO
bootvar
andargv
are missinggilbraltar
is a baby step to make an OS (it does not implement MMU or GPIO)freestanding
implementation (we need to checkmatch_impl
)mclock
andpclock
are missingnetif
and TCP/IP stack?