From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: Bernhard Beschow <shentey@gmail.com>, qemu-devel@nongnu.org
Cc: "Hervé Poussineau" <hpoussin@reactos.org>,
"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
"John Snow" <jsnow@redhat.com>,
qemu-block@nongnu.org, "Igor Mammedov" <imammedo@redhat.com>,
"Gerd Hoffmann" <kraxel@redhat.com>,
"Aurelien Jarno" <aurelien@aurel32.net>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
"Eduardo Habkost" <eduardo@habkost.net>,
"Ani Sinha" <ani@anisinha.ca>,
"Jiaxun Yang" <jiaxun.yang@flygoat.com>
Subject: Re: [PATCH 00/32] Consolidate PIIX south bridges
Date: Sun, 18 Dec 2022 15:17:48 +0100 [thread overview]
Message-ID: <3aace928-1f23-acc3-9643-29f540b3f744@linaro.org> (raw)
In-Reply-To: <B5EE1B75-28AF-406F-96BE-9247E1D1C08D@gmail.com>
On 18/12/22 11:33, Bernhard Beschow wrote:
>
>
> Am 4. Dezember 2022 19:05:21 UTC schrieb Bernhard Beschow <shentey@gmail.com>:
>> This series consolidates the implementations of the PIIX3 and PIIX4 south
>>
>> bridges and is an extended version of [1]. The motivation is to share as much
>>
>> code as possible and to bring both device models to feature parity such that
>>
>> perhaps PIIX4 can become a drop-in-replacement for PIIX3 in the pc machine. This
>>
>> could resolve the "Frankenstein" PIIX4-PM problem in PIIX3 discussed on this
>>
>> list before.
>>
>>
>>
>> The series is structured as follows: First, PIIX3 is changed to instantiate
>>
>> internal devices itself, like PIIX4 does already. Second, PIIX3 gets prepared
>>
>> for the merge with PIIX4 which includes some fixes, cleanups, and renamings.
>>
>> Third, the same is done for PIIX4. In step four the implementations are merged.
>>
>> Since some consolidations could be done easier with merged implementations, the
>>
>> consolidation continues in step five which concludes the series.
>>
>>
>>
>> One particular challenge in this series was that the PIC of PIIX3 used to be
>>
>> instantiated outside of the south bridge 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). Due to consolidation PIIX4 gained the proxy PIC as well.
>>
>>
>>
>> Another challenge was dealing with optional devices where Peter already gave
>>
>> advice in [1] which this series implements.
>>
>>
>>
>> A challenge still remains with consolidating PCI interrupt handling. There are
>>
>> still board-specific piix3_pci_slot_get_pirq() and piix4_pci_slot_get_pirq()
>>
>> which are implemented in isa/piix.c. Any advice how to resolve these would be
>>
>> highly appreaciated. See [2] for details.
>>
>>
>>
>> Last but not least there might be some opportunity to consolidate VM state
>>
>> handling, probably by reusing the one from PIIX3. Since I'm not very familiar
>>
>> with the requirements I didn't touch it so far.
>>
>>
>>
>> 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`
>>
>> * 'qemu-system-mips64el -M malta -kernel vmlinux-3.2.0-4-5kc-malta -hda debian_wheezy_mipsel_standard.qcow2 -append "root=/dev/sda1 console=ttyS0"`
>>
>>
>>
>> v3:
>>
>> - Introduce one TYPE_ICH9_USB_UHCI(fn) rather than several TYPE_ICH9_USB_UHCIx (Philippe)
>>
>> - Make proxy PIC generic (Philippe)
>>
>> - Track Malta's PIIX dependencies through KConfig
>>
>> - Rebase onto Philippe's 'hw/isa/piix4: Remove MIPS Malta specific bits' series [3]
>>
>> - Also rebase onto latest master to resolve merge conflicts. This required copying
>>
>> Philippe's series as first three patches - please ignore.
>>
>
> Ping
Could you review patches 1-3?
next prev parent reply other threads:[~2022-12-18 14:18 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-04 19:05 [PATCH 00/32] Consolidate PIIX south bridges Bernhard Beschow
2022-12-04 19:05 ` [PATCH 01/32] hw/mips/malta: Introduce PIIX4_PCI_DEVFN definition Bernhard Beschow
2022-12-19 9:19 ` Igor Mammedov
2022-12-04 19:05 ` [PATCH 02/32] hw/mips/malta: Set PIIX4 IRQ routes in embedded bootloader Bernhard Beschow
2022-12-04 19:05 ` [PATCH 03/32] hw/isa/piix4: Correct IRQRC[A:D] reset values Bernhard Beschow
2022-12-04 19:05 ` [PATCH 04/32] hw/mips/Kconfig: Track Malta's PIIX dependencies via Kconfig Bernhard Beschow
2022-12-04 21:44 ` Philippe Mathieu-Daudé
2022-12-04 19:05 ` [PATCH 05/32] hw/i386/pc_piix: Allow for setting properties before realizing PIIX3 south bridge Bernhard Beschow
2022-12-04 19:05 ` [PATCH 06/32] hw/usb/hcd-uhci: Introduce TYPE_ defines for device models Bernhard Beschow
2022-12-04 21:45 ` Philippe Mathieu-Daudé
2022-12-04 19:05 ` [PATCH 07/32] hw/i386/pc: Create RTC controllers in south bridges Bernhard Beschow
2022-12-04 19:05 ` [PATCH 08/32] hw/i386/pc: No need for rtc_state to be an out-parameter Bernhard Beschow
2022-12-04 19:05 ` [PATCH 09/32] hw/isa/piix3: Create USB controller in host device Bernhard Beschow
2022-12-04 19:05 ` [PATCH 10/32] hw/isa/piix3: Create power management " Bernhard Beschow
2022-12-04 19:05 ` [PATCH 11/32] hw/core: Introduce proxy-pic Bernhard Beschow
2022-12-04 19:05 ` [PATCH 12/32] hw/isa/piix3: Create Proxy PIC in host device Bernhard Beschow
2022-12-04 19:05 ` [PATCH 13/32] hw/isa/piix3: Create IDE controller " Bernhard Beschow
2022-12-04 19:05 ` [PATCH 14/32] hw/isa/piix3: Wire up ACPI interrupt internally Bernhard Beschow
2022-12-04 19:05 ` [PATCH 15/32] hw/isa/piix3: Resolve redundant PIIX_NUM_PIC_IRQS Bernhard Beschow
2022-12-04 19:05 ` [PATCH 16/32] hw/isa/piix3: Rename pci_piix3_props for sharing with PIIX4 Bernhard Beschow
2022-12-04 19:05 ` [PATCH 17/32] hw/isa/piix3: Rename piix3_reset() " Bernhard Beschow
2022-12-04 19:05 ` [PATCH 18/32] hw/isa/piix3: Prefix pci_slot_get_pirq() with "piix3_" Bernhard Beschow
2022-12-04 19:05 ` [PATCH 19/32] hw/isa/piix3: Rename typedef PIIX3State to PIIXState Bernhard Beschow
2022-12-04 19:05 ` [PATCH 20/32] hw/isa/piix4: Make PIIX4's ACPI and USB functions optional Bernhard Beschow
2022-12-04 19:05 ` [PATCH 21/32] hw/isa/piix4: Remove unused code Bernhard Beschow
2022-12-04 19:05 ` [PATCH 22/32] hw/isa/piix4: Use Proxy PIC device Bernhard Beschow
2022-12-04 19:05 ` [PATCH 23/32] hw/isa/piix4: Reuse struct PIIXState from PIIX3 Bernhard Beschow
2022-12-04 19:05 ` [PATCH 24/32] hw/isa/piix4: Rename reset control operations to match PIIX3 Bernhard Beschow
2022-12-04 19:05 ` [PATCH 25/32] hw/isa/piix4: Prefix pci_slot_get_pirq() with "piix4_" Bernhard Beschow
2022-12-04 19:05 ` [PATCH 26/32] hw/isa/piix3: Merge hw/isa/piix4.c Bernhard Beschow
2022-12-04 19:05 ` [PATCH 27/32] hw/isa/piix: Harmonize names of reset control memory regions Bernhard Beschow
2022-12-04 19:05 ` [PATCH 28/32] hw/isa/piix: Reuse PIIX3 base class' realize method in PIIX4 Bernhard Beschow
2022-12-04 19:05 ` [PATCH 29/32] hw/isa/piix: Rename functions to be shared for interrupt triggering Bernhard Beschow
2022-12-04 19:05 ` [PATCH 30/32] hw/isa/piix: Consolidate IRQ triggering Bernhard Beschow
2022-12-04 19:05 ` [PATCH 31/32] hw/isa/piix: Share PIIX3 base class with PIIX4 Bernhard Beschow
2022-12-04 19:05 ` [PATCH 32/32] hw/isa/piix: Drop the "3" from the PIIX base class Bernhard Beschow
2022-12-18 10:35 ` Bernhard Beschow
2022-12-04 19:24 ` [PATCH 00/32] Consolidate PIIX south bridges Bernhard Beschow
2022-12-18 10:33 ` Bernhard Beschow
2022-12-18 14:17 ` Philippe Mathieu-Daudé [this message]
2022-12-19 12:14 ` Bernhard Beschow
2022-12-20 14:48 ` Michael S. Tsirkin
2022-12-20 15:08 ` Philippe Mathieu-Daudé
2022-12-20 22:35 ` Bernhard Beschow
2022-12-20 23:03 ` Michael S. Tsirkin
2022-12-21 17:11 ` Bernhard Beschow
2022-12-21 17:37 ` Bernhard Beschow
2022-12-20 15:30 ` Michael S. Tsirkin
2022-12-20 23:04 ` Bernhard Beschow
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=3aace928-1f23-acc3-9643-29f540b3f744@linaro.org \
--to=philmd@linaro.org \
--cc=ani@anisinha.ca \
--cc=aurelien@aurel32.net \
--cc=eduardo@habkost.net \
--cc=f4bug@amsat.org \
--cc=hpoussin@reactos.org \
--cc=imammedo@redhat.com \
--cc=jiaxun.yang@flygoat.com \
--cc=jsnow@redhat.com \
--cc=kraxel@redhat.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=shentey@gmail.com \
/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).