qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/16] Q35 and I440FX host bridge QOM cleanup
@ 2023-06-28 19:51 Bernhard Beschow
  2023-06-28 19:51 ` [PATCH v2 01/16] hw/i386/pc_q35: Resolve redundant q35_host variable Bernhard Beschow
                   ` (15 more replies)
  0 siblings, 16 replies; 22+ messages in thread
From: Bernhard Beschow @ 2023-06-28 19:51 UTC (permalink / raw)
  To: qemu-devel
  Cc: Eduardo Habkost, Michael S. Tsirkin, Marcel Apfelbaum,
	Richard Henderson, Paolo Bonzini, Bernhard Beschow

This series resolves the legacy i440fx_init() function and instantiates the
I440FX host bridge the QOM way. As a preparation the Q35 host bridge receives
some cleanup as well.

Most of the Q35 patches have been submitted under [1] before. This series
incorporates only the changes making the two device models consistent with
each other.

The original plan of [1] was to clean up Q35 first and then submit a separate
follow-up I440FX QOM'ification series. This series takes a more direct approach
by cutting down on the changes in both device models while still allowing both
device models to be instantiated the same way. The remaining patches in [1]
would still be doable.

The series is structured as follows: The first 5 patches clean up Q35, the next
patch massages Q35 to share its property names with I440FX. The rest of the
series resolves i440fx_init().

Tesging done:
* `make check`
* `make check-avocado`
* Run `xl create` under Xen with the following config:
    name = "Manjaro"
    type = 'hvm'
    memory = 1536
    apic = 1
    usb = 1
    disk = [ "file:manjaro-kde-21.2.6-220416-linux515.iso,hdc:cdrom,r" ]
    device_model_override = "/usr/bin/qemu-system-x86_64"
    vga = "stdvga"
    sdl = 1

v2:
* Rename `address_space_io` to `io_memory` (Phil)
* Eliminate one else branch in pc_piix (Igor)
* Make Q35's blackhole_ops DEVICE_LITTLE_ENDIAN again (Igor)
* Possibly ongoing discussion regarding bringing together i440fx new and realize

[1] https://patchew.org/QEMU/20230304152648.103749-1-shentey@gmail.com/

Bernhard Beschow (16):
  hw/i386/pc_q35: Resolve redundant q35_host variable
  hw/pci-host/q35: Fix double, contradicting .endianness assignment
  hw/pci-host/q35: Initialize PCMachineState::bus in board code
  hw/pci/pci_host: Introduce PCI_HOST_BYPASS_IOMMU macro
  hw/pci-host/q35: Initialize PCI_HOST_BYPASS_IOMMU property from board
    code
  hw/pci-host/q35: Make some property name macros reusable by i440fx
  hw/pci-host/i440fx: Replace magic values by existing constants
  hw/pci-host/i440fx: Have common names for some local variables
  hw/pci-host/i440fx: Move i440fx_realize() into PCII440FXState section
  hw/pci-host/i440fx: Make MemoryRegion pointers accessible as
    properties
  hw/pci-host/i440fx: Add PCI_HOST_PROP_IO_MEM property
  hw/pci-host/i440fx: Add PCI_HOST_{ABOVE, BELOW}_4G_MEM_SIZE properties
  hw/pci-host/i440fx: Add I440FX_HOST_PROP_PCI_TYPE property
  hw/pci-host/i440fx: Resolve i440fx_init()
  hw/i386/pc_piix: Turn some local variables into initializers
  hw/i386/pc_piix: Move i440fx' realize near its qdev_new()

 include/hw/i386/pc.h         |   4 ++
 include/hw/pci-host/i440fx.h |  16 +----
 include/hw/pci-host/q35.h    |   5 --
 include/hw/pci/pci_host.h    |   2 +
 hw/i386/pc_piix.c            |  59 +++++++++-------
 hw/i386/pc_q35.c             |  31 +++++----
 hw/pci-host/i440fx.c         | 128 +++++++++++++++++++----------------
 hw/pci-host/q35.c            |  13 ++--
 hw/pci/pci_host.c            |   2 +-
 9 files changed, 135 insertions(+), 125 deletions(-)

-- 
2.41.0



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

end of thread, other threads:[~2023-06-29 17:30 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-28 19:51 [PATCH v2 00/16] Q35 and I440FX host bridge QOM cleanup Bernhard Beschow
2023-06-28 19:51 ` [PATCH v2 01/16] hw/i386/pc_q35: Resolve redundant q35_host variable Bernhard Beschow
2023-06-29  7:43   ` Philippe Mathieu-Daudé
2023-06-28 19:51 ` [PATCH v2 02/16] hw/pci-host/q35: Fix double, contradicting .endianness assignment Bernhard Beschow
2023-06-29  7:42   ` Philippe Mathieu-Daudé
2023-06-28 19:51 ` [PATCH v2 03/16] hw/pci-host/q35: Initialize PCMachineState::bus in board code Bernhard Beschow
2023-06-28 19:51 ` [PATCH v2 04/16] hw/pci/pci_host: Introduce PCI_HOST_BYPASS_IOMMU macro Bernhard Beschow
2023-06-28 19:51 ` [PATCH v2 05/16] hw/pci-host/q35: Initialize PCI_HOST_BYPASS_IOMMU property from board code Bernhard Beschow
2023-06-28 19:51 ` [PATCH v2 06/16] hw/pci-host/q35: Make some property name macros reusable by i440fx Bernhard Beschow
2023-06-28 19:51 ` [PATCH v2 07/16] hw/pci-host/i440fx: Replace magic values by existing constants Bernhard Beschow
2023-06-28 19:51 ` [PATCH v2 08/16] hw/pci-host/i440fx: Have common names for some local variables Bernhard Beschow
2023-06-28 19:51 ` [PATCH v2 09/16] hw/pci-host/i440fx: Move i440fx_realize() into PCII440FXState section Bernhard Beschow
2023-06-28 19:51 ` [PATCH v2 10/16] hw/pci-host/i440fx: Make MemoryRegion pointers accessible as properties Bernhard Beschow
2023-06-28 19:51 ` [PATCH v2 11/16] hw/pci-host/i440fx: Add PCI_HOST_PROP_IO_MEM property Bernhard Beschow
2023-06-28 19:52 ` [PATCH v2 12/16] hw/pci-host/i440fx: Add PCI_HOST_{ABOVE, BELOW}_4G_MEM_SIZE properties Bernhard Beschow
2023-06-28 19:52 ` [PATCH v2 13/16] hw/pci-host/i440fx: Add I440FX_HOST_PROP_PCI_TYPE property Bernhard Beschow
2023-06-28 19:52 ` [PATCH v2 14/16] hw/pci-host/i440fx: Resolve i440fx_init() Bernhard Beschow
2023-06-29  7:50   ` Philippe Mathieu-Daudé
2023-06-29 16:52     ` Bernhard Beschow
2023-06-28 19:52 ` [PATCH v2 15/16] hw/i386/pc_piix: Turn some local variables into initializers Bernhard Beschow
2023-06-29  7:39   ` Philippe Mathieu-Daudé
2023-06-28 19:52 ` [PATCH v2 16/16] hw/i386/pc_piix: Move i440fx' realize near its qdev_new() Bernhard Beschow

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).