On 08/06/2026 23.29, Mark Cave-Ayland wrote:
On 08/06/2026 09:26, Michael Tokarev wrote:

On 30.04.2026 12:50, Thomas Huth wrote:
On 09/03/2026 19.14, Thomas Huth wrote:
From: Thomas Huth <[email protected]>

When trying to plug a PCI device to a Sparc64 machine, you currently
have to specify the right bus ("bus=pciB"), otherwise you get this error:

  $ qemu-system-sparc64 -device virtio-scsi-pci
  qemu-system-sparc64: -device virtio-scsi-pci: PCI: no slot/function
  available for virtio-scsi-pci, all in use or reserved

This is quite annoying for the unexperienced users, and it also breaks
e.g. the iotests ("make check-block") when running with qemu-system- sparc64.

Mark the non-usable PCI busses as full now, so that QEMU can automatically
plug new PCI devices to the right "pciB" bus.

Signed-off-by: Thomas Huth <[email protected]>
---
  v2: Do the change in the machine code, not in the sabre device

  hw/sparc64/sun4u.c | 7 +++++++
  1 file changed, 7 insertions(+)

diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c
index b8bda1eb816..37539535c6c 100644
--- a/hw/sparc64/sun4u.c
+++ b/hw/sparc64/sun4u.c
@@ -723,6 +723,13 @@ static void sun4uv_init(MemoryRegion *address_space_mem,
      fw_cfg_add_i16(fw_cfg, FW_CFG_SPARC64_DEPTH, graphic_depth);
      qemu_register_boot_set(fw_cfg_boot_set, fw_cfg);
+
+    /*
+     * Mark internal PCI busses as full so that the plugging of additional
+     * PCI devices happens on the right bus that still has free slots:
+     */
+    qbus_mark_full(&pci_bus->qbus);
+    qbus_mark_full(&pci_busA->qbus);
  }
  enum {

Friendly ping!

This, being a simple change, somehow has not been reviewed still, so
it's sitting in the queue...

Yes, apologies - I've been absolutely flat out recently, and I've got a note to take a look at this and Peter's patch as soon as I can.

Is this fixing an urgent issue with "make check-block" or similar?

It's not urgent since this has been broken forever, but yes, it fixes "make check-block" for the case where sparc64 is the only available target during "configure --target-list=sparc64-softmmu" and thus the iotests run with qemu-system-sparc64.

 Thomas


Reply via email to