On Tue, 27 Sept 2022 at 11:12, Jean-Philippe Brucker <jean-phili...@linaro.org> wrote: > > The "PCI Bus Binding to: IEEE Std 1275-1994" defines the compatible > string for a PCIe bus or endpoint as "pci<vendorid>,<deviceid>" or > similar. Since the initial binding for PCI virtio-iommu didn't follow > this rule, it was modified to accept both strings and ensure backward > compatibility. Also, the unit-name for the node should be > "device,function". > > Fix corresponding dt-validate and dtc warnings: > > pcie@10000000: virtio_iommu@16:compatible: ['virtio,pci-iommu'] does not > contain items matching the given schema > pcie@10000000: Unevaluated properties are not allowed (... > 'virtio_iommu@16' were unexpected) > From schema: > linux/Documentation/devicetree/bindings/pci/host-generic-pci.yaml > virtio_iommu@16: compatible: 'oneOf' conditional failed, one must be fixed: > ['virtio,pci-iommu'] is too short > 'pci1af4,1057' was expected > From schema: dtschema/schemas/pci/pci-bus.yaml > > Warning (pci_device_reg): /pcie@10000000/virtio_iommu@16: PCI unit address > format error, expected "2,0" > > Signed-off-by: Jean-Philippe Brucker <jean-phili...@linaro.org> > --- > hw/arm/virt.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/hw/arm/virt.c b/hw/arm/virt.c > index 2de16f6324..5e16d54bbb 100644 > --- a/hw/arm/virt.c > +++ b/hw/arm/virt.c > @@ -1372,14 +1372,15 @@ static void create_smmu(const VirtMachineState *vms, > > static void create_virtio_iommu_dt_bindings(VirtMachineState *vms) > { > - const char compat[] = "virtio,pci-iommu"; > + const char compat[] = "virtio,pci-iommu\0pci1af4,1057"; > uint16_t bdf = vms->virtio_iommu_bdf;
PCI_DEVICE_ID_VIRTIO_IOMMU is listed in include/hw/pci/pci.h as 0x1014, so where does 1057 come from? (This is a hex value, right?) docs/specs/pci-ids.txt doesn't list either 1014 or 1057, so I guess we forgot to update that... thanks -- PMM