Mark Cave-Ayland
ca7b468be8
lasi: use constants for device register offsets
...
Instead of generating the offset based upon the physical address of the
register, add constants for each of the device registers to lasi.h and
update lasi.c to use them.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-40-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:37 +01:00
Mark Cave-Ayland
e881e3c83a
lasi: move lasi_initfn() to machine.c
...
Move the simplified lasi_initfn() back to machine.c whilst also renaming it
back to its original lasi_init() name.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-39-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:37 +01:00
Mark Cave-Ayland
deaa5d3b4e
lasi: remove address space parameter from lasi_initfn()
...
Now that all of the LASI devices are mapped by the board, this parameter is no
longer required.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-38-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:37 +01:00
Mark Cave-Ayland
d26c575c44
lasi: move PS2 initialisation to machine.c
...
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-37-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:37 +01:00
Mark Cave-Ayland
2da547b819
lasi: move second serial port initialisation to machine.c
...
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-36-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:37 +01:00
Mark Cave-Ayland
9701e56943
lasi: move parallel port initialisation to machine.c
...
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-35-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:37 +01:00
Mark Cave-Ayland
c3c3fe4708
lasi: move LAN initialisation to machine.c
...
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-34-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:37 +01:00
Mark Cave-Ayland
954f6f7564
lasi: update lasi_initfn() to return LASIState
...
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-33-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:37 +01:00
Mark Cave-Ayland
fe744ca3ee
lasi: fix serial port initialisation
...
The existing code checks for serial_hd(1) but sets the LASI serial port chardev
to serial_hd(0). Use serial_hd(1) for the LASI serial port and also set the
serial port endian to DEVICE_BIG_ENDIAN (which also matches the endian of the
existing serial port).
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-32-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:37 +01:00
Mark Cave-Ayland
e004499fd5
lasi: use qdev GPIOs to wire up IRQs in lasi_initfn()
...
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-31-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:37 +01:00
Mark Cave-Ayland
cb9f6c4b65
lasi: define IRQ inputs as qdev GPIOs
...
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-30-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:37 +01:00
Mark Cave-Ayland
0f04d5777b
lasi: replace lasi_get_irq() with defined constants
...
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-29-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:37 +01:00
Mark Cave-Ayland
b514f43244
lasi: move LASIState and associated QOM structures to lasi.h
...
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-28-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:36 +01:00
Mark Cave-Ayland
b3cdb7e4b2
lasi: move initialisation of iar and rtc to new lasi_reset() function
...
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-27-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:36 +01:00
Mark Cave-Ayland
2683758c7c
lasi: move register memory mapping from lasi.c to machine.c
...
The device register should be mapped directly by the board code.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-26-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:36 +01:00
Mark Cave-Ayland
46f2594cfc
lasi: move memory region initialisation to new lasi_init() function
...
Create a new lasi_init() instance initialisation function and move the LASI
memory region initialisation into it. Rename the existing lasi_init() function
to lasi_initfn() for now.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-25-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:36 +01:00
Mark Cave-Ayland
63588da809
lasi: checkpatch fixes
...
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-24-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:36 +01:00
Mark Cave-Ayland
0db9350e6e
dino: move from hw/hppa to hw/pci-host
...
Move the DINO device implementation from hw/hppa to hw/pci-host so that it is
located with all the other PCI host bridges.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-23-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:36 +01:00
Mark Cave-Ayland
e111f288d9
dino: move DINO HPA constants from hppa_hardware.h to dino.h
...
This is to allow us to decouple the DINO device from the board logic.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-22-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:36 +01:00
Mark Cave-Ayland
2fb11c7cac
dino: use numerical constant for iar0 and iar1 reset values
...
This is to allow us to decouple the DINO device from the board logic. The choice
of using a hard-coded constant (along with a comment) is to match how this is
already done for toc_addr. If it is decided later that these values need to be
configurable then they can easily be converted to qdev properties.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-21-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:36 +01:00
Mark Cave-Ayland
0d06899631
hppa: move dino_init() from dino.c to machine.c
...
Now that dino_init() is completely decoupled from dino.c it can be moved to
machine.c with the rest of the board configuration.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-20-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:36 +01:00
Mark Cave-Ayland
36f9bbdb17
dino: remove unused dino_set_timer_irq() IRQ handler
...
According to the comments in dino.c the timer IRQ is unused, so remove the empty
dino_set_timer_irq() handler function and simply pass NULL to mc146818_rtc_init()
in machine.c instead.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-19-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:36 +01:00
Mark Cave-Ayland
a4b74c1924
dino: wire up serial IRQ using a qdev GPIO in machine.c
...
This makes it unnecessary to allocate a separate IRQ for the serial port.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-18-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:36 +01:00
Mark Cave-Ayland
4b5faaf94f
dino: define IRQ inputs as qdev GPIOs
...
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-17-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:36 +01:00
Mark Cave-Ayland
10c5264172
dino.h: add defines for DINO IRQ numbers
...
This is to allow the DINO IRQs to be defined as qdev GPIOs.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-16-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:36 +01:00
Mark Cave-Ayland
efdb3ce2de
machine.c: map DINO device during board configuration
...
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-15-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:36 +01:00
Mark Cave-Ayland
05245daf47
dino: change dino_init() to return the DINO device instead of PCIBus
...
This is in preparation for using more qdev APIs during the configuration of the
HPPA generic machine.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-14-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:36 +01:00
Mark Cave-Ayland
0d98fbb57d
hppa: use new CONFIG_HPPA_B160L option instead of CONFIG_DINO to build hppa machine
...
DINO refers to the GSC-PCI bridge device which will soon be handled separately,
however the QEMU HPPA machine is actually based upon the HPPA B160L as indicated
by the Linux kernel dmesg output when booted in qemu-system-hppa and the QEMU
MAINTAINERS file.
Update the machine configuration to use CONFIG_HPPA_B160L instead of CONFIG_DINO
and also update the machine description accordingly.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-13-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:36 +01:00
Mark Cave-Ayland
14e275efcb
dino: split declarations from dino.c into dino.h
...
This is to allow access to DinoState from outside dino.c. With the changes to
the headers it is now possible to remove the duplicate definition for
TYPE_DINO_PCI_HOST_BRIDGE from hppa_sys.h.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-12-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:36 +01:00
Mark Cave-Ayland
079e7ad989
dino: return PCIBus from dino_init() using qdev_get_child_bus()
...
This allows access to the PCI bus without having to reference parent_obj directly.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-11-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:36 +01:00
Mark Cave-Ayland
ee313d5abb
dino: use QOM cast instead of directly referencing parent_obj
...
Use a QOM cast in both dino_chip_read_with_attrs() and dino_chip_write_with_attrs()
instead of directly referencing parent_obj.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-10-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:36 +01:00
Mark Cave-Ayland
98d168f359
dino: move initial register configuration to new dino_pcihost_reset() function
...
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-9-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:36 +01:00
Mark Cave-Ayland
9cf69f444c
dino: move PCI bus master address space setup to dino_pcihost_realize()
...
Add a new dino_pcihost_unrealize() function to remove the address space when the
device is unrealized.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-8-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:36 +01:00
Mark Cave-Ayland
5ac6c43c85
dino: move pci_setup_iommu() to dino_pcihost_init()
...
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-7-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:36 +01:00
Mark Cave-Ayland
270b29587f
dino: add memory-as property containing a link to the memory address space
...
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-6-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:36 +01:00
Mark Cave-Ayland
cc363c4a10
dino: move PCI windows initialisation to dino_pcihost_init()
...
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-5-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:36 +01:00
Mark Cave-Ayland
63901b6cc4
dino: move PCI bus initialisation to dino_pcihost_init()
...
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-4-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:36 +01:00
Mark Cave-Ayland
7cdfa94166
dino: move registers from dino_init() to DINO_PCI_BRIDGE init function
...
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-3-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:36 +01:00
Mark Cave-Ayland
17bd42896d
dino: checkpatch fixes
...
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Acked-by: Helge Deller <deller@gmx.de >
Message-Id: <20220504092600.10048-2-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2022-05-08 18:52:36 +01:00
Marc-André Lureau
0f9668e0c1
Remove qemu-common.h include from most units
...
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com >
Message-Id: <20220323155743.1585078-33-marcandre.lureau@redhat.com >
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com >
2022-04-06 14:31:55 +02:00
Helge Deller
4a4554c6c5
hppa: Add support for an emulated TOC/NMI button.
...
Almost all PA-RISC machines have either a button that is labeled with 'TOC' or
a BMC/GSP function to trigger a TOC. TOC is a non-maskable interrupt that is
sent to the processor. This can be used for diagnostic purposes like obtaining
a stack trace/register dump or to enter KDB/KGDB in Linux.
This patch adds support for such an emulated TOC button.
It wires up the qemu monitor "nmi" command to trigger a TOC. For that it
provides the hppa_nmi function which is assigned to the nmi_monitor_handler
function pointer. When called it raises the EXCP_TOC hardware interrupt in the
hppa_cpu_do_interrupt() function. The interrupt function then calls the
architecturally defined TOC function in SeaBIOS-hppa firmware (at fixed address
0xf0000000).
According to the PA-RISC PDC specification, the SeaBIOS firmware then writes
the CPU registers into PIM (processor internal memmory) for later analysis. In
order to write all registers it needs to know the contents of the CPU "shadow
registers" and the IASQ- and IAOQ-back values. The IAOQ/IASQ values are
provided by qemu in shadow registers when entering the SeaBIOS TOC function.
This patch adds a new aritificial opcode "getshadowregs" (0xfffdead2) which
restores the original values of the shadow registers. With this opcode SeaBIOS
can store those registers as well into PIM before calling an OS-provided TOC
handler.
To trigger a TOC, switch to the qemu monitor with Ctrl-A C, and type in the
command "nmi". After the TOC started the OS-debugger, exit the qemu monitor
with Ctrl-A C.
Signed-off-by: Helge Deller <deller@gmx.de >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
2022-02-02 18:46:42 +01:00
Helge Deller
87e126ea14
hw/hppa: Allow up to 16 emulated CPUs
...
This brings the hppa_hardware.h file in sync with the copy in the
SeaBIOS-hppa sources.
In order to support up to 16 CPUs, it's required to move the HPA for
MEMORY_HPA out of the address space of the new 16th CPU.
The new address of 0xfffff000 worked well for Linux and HP-UX, while
other addresses close to the former 0xfffbf000 area are used by the
architecture for local and global broadcasts.
The PIM_STORAGE_SIZE constant is used in SeaBIOS sources and
is relevant for the TOC/NMI feature.
Signed-off-by: Helge Deller <deller@gmx.de >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
2022-02-02 18:46:41 +01:00
Stefano Garzarella
d0fb9657a3
docs: fix references to docs/devel/tracing.rst
...
Commit e50caf4a5c
("tracing: convert documentation to rST")
converted docs/devel/tracing.txt to docs/devel/tracing.rst.
We still have several references to the old file, so let's fix them
with the following command:
sed -i s/tracing.txt/tracing.rst/ $(git grep -l docs/devel/tracing.txt)
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Message-Id: <20210517151702.109066-2-sgarzare@redhat.com >
Signed-off-by: Thomas Huth <thuth@redhat.com >
2021-06-02 06:51:09 +02:00
Thomas Huth
ee86213aa3
Do not include exec/address-spaces.h if it's not really necessary
...
Stop including exec/address-spaces.h in files that don't need it.
Signed-off-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20210416171314.2074665-5-thuth@redhat.com >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-05-02 17:24:51 +02:00
Thomas Huth
2068cabd3f
Do not include cpu.h if it's not really necessary
...
Stop including cpu.h in files that don't need it.
Signed-off-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20210416171314.2074665-4-thuth@redhat.com >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-05-02 17:24:51 +02:00
Thomas Huth
ead62c75f6
Do not include hw/boards.h if it's not really necessary
...
Stop including hw/boards.h in files that don't need it.
Signed-off-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20210416171314.2074665-3-thuth@redhat.com >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-05-02 17:24:51 +02:00
Thomas Huth
e06054368c
hw: Remove superfluous includes of hw/hw.h
...
The include/hw/hw.h header only has a prototype for hw_error(),
so it does not make sense to include this in files that do not
use this function.
Signed-off-by: Thomas Huth <thuth@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20210326151848.2217216-1-thuth@redhat.com >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-05-02 17:24:50 +02:00
Philippe Mathieu-Daudé
8d40def66d
hw: Use the PCI_SLOT() macro from 'hw/pci/pci.h'
...
We already have a generic PCI_SLOT() macro in "hw/pci/pci.h"
to extract the PCI slot identifier, use it.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Acked-by: Paul Durrant <paul@xen.org >
Acked-by: David Gibson <david@gibson.dropbear.id.au >
Acked-by: Michael S. Tsirkin <mst@redhat.com >
Message-Id: <20201012124506.3406909-5-philmd@redhat.com >
2021-01-04 23:24:44 +01:00
Paolo Bonzini
2c65db5e58
vl: extract softmmu/datadir.c
...
Reviewed-by: Igor Mammedov <imammedo@redhat.com >
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com >
2020-12-10 12:15:18 -05:00
Paolo Bonzini
bfdf22bc76
hppa: do not use ram_size global
...
Use the machine properties instead.
Cc: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com >
2020-12-10 12:15:07 -05:00