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 |
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 > > >
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 --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,
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(-)