diff mbox series

[v2,1/5] hw/isa/Kconfig: PIIX4 southbridge requires USB UHCI

Message ID 20190316223918.11917-2-philmd@redhat.com
State New
Headers show
Series hw/Kconfig: Fixes when running ./configure --without-default-devices | expand

Commit Message

Philippe Mathieu-Daudé March 16, 2019, 10:39 p.m. UTC
This fixes when configuring with --without-default-devices:

  $ qemu-system-mips64 -M malta --nodefaults -bios /dev/null
  qemu-system-mips64: Unknown device 'piix4-usb-uhci' for bus 'PCI'
  Aborted (core dumped)

  (gdb) bt
  #0  0x00007ffff5a4353f in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
  #1  0x00007ffff5a2d895 in __GI_abort () at abort.c:79
  #2  0x00005555558745c3 in qdev_create (bus=bus@entry=0x555556336260, name=name@entry=0x555555b13a4d "piix4-usb-uhci") at hw/core/qdev.c:131
  #3  0x00005555558cb3e1 in pci_create_multifunction (bus=bus@entry=0x555556336260, devfn=devfn@entry=82, multifunction=multifunction@entry=false, name=name@entry=0x555555b13a4d "piix4-usb-uhci") at hw/pci/pci.c:2104
  #4  0x00005555558cb88b in pci_create_simple_multifunction (name=name@entry=0x555555b13a4d "piix4-usb-uhci", multifunction=false, devfn=devfn@entry=82, bus=bus@entry=0x555556336260) at hw/pci/pci.c:2126
  #5  0x00005555558cb88b in pci_create_simple (bus=bus@entry=0x555556336260, devfn=devfn@entry=82, name=name@entry=0x555555b13a4d "piix4-usb-uhci") at hw/pci/pci.c:2126
  #6  0x000055555575ea38 in mips_malta_init (machine=0x555555ffe430) at hw/mips/mips_malta.c:1392
  #7  0x000055555587bf2b in machine_run_board_init (machine=0x555555ffe430) at hw/core/machine.c:1030

Fixes: 7c28b925b7e
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 hw/isa/Kconfig | 1 +
 1 file changed, 1 insertion(+)

Comments

Thomas Huth March 25, 2019, 4:49 a.m. UTC | #1
On 16/03/2019 23.39, Philippe Mathieu-Daudé wrote:
> This fixes when configuring with --without-default-devices:
> 
>   $ qemu-system-mips64 -M malta --nodefaults -bios /dev/null
>   qemu-system-mips64: Unknown device 'piix4-usb-uhci' for bus 'PCI'
>   Aborted (core dumped)
> 
>   (gdb) bt
>   #0  0x00007ffff5a4353f in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
>   #1  0x00007ffff5a2d895 in __GI_abort () at abort.c:79
>   #2  0x00005555558745c3 in qdev_create (bus=bus@entry=0x555556336260, name=name@entry=0x555555b13a4d "piix4-usb-uhci") at hw/core/qdev.c:131
>   #3  0x00005555558cb3e1 in pci_create_multifunction (bus=bus@entry=0x555556336260, devfn=devfn@entry=82, multifunction=multifunction@entry=false, name=name@entry=0x555555b13a4d "piix4-usb-uhci") at hw/pci/pci.c:2104
>   #4  0x00005555558cb88b in pci_create_simple_multifunction (name=name@entry=0x555555b13a4d "piix4-usb-uhci", multifunction=false, devfn=devfn@entry=82, bus=bus@entry=0x555556336260) at hw/pci/pci.c:2126
>   #5  0x00005555558cb88b in pci_create_simple (bus=bus@entry=0x555556336260, devfn=devfn@entry=82, name=name@entry=0x555555b13a4d "piix4-usb-uhci") at hw/pci/pci.c:2126
>   #6  0x000055555575ea38 in mips_malta_init (machine=0x555555ffe430) at hw/mips/mips_malta.c:1392
>   #7  0x000055555587bf2b in machine_run_board_init (machine=0x555555ffe430) at hw/core/machine.c:1030
> 
> Fixes: 7c28b925b7e
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
>  hw/isa/Kconfig | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/hw/isa/Kconfig b/hw/isa/Kconfig
> index 57e09a0cb8..c942b47d03 100644
> --- a/hw/isa/Kconfig
> +++ b/hw/isa/Kconfig
> @@ -29,6 +29,7 @@ config PIIX4
>      # For historical reasons, SuperIO devices are created in the board
>      # for PIIX4.
>      select ISA_BUS
> +    select USB_UHCI

