Re: [PATCH v2 18/29] qemu_command.c: add command line for the pnv-phb3 device

2022-02-21 Thread Ján Tomko

On a Tuesday in 2022, Daniel Henrique Barboza wrote:

The command line for the pnv-phb3 device is similar to the
spapr-pci-host-bridge command line but adding the extra 'chip-id'
attribute.

Signed-off-by: Daniel Henrique Barboza 
---
src/qemu/qemu_command.c   | 21 +--
.../powernv8-basic.ppc64-latest.args  |  1 +
2 files changed, 20 insertions(+), 2 deletions(-)



Reviewed-by: Ján Tomko 

Jano


signature.asc
Description: PGP signature


[PATCH v2 18/29] qemu_command.c: add command line for the pnv-phb3 device

2022-01-25 Thread Daniel Henrique Barboza
The command line for the pnv-phb3 device is similar to the
spapr-pci-host-bridge command line but adding the extra 'chip-id'
attribute.

Signed-off-by: Daniel Henrique Barboza 
---
 src/qemu/qemu_command.c   | 21 +--
 .../powernv8-basic.ppc64-latest.args  |  1 +
 2 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 2a1fe27297..afb3bf3612 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -3221,6 +3221,22 @@ qemuBuildControllerPCIDevProps(virDomainControllerDef 
*def,
 
 break;
 case VIR_DOMAIN_CONTROLLER_MODEL_PCIE_ROOT:
+if (!virDomainControllerIsPowerNVPHB(def)) {
+virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+   _("Unsupported PCI Express root controller"));
+return -1;
+}
+
+if (virJSONValueObjectAdd(&props,
+  "s:driver", modelName,
+  "i:index", pciopts->targetIndex,
+  "i:chip-id", pciopts->chipId,
+  "s:id", def->info.alias,
+  NULL) < 0)
+return -1;
+
+break;
+
 virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("Unsupported PCI Express root controller"));
 return -1;
@@ -3408,8 +3424,9 @@ static bool
 qemuBuildSkipController(const virDomainControllerDef *controller,
 const virDomainDef *def)
 {
-/* skip pcie-root */
-if (controller->type == VIR_DOMAIN_CONTROLLER_TYPE_PCI &&
+/* skip pcie-root for non PowerVM domains */
+if (!qemuDomainIsPowerNV(def) &&
+controller->type == VIR_DOMAIN_CONTROLLER_TYPE_PCI &&
 controller->model == VIR_DOMAIN_CONTROLLER_MODEL_PCIE_ROOT)
 return true;
 
diff --git a/tests/qemuxml2argvdata/powernv8-basic.ppc64-latest.args 
b/tests/qemuxml2argvdata/powernv8-basic.ppc64-latest.args
index c9616ded13..224e2adba8 100644
--- a/tests/qemuxml2argvdata/powernv8-basic.ppc64-latest.args
+++ b/tests/qemuxml2argvdata/powernv8-basic.ppc64-latest.args
@@ -26,6 +26,7 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \
 -rtc base=utc \
 -no-shutdown \
 -boot strict=on \
+-device '{"driver":"pnv-phb3","index":0,"chip-id":0,"id":"pcie.0"}' \
 -usb \
 -chardev pty,id=charserial0 \
 -device 
'{"driver":"isa-serial","chardev":"charserial0","id":"serial0","index":0}' \
-- 
2.34.1