Hi folks,
we are currently trying to enable the Device Assignment stack published
recently Arm under QEMU [1].
Our test case launches a nested (Realm) guest with a vfio-pci passed
through. The configuration expects a SATA device and a root port to
attach it.
-device pcie-root-port,id=root_port \
-drive id=disk,file=out/disk,if=none \
-device ahci,id=ahci,spdm_port=2323,bus=root_port \
-device ide-hd,drive=disk,bus=ahci.0
We notice that iommu groups are identical for the SATA device and the
Root Port, which prevents us from passing the device to the nested guest.
After investigating a little bit, it seems like ACS capability is not
present on the root port, at least, it's not reported by lspci -vvv.
That's a bit confusing, because reading QEMU code source [2], we
definitely add it to the root port (and the code is definitely executed
at runtime).
Any idea if we are missing something obvious, or if there is another
issue completely unrelated to ACS?
[1]
https://git.trustedfirmware.org/plugins/gitiles/TF-RMM/tf-rmm.git/+/refs/heads/topics/da_alp12_v2
[2]
https://gitlab.com/qemu-project/qemu/-/blob/master/hw/pci-bridge/pcie_root_port.c?ref_type=heads#L121
Regards,
Pierrick