diff --git a/misc/config_tools/schema/checks/vbdf_assignment.xsd b/misc/config_tools/schema/checks/vbdf_assignment.xsd index fde14c2b7..062b0fe67 100644 --- a/misc/config_tools/schema/checks/vbdf_assignment.xsd +++ b/misc/config_tools/schema/checks/vbdf_assignment.xsd @@ -14,4 +14,14 @@ </xs:annotation> </xs:assert> + + <xs:assert test="every $root in /acrn-config satisfies + every $vm in $root/vm satisfies + every $vbdf in $root/hv//vuart_connection[type='pci']/endpoint[vm_name=$vm/name]/vbdf/text() | $root/hv//IVSHMEM_VM[VM_NAME=$vm/name]/VBDF/text() satisfies
Shall we check only the BDFs of ivshmem/vUART devices for the service VM? To other VMs the BDFs are generated by the config tools which should be able to avoid BDF collision.
BTW, please do not mix white spaces and tabs.
I thinks the pre-launched VM's vBDF setting should also be checked if we don't check every VM.
Aren't the vBDF of passthrough devices of a pre-launched VM allocated by the config tools rather than specified by users?