Re: [PATCH v2] hw/sparc64/sun4u: Mark unusable PCI busses as full to ease device plugging

Mark Cave-Ayland <[email protected]> Mon, 29 Jun 2026 23:20:09 +0100
Newsgroups org.nongnu.qemu-trivial,org.nongnu.qemu-devel
Message-ID <[email protected]>
On 29/06/2026 14:43, Thomas Huth wrote:

> On 09/06/2026 08.02, Thomas Huth wrote:
>> 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.
> Ping!
> 
> While it's not urgent, soft-freeze date is in a week, so it would be nice to get this 
> merged before it misses another release ... WDYT?

Hi Thomas,

I'm still playing catch-up a bit here, but I can't immediately find my notes on using 
pciA under QEMU. I think if it fixes the iotests then go ahead and merge it for now, 
which gives me time in freeze to investigate any reported issues.


ATB,

Mark.