The UHCI controller is not instantiated by hw/isa/piix4.c, but by
hw/mips/mips_malta.c as far as I can see. And you can use the "pc"
machine also without uhci. So I think this patch is wrong, the select
should be done by "MALTA" instead.

 Thomas
Thomas Huth March 25, 2019, 4:55 a.m. UTC | #2
On 25/03/2019 05.49, Thomas Huth wrote:
> On 16/03/2019 23.39, Philippe Mathieu-Daudé wrote:
>> This fixes when configuring with --without-default-devices:
>>
>>   $ qemu-system-mips64 -M malta --nodefaults -bios /dev/null
>>   qemu-system-mips64: Unknown device 'piix4-usb-uhci' for bus 'PCI'
>>   Aborted (core dumped)
>>
>>   (gdb) bt
>>   #0  0x00007ffff5a4353f in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
>>   #1  0x00007ffff5a2d895 in __GI_abort () at abort.c:79
>>   #2  0x00005555558745c3 in qdev_create (bus=bus@entry=0x555556336260, name=name@entry=0x555555b13a4d "piix4-usb-uhci") at hw/core/qdev.c:131
>>   #3  0x00005555558cb3e1 in pci_create_multifunction (bus=bus@entry=0x555556336260, devfn=devfn@entry=82, multifunction=multifunction@entry=false, name=name@entry=0x555555b13a4d "piix4-usb-uhci") at hw/pci/pci.c:2104
>>   #4  0x00005555558cb88b in pci_create_simple_multifunction (name=name@entry=0x555555b13a4d "piix4-usb-uhci", multifunction=false, devfn=devfn@entry=82, bus=bus@entry=0x555556336260) at hw/pci/pci.c:2126
>>   #5  0x00005555558cb88b in pci_create_simple (bus=bus@entry=0x555556336260, devfn=devfn@entry=82, name=name@entry=0x555555b13a4d "piix4-usb-uhci") at hw/pci/pci.c:2126
>>   #6  0x000055555575ea38 in mips_malta_init (machine=0x555555ffe430) at hw/mips/mips_malta.c:1392
>>   #7  0x000055555587bf2b in machine_run_board_init (machine=0x555555ffe430) at hw/core/machine.c:1030
>>
>> Fixes: 7c28b925b7e
>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>> ---
>>  hw/isa/Kconfig | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/hw/isa/Kconfig b/hw/isa/Kconfig
>> index 57e09a0cb8..c942b47d03 100644
>> --- a/hw/isa/Kconfig
>> +++ b/hw/isa/Kconfig
>> @@ -29,6 +29,7 @@ config PIIX4
>>      # For historical reasons, SuperIO devices are created in the board
>>      # for PIIX4.
>>      select ISA_BUS
>> +    select USB_UHCI
> 
> The UHCI controller is not instantiated by hw/isa/piix4.c, but by
> hw/mips/mips_malta.c as far as I can see. And you can use the "pc"
> machine also without uhci. So I think this patch is wrong, the select
> should be done by "MALTA" instead.

Ah, never mind, I mixed up piix3-usb-uhci (used by "pc") and
piix4-usb-uhci (used by "malta"). ... So this UHCI is part of the
chipset? Then I think your patch is fine.

 Thomas
