Thanks Siwei. This was very helpful.
I do have a follow up question about the addresses used in the devices.camkes file. Are
these board specific or standard locations for the microkernel? The board I am using is a
zcu102. Not sure where/how to find the appropriate address to use for the sdhci device.
On Jun 23, 2020, at 3:54 AM, Zhuang, Siwei (Data61,
Kensington NSW) <Siwei.Zhuang(a)data61.csiro.au> wrote:
If you only need one VM to access the SD card. You could pass-through the SD card
controller to Linux, recompile the Linux kernel with the proper driver. Then passing your
rootfs on SD card via Linux kernel boot parameters. An example can be found in the
"camkes-arm-vm" repo. Have a read about the "TK1 configuration" on
The configuration code can be found here,
If you need to share the SD card between an native seL4 application and a VM or among
multiple VMs, you'll need a virtual SD card driver. We only have a virtual USB driver
at the moment. Use it as a reference to make your virtual driver. The code can be found
You can of course partition the SD card, if your board supports boot from SD card.
Consult the board's manual regarding how to boot from SD card. Note that, the Linux
VM would have the access to your boot partition, hence the seL4 boot image could be
compromised. To avoid that, you'll need to intercept the SD card access from the VM.
The code here demonstrates one way of doing it,
Hope these helps.
From: Devel <devel-bounces(a)sel4.systems> on behalf of Travis Wheatley
Sent: Tuesday, 23 June 2020 6:47 AM
Subject: [seL4] ramdisk vs. persistant rfs in VMs.
I’ve been working with VMs running under SEL4 on ARM hardware. I have been able to boot
to a command prompt in a VM. However, the filesystem being used is a ramdisk. I need some
sort of persistent storage, preferably a regular rfs that lives on an SD card. Not exactly
sure what modifications to make and where to cause the kernel to use a persistent rfs
rather than the ramdisk. Barring that, wondering if the SD card can be divided into
multiple partitions such that one can be the boot partition and the other mounted to
provide persistent storage space. Hoping one of y’all can point me in the right
Devel mailing list