qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Bernhard Beschow <shentey@gmail.com>
To: qemu-devel@nongnu.org
Cc: qemu-block@nongnu.org, "Jiaxun Yang" <jiaxun.yang@flygoat.com>,
	"BALATON Zoltan" <balaton@eik.bme.hu>,
	"John Snow" <jsnow@redhat.com>,
	"Huacai Chen" <chenhuacai@kernel.org>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>,
	qemu-ppc@nongnu.org, "Bernhard Beschow" <shentey@gmail.com>
Subject: [PATCH 00/13] Clean up PCI IDE device models
Date: Sat, 22 Apr 2023 17:07:15 +0200	[thread overview]
Message-ID: <20230422150728.176512-1-shentey@gmail.com> (raw)

This series is yet another attempt to clean up the PCI IDE models. It is mainly
inspired the Mark's invaluable input from previous discussions. In particular,
this series attempts to follow the "PCI IDE controller specification" closer. As
a side effect, it also resolves usage of the isabus global in PIIX. Last but not
least it fixes the VIA IDE controller to not depend on its south bridge which
fixes a circular dependency.

The series is structured as follows: The first three commits resolve a circular
dependency between the VIA IDE controller and its south bridge, thereby
implementing legacy PCI IDE interrupt routing which was missing so far. The next
five patches factor out common code into the PCI IDE base class. The next two
patches resolve usage of the isabus global in PIIX by reusing now common code
from the base class. The same is then done for the SIL3112 controller. Finally,
a small convenience function is introduced which should hide some implementation
details in the PCI IDE base class.

Testing done:
* `make check`
* `make check-avocado`
* `qemu-system-ppc -machine pegasos2 -rtc base=localtime -device \
   ati-vga,guest_hwcursor=true,romfile="" -cdrom morphos-3.17.iso
   -kernel morphos-3.17/boot.img`
   The machine booted successfully and a startup sound was hearable
* `qemu-system-ppc -machine pegasos2 -rtc base=localtime -device \
   ati-vga,guest_hwcursor=true,romfile="" -cdrom morphos-3.17.iso
   -kernel morphos-3.17/boot.img`
   The machine booted successfully and applications could be started.
* qemu-system-x86_64 was used for hours during work

Bernhard Beschow (13):
  hw/ide/pci: Expose legacy interrupts as GPIOs
  hw/ide/via: Implement ISA IRQ routing
  hw/isa/vt82c686: Remove via_isa_set_irq()
  hw/ide: Extract IDEBus assignment into bmdma_init()
  hw/ide: Extract pci_ide_class_init()
  hw/ide: Extract bmdma_init_ops()
  hw/ide: Extract pci_ide_{cmd,data}_le_ops initialization into base
    class constructor
  hw/ide: Rename PCIIDEState::*_bar attributes
  hw/ide/piix: Disuse isa_get_irq()
  hw/ide/piix: Reuse PCIIDEState::{cmd,data}_ops
  hw/ide/sii3112: Reuse PCIIDEState::{cmd,data}_ops
  hw/ide/sii3112: Reuse PCIIDEState::bmdma_ops
  hw/ide: Extract bmdma_clear_status()

 include/hw/ide/pci.h      |  12 ++-
 include/hw/isa/vt82c686.h |   2 -
 hw/ide/cmd646.c           |  59 ++-------------
 hw/ide/pci.c              |  73 ++++++++++++++++++-
 hw/ide/piix.c             |  88 ++++++++--------------
 hw/ide/sii3112.c          | 150 +++++++++++++++++++-------------------
 hw/ide/via.c              |  64 +++-------------
 hw/isa/vt82c686.c         |  23 ++++--
 hw/ide/trace-events       |   7 +-
 9 files changed, 221 insertions(+), 257 deletions(-)

