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/devices.camkes#L38
https://github.com/SEL4PROJ/camkes-arm-vm/blob/master/apps/vm_minimal/tk1/devices.camkes#L43
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/libsel4vmmplatsupport/src/arch/arm/devices/vusb.c
https://github.com/SEL4PROJ/camkes-arm-vm/blob/master/components/VM/src/modules/plat/exynos5410/init.c
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/libsel4vmmplatsupport/src/plat/exynos5/devices/vsdhc.c
Hope these helps.
- Siwei
________________________________________
From: Devel <[email protected]> on behalf of Travis Wheatley
<[email protected]>
Sent: Tuesday, 23 June 2020 6:47 AM
To: [email protected]
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
[email protected]
https://sel4.systems/lists/listinfo/devel
_______________________________________________
Devel mailing list
[email protected]
https://sel4.systems/lists/listinfo/devel