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