-- 
2.40.0



             reply	other threads:[~2023-04-22 15:10 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-22 15:07 Bernhard Beschow [this message]
2023-04-22 15:07 ` [PATCH 01/13] hw/ide/pci: Expose legacy interrupts as GPIOs Bernhard Beschow
2023-04-26 10:41   ` Mark Cave-Ayland
2023-04-26 19:26     ` Bernhard Beschow
2023-04-22 15:07 ` [PATCH 02/13] hw/ide/via: Implement ISA IRQ routing Bernhard Beschow
2023-04-22 17:23   ` BALATON Zoltan
2023-04-22 18:47     ` Bernhard Beschow
2023-04-22 19:21       ` BALATON Zoltan
2023-04-24  7:50         ` Bernhard Beschow
2023-04-24 10:10           ` BALATON Zoltan
2023-04-26 10:55   ` Mark Cave-Ayland
2023-04-22 15:07 ` [PATCH 03/13] hw/isa/vt82c686: Remove via_isa_set_irq() Bernhard Beschow
2023-04-26 10:55   ` Mark Cave-Ayland
2023-04-22 15:07 ` [PATCH 04/13] hw/ide: Extract IDEBus assignment into bmdma_init() Bernhard Beschow
2023-04-22 17:31   ` BALATON Zoltan
2023-04-23 17:36   ` Philippe Mathieu-Daudé
2023-04-26 10:56   ` Mark Cave-Ayland
2023-04-22 15:07 ` [PATCH 05/13] hw/ide: Extract pci_ide_class_init() Bernhard Beschow
2023-04-22 17:34   ` BALATON Zoltan
2023-04-22 18:59     ` Bernhard Beschow
2023-04-23 17:41   ` Philippe Mathieu-Daudé
2023-04-23 22:11     ` Bernhard Beschow
2023-04-23 22:23       ` BALATON Zoltan
2023-04-26 11:04   ` Mark Cave-Ayland
2023-04-26 18:32     ` Bernhard Beschow
2023-04-22 15:07 ` [PATCH 06/13] hw/ide: Extract bmdma_init_ops() Bernhard Beschow
2023-04-23 17:43   ` Philippe Mathieu-Daudé
2023-04-23 22:06     ` Bernhard Beschow
2023-04-26 11:14   ` Mark Cave-Ayland
2023-04-22 15:07 ` [PATCH 07/13] hw/ide: Extract pci_ide_{cmd, data}_le_ops initialization into base class constructor Bernhard Beschow
2023-04-23 17:46   ` [PATCH 07/13] hw/ide: Extract pci_ide_{cmd,data}_le_ops " Philippe Mathieu-Daudé
2023-04-24  7:45     ` Bernhard Beschow
2023-04-26 11:16   ` [PATCH 07/13] hw/ide: Extract pci_ide_{cmd, data}_le_ops " Mark Cave-Ayland
2023-04-22 15:07 ` [PATCH 08/13] hw/ide: Rename PCIIDEState::*_bar attributes Bernhard Beschow
2023-04-22 17:53   ` BALATON Zoltan
2023-04-26 11:21   ` Mark Cave-Ayland
2023-04-26 18:29     ` Bernhard Beschow
2023-04-27 11:07       ` Mark Cave-Ayland
2023-04-22 15:07 ` [PATCH 09/13] hw/ide/piix: Disuse isa_get_irq() Bernhard Beschow
2023-04-26 11:33   ` Mark Cave-Ayland
2023-04-26 18:25     ` Bernhard Beschow
2023-04-27 12:31       ` Mark Cave-Ayland
2023-05-13 11:53         ` Bernhard Beschow
2023-05-14 12:43           ` Mark Cave-Ayland
2023-04-22 15:07 ` [PATCH 10/13] hw/ide/piix: Reuse PCIIDEState::{cmd,data}_ops Bernhard Beschow
2023-04-26 11:37   ` Mark Cave-Ayland
2023-04-26 18:18     ` Bernhard Beschow
2023-04-26 20:14       ` Bernhard Beschow
2023-04-27 10:52         ` Mark Cave-Ayland
2023-04-27 18:15           ` Bernhard Beschow
2023-04-28 15:58             ` Bernhard Beschow
2023-04-28 17:00               ` BALATON Zoltan
2023-05-03 19:52             ` Mark Cave-Ayland
2023-05-13 12:21               ` Bernhard Beschow
2023-05-18 14:53                 ` Mark Cave-Ayland
2023-05-19 17:09                   ` Bernhard Beschow
2023-04-22 15:07 ` [PATCH 11/13] hw/ide/sii3112: " Bernhard Beschow
2023-04-22 21:10   ` BALATON Zoltan
2023-04-23 22:19     ` Bernhard Beschow
2023-04-23 22:38       ` BALATON Zoltan
2023-04-26 11:41   ` Mark Cave-Ayland
2023-04-26 20:24     ` Bernhard Beschow
2023-04-26 23:24       ` BALATON Zoltan
2023-04-27 11:15         ` Mark Cave-Ayland
2023-04-27 12:55           ` BALATON Zoltan
2023-05-03 20:25             ` Mark Cave-Ayland
2023-04-22 15:07 ` [PATCH 12/13] hw/ide/sii3112: Reuse PCIIDEState::bmdma_ops Bernhard Beschow
2023-04-26 11:44   ` Mark Cave-Ayland
2023-04-26 20:26     ` Bernhard Beschow
2023-04-22 15:07 ` [PATCH 13/13] hw/ide: Extract bmdma_clear_status() Bernhard Beschow
2023-04-22 21:26   ` BALATON Zoltan
2023-04-23  7:48     ` Bernhard Beschow
2023-04-23 10:40       ` BALATON Zoltan
2023-04-23 21:53         ` Bernhard Beschow
2023-04-22 22:46   ` BALATON Zoltan
2023-04-23  7:35     ` Bernhard Beschow
2023-04-26 11:48   ` Mark Cave-Ayland

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=20230422150728.176512-1-shentey@gmail.com \
    --to=shentey@gmail.com \
    --cc=balaton@eik.bme.hu \
    --cc=chenhuacai@kernel.org \
    --cc=jiaxun.yang@flygoat.com \
    --cc=jsnow@redhat.com \
    --cc=philmd@linaro.org \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.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).