diff mbox series

[v3,2/9] hw/hppa/machine: Disable default devices with --nodefaults option

Message ID 20240112102927.35406-3-deller@kernel.org
State New
Headers show
Series target/hppa qemu v8.2 regression fixes | expand

Commit Message

Helge Deller Jan. 12, 2024, 10:29 a.m. UTC
From: Helge Deller <deller@gmx.de>

Recognize the qemu --nodefaults option, which will disable the
following default devices on hppa:
- lsi53c895a SCSI controller,
- artist graphics card,
- LASI 82596 NIC,
- tulip PCI NIC,
- second serial PCI card,
- USB OHCI controller.

Adding this option is very useful to allow manual testing and
debugging of the other possible devices on the command line.

Signed-off-by: Helge Deller <deller@gmx.de>
---
 hw/hppa/machine.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

Comments

Richard Henderson Jan. 12, 2024, 8:39 p.m. UTC | #1
On 1/12/24 21:29, deller@kernel.org wrote:
> From: Helge Deller<deller@gmx.de>
> 
> Recognize the qemu --nodefaults option, which will disable the
> following default devices on hppa:
> - lsi53c895a SCSI controller,
> - artist graphics card,
> - LASI 82596 NIC,
> - tulip PCI NIC,
> - second serial PCI card,
> - USB OHCI controller.
> 
> Adding this option is very useful to allow manual testing and
> debugging of the other possible devices on the command line.
> 
> Signed-off-by: Helge Deller<deller@gmx.de>
> ---
>   hw/hppa/machine.c | 10 ++++++----
>   1 file changed, 6 insertions(+), 4 deletions(-)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>


r~
David Woodhouse Jan. 26, 2024, 12:02 p.m. UTC | #2
On Fri, 2024-01-12 at 11:29 +0100, deller@kernel.org wrote:
> From: Helge Deller <deller@gmx.de>
> 
> Recognize the qemu --nodefaults option, which will disable the
> following default devices on hppa:
> - lsi53c895a SCSI controller,
> - artist graphics card,
> - LASI 82596 NIC,
> - tulip PCI NIC,
> - second serial PCI card,
> - USB OHCI controller.
> 
> Adding this option is very useful to allow manual testing and
> debugging of the other possible devices on the command line.
> 
> Signed-off-by: Helge Deller <deller@gmx.de>

Well, the LASI 82596 hasn't actually been built since 2019, when there
was a typo in the meson conversion and it started to depend on the non-
existent CONFIG_LASI_I82596 option instead of CONFIG_LASI_82596.

But that doesn't really matter because enable_lasi_lan() has been
#defined to zero for hw/hppa/machine.c ever since the LASI support was
first introduced, so nothing ever tries to instantiate one anyway.

As part of the -nic rework¹ I plan to allow the user to explicitly
specify "lasi_82596" as the model if they want one, or else the default
-nic will be a PCI one as it is at the moment. OK?

¹ https://lore.kernel.org/qemu-devel/20240108204909.564514-1-dwmw2@infradead.org/T/
Helge Deller Jan. 26, 2024, 2:49 p.m. UTC | #3
On 1/26/24 13:02, David Woodhouse wrote:
> On Fri, 2024-01-12 at 11:29 +0100, deller@kernel.org wrote:
>> From: Helge Deller <deller@gmx.de>
>>
>> Recognize the qemu --nodefaults option, which will disable the
>> following default devices on hppa:
>> - lsi53c895a SCSI controller,
>> - artist graphics card,
>> - LASI 82596 NIC,
>> - tulip PCI NIC,
>> - second serial PCI card,
>> - USB OHCI controller.
>>
>> Adding this option is very useful to allow manual testing and
>> debugging of the other possible devices on the command line.
>>
>> Signed-off-by: Helge Deller <deller@gmx.de>
>
> Well, the LASI 82596 hasn't actually been built since 2019, when there
> was a typo in the meson conversion and it started to depend on the non-
> existent CONFIG_LASI_I82596 option instead of CONFIG_LASI_82596.
>
> But that doesn't really matter because enable_lasi_lan() has been
> #defined to zero for hw/hppa/machine.c ever since the LASI support was
> first introduced, so nothing ever tries to instantiate one anyway.

True.
I do have code for LASI_82596 in my github repo, but since
it's not working correctly yet, I haven't pushed it yet upstream.
I do plan to work at it when time permits though..

> As part of the -nic rework¹ I plan to allow the user to explicitly
> specify "lasi_82596" as the model if they want one, or else the default
> -nic will be a PCI one as it is at the moment. OK?

Yes, that would be great.
Thanks!
Helge

> ¹ https://lore.kernel.org/qemu-devel/20240108204909.564514-1-dwmw2@infradead.org/T/
David Woodhouse Jan. 26, 2024, 2:51 p.m. UTC | #4
On Fri, 2024-01-26 at 15:49 +0100, Helge Deller wrote:
> 
> > As part of the -nic rework¹ I plan to allow the user to explicitly
> > specify "lasi_82596" as the model if they want one, or else the default
> > -nic will be a PCI one as it is at the moment. OK?
> 
> Yes, that would be great.

Looks like this:

https://git.infradead.org/?p=users/dwmw2/qemu.git;a=commitdiff;h=b954e8004e89b
diff mbox series

Patch

diff --git a/hw/hppa/machine.c b/hw/hppa/machine.c
index b11907617e..54ca2fd91a 100644
--- a/hw/hppa/machine.c
+++ b/hw/hppa/machine.c
@@ -346,8 +346,10 @@  static void machine_HP_common_init_tail(MachineState *machine, PCIBus *pci_bus,
     SysBusDevice *s;
 
     /* SCSI disk setup. */
-    dev = DEVICE(pci_create_simple(pci_bus, -1, "lsi53c895a"));
-    lsi53c8xx_handle_legacy_cmdline(dev);
+    if (drive_get_max_bus(IF_SCSI) >= 0) {
+        dev = DEVICE(pci_create_simple(pci_bus, -1, "lsi53c895a"));
+        lsi53c8xx_handle_legacy_cmdline(dev);
+    }
 
     /* Graphics setup. */
     if (machine->enable_graphics && vga_interface_type != VGA_NONE) {
@@ -360,7 +362,7 @@  static void machine_HP_common_init_tail(MachineState *machine, PCIBus *pci_bus,
     }
 
     /* Network setup. */
-    if (enable_lasi_lan()) {
+    if (nd_table[0].used && enable_lasi_lan()) {
         lasi_82596_init(addr_space, translate(NULL, LASI_LAN_HPA),
                         qdev_get_gpio_in(lasi_dev, LASI_IRQ_LAN_HPA));
     }
@@ -385,7 +387,7 @@  static void machine_HP_common_init_tail(MachineState *machine, PCIBus *pci_bus,
     pci_set_word(&pci_dev->config[PCI_SUBSYSTEM_ID], 0x1227); /* Powerbar */
 
     /* create a second serial PCI card when running Astro */
-    if (!lasi_dev) {
+    if (serial_hd(1) && !lasi_dev) {
         pci_dev = pci_new(-1, "pci-serial-4x");
         qdev_prop_set_chr(DEVICE(pci_dev), "chardev1", serial_hd(1));
         qdev_prop_set_chr(DEVICE(pci_dev), "chardev2", serial_hd(2));