diff mbox series

[v2,20/20] hw/pci-host/i440fx: Remove the last PIIX3 traces

Message ID 20191018134754.16362-21-philmd@redhat.com (mailing list archive)
State Superseded
Headers show
Series hw/i386/pc: Split PIIX3 southbridge from i440FX northbridge | expand

Commit Message

Philippe Mathieu-Daudé Oct. 18, 2019, 1:47 p.m. UTC
The PIIX3 is not tied to the i440FX and can even be used without it.
Move its creation to the machine code (pc_piix.c).
We have now removed the last trace of southbridge code in the i440FX
northbridge.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 hw/i386/pc_piix.c            | 8 +++++++-
 hw/pci-host/i440fx.c         | 8 --------
 include/hw/pci-host/i440fx.h | 3 +--
 3 files changed, 8 insertions(+), 11 deletions(-)

Comments

Aleksandar Markovic Oct. 18, 2019, 5:04 p.m. UTC | #1
On Friday, October 18, 2019, Philippe Mathieu-Daudé <philmd@redhat.com>
wrote:

> The PIIX3 is not tied to the i440FX and can even be used without it.
> Move its creation to the machine code (pc_piix.c).
> We have now removed the last trace of southbridge code in the i440FX
> northbridge.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
>  hw/i386/pc_piix.c            | 8 +++++++-
>  hw/pci-host/i440fx.c         | 8 --------
>  include/hw/pci-host/i440fx.h | 3 +--
>  3 files changed, 8 insertions(+), 11 deletions(-)
>
>
Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com>

Philippe, I don't have any test equipment available at the moment, did you
do some smoke tests with new v2 of the series (like booting a Malta board,
or other relevant scenario)?

Veuillez agréer, Monsieur Philippe, l'assurance de mon parfaite
considération.

Aleksandar


> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> index 11b8de049f..f6e7196a82 100644
> --- a/hw/i386/pc_piix.c
> +++ b/hw/i386/pc_piix.c
> @@ -199,14 +199,20 @@ static void pc_init1(MachineState *machine,
>      }
>
>      if (pcmc->pci_enabled) {
> +        PIIX3State *piix3;
> +
>          pci_bus = i440fx_init(host_type,
>                                pci_type,
> -                              &i440fx_state, &piix3_devfn, &isa_bus,
> pcms->gsi,
> +                              &i440fx_state,
>                                system_memory, system_io, machine->ram_size,
>                                pcms->below_4g_mem_size,
>                                pcms->above_4g_mem_size,
>                                pci_memory, ram_memory);
>          pcms->bus = pci_bus;
> +
> +        piix3 = piix3_create(pci_bus, &isa_bus);
> +        piix3->pic = pcms->gsi;
> +        piix3_devfn = piix3->dev.devfn;
>      } else {
>          pci_bus = NULL;
>          i440fx_state = NULL;
> diff --git a/hw/pci-host/i440fx.c b/hw/pci-host/i440fx.c
> index 79ecd58a2b..f27131102d 100644
> --- a/hw/pci-host/i440fx.c
> +++ b/hw/pci-host/i440fx.c
> @@ -27,7 +27,6 @@
>  #include "hw/pci/pci.h"
>  #include "hw/pci/pci_host.h"
>  #include "hw/pci-host/i440fx.h"
> -#include "hw/southbridge/piix.h"
>  #include "hw/qdev-properties.h"
>  #include "hw/sysbus.h"
>  #include "qapi/error.h"
> @@ -272,8 +271,6 @@ static void i440fx_realize(PCIDevice *dev, Error
> **errp)
>
>  PCIBus *i440fx_init(const char *host_type, const char *pci_type,
>                      PCII440FXState **pi440fx_state,
> -                    int *piix3_devfn,
> -                    ISABus **isa_bus, qemu_irq *pic,
>                      MemoryRegion *address_space_mem,
>                      MemoryRegion *address_space_io,
>                      ram_addr_t ram_size,
> @@ -286,7 +283,6 @@ PCIBus *i440fx_init(const char *host_type, const char
> *pci_type,
>      PCIBus *b;
>      PCIDevice *d;
>      PCIHostState *s;
> -    PIIX3State *piix3;
>      PCII440FXState *f;
>      unsigned i;
>      I440FXState *i440fx;
> @@ -339,10 +335,6 @@ PCIBus *i440fx_init(const char *host_type, const char
> *pci_type,
>                   PAM_EXPAN_SIZE);
>      }
>
> -    piix3 = piix3_create(b, isa_bus);
> -    piix3->pic = pic;
> -    *piix3_devfn = piix3->dev.devfn;
> -
>      ram_size = ram_size / 8 / 1024 / 1024;
>      if (ram_size > 255) {
>          ram_size = 255;
> diff --git a/include/hw/pci-host/i440fx.h b/include/hw/pci-host/i440fx.h
> index e327f9bf87..f54e6466e4 100644
> --- a/include/hw/pci-host/i440fx.h
> +++ b/include/hw/pci-host/i440fx.h
> @@ -22,8 +22,7 @@ typedef struct PCII440FXState PCII440FXState;
>  #define TYPE_IGD_PASSTHROUGH_I440FX_PCI_DEVICE "igd-passthrough-i440FX"
>
>  PCIBus *i440fx_init(const char *host_type, const char *pci_type,
> -                    PCII440FXState **pi440fx_state, int *piix_devfn,
> -                    ISABus **isa_bus, qemu_irq *pic,
> +                    PCII440FXState **pi440fx_state,
>                      MemoryRegion *address_space_mem,
>                      MemoryRegion *address_space_io,
>                      ram_addr_t ram_size,
> --
> 2.21.0
>
>
>
Philippe Mathieu-Daudé Oct. 19, 2019, 3:22 p.m. UTC | #2
Hi Aleksandar,

On 10/18/19 7:04 PM, Aleksandar Markovic wrote:
> 
> 
> On Friday, October 18, 2019, Philippe Mathieu-Daudé <philmd@redhat.com 
> <mailto:philmd@redhat.com>> wrote:
> 
>     The PIIX3 is not tied to the i440FX and can even be used without it.
>     Move its creation to the machine code (pc_piix.c).
>     We have now removed the last trace of southbridge code in the i440FX
>     northbridge.
> 
>     Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com
>     <mailto:philmd@redhat.com>>
>     ---
>       hw/i386/pc_piix.c            | 8 +++++++-
>       hw/pci-host/i440fx.c         | 8 --------
>       include/hw/pci-host/i440fx.h | 3 +--
>       3 files changed, 8 insertions(+), 11 deletions(-)
> 
> 
> Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com 
> <mailto:amarkovic@wavecomp.com>>
> 
> Philippe, I don't have any test equipment available at the moment, did 
> you do some smoke tests with new v2 of the series (like booting a Malta 
> board, or other relevant scenario)?

This series pass all 32-bit Avocado tests, and if you apply
"tests/acceptance: Fix 64-bit MIPS target tests" I just sent [*],
all the tests pass.

AVOCADO_TIMEOUT_EXPECTED=1 avocado \
   --show=app,ssh,console \
   run \
   -t arch:mipsel -t arch:mips -t arch:mips64el -t arch:mips64 \
   tests/acceptance/

[*] mid.mail-archive.com/20191019151058.31733-1-f4bug@amsat.org

> Veuillez agréer, Monsieur Philippe, l'assurance de mon parfaite 
> considération.

Merci ;)

> Aleksandar
> 
>     diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
>     index 11b8de049f..f6e7196a82 100644
>     --- a/hw/i386/pc_piix.c
>     +++ b/hw/i386/pc_piix.c
>     @@ -199,14 +199,20 @@ static void pc_init1(MachineState *machine,
>           }
> 
>           if (pcmc->pci_enabled) {
>     +        PIIX3State *piix3;
>     +
>               pci_bus = i440fx_init(host_type,
>                                     pci_type,
>     -                              &i440fx_state, &piix3_devfn,
>     &isa_bus, pcms->gsi,
>     +                              &i440fx_state,
>                                     system_memory, system_io,
>     machine->ram_size,
>                                     pcms->below_4g_mem_size,
>                                     pcms->above_4g_mem_size,
>                                     pci_memory, ram_memory);
>               pcms->bus = pci_bus;
>     +
>     +        piix3 = piix3_create(pci_bus, &isa_bus);
>     +        piix3->pic = pcms->gsi;
>     +        piix3_devfn = piix3->dev.devfn;
>           } else {
>               pci_bus = NULL;
>               i440fx_state = NULL;
>     diff --git a/hw/pci-host/i440fx.c b/hw/pci-host/i440fx.c
>     index 79ecd58a2b..f27131102d 100644
>     --- a/hw/pci-host/i440fx.c
>     +++ b/hw/pci-host/i440fx.c
>     @@ -27,7 +27,6 @@
>       #include "hw/pci/pci.h"
>       #include "hw/pci/pci_host.h"
>       #include "hw/pci-host/i440fx.h"
>     -#include "hw/southbridge/piix.h"
>       #include "hw/qdev-properties.h"
>       #include "hw/sysbus.h"
>       #include "qapi/error.h"
>     @@ -272,8 +271,6 @@ static void i440fx_realize(PCIDevice *dev, Error
>     **errp)
> 
>       PCIBus *i440fx_init(const char *host_type, const char *pci_type,
>                           PCII440FXState **pi440fx_state,
>     -                    int *piix3_devfn,
>     -                    ISABus **isa_bus, qemu_irq *pic,
>                           MemoryRegion *address_space_mem,
>                           MemoryRegion *address_space_io,
>                           ram_addr_t ram_size,
>     @@ -286,7 +283,6 @@ PCIBus *i440fx_init(const char *host_type, const
>     char *pci_type,
>           PCIBus *b;
>           PCIDevice *d;
>           PCIHostState *s;
>     -    PIIX3State *piix3;
>           PCII440FXState *f;
>           unsigned i;
>           I440FXState *i440fx;
>     @@ -339,10 +335,6 @@ PCIBus *i440fx_init(const char *host_type,
>     const char *pci_type,
>                        PAM_EXPAN_SIZE);
>           }
> 
>     -    piix3 = piix3_create(b, isa_bus);
>     -    piix3->pic = pic;
>     -    *piix3_devfn = piix3->dev.devfn;
>     -
>           ram_size = ram_size / 8 / 1024 / 1024;
>           if (ram_size > 255) {
>               ram_size = 255;
>     diff --git a/include/hw/pci-host/i440fx.h b/include/hw/pci-host/i440fx.h
>     index e327f9bf87..f54e6466e4 100644
>     --- a/include/hw/pci-host/i440fx.h
>     +++ b/include/hw/pci-host/i440fx.h
>     @@ -22,8 +22,7 @@ typedef struct PCII440FXState PCII440FXState;
>       #define TYPE_IGD_PASSTHROUGH_I440FX_PCI_DEVICE
>     "igd-passthrough-i440FX"
> 
>       PCIBus *i440fx_init(const char *host_type, const char *pci_type,
>     -                    PCII440FXState **pi440fx_state, int *piix_devfn,
>     -                    ISABus **isa_bus, qemu_irq *pic,
>     +                    PCII440FXState **pi440fx_state,
>                           MemoryRegion *address_space_mem,
>                           MemoryRegion *address_space_io,
>                           ram_addr_t ram_size,
>     -- 
>     2.21.0
> 
>
diff mbox series

Patch

diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 11b8de049f..f6e7196a82 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -199,14 +199,20 @@  static void pc_init1(MachineState *machine,
     }
 
     if (pcmc->pci_enabled) {
+        PIIX3State *piix3;
+
         pci_bus = i440fx_init(host_type,
                               pci_type,
-                              &i440fx_state, &piix3_devfn, &isa_bus, pcms->gsi,
+                              &i440fx_state,
                               system_memory, system_io, machine->ram_size,
                               pcms->below_4g_mem_size,
                               pcms->above_4g_mem_size,
                               pci_memory, ram_memory);
         pcms->bus = pci_bus;
+
+        piix3 = piix3_create(pci_bus, &isa_bus);
+        piix3->pic = pcms->gsi;
+        piix3_devfn = piix3->dev.devfn;
     } else {
         pci_bus = NULL;
         i440fx_state = NULL;
diff --git a/hw/pci-host/i440fx.c b/hw/pci-host/i440fx.c
index 79ecd58a2b..f27131102d 100644
--- a/hw/pci-host/i440fx.c
+++ b/hw/pci-host/i440fx.c
@@ -27,7 +27,6 @@ 
 #include "hw/pci/pci.h"
 #include "hw/pci/pci_host.h"
 #include "hw/pci-host/i440fx.h"
-#include "hw/southbridge/piix.h"
 #include "hw/qdev-properties.h"
 #include "hw/sysbus.h"
 #include "qapi/error.h"
@@ -272,8 +271,6 @@  static void i440fx_realize(PCIDevice *dev, Error **errp)
 
 PCIBus *i440fx_init(const char *host_type, const char *pci_type,
                     PCII440FXState **pi440fx_state,
-                    int *piix3_devfn,
-                    ISABus **isa_bus, qemu_irq *pic,
                     MemoryRegion *address_space_mem,
                     MemoryRegion *address_space_io,
                     ram_addr_t ram_size,
@@ -286,7 +283,6 @@  PCIBus *i440fx_init(const char *host_type, const char *pci_type,
     PCIBus *b;
     PCIDevice *d;
     PCIHostState *s;
-    PIIX3State *piix3;
     PCII440FXState *f;
     unsigned i;
     I440FXState *i440fx;
@@ -339,10 +335,6 @@  PCIBus *i440fx_init(const char *host_type, const char *pci_type,
                  PAM_EXPAN_SIZE);
     }
 
-    piix3 = piix3_create(b, isa_bus);
-    piix3->pic = pic;
-    *piix3_devfn = piix3->dev.devfn;
-
     ram_size = ram_size / 8 / 1024 / 1024;
     if (ram_size > 255) {
         ram_size = 255;
diff --git a/include/hw/pci-host/i440fx.h b/include/hw/pci-host/i440fx.h
index e327f9bf87..f54e6466e4 100644
--- a/include/hw/pci-host/i440fx.h
+++ b/include/hw/pci-host/i440fx.h
@@ -22,8 +22,7 @@  typedef struct PCII440FXState PCII440FXState;
 #define TYPE_IGD_PASSTHROUGH_I440FX_PCI_DEVICE "igd-passthrough-i440FX"
 
 PCIBus *i440fx_init(const char *host_type, const char *pci_type,
-                    PCII440FXState **pi440fx_state, int *piix_devfn,
-                    ISABus **isa_bus, qemu_irq *pic,
+                    PCII440FXState **pi440fx_state,
                     MemoryRegion *address_space_mem,
                     MemoryRegion *address_space_io,
                     ram_addr_t ram_size,