[PATCH v2 00/20] hw/i386/pc: Split PIIX3 southbridge from i440FX northbridge

Philippe Mathieu-Daudé posted 20 patches 4 years, 6 months ago
Failed in applying to current master (apply log)
There is a newer version of this series
MAINTAINERS                      |  14 +-
hw/acpi/pcihp.c                  |   2 +-
hw/acpi/piix4.c                  |  42 +--
hw/core/irq.c                    |  14 -
hw/i386/Kconfig                  |   3 +-
hw/i386/acpi-build.c             |   5 +-
hw/i386/pc_piix.c                |  10 +-
hw/i386/xen/xen-hvm.c            |   5 +-
hw/intc/apic_common.c            |  49 ----
hw/isa/Kconfig                   |   4 +
hw/isa/Makefile.objs             |   1 +
hw/isa/piix3.c                   | 399 +++++++++++++++++++++++++++++
hw/isa/piix4.c                   | 151 ++++++++++-
hw/mips/gt64xxx_pci.c            |   5 +-
hw/mips/mips_malta.c             |  46 +---
hw/pci-host/Kconfig              |   3 +-
hw/pci-host/Makefile.objs        |   2 +-
hw/pci-host/{piix.c => i440fx.c} | 424 +------------------------------
hw/timer/i8254_common.c          |  40 ---
include/hw/acpi/piix4.h          |   6 -
include/hw/i386/pc.h             |  37 ---
include/hw/irq.h                 |   5 -
include/hw/isa/isa.h             |   2 +
include/hw/pci-host/i440fx.h     |  36 +++
include/hw/southbridge/piix.h    |  74 ++++++
stubs/pci-host-piix.c            |   3 +-
26 files changed, 699 insertions(+), 683 deletions(-)
create mode 100644 hw/isa/piix3.c
rename hw/pci-host/{piix.c => i440fx.c} (58%)
delete mode 100644 include/hw/acpi/piix4.h
create mode 100644 include/hw/pci-host/i440fx.h
create mode 100644 include/hw/southbridge/piix.h
[PATCH v2 00/20] hw/i386/pc: Split PIIX3 southbridge from i440FX northbridge
Posted by Philippe Mathieu-Daudé 4 years, 6 months ago
Changes since v1 [0]:
- Removed patch reintroducing DO_UPCAST() use (thuth)
- Took various patches out to reduce series (thuth)
- Added review tags (thanks all for reviewing!)

