qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 00/18] hw/i386: separate isapc out from pc_piix
@ 2025-07-10  8:52 Mark Cave-Ayland
  2025-07-10  8:52 ` [PATCH v4 01/18] hw/i386/pc_piix.c: restrict isapc machine to 32-bit CPUs Mark Cave-Ayland
                   ` (17 more replies)
  0 siblings, 18 replies; 29+ messages in thread
From: Mark Cave-Ayland @ 2025-07-10  8:52 UTC (permalink / raw)
  To: pbonzini, mst, marcel.apfelbaum, eduardo, imammedo, qemu-devel

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.caveayland@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



^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2025-07-11 10:29 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-10  8:52 [PATCH v4 00/18] hw/i386: separate isapc out from pc_piix Mark Cave-Ayland
2025-07-10  8:52 ` [PATCH v4 01/18] hw/i386/pc_piix.c: restrict isapc machine to 32-bit CPUs Mark Cave-Ayland
2025-07-10 10:46   ` Philippe Mathieu-Daudé
2025-07-10 15:28     ` Mark Cave-Ayland
2025-07-10  8:52 ` [PATCH v4 02/18] hw/i386/pc_piix.c: remove include for loader.h Mark Cave-Ayland
2025-07-10  8:52 ` [PATCH v4 03/18] hw/i386/pc_piix.c: duplicate pc_init1() into pc_isa_init() Mark Cave-Ayland
2025-07-10  8:52 ` [PATCH v4 04/18] hw/i386/pc_piix.c: remove pcmc->pci_enabled dependent initialisation from pc_init_isa() Mark Cave-Ayland
2025-07-10  8:52 ` [PATCH v4 05/18] hw/i386/pc_piix.c: remove SMI and piix4_pm " Mark Cave-Ayland
2025-07-10  8:52 ` [PATCH v4 06/18] hw/i386/pc_piix.c: remove SGX " Mark Cave-Ayland
2025-07-10  8:52 ` [PATCH v4 07/18] hw/i386/pc_piix.c: remove nvdimm " Mark Cave-Ayland
2025-07-10  8:52 ` [PATCH v4 08/18] hw/i386/pc_piix.c: simplify RAM size logic in pc_init_isa() Mark Cave-Ayland
2025-07-10  8:52 ` [PATCH v4 09/18] hw/i386/pc_piix.c: hardcode hole64_size to 0 " Mark Cave-Ayland
2025-07-10  8:52 ` [PATCH v4 10/18] hw/i386/pc_piix.c: remove pc_system_flash_cleanup_unused() from pc_init_isa() Mark Cave-Ayland
2025-07-10 10:47   ` Philippe Mathieu-Daudé
2025-07-10  8:52 ` [PATCH v4 11/18] hw/i386/pc_piix.c: always initialise ISA IDE drives in pc_init_isa() Mark Cave-Ayland
2025-07-10  8:52 ` [PATCH v4 12/18] hw/i386/pc_piix.c: assume pcmc->pci_enabled is always false " Mark Cave-Ayland
2025-07-10  8:52 ` [PATCH v4 13/18] hw/i386/pc_piix.c: hardcode pcms->pci_bus to NULL " Mark Cave-Ayland
2025-07-10  8:52 ` [PATCH v4 14/18] hw/i386/pc_piix.c: assume pcmc->pci_enabled is always true in pc_init1() Mark Cave-Ayland
2025-07-10 10:48   ` Philippe Mathieu-Daudé
2025-07-10  8:52 ` [PATCH v4 15/18] hw/i386: move isapc machine to separate isapc.c file Mark Cave-Ayland
2025-07-10  8:52 ` [PATCH v4 16/18] hw/i386/pc_piix.c: remove unused headers after isapc machine split Mark Cave-Ayland
2025-07-10 10:50   ` Philippe Mathieu-Daudé
2025-07-10  8:52 ` [PATCH v4 17/18] hw/i386/pc_piix.c: replace rom_memory with pci_memory Mark Cave-Ayland
2025-07-10 10:49   ` Philippe Mathieu-Daudé
2025-07-10  8:52 ` [PATCH v4 18/18] hw/i386/isapc.c: replace rom_memory with system_memory Mark Cave-Ayland
2025-07-10 10:53   ` Philippe Mathieu-Daudé
2025-07-10 11:05     ` Philippe Mathieu-Daudé
2025-07-10 15:35       ` Mark Cave-Ayland
2025-07-11 10:28         ` Philippe Mathieu-Daudé

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).