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

Reply via email to