$ git backport-diff -u pc_split_i440fx_piix-v1 -r mc146818rtc_init..
Key:
[----] : patches are identical
[####] : number of functional differences between upstream/downstream patch
[down] : patch is downstream-only
The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively

001/20:[----] [--] 'MAINTAINERS: Keep PIIX4 South Bridge separate from PC Chipsets'
002/20:[0011] [FC] 'piix4: add Reset Control Register'
003/20:[0014] [FC] 'piix4: add a i8259 interrupt controller as specified in datasheet'
004/20:[----] [--] 'Revert "irq: introduce qemu_irq_proxy()"'
005/20:[----] [--] 'piix4: rename PIIX4 object to piix4-isa'
006/20:[----] [-C] 'piix4: add a i8257 dma controller as specified in datasheet'
007/20:[----] [-C] 'piix4: add a i8254 pit controller as specified in datasheet'
008/20:[----] [-C] 'piix4: add a mc146818rtc controller as specified in datasheet'
009/20:[----] [--] 'hw/mips/mips_malta: Create IDE hard drive array dynamically'
010/20:[----] [--] 'hw/mips/mips_malta: Extract the PIIX4 creation code as piix4_create()'
011/20:[----] [--] 'hw/isa/piix4: Move piix4_create() to hw/isa/piix4.c'
012/20:[----] [--] 'hw/i386: Remove obsolete LoadStateHandler::load_state_old handlers'
013/20:[----] [--] 'hw/pci-host/piix: Extract piix3_create()'
014/20:[0010] [FC] 'hw/pci-host/piix: Move RCR_IOPORT register definition'
015/20:[----] [--] 'hw/pci-host/piix: Define and use the PIIX IRQ Route Control Registers'
016/20:[----] [--] 'hw/pci-host/piix: Move i440FX declarations to hw/pci-host/i440fx.h'
017/20:[----] [--] 'hw/pci-host/piix: Fix code style issues'
018/20:[0012] [FC] 'hw/pci-host/piix: Extract PIIX3 functions to hw/isa/piix3.c'
019/20:[----] [--] 'hw/pci-host: Rename incorrectly named 'piix' as 'i440fx''
020/20:[----] [-C] 'hw/pci-host/i440fx: Remove the last PIIX3 traces'

Previous cover:

This series is a rework of "piix4: cleanup and improvements" [1]
from Hervé, and my "remove i386/pc dependency: PIIX cleanup" [2].

Still trying to remove the strong X86/PC dependency 2 years later,
one step at a time.
Here we split the PIIX3 southbridge from i440FX northbridge.
The i440FX northbridge is only used by the PC machine, while the
PIIX southbridge is also used by the Malta MIPS machine.

This is also a step forward using KConfig with the Malta board.
Without this split, it was impossible to compile the Malta without
pulling various X86 pieces of code.

The overall design cleanup is not yet perfect, but enough to post
as a series.

Now that the PIIX3 code is extracted, the code duplication with the
PIIX4 chipset is obvious. Not worth improving for now because it
isn't broken.

[0] https://lists.gnu.org/archive/html/qemu-devel/2019-10/msg03685.html
[1] https://www.mail-archive.com/qemu-devel@nongnu.org/msg500737.html
[2] https://www.mail-archive.com/qemu-devel@nongnu.org/msg504081.html

Based-on: <20191018133547.10936-1-philmd@redhat.com>
mc146818rtc: Allow call object_initialize(MC146818_RTC) instead of rtc_init()
https://mid.mail-archive.com/20191018133547.10936-1-philmd@redhat.com

Hervé Poussineau (5):
  piix4: Add the Reset Control Register
  piix4: Add a i8259 Interrupt Controller as specified in datasheet
  piix4: Rename PIIX4 object to piix4-isa
  piix4: Add a i8257 DMA Controller as specified in datasheet
  piix4: Add a i8254 PIT Controller as specified in datasheet

Philippe Mathieu-Daudé (15):
  MAINTAINERS: Keep PIIX4 South Bridge separate from PC Chipsets
  Revert "irq: introduce qemu_irq_proxy()"
  piix4: Add a MC146818 RTC Controller as specified in datasheet
  hw/mips/mips_malta: Create IDE hard drive array dynamically
  hw/mips/mips_malta: Extract the PIIX4 creation code as piix4_create()
  hw/isa/piix4: Move piix4_create() to hw/isa/piix4.c
  hw/i386: Remove obsolete LoadStateHandler::load_state_old handlers
  hw/pci-host/piix: Extract piix3_create()
  hw/pci-host/piix: Move RCR_IOPORT register definition
  hw/pci-host/piix: Define and use the PIIX IRQ Route Control Registers
  hw/pci-host/piix: Move i440FX declarations to hw/pci-host/i440fx.h
  hw/pci-host/piix: Fix code style issues
  hw/pci-host/piix: Extract PIIX3 functions to hw/isa/piix3.c
  hw/pci-host: Rename incorrectly named 'piix' as 'i440fx'
  hw/pci-host/i440fx: Remove the last PIIX3 traces

 MAINTAINERS                      |  14 +-
 hw/acpi/pcihp.c                  |   2 +-
 hw/acpi/piix4.c                  |  42 +--
 hw/core/irq.c                    |  14 -
 hw/i386/Kconfig                  |   3 +-
 hw/i386/acpi-build.c             |   5 +-
 hw/i386/pc_piix.c                |  10 +-
 hw/i386/xen/xen-hvm.c            |   5 +-
 hw/intc/apic_common.c            |  49 ----
 hw/isa/Kconfig                   |   4 +
 hw/isa/Makefile.objs             |   1 +
 hw/isa/piix3.c                   | 399 +++++++++++++++++++++++++++++
 hw/isa/piix4.c                   | 151 ++++++++++-
 hw/mips/gt64xxx_pci.c            |   5 +-
 hw/mips/mips_malta.c             |  46 +---
 hw/pci-host/Kconfig              |   3 +-
 hw/pci-host/Makefile.objs        |   2 +-
 hw/pci-host/{piix.c => i440fx.c} | 424 +------------------------------
 hw/timer/i8254_common.c          |  40 ---
 include/hw/acpi/piix4.h          |   6 -
 include/hw/i386/pc.h             |  37 ---
 include/hw/irq.h                 |   5 -
 include/hw/isa/isa.h             |   2 +
 include/hw/pci-host/i440fx.h     |  36 +++
 include/hw/southbridge/piix.h    |  74 ++++++
 stubs/pci-host-piix.c            |   3 +-
 26 files changed, 699 insertions(+), 683 deletions(-)
 create mode 100644 hw/isa/piix3.c
 rename hw/pci-host/{piix.c => i440fx.c} (58%)
 delete mode 100644 include/hw/acpi/piix4.h
 create mode 100644 include/hw/pci-host/i440fx.h
 create mode 100644 include/hw/southbridge/piix.h

-- 
2.21.0


Re: [PATCH v2 00/20] hw/i386/pc: Split PIIX3 southbridge from i440FX northbridge
Posted by no-reply@patchew.org 4 years, 6 months ago
Patchew URL: https://patchew.org/QEMU/20191018134754.16362-1-philmd@redhat.com/



Hi,

This series seems to have some coding style problems. See output below for
more information:

Subject: [PATCH v2 00/20] hw/i386/pc: Split PIIX3 southbridge from i440FX northbridge
Type: series
Message-id: 20191018134754.16362-1-philmd@redhat.com

=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
Switched to a new branch 'test'
1f84f10 hw/pci-host/i440fx: Remove the last PIIX3 traces
717a0a4 hw/pci-host: Rename incorrectly named 'piix' as 'i440fx'
1294b7c hw/pci-host/piix: Extract PIIX3 functions to hw/isa/piix3.c
23d43d0 hw/pci-host/piix: Fix code style issues
6e0ce49 hw/pci-host/piix: Move i440FX declarations to hw/pci-host/i440fx.h
d1ac4b6 hw/pci-host/piix: Define and use the PIIX IRQ Route Control Registers
cb5243e hw/pci-host/piix: Move RCR_IOPORT register definition
d5e122f hw/pci-host/piix: Extract piix3_create()
c544fb9 hw/i386: Remove obsolete LoadStateHandler::load_state_old handlers
c3c706e hw/isa/piix4: Move piix4_create() to hw/isa/piix4.c
7fad3f2 hw/mips/mips_malta: Extract the PIIX4 creation code as piix4_create()
dde8f42 hw/mips/mips_malta: Create IDE hard drive array dynamically
349a8de piix4: Add a MC146818 RTC Controller as specified in datasheet
2ad1333 piix4: Add a i8254 PIT Controller as specified in datasheet
041f420 piix4: Add a i8257 DMA Controller as specified in datasheet
9cf3651 piix4: Rename PIIX4 object to piix4-isa
a27841e Revert "irq: introduce qemu_irq_proxy()"
7d9534a piix4: Add a i8259 Interrupt Controller as specified in datasheet
6498930 piix4: Add the Reset Control Register
90cd7d4 MAINTAINERS: Keep PIIX4 South Bridge separate from PC Chipsets

=== OUTPUT BEGIN ===
1/20 Checking commit 90cd7d4f5eb5 (MAINTAINERS: Keep PIIX4 South Bridge separate from PC Chipsets)
2/20 Checking commit 64989309a9b5 (piix4: Add the Reset Control Register)
3/20 Checking commit 7d9534a284e9 (piix4: Add a i8259 Interrupt Controller as specified in datasheet)
4/20 Checking commit a27841e2b3ca (Revert "irq: introduce qemu_irq_proxy()")
5/20 Checking commit 9cf3651f77e2 (piix4: Rename PIIX4 object to piix4-isa)
6/20 Checking commit 041f4205783d (piix4: Add a i8257 DMA Controller as specified in datasheet)
7/20 Checking commit 2ad1333a3a5f (piix4: Add a i8254 PIT Controller as specified in datasheet)
8/20 Checking commit 349a8deab686 (piix4: Add a MC146818 RTC Controller as specified in datasheet)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#194: 
deleted file mode 100644

total: 0 errors, 1 warnings, 166 lines checked

Patch 8/20 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
9/20 Checking commit dde8f42302df (hw/mips/mips_malta: Create IDE hard drive array dynamically)
10/20 Checking commit 7fad3f28aa86 (hw/mips/mips_malta: Extract the PIIX4 creation code as piix4_create())
11/20 Checking commit c3c706e79403 (hw/isa/piix4: Move piix4_create() to hw/isa/piix4.c)
12/20 Checking commit c544fb98aa67 (hw/i386: Remove obsolete LoadStateHandler::load_state_old handlers)
13/20 Checking commit d5e122f286e4 (hw/pci-host/piix: Extract piix3_create())
14/20 Checking commit cb5243e8b4a0 (hw/pci-host/piix: Move RCR_IOPORT register definition)
15/20 Checking commit d1ac4b60c55c (hw/pci-host/piix: Define and use the PIIX IRQ Route Control Registers)
16/20 Checking commit 6e0ce49c6fb6 (hw/pci-host/piix: Move i440FX declarations to hw/pci-host/i440fx.h)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#99: 
new file mode 100644

total: 0 errors, 1 warnings, 101 lines checked

Patch 16/20 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
17/20 Checking commit 23d43d03d057 (hw/pci-host/piix: Fix code style issues)
18/20 Checking commit 1294b7c961d3 (hw/pci-host/piix: Extract PIIX3 functions to hw/isa/piix3.c)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#66: 
new file mode 100644

ERROR: spaces required around that '*' (ctx:VxV)
#315: FILE: hw/isa/piix3.c:245:
+    .subsections = (const VMStateDescription*[]) {
                                             ^

total: 1 errors, 1 warnings, 937 lines checked

Patch 18/20 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

19/20 Checking commit 717a0a47f89a (hw/pci-host: Rename incorrectly named 'piix' as 'i440fx')
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#70: 
rename from hw/pci-host/piix.c

total: 0 errors, 1 warnings, 32 lines checked

Patch 19/20 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
20/20 Checking commit 1f84f103c9b2 (hw/pci-host/i440fx: Remove the last PIIX3 traces)
=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/20191018134754.16362-1-philmd@redhat.com/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
Re: [Xen-devel] [PATCH v2 00/20] hw/i386/pc: Split PIIX3 southbridge from i440FX northbridge
Posted by Aleksandar Markovic 4 years, 6 months ago
On Friday, October 18, 2019, Philippe Mathieu-Daudé <philmd@redhat.com>
wrote:

> Changes since v1 [0]:
> - Removed patch reintroducing DO_UPCAST() use (thuth)
> - Took various patches out to reduce series (thuth)
> - Added review tags (thanks all for reviewing!)
>
>
Philippe,

Do you intend to submit v3? The softfreeze is close.

A.



> $ git backport-diff -u pc_split_i440fx_piix-v1 -r mc146818rtc_init..
> Key:
> [----] : patches are identical
> [####] : number of functional differences between upstream/downstream patch
> [down] : patch is downstream-only
> The flags [FC] indicate (F)unctional and (C)ontextual differences,
> respectively
>
> 001/20:[----] [--] 'MAINTAINERS: Keep PIIX4 South Bridge separate from PC
> Chipsets'
> 002/20:[0011] [FC] 'piix4: add Reset Control Register'
> 003/20:[0014] [FC] 'piix4: add a i8259 interrupt controller as specified
> in datasheet'
> 004/20:[----] [--] 'Revert "irq: introduce qemu_irq_proxy()"'
> 005/20:[----] [--] 'piix4: rename PIIX4 object to piix4-isa'
> 006/20:[----] [-C] 'piix4: add a i8257 dma controller as specified in
> datasheet'
> 007/20:[----] [-C] 'piix4: add a i8254 pit controller as specified in
> datasheet'
> 008/20:[----] [-C] 'piix4: add a mc146818rtc controller as specified in
> datasheet'
> 009/20:[----] [--] 'hw/mips/mips_malta: Create IDE hard drive array
> dynamically'
> 010/20:[----] [--] 'hw/mips/mips_malta: Extract the PIIX4 creation code as
> piix4_create()'
> 011/20:[----] [--] 'hw/isa/piix4: Move piix4_create() to hw/isa/piix4.c'
> 012/20:[----] [--] 'hw/i386: Remove obsolete LoadStateHandler::load_state_old
> handlers'
> 013/20:[----] [--] 'hw/pci-host/piix: Extract piix3_create()'
> 014/20:[0010] [FC] 'hw/pci-host/piix: Move RCR_IOPORT register definition'
> 015/20:[----] [--] 'hw/pci-host/piix: Define and use the PIIX IRQ Route
> Control Registers'
> 016/20:[----] [--] 'hw/pci-host/piix: Move i440FX declarations to
> hw/pci-host/i440fx.h'
> 017/20:[----] [--] 'hw/pci-host/piix: Fix code style issues'
> 018/20:[0012] [FC] 'hw/pci-host/piix: Extract PIIX3 functions to
> hw/isa/piix3.c'
> 019/20:[----] [--] 'hw/pci-host: Rename incorrectly named 'piix' as
> 'i440fx''
> 020/20:[----] [-C] 'hw/pci-host/i440fx: Remove the last PIIX3 traces'
>
> Previous cover:
>
> This series is a rework of "piix4: cleanup and improvements" [1]
> from Hervé, and my "remove i386/pc dependency: PIIX cleanup" [2].
>
> Still trying to remove the strong X86/PC dependency 2 years later,
> one step at a time.
> Here we split the PIIX3 southbridge from i440FX northbridge.
> The i440FX northbridge is only used by the PC machine, while the
> PIIX southbridge is also used by the Malta MIPS machine.
>
> This is also a step forward using KConfig with the Malta board.
> Without this split, it was impossible to compile the Malta without
> pulling various X86 pieces of code.
>
> The overall design cleanup is not yet perfect, but enough to post
> as a series.
>
> Now that the PIIX3 code is extracted, the code duplication with the
> PIIX4 chipset is obvious. Not worth improving for now because it
> isn't broken.
>
> [0] https://lists.gnu.org/archive/html/qemu-devel/2019-10/msg03685.html
> [1] https://www.mail-archive.com/qemu-devel@nongnu.org/msg500737.html
> [2] https://www.mail-archive.com/qemu-devel@nongnu.org/msg504081.html
>
> Based-on: <20191018133547.10936-1-philmd@redhat.com>
> mc146818rtc: Allow call object_initialize(MC146818_RTC) instead of
> rtc_init()
> https://mid.mail-archive.com/20191018133547.10936-1-philmd@redhat.com
>
> Hervé Poussineau (5):
>   piix4: Add the Reset Control Register
>   piix4: Add a i8259 Interrupt Controller as specified in datasheet
>   piix4: Rename PIIX4 object to piix4-isa
>   piix4: Add a i8257 DMA Controller as specified in datasheet
>   piix4: Add a i8254 PIT Controller as specified in datasheet
>
> Philippe Mathieu-Daudé (15):
>   MAINTAINERS: Keep PIIX4 South Bridge separate from PC Chipsets
>   Revert "irq: introduce qemu_irq_proxy()"
>   piix4: Add a MC146818 RTC Controller as specified in datasheet
>   hw/mips/mips_malta: Create IDE hard drive array dynamically
>   hw/mips/mips_malta: Extract the PIIX4 creation code as piix4_create()
>   hw/isa/piix4: Move piix4_create() to hw/isa/piix4.c
>   hw/i386: Remove obsolete LoadStateHandler::load_state_old handlers
>   hw/pci-host/piix: Extract piix3_create()
>   hw/pci-host/piix: Move RCR_IOPORT register definition
>   hw/pci-host/piix: Define and use the PIIX IRQ Route Control Registers
>   hw/pci-host/piix: Move i440FX declarations to hw/pci-host/i440fx.h
>   hw/pci-host/piix: Fix code style issues
>   hw/pci-host/piix: Extract PIIX3 functions to hw/isa/piix3.c
>   hw/pci-host: Rename incorrectly named 'piix' as 'i440fx'
>   hw/pci-host/i440fx: Remove the last PIIX3 traces
>
>  MAINTAINERS                      |  14 +-
>  hw/acpi/pcihp.c                  |   2 +-
>  hw/acpi/piix4.c                  |  42 +--
>  hw/core/irq.c                    |  14 -
>  hw/i386/Kconfig                  |   3 +-
>  hw/i386/acpi-build.c             |   5 +-
>  hw/i386/pc_piix.c                |  10 +-
>  hw/i386/xen/xen-hvm.c            |   5 +-
>  hw/intc/apic_common.c            |  49 ----
>  hw/isa/Kconfig                   |   4 +
>  hw/isa/Makefile.objs             |   1 +
>  hw/isa/piix3.c                   | 399 +++++++++++++++++++++++++++++
>  hw/isa/piix4.c                   | 151 ++++++++++-
>  hw/mips/gt64xxx_pci.c            |   5 +-
>  hw/mips/mips_malta.c             |  46 +---
>  hw/pci-host/Kconfig              |   3 +-
>  hw/pci-host/Makefile.objs        |   2 +-
>  hw/pci-host/{piix.c => i440fx.c} | 424 +------------------------------
>  hw/timer/i8254_common.c          |  40 ---
>  include/hw/acpi/piix4.h          |   6 -
>  include/hw/i386/pc.h             |  37 ---
>  include/hw/irq.h                 |   5 -
>  include/hw/isa/isa.h             |   2 +
>  include/hw/pci-host/i440fx.h     |  36 +++
>  include/hw/southbridge/piix.h    |  74 ++++++
>  stubs/pci-host-piix.c            |   3 +-
>  26 files changed, 699 insertions(+), 683 deletions(-)
>  create mode 100644 hw/isa/piix3.c
>  rename hw/pci-host/{piix.c => i440fx.c} (58%)
>  delete mode 100644 include/hw/acpi/piix4.h
>  create mode 100644 include/hw/pci-host/i440fx.h
>  create mode 100644 include/hw/southbridge/piix.h
>
> --
> 2.21.0
>
>
>
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH v2 00/20] hw/i386/pc: Split PIIX3 southbridge from i440FX northbridge
Posted by Aleksandar Markovic 4 years, 6 months ago
On Thursday, October 24, 2019, Aleksandar Markovic <
aleksandar.m.mail@gmail.com> wrote:

>
>
> On Friday, October 18, 2019, Philippe Mathieu-Daudé <philmd@redhat.com>
> wrote:
>
>> Changes since v1 [0]:
>> - Removed patch reintroducing DO_UPCAST() use (thuth)
>> - Took various patches out to reduce series (thuth)
>> - Added review tags (thanks all for reviewing!)
>>
>>
> Philippe,
>
> Do you intend to submit v3? The softfreeze is close.
>
> A.
>
>
Philippe,

It looks you are very busy these days. Do you mind my integrating this
series in next Mips queue, in its present v2 state? (You can certainly do
further refinements later on.)

Aleksandar


>
>
>> $ git backport-diff -u pc_split_i440fx_piix-v1 -r mc146818rtc_init..
>> Key:
>> [----] : patches are identical
>> [####] : number of functional differences between upstream/downstream
>> patch
>> [down] : patch is downstream-only
>> The flags [FC] indicate (F)unctional and (C)ontextual differences,
>> respectively
>>
>> 001/20:[----] [--] 'MAINTAINERS: Keep PIIX4 South Bridge separate from PC
>> Chipsets'
>> 002/20:[0011] [FC] 'piix4: add Reset Control Register'
>> 003/20:[0014] [FC] 'piix4: add a i8259 interrupt controller as specified
>> in datasheet'
>> 004/20:[----] [--] 'Revert "irq: introduce qemu_irq_proxy()"'
>> 005/20:[----] [--] 'piix4: rename PIIX4 object to piix4-isa'
>> 006/20:[----] [-C] 'piix4: add a i8257 dma controller as specified in
>> datasheet'
>> 007/20:[----] [-C] 'piix4: add a i8254 pit controller as specified in
>> datasheet'
>> 008/20:[----] [-C] 'piix4: add a mc146818rtc controller as specified in
>> datasheet'
>> 009/20:[----] [--] 'hw/mips/mips_malta: Create IDE hard drive array
>> dynamically'
>> 010/20:[----] [--] 'hw/mips/mips_malta: Extract the PIIX4 creation code
>> as piix4_create()'
>> 011/20:[----] [--] 'hw/isa/piix4: Move piix4_create() to hw/isa/piix4.c'
>> 012/20:[----] [--] 'hw/i386: Remove obsolete
>> LoadStateHandler::load_state_old handlers'
>> 013/20:[----] [--] 'hw/pci-host/piix: Extract piix3_create()'
>> 014/20:[0010] [FC] 'hw/pci-host/piix: Move RCR_IOPORT register definition'
>> 015/20:[----] [--] 'hw/pci-host/piix: Define and use the PIIX IRQ Route
>> Control Registers'
>> 016/20:[----] [--] 'hw/pci-host/piix: Move i440FX declarations to
>> hw/pci-host/i440fx.h'
>> 017/20:[----] [--] 'hw/pci-host/piix: Fix code style issues'
>> 018/20:[0012] [FC] 'hw/pci-host/piix: Extract PIIX3 functions to
>> hw/isa/piix3.c'
>> 019/20:[----] [--] 'hw/pci-host: Rename incorrectly named 'piix' as
>> 'i440fx''
>> 020/20:[----] [-C] 'hw/pci-host/i440fx: Remove the last PIIX3 traces'
>>
>> Previous cover:
>>
>> This series is a rework of "piix4: cleanup and improvements" [1]
>> from Hervé, and my "remove i386/pc dependency: PIIX cleanup" [2].
>>
>> Still trying to remove the strong X86/PC dependency 2 years later,
>> one step at a time.
>> Here we split the PIIX3 southbridge from i440FX northbridge.
>> The i440FX northbridge is only used by the PC machine, while the
>> PIIX southbridge is also used by the Malta MIPS machine.
>>
>> This is also a step forward using KConfig with the Malta board.
>> Without this split, it was impossible to compile the Malta without
>> pulling various X86 pieces of code.
>>
>> The overall design cleanup is not yet perfect, but enough to post
>> as a series.
>>
>> Now that the PIIX3 code is extracted, the code duplication with the
>> PIIX4 chipset is obvious. Not worth improving for now because it
>> isn't broken.
>>
>> [0] https://lists.gnu.org/archive/html/qemu-devel/2019-10/msg03685.html
>> [1] https://www.mail-archive.com/qemu-devel@nongnu.org/msg500737.html
>> [2] https://www.mail-archive.com/qemu-devel@nongnu.org/msg504081.html
>>
>> Based-on: <20191018133547.10936-1-philmd@redhat.com>
>> mc146818rtc: Allow call object_initialize(MC146818_RTC) instead of
>> rtc_init()
>> https://mid.mail-archive.com/20191018133547.10936-1-philmd@redhat.com
>>
>> Hervé Poussineau (5):
>>   piix4: Add the Reset Control Register
>>   piix4: Add a i8259 Interrupt Controller as specified in datasheet
>>   piix4: Rename PIIX4 object to piix4-isa
>>   piix4: Add a i8257 DMA Controller as specified in datasheet
>>   piix4: Add a i8254 PIT Controller as specified in datasheet
>>
>> Philippe Mathieu-Daudé (15):
>>   MAINTAINERS: Keep PIIX4 South Bridge separate from PC Chipsets
>>   Revert "irq: introduce qemu_irq_proxy()"
>>   piix4: Add a MC146818 RTC Controller as specified in datasheet
>>   hw/mips/mips_malta: Create IDE hard drive array dynamically
>>   hw/mips/mips_malta: Extract the PIIX4 creation code as piix4_create()
>>   hw/isa/piix4: Move piix4_create() to hw/isa/piix4.c
>>   hw/i386: Remove obsolete LoadStateHandler::load_state_old handlers
>>   hw/pci-host/piix: Extract piix3_create()
>>   hw/pci-host/piix: Move RCR_IOPORT register definition
>>   hw/pci-host/piix: Define and use the PIIX IRQ Route Control Registers
>>   hw/pci-host/piix: Move i440FX declarations to hw/pci-host/i440fx.h
>>   hw/pci-host/piix: Fix code style issues
>>   hw/pci-host/piix: Extract PIIX3 functions to hw/isa/piix3.c
>>   hw/pci-host: Rename incorrectly named 'piix' as 'i440fx'
>>   hw/pci-host/i440fx: Remove the last PIIX3 traces
>>
>>  MAINTAINERS                      |  14 +-
>>  hw/acpi/pcihp.c                  |   2 +-
>>  hw/acpi/piix4.c                  |  42 +--
>>  hw/core/irq.c                    |  14 -
>>  hw/i386/Kconfig                  |   3 +-
>>  hw/i386/acpi-build.c             |   5 +-
>>  hw/i386/pc_piix.c                |  10 +-
>>  hw/i386/xen/xen-hvm.c            |   5 +-
>>  hw/intc/apic_common.c            |  49 ----
>>  hw/isa/Kconfig                   |   4 +
>>  hw/isa/Makefile.objs             |   1 +
>>  hw/isa/piix3.c                   | 399 +++++++++++++++++++++++++++++
>>  hw/isa/piix4.c                   | 151 ++++++++++-
>>  hw/mips/gt64xxx_pci.c            |   5 +-
>>  hw/mips/mips_malta.c             |  46 +---
>>  hw/pci-host/Kconfig              |   3 +-
>>  hw/pci-host/Makefile.objs        |   2 +-
>>  hw/pci-host/{piix.c => i440fx.c} | 424 +------------------------------
>>  hw/timer/i8254_common.c          |  40 ---
>>  include/hw/acpi/piix4.h          |   6 -
>>  include/hw/i386/pc.h             |  37 ---
>>  include/hw/irq.h                 |   5 -
>>  include/hw/isa/isa.h             |   2 +
>>  include/hw/pci-host/i440fx.h     |  36 +++
>>  include/hw/southbridge/piix.h    |  74 ++++++
>>  stubs/pci-host-piix.c            |   3 +-
>>  26 files changed, 699 insertions(+), 683 deletions(-)
>>  create mode 100644 hw/isa/piix3.c
>>  rename hw/pci-host/{piix.c => i440fx.c} (58%)
>>  delete mode 100644 include/hw/acpi/piix4.h
>>  create mode 100644 include/hw/pci-host/i440fx.h
>>  create mode 100644 include/hw/southbridge/piix.h
>>
>> --
>> 2.21.0
>>
>>
>>
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [PATCH v2 00/20] hw/i386/pc: Split PIIX3 southbridge from i440FX northbridge
Posted by Philippe Mathieu-Daudé 4 years, 5 months ago
Hi Aleksandar,

On 10/25/19 12:51 PM, Aleksandar Markovic wrote:
> On Thursday, October 24, 2019, Aleksandar Markovic 
> <aleksandar.m.mail@gmail.com <mailto:aleksandar.m.mail@gmail.com>> wrote:
> 
> 
> 
>     On Friday, October 18, 2019, Philippe Mathieu-Daudé
>     <philmd@redhat.com <mailto:philmd@redhat.com>> wrote:
> 
>         Changes since v1 [0]:
>         - Removed patch reintroducing DO_UPCAST() use (thuth)
>         - Took various patches out to reduce series (thuth)
>         - Added review tags (thanks all for reviewing!)
> 
> 
>     Philippe,
> 
>     Do you intend to submit v3? The softfreeze is close.
> 
>     A.
> 
> 
> Philippe,
> 
> It looks you are very busy these days. Do you mind my integrating this 
> series in next Mips queue, in its present v2 state? (You can certainly 
> do further refinements later on.)

I addressed the review comments from this version, however it can not
be merged yet ...

> 
> Aleksandar
> 
>         $ git backport-diff -u pc_split_i440fx_piix-v1 -r mc146818rtc_init..
>         Key:
>         [----] : patches are identical
>         [####] : number of functional differences between
>         upstream/downstream patch
>         [down] : patch is downstream-only
>         The flags [FC] indicate (F)unctional and (C)ontextual
>         differences, respectively
> 
>         001/20:[----] [--] 'MAINTAINERS: Keep PIIX4 South Bridge
>         separate from PC Chipsets'
>         002/20:[0011] [FC] 'piix4: add Reset Control Register'
>         003/20:[0014] [FC] 'piix4: add a i8259 interrupt controller as
>         specified in datasheet'
>         004/20:[----] [--] 'Revert "irq: introduce qemu_irq_proxy()"'
>         005/20:[----] [--] 'piix4: rename PIIX4 object to piix4-isa'
>         006/20:[----] [-C] 'piix4: add a i8257 dma controller as
>         specified in datasheet'
>         007/20:[----] [-C] 'piix4: add a i8254 pit controller as
>         specified in datasheet'
>         008/20:[----] [-C] 'piix4: add a mc146818rtc controller as
>         specified in datasheet'
>         009/20:[----] [--] 'hw/mips/mips_malta: Create IDE hard drive
>         array dynamically'
>         010/20:[----] [--] 'hw/mips/mips_malta: Extract the PIIX4
>         creation code as piix4_create()'
>         011/20:[----] [--] 'hw/isa/piix4: Move piix4_create() to
>         hw/isa/piix4.c'
>         012/20:[----] [--] 'hw/i386: Remove obsolete
>         LoadStateHandler::load_state_old handlers'
>         013/20:[----] [--] 'hw/pci-host/piix: Extract piix3_create()'
>         014/20:[0010] [FC] 'hw/pci-host/piix: Move RCR_IOPORT register
>         definition'
>         015/20:[----] [--] 'hw/pci-host/piix: Define and use the PIIX
>         IRQ Route Control Registers'
>         016/20:[----] [--] 'hw/pci-host/piix: Move i440FX declarations
>         to hw/pci-host/i440fx.h'
>         017/20:[----] [--] 'hw/pci-host/piix: Fix code style issues'
>         018/20:[0012] [FC] 'hw/pci-host/piix: Extract PIIX3 functions to
>         hw/isa/piix3.c'
>         019/20:[----] [--] 'hw/pci-host: Rename incorrectly named 'piix'
>         as 'i440fx''
>         020/20:[----] [-C] 'hw/pci-host/i440fx: Remove the last PIIX3
>         traces'
> 
>         Previous cover:
> 
>         This series is a rework of "piix4: cleanup and improvements" [1]
>         from Hervé, and my "remove i386/pc dependency: PIIX cleanup" [2].
> 
>         Still trying to remove the strong X86/PC dependency 2 years later,
>         one step at a time.
>         Here we split the PIIX3 southbridge from i440FX northbridge.
>         The i440FX northbridge is only used by the PC machine, while the
>         PIIX southbridge is also used by the Malta MIPS machine.
> 
>         This is also a step forward using KConfig with the Malta board.
>         Without this split, it was impossible to compile the Malta without
>         pulling various X86 pieces of code.
> 
>         The overall design cleanup is not yet perfect, but enough to post
>         as a series.
> 
>         Now that the PIIX3 code is extracted, the code duplication with the
>         PIIX4 chipset is obvious. Not worth improving for now because it
>         isn't broken.
> 
>         [0]
>         https://lists.gnu.org/archive/html/qemu-devel/2019-10/msg03685.html
>         <https://lists.gnu.org/archive/html/qemu-devel/2019-10/msg03685.html>
>         [1]
>         https://www.mail-archive.com/qemu-devel@nongnu.org/msg500737.html <https://www.mail-archive.com/qemu-devel@nongnu.org/msg500737.html>
>         [2]
>         https://www.mail-archive.com/qemu-devel@nongnu.org/msg504081.html <https://www.mail-archive.com/qemu-devel@nongnu.org/msg504081.html>
> 
>         Based-on: <20191018133547.10936-1-philmd@redhat.com
>         <mailto:20191018133547.10936-1-philmd@redhat.com>>
>         mc146818rtc: Allow call object_initialize(MC146818_RTC) instead
>         of rtc_init()

... because it depends on this series which has been queued by Paolo but 
is not yet merged.

>         https://mid.mail-archive.com/20191018133547.10936-1-philmd@redhat.com
>         <https://mid.mail-archive.com/20191018133547.10936-1-philmd@redhat.com>
> 
>         Hervé Poussineau (5):
>            piix4: Add the Reset Control Register
>            piix4: Add a i8259 Interrupt Controller as specified in datasheet
>            piix4: Rename PIIX4 object to piix4-isa
>            piix4: Add a i8257 DMA Controller as specified in datasheet
>            piix4: Add a i8254 PIT Controller as specified in datasheet
> 
>         Philippe Mathieu-Daudé (15):
>            MAINTAINERS: Keep PIIX4 South Bridge separate from PC Chipsets
>            Revert "irq: introduce qemu_irq_proxy()"
>            piix4: Add a MC146818 RTC Controller as specified in datasheet
>            hw/mips/mips_malta: Create IDE hard drive array dynamically
>            hw/mips/mips_malta: Extract the PIIX4 creation code as
>         piix4_create()
>            hw/isa/piix4: Move piix4_create() to hw/isa/piix4.c
>            hw/i386: Remove obsolete LoadStateHandler::load_state_old
>         handlers
>            hw/pci-host/piix: Extract piix3_create()
>            hw/pci-host/piix: Move RCR_IOPORT register definition
>            hw/pci-host/piix: Define and use the PIIX IRQ Route Control
>         Registers
>            hw/pci-host/piix: Move i440FX declarations to
>         hw/pci-host/i440fx.h
>            hw/pci-host/piix: Fix code style issues
>            hw/pci-host/piix: Extract PIIX3 functions to hw/isa/piix3.c
>            hw/pci-host: Rename incorrectly named 'piix' as 'i440fx'
>            hw/pci-host/i440fx: Remove the last PIIX3 traces
> 
>           MAINTAINERS                      |  14 +-
>           hw/acpi/pcihp.c                  |   2 +-
>           hw/acpi/piix4.c                  |  42 +--
>           hw/core/irq.c                    |  14 -
>           hw/i386/Kconfig                  |   3 +-
>           hw/i386/acpi-build.c             |   5 +-
>           hw/i386/pc_piix.c                |  10 +-
>           hw/i386/xen/xen-hvm.c            |   5 +-
>           hw/intc/apic_common.c            |  49 ----
>           hw/isa/Kconfig                   |   4 +
>           hw/isa/Makefile.objs             |   1 +
>           hw/isa/piix3.c                   | 399
>         +++++++++++++++++++++++++++++
>           hw/isa/piix4.c                   | 151 ++++++++++-
>           hw/mips/gt64xxx_pci.c            |   5 +-
>           hw/mips/mips_malta.c             |  46 +---
>           hw/pci-host/Kconfig              |   3 +-
>           hw/pci-host/Makefile.objs        |   2 +-
>           hw/pci-host/{piix.c => i440fx.c} | 424
>         +------------------------------
>           hw/timer/i8254_common.c          |  40 ---
>           include/hw/acpi/piix4.h          |   6 -
>           include/hw/i386/pc.h             |  37 ---
>           include/hw/irq.h                 |   5 -
>           include/hw/isa/isa.h             |   2 +
>           include/hw/pci-host/i440fx.h     |  36 +++
>           include/hw/southbridge/piix.h    |  74 ++++++
>           stubs/pci-host-piix.c            |   3 +-
>           26 files changed, 699 insertions(+), 683 deletions(-)
>           create mode 100644 hw/isa/piix3.c
>           rename hw/pci-host/{piix.c => i440fx.c} (58%)
>           delete mode 100644 include/hw/acpi/piix4.h
>           create mode 100644 include/hw/pci-host/i440fx.h
>           create mode 100644 include/hw/southbridge/piix.h
> 
>         -- 
>         2.21.0
> 
> 

Re: [Xen-devel] [PATCH v2 00/20] hw/i386/pc: Split PIIX3 southbridge from i440FX northbridge
Posted by Aleksandar Markovic 4 years, 5 months ago
On Saturday, October 26, 2019, Philippe Mathieu-Daudé <philmd@redhat.com>
wrote:

> Hi Aleksandar,
>
> On 10/25/19 12:51 PM, Aleksandar Markovic wrote:
>
>> On Thursday, October 24, 2019, Aleksandar Markovic <
>> aleksandar.m.mail@gmail.com <mailto:aleksandar.m.mail@gmail.com>> wrote:
>>
>>
>>
>>     On Friday, October 18, 2019, Philippe Mathieu-Daudé
>>     <philmd@redhat.com <mailto:philmd@redhat.com>> wrote:
>>
>>         Changes since v1 [0]:
>>         - Removed patch reintroducing DO_UPCAST() use (thuth)
>>         - Took various patches out to reduce series (thuth)
>>         - Added review tags (thanks all for reviewing!)
>>
>>
>>     Philippe,
>>
>>     Do you intend to submit v3? The softfreeze is close.
>>
>>     A.
>>
>>
>> Philippe,
>>
>> It looks you are very busy these days. Do you mind my integrating this
>> series in next Mips queue, in its present v2 state? (You can certainly do
>> further refinements later on.)
>>
>
> I addressed the review comments from this version, however it can not
> be merged yet ...


OK. Let's not rush. Let me know if I can help in any way.

A.




>
>
>> Aleksandar
>>
>>         $ git backport-diff -u pc_split_i440fx_piix-v1 -r
>> mc146818rtc_init..
>>         Key:
>>         [----] : patches are identical
>>         [####] : number of functional differences between
>>         upstream/downstream patch
>>         [down] : patch is downstream-only
>>         The flags [FC] indicate (F)unctional and (C)ontextual
>>         differences, respectively
>>
>>         001/20:[----] [--] 'MAINTAINERS: Keep PIIX4 South Bridge
>>         separate from PC Chipsets'
>>         002/20:[0011] [FC] 'piix4: add Reset Control Register'
>>         003/20:[0014] [FC] 'piix4: add a i8259 interrupt controller as
>>         specified in datasheet'
>>         004/20:[----] [--] 'Revert "irq: introduce qemu_irq_proxy()"'
>>         005/20:[----] [--] 'piix4: rename PIIX4 object to piix4-isa'
>>         006/20:[----] [-C] 'piix4: add a i8257 dma controller as
>>         specified in datasheet'
>>         007/20:[----] [-C] 'piix4: add a i8254 pit controller as
>>         specified in datasheet'
>>         008/20:[----] [-C] 'piix4: add a mc146818rtc controller as
>>         specified in datasheet'
>>         009/20:[----] [--] 'hw/mips/mips_malta: Create IDE hard drive
>>         array dynamically'
>>         010/20:[----] [--] 'hw/mips/mips_malta: Extract the PIIX4
>>         creation code as piix4_create()'
>>         011/20:[----] [--] 'hw/isa/piix4: Move piix4_create() to
>>         hw/isa/piix4.c'
>>         012/20:[----] [--] 'hw/i386: Remove obsolete
>>         LoadStateHandler::load_state_old handlers'
>>         013/20:[----] [--] 'hw/pci-host/piix: Extract piix3_create()'
>>         014/20:[0010] [FC] 'hw/pci-host/piix: Move RCR_IOPORT register
>>         definition'
>>         015/20:[----] [--] 'hw/pci-host/piix: Define and use the PIIX
>>         IRQ Route Control Registers'
>>         016/20:[----] [--] 'hw/pci-host/piix: Move i440FX declarations
>>         to hw/pci-host/i440fx.h'
>>         017/20:[----] [--] 'hw/pci-host/piix: Fix code style issues'
>>         018/20:[0012] [FC] 'hw/pci-host/piix: Extract PIIX3 functions to
>>         hw/isa/piix3.c'
>>         019/20:[----] [--] 'hw/pci-host: Rename incorrectly named 'piix'
>>         as 'i440fx''
>>         020/20:[----] [-C] 'hw/pci-host/i440fx: Remove the last PIIX3
>>         traces'
>>
>>         Previous cover:
>>
>>         This series is a rework of "piix4: cleanup and improvements" [1]
>>         from Hervé, and my "remove i386/pc dependency: PIIX cleanup" [2].
>>
>>         Still trying to remove the strong X86/PC dependency 2 years later,
>>         one step at a time.
>>         Here we split the PIIX3 southbridge from i440FX northbridge.
>>         The i440FX northbridge is only used by the PC machine, while the
>>         PIIX southbridge is also used by the Malta MIPS machine.
>>
>>         This is also a step forward using KConfig with the Malta board.
>>         Without this split, it was impossible to compile the Malta without
>>         pulling various X86 pieces of code.
>>
>>         The overall design cleanup is not yet perfect, but enough to post
>>         as a series.
>>
>>         Now that the PIIX3 code is extracted, the code duplication with
>> the
>>         PIIX4 chipset is obvious. Not worth improving for now because it
>>         isn't broken.
>>
>>         [0]
>>         https://lists.gnu.org/archive/html/qemu-devel/2019-10/msg036
>> 85.html
>>         <https://lists.gnu.org/archive/html/qemu-devel/2019-10/
>> msg03685.html>
>>         [1]
>>         https://www.mail-archive.com/qemu-devel@nongnu.org/msg500737.html
>> <https://www.mail-archive.com/qemu-devel@nongnu.org/msg500737.html>
>>         [2]
>>         https://www.mail-archive.com/qemu-devel@nongnu.org/msg504081.html
>> <https://www.mail-archive.com/qemu-devel@nongnu.org/msg504081.html>
>>
>>         Based-on: <20191018133547.10936-1-philmd@redhat.com
>>         <mailto:20191018133547.10936-1-philmd@redhat.com>>
>>         mc146818rtc: Allow call object_initialize(MC146818_RTC) instead
>>         of rtc_init()
>>
>
> ... because it depends on this series which has been queued by Paolo but
> is not yet merged.
>
>         https://mid.mail-archive.com/20191018133547.10936-1-philmd@r
>> edhat.com
>>         <https://mid.mail-archive.com/20191018133547.10936-1-philmd@
>> redhat.com>
>>
>>         Hervé Poussineau (5):
>>            piix4: Add the Reset Control Register
>>            piix4: Add a i8259 Interrupt Controller as specified in
>> datasheet
>>            piix4: Rename PIIX4 object to piix4-isa
>>            piix4: Add a i8257 DMA Controller as specified in datasheet
>>            piix4: Add a i8254 PIT Controller as specified in datasheet
>>
>>         Philippe Mathieu-Daudé (15):
>>            MAINTAINERS: Keep PIIX4 South Bridge separate from PC Chipsets
>>            Revert "irq: introduce qemu_irq_proxy()"
>>            piix4: Add a MC146818 RTC Controller as specified in datasheet
>>            hw/mips/mips_malta: Create IDE hard drive array dynamically
>>            hw/mips/mips_malta: Extract the PIIX4 creation code as
>>         piix4_create()
>>            hw/isa/piix4: Move piix4_create() to hw/isa/piix4.c
>>            hw/i386: Remove obsolete LoadStateHandler::load_state_old
>>         handlers
>>            hw/pci-host/piix: Extract piix3_create()
>>            hw/pci-host/piix: Move RCR_IOPORT register definition
>>            hw/pci-host/piix: Define and use the PIIX IRQ Route Control
>>         Registers
>>            hw/pci-host/piix: Move i440FX declarations to
>>         hw/pci-host/i440fx.h
>>            hw/pci-host/piix: Fix code style issues
>>            hw/pci-host/piix: Extract PIIX3 functions to hw/isa/piix3.c
>>            hw/pci-host: Rename incorrectly named 'piix' as 'i440fx'
>>            hw/pci-host/i440fx: Remove the last PIIX3 traces
>>
>>           MAINTAINERS                      |  14 +-
>>           hw/acpi/pcihp.c                  |   2 +-
>>           hw/acpi/piix4.c                  |  42 +--
>>           hw/core/irq.c                    |  14 -
>>           hw/i386/Kconfig                  |   3 +-
>>           hw/i386/acpi-build.c             |   5 +-
>>           hw/i386/pc_piix.c                |  10 +-
>>           hw/i386/xen/xen-hvm.c            |   5 +-
>>           hw/intc/apic_common.c            |  49 ----
>>           hw/isa/Kconfig                   |   4 +
>>           hw/isa/Makefile.objs             |   1 +
>>           hw/isa/piix3.c                   | 399
>>         +++++++++++++++++++++++++++++
>>           hw/isa/piix4.c                   | 151 ++++++++++-
>>           hw/mips/gt64xxx_pci.c            |   5 +-
>>           hw/mips/mips_malta.c             |  46 +---
>>           hw/pci-host/Kconfig              |   3 +-
>>           hw/pci-host/Makefile.objs        |   2 +-
>>           hw/pci-host/{piix.c => i440fx.c} | 424
>>         +------------------------------
>>           hw/timer/i8254_common.c          |  40 ---
>>           include/hw/acpi/piix4.h          |   6 -
>>           include/hw/i386/pc.h             |  37 ---
>>           include/hw/irq.h                 |   5 -
>>           include/hw/isa/isa.h             |   2 +
>>           include/hw/pci-host/i440fx.h     |  36 +++
>>           include/hw/southbridge/piix.h    |  74 ++++++
>>           stubs/pci-host-piix.c            |   3 +-
>>           26 files changed, 699 insertions(+), 683 deletions(-)
>>           create mode 100644 hw/isa/piix3.c
>>           rename hw/pci-host/{piix.c => i440fx.c} (58%)
>>           delete mode 100644 include/hw/acpi/piix4.h
>>           create mode 100644 include/hw/pci-host/i440fx.h
>>           create mode 100644 include/hw/southbridge/piix.h
>>
>>         --         2.21.0
>>
>>
>>
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH v2 00/20] hw/i386/pc: Split PIIX3 southbridge from i440FX northbridge
Posted by Aleksandar Markovic 4 years, 6 months ago
On Friday, October 18, 2019, Philippe Mathieu-Daudé <philmd@redhat.com>
wrote:

> Changes since v1 [0]:
> - Removed patch reintroducing DO_UPCAST() use (thuth)
> - Took various patches out to reduce series (thuth)
> - Added review tags (thanks all for reviewing!)
>
>
As far as I can tell, a handful of checkpatch warnings are all false
positives.

Peter, I am fine with Philippe (or Herve for that matter) submitting this
series as a pull request (providing that some basic relevant Malta tests
are done), and, if you are fine too, I think we can proceed.

Integrating this series will make device model for Malta better (closer to
real hardware), and also help Philippe continue working on other device
cleanups.

Aleksandar




> $ git backport-diff -u pc_split_i440fx_piix-v1 -r mc146818rtc_init..
> Key:
> [----] : patches are identical
> [####] : number of functional differences between upstream/downstream patch
> [down] : patch is downstream-only
> The flags [FC] indicate (F)unctional and (C)ontextual differences,
> respectively
>
> 001/20:[----] [--] 'MAINTAINERS: Keep PIIX4 South Bridge separate from PC
> Chipsets'
> 002/20:[0011] [FC] 'piix4: add Reset Control Register'
> 003/20:[0014] [FC] 'piix4: add a i8259 interrupt controller as specified
> in datasheet'
> 004/20:[----] [--] 'Revert "irq: introduce qemu_irq_proxy()"'
> 005/20:[----] [--] 'piix4: rename PIIX4 object to piix4-isa'
> 006/20:[----] [-C] 'piix4: add a i8257 dma controller as specified in
> datasheet'
> 007/20:[----] [-C] 'piix4: add a i8254 pit controller as specified in
> datasheet'
> 008/20:[----] [-C] 'piix4: add a mc146818rtc controller as specified in
> datasheet'
> 009/20:[----] [--] 'hw/mips/mips_malta: Create IDE hard drive array
> dynamically'
> 010/20:[----] [--] 'hw/mips/mips_malta: Extract the PIIX4 creation code as
> piix4_create()'
> 011/20:[----] [--] 'hw/isa/piix4: Move piix4_create() to hw/isa/piix4.c'
> 012/20:[----] [--] 'hw/i386: Remove obsolete LoadStateHandler::load_state_old
> handlers'
> 013/20:[----] [--] 'hw/pci-host/piix: Extract piix3_create()'
> 014/20:[0010] [FC] 'hw/pci-host/piix: Move RCR_IOPORT register definition'
> 015/20:[----] [--] 'hw/pci-host/piix: Define and use the PIIX IRQ Route
> Control Registers'
> 016/20:[----] [--] 'hw/pci-host/piix: Move i440FX declarations to
> hw/pci-host/i440fx.h'
> 017/20:[----] [--] 'hw/pci-host/piix: Fix code style issues'
> 018/20:[0012] [FC] 'hw/pci-host/piix: Extract PIIX3 functions to
> hw/isa/piix3.c'
> 019/20:[----] [--] 'hw/pci-host: Rename incorrectly named 'piix' as
> 'i440fx''
> 020/20:[----] [-C] 'hw/pci-host/i440fx: Remove the last PIIX3 traces'
>
> Previous cover:
>
> This series is a rework of "piix4: cleanup and improvements" [1]
> from Hervé, and my "remove i386/pc dependency: PIIX cleanup" [2].
>
> Still trying to remove the strong X86/PC dependency 2 years later,
> one step at a time.
> Here we split the PIIX3 southbridge from i440FX northbridge.
> The i440FX northbridge is only used by the PC machine, while the
> PIIX southbridge is also used by the Malta MIPS machine.
>
> This is also a step forward using KConfig with the Malta board.
> Without this split, it was impossible to compile the Malta without
> pulling various X86 pieces of code.
>
> The overall design cleanup is not yet perfect, but enough to post
> as a series.
>
> Now that the PIIX3 code is extracted, the code duplication with the
> PIIX4 chipset is obvious. Not worth improving for now because it
> isn't broken.
>
> [0] https://lists.gnu.org/archive/html/qemu-devel/2019-10/msg03685.html
> [1] https://www.mail-archive.com/qemu-devel@nongnu.org/msg500737.html
> [2] https://www.mail-archive.com/qemu-devel@nongnu.org/msg504081.html
>
> Based-on: <20191018133547.10936-1-philmd@redhat.com>
> mc146818rtc: Allow call object_initialize(MC146818_RTC) instead of
> rtc_init()
> https://mid.mail-archive.com/20191018133547.10936-1-philmd@redhat.com
>
> Hervé Poussineau (5):
>   piix4: Add the Reset Control Register
>   piix4: Add a i8259 Interrupt Controller as specified in datasheet
>   piix4: Rename PIIX4 object to piix4-isa
>   piix4: Add a i8257 DMA Controller as specified in datasheet
>   piix4: Add a i8254 PIT Controller as specified in datasheet
>
> Philippe Mathieu-Daudé (15):
>   MAINTAINERS: Keep PIIX4 South Bridge separate from PC Chipsets
>   Revert "irq: introduce qemu_irq_proxy()"
>   piix4: Add a MC146818 RTC Controller as specified in datasheet
>   hw/mips/mips_malta: Create IDE hard drive array dynamically
>   hw/mips/mips_malta: Extract the PIIX4 creation code as piix4_create()
>   hw/isa/piix4: Move piix4_create() to hw/isa/piix4.c
>   hw/i386: Remove obsolete LoadStateHandler::load_state_old handlers
>   hw/pci-host/piix: Extract piix3_create()
>   hw/pci-host/piix: Move RCR_IOPORT register definition
>   hw/pci-host/piix: Define and use the PIIX IRQ Route Control Registers
>   hw/pci-host/piix: Move i440FX declarations to hw/pci-host/i440fx.h
>   hw/pci-host/piix: Fix code style issues
>   hw/pci-host/piix: Extract PIIX3 functions to hw/isa/piix3.c
>   hw/pci-host: Rename incorrectly named 'piix' as 'i440fx'
>   hw/pci-host/i440fx: Remove the last PIIX3 traces
>
>  MAINTAINERS                      |  14 +-
>  hw/acpi/pcihp.c                  |   2 +-
>  hw/acpi/piix4.c                  |  42 +--
>  hw/core/irq.c                    |  14 -
>  hw/i386/Kconfig                  |   3 +-
>  hw/i386/acpi-build.c             |   5 +-
>  hw/i386/pc_piix.c                |  10 +-
>  hw/i386/xen/xen-hvm.c            |   5 +-
>  hw/intc/apic_common.c            |  49 ----
>  hw/isa/Kconfig                   |   4 +
>  hw/isa/Makefile.objs             |   1 +
>  hw/isa/piix3.c                   | 399 +++++++++++++++++++++++++++++
>  hw/isa/piix4.c                   | 151 ++++++++++-
>  hw/mips/gt64xxx_pci.c            |   5 +-
>  hw/mips/mips_malta.c             |  46 +---
>  hw/pci-host/Kconfig              |   3 +-
>  hw/pci-host/Makefile.objs        |   2 +-
>  hw/pci-host/{piix.c => i440fx.c} | 424 +------------------------------
>  hw/timer/i8254_common.c          |  40 ---
>  include/hw/acpi/piix4.h          |   6 -
>  include/hw/i386/pc.h             |  37 ---
>  include/hw/irq.h                 |   5 -
>  include/hw/isa/isa.h             |   2 +
>  include/hw/pci-host/i440fx.h     |  36 +++
>  include/hw/southbridge/piix.h    |  74 ++++++
>  stubs/pci-host-piix.c            |   3 +-
>  26 files changed, 699 insertions(+), 683 deletions(-)
>  create mode 100644 hw/isa/piix3.c
>  rename hw/pci-host/{piix.c => i440fx.c} (58%)
>  delete mode 100644 include/hw/acpi/piix4.h
>  create mode 100644 include/hw/pci-host/i440fx.h
>  create mode 100644 include/hw/southbridge/piix.h
>
> --
> 2.21.0
>
>
>
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel