On 4/21/22 21:30, Mark Cave-Ayland wrote: > This patchset started off when I noticed that dino.c was accessing parent_obj > directly rather than using a QOM cast. After fixing that I noticed quite a few > other improvements that could be done to bring hppa up to our recommended > coding standards. > > The main aim of this patchset is to de-couple the dino and lasi devices from > the board using QOM to handle the initialisation instead of having global > device init functions. Included in this is switching the onboard devices > over to use qdev GPIOs for wiring instead of directly allocating QEMU IRQs. > > Along the way I've renamed the board config from CONFIG_DINO to > CONFIG_HPPA_GENERIC since that better represents the machine type, and then > used CONFIG_DINO and CONFIG_LASI for the appropriate devices which have been > moved to hw/pci-host/dino.c and hw/misc/lasi.c respectively. > > After the reorganisation it was trivial to remove hppa_sys.h and the majority > of pci.c which wasn't being used. Finally I tidied up the use of the QOM > machine type macros in machine.c. > > The result has been lightly tested with a tiny Linux image I had lying around > for testing my recent ESP changes, so more testing is welcome. There is a bit > more work to be done sorting out the lasips2 device init and machine init, but > since the patchset is already quite big I can follow up with that once this > series has been merged. > > Signed-off-by: Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk>
Marc, thanks a lot for this big cleanup! I've reviewed and tested it with Linux and HP-UX guests. Please add: Acked-by: Helge Deller <del...@gmx.de> Thanks!! Helge > > Mark Cave-Ayland (50): > dino: checkpatch fixes > dino: move registers from dino_init() to DINO_PCI_BRIDGE init function > dino: move PCI bus initialisation to dino_pcihost_init() > dino: move PCI windows initialisation to dino_pcihost_init() > dino: add memory-as property containing a link to the memory address > space > dino: move pci_setup_iommu() to dino_pcihost_init() > dino: move PCI bus master address space setup to > dino_pcihost_realize() > dino: move initial register configuration to new dino_pcihost_reset() > function > dino: use QOM cast instead of directly referencing parent_obj > dino: return PCIBus from dino_init() using qdev_get_child_bus() > dino: split declarations from dino.c into dino.h > hppa: use new CONFIG_HPPA_GENERIC option instead of CONFIG_DINO to > build hppa machine > dino: change dino_init() to return the DINO device instead of PCIBus > machine.c: map DINO device during board configuration > dino.h: add defines for DINO IRQ numbers > dino: define IRQ inputs as qdev GPIOs > dino: wire up serial IRQ using a qdev GPIO in machine.c > dino: remove unused dino_set_timer_irq() IRQ handler > hppa: move dino_init() from dino.c to machine.c > dino: use numerical constant for iar0 and iar1 reset values > dino: move DINO HPA constants from hppa_hardware.h to dino.h > dino: move from hw/hppa to hw/pci-host > lasi: checkpatch fixes > lasi: move memory region initialisation to new lasi_init() function > lasi: move register memory mapping from lasi.c to machine.c > lasi: move initialisation of iar and rtc to new lasi_reset() function > lasi: move LASIState and associated QOM structures to lasi.h > lasi: replace lasi_get_irq() with defined constants > lasi: define IRQ inputs as qdev GPIOs > lasi: use qdev GPIOs to wire up IRQs in lasi_initfn() > lasi: fix serial port initialisation > lasi: update lasi_initfn() to return LASIState > lasi: move LAN initialisation to machine.c > lasi: move parallel port initialisation to machine.c > lasi: move second serial port initialisation to machine.c > lasi: move PS2 initialisation to machine.c > lasi: remove address space parameter from lasi_initfn() > lasi: move lasi_initfn() to machine.c > lasi: use constants for device register offsets > lasi: use numerical constant for iar reset value > hppa: move device headers from hppa_sys.h into individual .c files > lasi: move from hw/hppa to hw/misc > hppa: move hppa_pci_ignore_ops from pci.c to machine.c > hppa: remove hw/hppa/pci.c > hppa: remove unused trace-events from from hw/hppa > hppa: move enable_lan() define from hppa_sys.h to machine.c > hppa: remove the empty hppa_sys.h file > hppa: use MACHINE QOM macros for defining the hppa machine > hppa: fold machine_hppa_machine_init() into > machine_hppa_machine_init_class_init() > hppa: simplify machine function names in machine.c > > MAINTAINERS | 4 + > configs/devices/hppa-softmmu/default.mak | 2 +- > hw/hppa/Kconfig | 5 +- > hw/hppa/hppa_hardware.h | 5 - > hw/hppa/hppa_sys.h | 24 --- > hw/hppa/machine.c | 122 +++++++++--- > hw/hppa/meson.build | 2 +- > hw/hppa/pci.c | 88 --------- > hw/hppa/trace-events | 14 -- > hw/misc/Kconfig | 3 + > hw/{hppa => misc}/lasi.c | 161 ++++------------ > hw/misc/meson.build | 3 + > hw/misc/trace-events | 5 + > hw/pci-host/Kconfig | 4 + > hw/{hppa => pci-host}/dino.c | 231 +++++++---------------- > hw/pci-host/meson.build | 3 + > hw/pci-host/trace-events | 5 + > include/hw/misc/lasi.h | 78 ++++++++ > include/hw/pci-host/dino.h | 146 ++++++++++++++ > meson.build | 1 - > 20 files changed, 462 insertions(+), 444 deletions(-) > delete mode 100644 hw/hppa/hppa_sys.h > delete mode 100644 hw/hppa/pci.c > delete mode 100644 hw/hppa/trace-events > rename hw/{hppa => misc}/lasi.c (60%) > rename hw/{hppa => pci-host}/dino.c (71%) > create mode 100644 include/hw/misc/lasi.h > create mode 100644 include/hw/pci-host/dino.h >