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 <devel-bounces@sel4.systems> on behalf of Travis Wheatley 
<travis.wheat...@emergentspace.com>
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

_______________________________________________
Devel mailing list
Devel@sel4.systems
https://sel4.systems/lists/listinfo/devel

Reply via email to