From nobody Sun Feb 8 22:08:23 2026 Delivered-To: importer@patchew.org Received-SPF: none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; spf=none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1709053839719128.9094953222717; Tue, 27 Feb 2024 09:10:39 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id 9BFB21DAF; Tue, 27 Feb 2024 12:10:38 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 6CC741E5D; Tue, 27 Feb 2024 11:39:46 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id CC4961DD1; Tue, 27 Feb 2024 11:39:28 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 2C4BA1AEF for ; Tue, 27 Feb 2024 11:36:42 -0500 (EST) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-117-IjAgg-_fMQaVbgKoRd0eCg-1; Tue, 27 Feb 2024 11:36:40 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 6C96B10651E7 for ; Tue, 27 Feb 2024 16:36:40 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.45.242.12]) by smtp.corp.redhat.com (Postfix) with ESMTP id D95FF1C060B1 for ; Tue, 27 Feb 2024 16:36:39 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.4 X-MC-Unique: IjAgg-_fMQaVbgKoRd0eCg-1 From: Peter Krempa To: devel@lists.libvirt.org Subject: [PATCH 11/25] qemuDomainDefAddDefaultDevices: Populate default USB for 'versatilepb' and 'realview' ARM machines Date: Tue, 27 Feb 2024 17:36:13 +0100 Message-ID: <195cbb1723501ddce9f16d8ea7dae3386c0320fa.1709051442.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.7 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Message-ID-Hash: QQH37ZY2TIZGORQTHNKRJFH22JGX7KFW X-Message-ID-Hash: QQH37ZY2TIZGORQTHNKRJFH22JGX7KFW X-MailFrom: pkrempa@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1709053840979100001 The machine types historically have a default USB controller populated via '-usb' which libvirt assumed implicitly. Qemu will use 'pci-ohci' for both if '-usb' is used. Unfortunately an USB controller instantiated via '-usb' is unusable as the bus name libvirt generates doesn't reflect the real name qemu uses, and thus no libvirt-defined USB devices can be put on the controller. This patch will populate the default USB controller into the XML and select it's model to 'pci-ohci' unconditionally as the machine would fail to start with '-usb' if that controller model is not available. This patch doesn't try to make any other assumptions about auto-populated model of USB controllers, which means that for an explicit USB controller without model a different model will be picked. Note that this will likely cause ABI differences and break migration for the two machine types, in the corner case when the default USB controller would be populated, but given that both are obsolete board types and USB was unusable it doesn't make sense to keep supporting this specific case when '-usb' was formatted. Signed-off-by: Peter Krempa --- src/qemu/qemu_domain.c | 8 ++++++++ ...h64-versatilepb-minimal.aarch64-latest.abi-update.args | 2 +- ...ch64-versatilepb-minimal.aarch64-latest.abi-update.xml | 3 +++ .../aarch64-versatilepb-minimal.aarch64-latest.args | 2 +- .../aarch64-versatilepb-minimal.aarch64-latest.xml | 3 +++ ...mv7l-versatilepb-minimal.armv7l-latest.abi-update.args | 2 +- ...rmv7l-versatilepb-minimal.armv7l-latest.abi-update.xml | 3 +++ .../armv7l-versatilepb-minimal.armv7l-latest.args | 2 +- .../armv7l-versatilepb-minimal.armv7l-latest.xml | 3 +++ 9 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index d96acd8916..23ba9521ec 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -4204,6 +4204,14 @@ qemuDomainDefAddDefaultDevices(virQEMUDriver *driver, if (STREQ(def->os.machine, "versatilepb")) addPCIRoot =3D true; + /* Add default USB for the two machine types which historically + * supported -usb */ + if (STREQ(def->os.machine, "versatilepb") || + STRPREFIX(def->os.machine, "realview")) { + addDefaultUSB =3D true; + usbModel =3D VIR_DOMAIN_CONTROLLER_MODEL_USB_PCI_OHCI; + } + if (qemuDomainIsARMVirt(def)) addPCIeRoot =3D true; diff --git a/tests/qemuxmlconfdata/aarch64-versatilepb-minimal.aarch64-late= st.abi-update.args b/tests/qemuxmlconfdata/aarch64-versatilepb-minimal.aarc= h64-latest.abi-update.args index 6dec983ecc..2f45355a5d 100644 --- a/tests/qemuxmlconfdata/aarch64-versatilepb-minimal.aarch64-latest.abi-= update.args +++ b/tests/qemuxmlconfdata/aarch64-versatilepb-minimal.aarch64-latest.abi-= update.args @@ -26,7 +26,7 @@ XDG_CONFIG_HOME=3D/var/lib/libvirt/qemu/domain--1-aarch64= test/.config \ -rtc base=3Dutc \ -no-shutdown \ -boot strict=3Don \ --usb \ +-device '{"driver":"pci-ohci","id":"usb","bus":"pci","addr":"0x1"}' \ -audiodev '{"id":"audio1","driver":"none"}' \ -sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ -msg timestamp=3Don diff --git a/tests/qemuxmlconfdata/aarch64-versatilepb-minimal.aarch64-late= st.abi-update.xml b/tests/qemuxmlconfdata/aarch64-versatilepb-minimal.aarch= 64-latest.abi-update.xml index 2b5feaa665..fddf8fd3a7 100644 --- a/tests/qemuxmlconfdata/aarch64-versatilepb-minimal.aarch64-latest.abi-= update.xml +++ b/tests/qemuxmlconfdata/aarch64-versatilepb-minimal.aarch64-latest.abi-= update.xml @@ -15,6 +15,9 @@ destroy /usr/bin/qemu-system-aarch64 + +
+