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. — Travis
On Jun 23, 2020, at 3:54 AM, Zhuang, Siwei (Data61, Kensington NSW)
wrote: Hi Travis,
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 this page,
https://docs.sel4.systems/projects/camkes-arm-vm/
The configuration code can be found here,
https://github.com/SEL4PROJ/camkes-arm-vm/blob/master/apps/vm_minimal/tk1/de... https://github.com/SEL4PROJ/camkes-arm-vm/blob/master/apps/vm_minimal/tk1/de...
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 here,
https://github.com/SEL4PROJ/seL4_projects_libs/blob/master/libsel4vmmplatsup... https://github.com/SEL4PROJ/camkes-arm-vm/blob/master/components/VM/src/modu...
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,
https://github.com/SEL4PROJ/seL4_projects_libs/blob/master/libsel4vmmplatsup...
Hope these helps.
- Siwei ________________________________________ From: Devel
on behalf of Travis Wheatley Sent: Tuesday, 23 June 2020 6:47 AM To: devel@sel4.systems 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 direction.
— Travis _______________________________________________ Devel mailing list Devel@sel4.systems https://sel4.systems/lists/listinfo/devel