- arm/virt: Fix vcpu hotplug idx_from_topo_ids - Revert patches related to the vSVA - sync some bugfix patches from upstream - add generic vDPA device support Signed-off-by: yezengruan <yezengruan@huawei.com> (cherry picked from commit b99dbfd9847104300672fb4f559f1c2abba8aa33)
63 lines
2.6 KiB
Diff
63 lines
2.6 KiB
Diff
From 9fdae653dc60c96fad416abb1b5294f767fcb3c5 Mon Sep 17 00:00:00 2001
|
|
From: cmss_dx <dingxiang@cmss.chinamobile.com>
|
|
Date: Wed, 23 Nov 2022 08:10:00 +0000
|
|
Subject: [PATCH 11/29] hw/arm/virt: Fix devicetree warnings about the
|
|
virtio-iommu node mainline inclusion from mainline-v7.2.0-rc1 commit
|
|
7cd5d384bb298ce3c595a3774213b5b478881ac8 category: bugfix
|
|
|
|
--------------------------------
|
|
|
|
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-philippe@linaro.org>
|
|
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
|
|
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
|
|
|
Signed-off-by: cmss_dx <dingxiang@cmss.chinamobile.com>
|
|
---
|
|
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 b81d22d68f..4716f9baaa 100644
|
|
--- a/hw/arm/virt.c
|
|
+++ b/hw/arm/virt.c
|
|
@@ -1470,14 +1470,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;
|
|
MachineState *ms = MACHINE(vms);
|
|
char *node;
|
|
|
|
vms->iommu_phandle = qemu_fdt_alloc_phandle(ms->fdt);
|
|
|
|
- node = g_strdup_printf("%s/virtio_iommu@%d", vms->pciehb_nodename, bdf);
|
|
+ node = g_strdup_printf("%s/virtio_iommu@%x,%x", vms->pciehb_nodename,
|
|
+ PCI_SLOT(bdf), PCI_FUNC(bdf));
|
|
qemu_fdt_add_subnode(ms->fdt, node);
|
|
qemu_fdt_setprop(ms->fdt, node, "compatible", compat, sizeof(compat));
|
|
qemu_fdt_setprop_sized_cells(ms->fdt, node, "reg",
|
|
--
|
|
2.27.0
|
|
|