Philippe Mathieu-Daudé April 1, 2019, 12:53 p.m. UTC | #3
On 3/25/19 5:55 AM, Thomas Huth wrote:
> On 25/03/2019 05.49, Thomas Huth wrote:
>> On 16/03/2019 23.39, Philippe Mathieu-Daudé wrote:
>>> This fixes when configuring with --without-default-devices:
>>>
>>>   $ qemu-system-mips64 -M malta --nodefaults -bios /dev/null
>>>   qemu-system-mips64: Unknown device 'piix4-usb-uhci' for bus 'PCI'
>>>   Aborted (core dumped)
>>>
>>>   (gdb) bt
>>>   #0  0x00007ffff5a4353f in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
>>>   #1  0x00007ffff5a2d895 in __GI_abort () at abort.c:79
>>>   #2  0x00005555558745c3 in qdev_create (bus=bus@entry=0x555556336260, name=name@entry=0x555555b13a4d "piix4-usb-uhci") at hw/core/qdev.c:131
>>>   #3  0x00005555558cb3e1 in pci_create_multifunction (bus=bus@entry=0x555556336260, devfn=devfn@entry=82, multifunction=multifunction@entry=false, name=name@entry=0x555555b13a4d "piix4-usb-uhci") at hw/pci/pci.c:2104
>>>   #4  0x00005555558cb88b in pci_create_simple_multifunction (name=name@entry=0x555555b13a4d "piix4-usb-uhci", multifunction=false, devfn=devfn@entry=82, bus=bus@entry=0x555556336260) at hw/pci/pci.c:2126
>>>   #5  0x00005555558cb88b in pci_create_simple (bus=bus@entry=0x555556336260, devfn=devfn@entry=82, name=name@entry=0x555555b13a4d "piix4-usb-uhci") at hw/pci/pci.c:2126
>>>   #6  0x000055555575ea38 in mips_malta_init (machine=0x555555ffe430) at hw/mips/mips_malta.c:1392
>>>   #7  0x000055555587bf2b in machine_run_board_init (machine=0x555555ffe430) at hw/core/machine.c:1030
>>>
>>> Fixes: 7c28b925b7e
>>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>>> ---
>>>  hw/isa/Kconfig | 1 +
>>>  1 file changed, 1 insertion(+)
>>>
>>> diff --git a/hw/isa/Kconfig b/hw/isa/Kconfig
>>> index 57e09a0cb8..c942b47d03 100644
>>> --- a/hw/isa/Kconfig
>>> +++ b/hw/isa/Kconfig
>>> @@ -29,6 +29,7 @@ config PIIX4
>>>      # For historical reasons, SuperIO devices are created in the board
>>>      # for PIIX4.
>>>      select ISA_BUS
>>> +    select USB_UHCI
>>
>> The UHCI controller is not instantiated by hw/isa/piix4.c, but by
>> hw/mips/mips_malta.c as far as I can see. And you can use the "pc"
>> machine also without uhci. So I think this patch is wrong, the select
>> should be done by "MALTA" instead.
> 
> Ah, never mind, I mixed up piix3-usb-uhci (used by "pc") and
> piix4-usb-uhci (used by "malta"). ... So this UHCI is part of the
> chipset? Then I think your patch is fine.

Yes, UHCI is introduced in the PIIX3 chipset. In another series
(postponed to 4.1) PIIX4 inherit of PIIX3 features.
Meanwhile, this patch is a quick fix for 4.0.

Thanks,

Phil.
diff mbox series

Patch

diff --git a/hw/isa/Kconfig b/hw/isa/Kconfig
index 57e09a0cb8..c942b47d03 100644
--- a/hw/isa/Kconfig
+++ b/hw/isa/Kconfig
@@ -29,6 +29,7 @@  config PIIX4
     # For historical reasons, SuperIO devices are created in the board
     # for PIIX4.
     select ISA_BUS
+    select USB_UHCI
 
 config VT82C686
     bool