For various historical reasons the initialisation of the isapc machine is closely intertwined with the initialisation of the pc machine, which is preventing some future improvements to the pc machine initialisation logic.
Since the consensus [1] was that the isapc is still useful for testing and running older OSs, this series splits the isapc machine and its main initialisation routine pc_init_isa() into a separate isapc.c file to reduce the maintenance burden on pc machine developers. Signed-off-by: Mark Cave-Ayland <mark.caveayl...@nutanix.com> [1] https://lists.gnu.org/archive/html/qemu-devel/2024-03/msg06137.html (Patches still needing review: 1-2, 6, 8, 10, 14, 16-18) v4: - Rebase onto master - Add patch 2 to remove unused loader.h header as suggested by Bernhard - Add patches 16-18 to tidy up the pc_piix headers and the pc_piix/isapc rom_memory variable after the isapc split also suggested by Bernhard v3: - Rebase onto master - Add patch 1 to restrict isapc machine to 32-bit x86 CPUs as suggested by Philippe - Include logic in patch 1 to handle the case if an isapc machine is launched with -cpu max as suggested by Daniel - Add patch 13 to tidy-up pc_init1() for the i440fx-pc machine in the same way as patch 11 does for the isapc machine as suggested by Bernhard v2: - Rebase onto master to account for the fix in commit 0b006153b7 ("hw/i386/pc_piix: Fix RTC ISA IRQ wiring of isapc machine") - Replace verbatim MIT licence text with SPDX identifier as discussed with Daniel Mark Cave-Ayland (18): hw/i386/pc_piix.c: restrict isapc machine to 32-bit CPUs hw/i386/pc_piix.c: remove include for loader.h hw/i386/pc_piix.c: duplicate pc_init1() into pc_isa_init() hw/i386/pc_piix.c: remove pcmc->pci_enabled dependent initialisation from pc_init_isa() hw/i386/pc_piix.c: remove SMI and piix4_pm initialisation from pc_init_isa() hw/i386/pc_piix.c: remove SGX initialisation from pc_init_isa() hw/i386/pc_piix.c: remove nvdimm initialisation from pc_init_isa() hw/i386/pc_piix.c: simplify RAM size logic in pc_init_isa() hw/i386/pc_piix.c: hardcode hole64_size to 0 in pc_init_isa() hw/i386/pc_piix.c: remove pc_system_flash_cleanup_unused() from pc_init_isa() hw/i386/pc_piix.c: always initialise ISA IDE drives in pc_init_isa() hw/i386/pc_piix.c: assume pcmc->pci_enabled is always false in pc_init_isa() hw/i386/pc_piix.c: hardcode pcms->pci_bus to NULL in pc_init_isa() hw/i386/pc_piix.c: assume pcmc->pci_enabled is always true in pc_init1() hw/i386: move isapc machine to separate isapc.c file hw/i386/pc_piix.c: remove unused headers after isapc machine split hw/i386/pc_piix.c: replace rom_memory with pci_memory hw/i386/isapc.c: replace rom_memory with system_memory hw/i386/Kconfig | 3 - hw/i386/isapc.c | 167 +++++++++++++++++++++++++++++++ hw/i386/meson.build | 1 + hw/i386/pc_piix.c | 237 ++++++++++++++------------------------------ 4 files changed, 244 insertions(+), 164 deletions(-) create mode 100644 hw/i386/isapc.c -- 2.43.0