qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Bernhard Beschow <shentey@gmail.com>
To: qemu-devel@nongnu.org
Cc: "Michael S. Tsirkin" <mst@redhat.com>,
	"Eduardo Habkost" <eduardo@habkost.net>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"Hervé Poussineau" <hpoussin@reactos.org>,
	"Aurelien Jarno" <aurelien@aurel32.net>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
	"Bernhard Beschow" <shentey@gmail.com>
Subject: [PATCH 00/11] QOM'ify PIIX3 southbridge
Date: Wed, 13 Jul 2022 10:17:24 +0200	[thread overview]
Message-ID: <20220713081735.112016-1-shentey@gmail.com> (raw)

Similar to PIIX4 this series QOM'ifies internal device creation for PIIX3.
This reduces the delta between the implementations of PIIX3 and PIIX4 and
therefore might allow to merge both implementations in the future.

There were two challenges in this series:

First, QEMU considers the ACPI and USB functions to be optional in PIIX3.
When instantiating those with object_initialize_child(), they need to be
unparented in the realize function to prevent an assertion (see respective
commit messages).

Second, the PIC used to be instantiated outside of the southbridge while
some sub functions require a PIC with populated qemu_irqs. This has been
solved by introducing a proxy PIC which furthermore allows PIIX3 to be
agnostic towards the virtualization technology used (KVM, TCG, Xen).

Testing done:
* make check
* make check-avocado
* Boot live CD:
  * qemu-system-x86_64 -M pc -m 2G -accel kvm -cpu host -cdrom manjaro-kde-21.3.2-220704-linux515.iso
  * qemu-system-x86_64 -M q35 -m 2G -accel kvm -cpu host -cdrom manjaro-kde-21.3.2-220704-linux515.iso

Bernhard Beschow (11):
  hw/i386/pc: QOM'ify DMA creation
  hw/i386/pc_piix: Allow for setting properties before realizing PIIX3
    southbridge
  hw/isa/piix3: QOM'ify USB controller creation
  hw/isa/piix3: QOM'ify ACPI controller creation
  hw/i386/pc: QOM'ify RTC creation
  hw/i386/pc: No need for rtc_state to be an out-parameter
  hw/intc/i8259: Introduce i8259 proxy "isa-pic"
  hw/isa/piix3: QOM'ify ISA PIC creation
  hw/isa/piix3: QOM'ify IDE controller creation
  hw/isa/piix3: Wire up ACPI interrupt internally
  hw/isa/piix3: Remove extra ';' outside of functions

 hw/i386/Kconfig               |  1 -
 hw/i386/pc.c                  | 17 ++++---
 hw/i386/pc_piix.c             | 70 ++++++++++++++++-------------
 hw/i386/pc_q35.c              |  3 +-
 hw/intc/i8259.c               | 27 +++++++++++
 hw/isa/Kconfig                |  1 +
 hw/isa/lpc_ich9.c             | 11 +++++
 hw/isa/piix3.c                | 84 ++++++++++++++++++++++++++++++++---
 include/hw/i386/ich9.h        |  2 +
 include/hw/i386/pc.h          |  2 +-
 include/hw/intc/i8259.h       | 14 ++++++
 include/hw/southbridge/piix.h | 16 ++++++-
 12 files changed, 201 insertions(+), 47 deletions(-)

-- 
2.37.1



             reply	other threads:[~2022-07-13  8:26 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-13  8:17 Bernhard Beschow [this message]
2022-07-13  8:17 ` [PATCH 01/11] hw/i386/pc: QOM'ify DMA creation Bernhard Beschow
2022-07-13  8:17 ` [PATCH 02/11] hw/i386/pc_piix: Allow for setting properties before realizing PIIX3 southbridge Bernhard Beschow
2022-07-14 14:59   ` Peter Maydell
2022-07-13  8:17 ` [PATCH 03/11] hw/isa/piix3: QOM'ify USB controller creation Bernhard Beschow
2022-07-14 15:01   ` Peter Maydell
2022-07-13  8:17 ` [PATCH 04/11] hw/isa/piix3: QOM'ify ACPI " Bernhard Beschow
2022-07-13  8:17 ` [PATCH 05/11] hw/i386/pc: QOM'ify RTC creation Bernhard Beschow
2022-07-13  8:17 ` [PATCH 06/11] hw/i386/pc: No need for rtc_state to be an out-parameter Bernhard Beschow
2022-07-14 15:03   ` Peter Maydell
2022-07-13  8:17 ` [PATCH 07/11] hw/intc/i8259: Introduce i8259 proxy "isa-pic" Bernhard Beschow
2022-07-13  8:17 ` [PATCH 08/11] hw/isa/piix3: QOM'ify ISA PIC creation Bernhard Beschow
2022-07-13  8:17 ` [PATCH 09/11] hw/isa/piix3: QOM'ify IDE controller creation Bernhard Beschow
2022-07-13  8:17 ` [PATCH 10/11] hw/isa/piix3: Wire up ACPI interrupt internally Bernhard Beschow
2022-07-13  8:17 ` [PATCH 11/11] hw/isa/piix3: Remove extra ';' outside of functions Bernhard Beschow
2022-07-14 15:06   ` [PATCH 11/11] hw/isa/piix3: Remove extra '; ' " Peter Maydell
2022-07-26 14:53 ` [PATCH 00/11] QOM'ify PIIX3 southbridge Michael S. Tsirkin
2022-07-26 22:23   ` BB

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220713081735.112016-1-shentey@gmail.com \
    --to=shentey@gmail.com \
    --cc=aurelien@aurel32.net \
    --cc=eduardo@habkost.net \
    --cc=f4bug@amsat.org \
    --cc=hpoussin@reactos.org \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).