CAmkES ARM VM: SATA Passthrough
Hi, I ran into the issue of not being able to fit the whole rootfs in RAM (using a qemu-arm-virt device). Therefore I opted for booting the initramfs instead and from there switch root to the proper file system. The booting of the initramfs works fine but the /dev/sda device is not visible to the guest. For x86 (according to these instructions: https://docs.sel4.systems/projects/camkes-vm/) this seems to be done by passing through access to the SATA controller. But since the x86 device configuration is different to the ARM device configuration it requires a different config than the one shown in the instructions. I was wondering how you achieve this SATA passthrough for a ARM VM or if there are any tutorials, other projects or examples that shows how it is done? Best regards, Olof
Hi Olof,
I was wondering how you achieve this SATA passthrough for a ARM VM or if there are any tutorials, other projects or examples that shows how it is done?
In my experiences of dealing with SATA drives on Arm platforms, it seems that SATA functionality is implemented via a specific device on the board. You could then find that specific device in the devicetree and then include that node's device path in the ".dtb" as similar to examples in [1]. For your case, I'm assuming (from your past post history) that you want to do this on the qemu-arm-virt platform in QEMU. If I remember correctly, there should be VirtIO block devices that you could attach to a QEMU instance but I'm not quite sure how the specific details of this could work, i.e. would it pop up in the devicetree generated by QEMU or would the VirtIO block device function over PCIe, and etc. I hope this provides a good starting point. Regards, Damon
participants (2)
-
Lee, Damon (Data61, Eveleigh)
-
Olof Holmberg