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>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
---
hw/hppa/machine.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
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));
--
2.43.0
Hi,
On Sat, Jan 13, 2024 at 06:57:20AM +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.
>
With this patch in the tree, I get some interesting crashes in Seabios
if I provide a somewhat unusual command line option. For example,
something like
-usb -device usb-ehci,id=ehci \
-device usb-uas,bus=ehci.0,id=uas \
-device scsi-hd,bus=uas.0,scsi-id=0,lun=0,drive=d0 \
-drive file= ...
is accepted as command line option but results in
SeaBIOS PA-RISC 32-bit Firmware Version 15 (QEMU 8.2.1)
Duplex Console IO Dependent Code (IODC) revision 1
------------------------------------------------------------------------------
(c) Copyright 2017-2024 Helge Deller <deller@gmx.de> and SeaBIOS developers.
------------------------------------------------------------------------------
Processor Speed State Coprocessor State Cache Size
--------- -------- --------------------- ----------------- ----------
0 250 MHz Active Functional 0 KB
1 250 MHz Idle Functional 0 KB
2 250 MHz Idle Functional 0 KB
3 250 MHz Idle Functional 0 KB
Emulated machine: HP C3700 (64-bit PA2.0) with 32-bit PDC
Available memory: 1024 MB
Good memory required: 16 MB
Primary boot path: FWSCSI.0.0
Alternate boot path: FWSCSI.0.0
Console path: SERIAL_2.9600.8.none
Keyboard path: SERIAL_2.9600.8.none
*ERROR* in SeaBIOS-hppa-v15:
prepare_boot_path:2898
SeaBIOS wants SYSTEM HALT.
This is without --nodefaults, and it used to work. Is that intentional ?
If I do use the --nodefaults parameter, I was unable to figure out how
to configure the serial console. What command line parameter(s) do I need to
get it ?
Thanks,
Guenter
Hi Helge,
On Thu, Feb 01, 2024 at 08:22:58PM -0800, Guenter Roeck wrote:
> Hi,
>
> On Sat, Jan 13, 2024 at 06:57:20AM +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.
> >
>
> With this patch in the tree, I get some interesting crashes in Seabios
> if I provide a somewhat unusual command line option. For example,
> something like
>
> -usb -device usb-ehci,id=ehci \
> -device usb-uas,bus=ehci.0,id=uas \
> -device scsi-hd,bus=uas.0,scsi-id=0,lun=0,drive=d0 \
> -drive file= ...
>
> is accepted as command line option but results in
>
> SeaBIOS PA-RISC 32-bit Firmware Version 15 (QEMU 8.2.1)
> Duplex Console IO Dependent Code (IODC) revision 1
> ------------------------------------------------------------------------------
> (c) Copyright 2017-2024 Helge Deller <deller@gmx.de> and SeaBIOS developers.
> ------------------------------------------------------------------------------
> Processor Speed State Coprocessor State Cache Size
> --------- -------- --------------------- ----------------- ----------
> 0 250 MHz Active Functional 0 KB
> 1 250 MHz Idle Functional 0 KB
> 2 250 MHz Idle Functional 0 KB
> 3 250 MHz Idle Functional 0 KB
> Emulated machine: HP C3700 (64-bit PA2.0) with 32-bit PDC
> Available memory: 1024 MB
> Good memory required: 16 MB
> Primary boot path: FWSCSI.0.0
> Alternate boot path: FWSCSI.0.0
> Console path: SERIAL_2.9600.8.none
> Keyboard path: SERIAL_2.9600.8.none
> *ERROR* in SeaBIOS-hppa-v15:
> prepare_boot_path:2898
> SeaBIOS wants SYSTEM HALT.
Just in case it matters, the following partial revert fixes the problem
for me.
diff --git a/hw/hppa/machine.c b/hw/hppa/machine.c
index eb78c46ff1..cc903bc323 100644
--- a/hw/hppa/machine.c
+++ b/hw/hppa/machine.c
@@ -346,10 +346,8 @@ static void machine_HP_common_init_tail(MachineState *machine, PCIBus *pci_bus,
SysBusDevice *s;
/* SCSI disk setup. */
- if (drive_get_max_bus(IF_SCSI) >= 0) {
- dev = DEVICE(pci_create_simple(pci_bus, -1, "lsi53c895a"));
- lsi53c8xx_handle_legacy_cmdline(dev);
- }
+ dev = DEVICE(pci_create_simple(pci_bus, -1, "lsi53c895a"));
+ lsi53c8xx_handle_legacy_cmdline(dev);
It seems that SeaBIOS doesn't like it if the SCSI interface is missing.
Guenter
Hi Guenter,
On 2/2/24 05:22, Guenter Roeck wrote:
> On Sat, Jan 13, 2024 at 06:57:20AM +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.
>>
>
> With this patch in the tree, I get some interesting crashes in Seabios
> if I provide a somewhat unusual command line option. For example,
> something like
>
> -usb -device usb-ehci,id=ehci \
> -device usb-uas,bus=ehci.0,id=uas \
> -device scsi-hd,bus=uas.0,scsi-id=0,lun=0,drive=d0 \
> -drive file= ...
>
> is accepted as command line option but results in
>
> SeaBIOS PA-RISC 32-bit Firmware Version 15 (QEMU 8.2.1)
> Duplex Console IO Dependent Code (IODC) revision 1
> ------------------------------------------------------------------------------
> (c) Copyright 2017-2024 Helge Deller <deller@gmx.de> and SeaBIOS developers.
> ------------------------------------------------------------------------------
> Processor Speed State Coprocessor State Cache Size
> --------- -------- --------------------- ----------------- ----------
> 0 250 MHz Active Functional 0 KB
> 1 250 MHz Idle Functional 0 KB
> 2 250 MHz Idle Functional 0 KB
> 3 250 MHz Idle Functional 0 KB
> Emulated machine: HP C3700 (64-bit PA2.0) with 32-bit PDC
> Available memory: 1024 MB
> Good memory required: 16 MB
> Primary boot path: FWSCSI.0.0
> Alternate boot path: FWSCSI.0.0
> Console path: SERIAL_2.9600.8.none
> Keyboard path: SERIAL_2.9600.8.none
> *ERROR* in SeaBIOS-hppa-v15:
> prepare_boot_path:2898
> SeaBIOS wants SYSTEM HALT.
>
> This is without --nodefaults, and it used to work. Is that intentional ?
This should now be fixed in the upcoming SeaBIOS-hppa-v16 version ("devel" branch):
https://github.com/hdeller/seabios-hppa/tree/devel
Could you test?
If it doesn't work, please give me the full command line.
> If I do use the --nodefaults parameter, I was unable to figure out how
> to configure the serial console. What command line parameter(s) do I need to
> get it ?
You need to add:
-serial mon:stdio
This will create a serial port if it's not yet there.
Thanks for your testing!
Helge
On Fri, Feb 02, 2024 at 10:54:20AM +0100, Helge Deller wrote:
> Hi Guenter,
>
> On 2/2/24 05:22, Guenter Roeck wrote:
> > On Sat, Jan 13, 2024 at 06:57:20AM +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.
> > >
> >
> > With this patch in the tree, I get some interesting crashes in Seabios
> > if I provide a somewhat unusual command line option. For example,
> > something like
> >
> > -usb -device usb-ehci,id=ehci \
> > -device usb-uas,bus=ehci.0,id=uas \
> > -device scsi-hd,bus=uas.0,scsi-id=0,lun=0,drive=d0 \
> > -drive file= ...
> >
> > is accepted as command line option but results in
> >
> > SeaBIOS PA-RISC 32-bit Firmware Version 15 (QEMU 8.2.1)
> > Duplex Console IO Dependent Code (IODC) revision 1
> > ------------------------------------------------------------------------------
> > (c) Copyright 2017-2024 Helge Deller <deller@gmx.de> and SeaBIOS developers.
> > ------------------------------------------------------------------------------
> > Processor Speed State Coprocessor State Cache Size
> > --------- -------- --------------------- ----------------- ----------
> > 0 250 MHz Active Functional 0 KB
> > 1 250 MHz Idle Functional 0 KB
> > 2 250 MHz Idle Functional 0 KB
> > 3 250 MHz Idle Functional 0 KB
> > Emulated machine: HP C3700 (64-bit PA2.0) with 32-bit PDC
> > Available memory: 1024 MB
> > Good memory required: 16 MB
> > Primary boot path: FWSCSI.0.0
> > Alternate boot path: FWSCSI.0.0
> > Console path: SERIAL_2.9600.8.none
> > Keyboard path: SERIAL_2.9600.8.none
> > *ERROR* in SeaBIOS-hppa-v15:
> > prepare_boot_path:2898
> > SeaBIOS wants SYSTEM HALT.
> >
> > This is without --nodefaults, and it used to work. Is that intentional ?
>
> This should now be fixed in the upcoming SeaBIOS-hppa-v16 version ("devel" branch):
> https://github.com/hdeller/seabios-hppa/tree/devel
> Could you test?
I was able to build from the 'master' branch, but 'devel' gives me
hppa64-linux-ld: target elf32-hppa-linux not found
Do you have a binary seabios image, by any chance ?
> If it doesn't work, please give me the full command line.
>
qemu-system-hppa -M C3700 -smp 4 \
-kernel vmlinux -no-reboot -snapshot \
-usb -device usb-ehci,id=ehci \
-device usb-uas,bus=ehci.0,id=uas \
-device scsi-hd,bus=uas.0,scsi-id=0,lun=0,drive=d0 \
-drive file=rootfs.ext2,if=none,format=raw,id=d0 \
-append "root=/dev/sda rootwait console=ttyS0,115200" \
-nographic -monitor null
This is with qemu 8.2.1. Note that the number of CPUs doesn't make a
difference. It turns out this also crashes/aborts immediately with
"nodefaults".
> > If I do use the --nodefaults parameter, I was unable to figure out how
> > to configure the serial console. What command line parameter(s) do I need to
> > get it ?
>
> You need to add:
> -serial mon:stdio
> This will create a serial port if it's not yet there.
>
And there was me trying all variants of "-device pci-serial-4x..." I could
think of ;-).
Guenter
On 2/2/24 19:04, Guenter Roeck wrote:
> On Fri, Feb 02, 2024 at 10:54:20AM +0100, Helge Deller wrote:
>> Hi Guenter,
>>
>> On 2/2/24 05:22, Guenter Roeck wrote:
>>> On Sat, Jan 13, 2024 at 06:57:20AM +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.
>>>>
>>>
>>> With this patch in the tree, I get some interesting crashes in Seabios
>>> if I provide a somewhat unusual command line option. For example,
>>> something like
>>>
>>> -usb -device usb-ehci,id=ehci \
>>> -device usb-uas,bus=ehci.0,id=uas \
>>> -device scsi-hd,bus=uas.0,scsi-id=0,lun=0,drive=d0 \
>>> -drive file= ...
>>>
>>> is accepted as command line option but results in
>>>
>>> SeaBIOS PA-RISC 32-bit Firmware Version 15 (QEMU 8.2.1)
>>> Duplex Console IO Dependent Code (IODC) revision 1
>>> ------------------------------------------------------------------------------
>>> (c) Copyright 2017-2024 Helge Deller <deller@gmx.de> and SeaBIOS developers.
>>> ------------------------------------------------------------------------------
>>> Processor Speed State Coprocessor State Cache Size
>>> --------- -------- --------------------- ----------------- ----------
>>> 0 250 MHz Active Functional 0 KB
>>> 1 250 MHz Idle Functional 0 KB
>>> 2 250 MHz Idle Functional 0 KB
>>> 3 250 MHz Idle Functional 0 KB
>>> Emulated machine: HP C3700 (64-bit PA2.0) with 32-bit PDC
>>> Available memory: 1024 MB
>>> Good memory required: 16 MB
>>> Primary boot path: FWSCSI.0.0
>>> Alternate boot path: FWSCSI.0.0
>>> Console path: SERIAL_2.9600.8.none
>>> Keyboard path: SERIAL_2.9600.8.none
>>> *ERROR* in SeaBIOS-hppa-v15:
>>> prepare_boot_path:2898
>>> SeaBIOS wants SYSTEM HALT.
>>>
>>> This is without --nodefaults, and it used to work. Is that intentional ?
>>
>> This should now be fixed in the upcoming SeaBIOS-hppa-v16 version ("devel" branch):
>> https://github.com/hdeller/seabios-hppa/tree/devel
>> Could you test?
>
> I was able to build from the 'master' branch, but 'devel' gives me
>
> hppa64-linux-ld: target elf32-hppa-linux not found
The devel branch now includes a 64-bit firmware too.
You need both, hppa (32-bit) and hppa64 (64-bit) gcc
and binutils packages installed.
> Do you have a binary seabios image, by any chance ?
http://www.dellerweb.de/temp/hppa-firmware.img
>> If it doesn't work, please give me the full command line.
>>
>
> qemu-system-hppa -M C3700 -smp 4 \
> -kernel vmlinux -no-reboot -snapshot \
> -usb -device usb-ehci,id=ehci \
> -device usb-uas,bus=ehci.0,id=uas \
> -device scsi-hd,bus=uas.0,scsi-id=0,lun=0,drive=d0 \
> -drive file=rootfs.ext2,if=none,format=raw,id=d0 \
> -append "root=/dev/sda rootwait console=ttyS0,115200" \
> -nographic -monitor null
That line boots for me now.
> This is with qemu 8.2.1. Note that the number of CPUs doesn't make a
> difference. It turns out this also crashes/aborts immediately with
> "nodefaults".
Adding "--nodefaults -serial mon:stdio" to the line above works too.
>>> If I do use the --nodefaults parameter, I was unable to figure out how
>>> to configure the serial console. What command line parameter(s) do I need to
>>> get it ?
>>
>> You need to add:
>> -serial mon:stdio
>> This will create a serial port if it's not yet there.
>>
>
> And there was me trying all variants of "-device pci-serial-4x..." I could
> think of ;-).
:-)
Helge
© 2016 - 2026 Red Hat, Inc.