Message ID | 1374614206-9368-2-git-send-email-hpoussin@reactos.org |
---|---|
State | New |
Headers | show |
Am 23.07.2013 23:16, schrieb Hervé Poussineau: > Currently, it is done by i82378 device, which shouldn't care of it. > > Signed-off-by: Hervé Poussineau <hpoussin@reactos.org> > --- > hw/isa/i82378.c | 3 --- > hw/pci-host/prep.c | 2 ++ > 2 files changed, 2 insertions(+), 3 deletions(-) > > diff --git a/hw/isa/i82378.c b/hw/isa/i82378.c > index b25ed04..de71d81 100644 > --- a/hw/isa/i82378.c > +++ b/hw/isa/i82378.c > @@ -45,7 +45,6 @@ typedef struct I82378State { > typedef struct PCIi82378State { > PCIDevice pci_dev; > uint32_t isa_io_base; > - uint32_t isa_mem_base; > I82378State state; > } PCIi82378State; > > @@ -234,7 +233,6 @@ static int pci_i82378_init(PCIDevice *dev) > pci_set_long(dev->wmask + PCI_BASE_ADDRESS_0, 0); > pci_set_long(pci_conf + PCI_BASE_ADDRESS_0, pci->isa_io_base); > > - isa_mem_base = pci->isa_mem_base; > isa_bus_new(&dev->qdev, pci_address_space_io(dev)); > > i82378_init(&dev->qdev, s); > @@ -244,7 +242,6 @@ static int pci_i82378_init(PCIDevice *dev) > > static Property i82378_properties[] = { > DEFINE_PROP_HEX32("iobase", PCIi82378State, isa_io_base, 0x80000000), > - DEFINE_PROP_HEX32("membase", PCIi82378State, isa_mem_base, 0xc0000000), > DEFINE_PROP_END_OF_LIST() > }; > > diff --git a/hw/pci-host/prep.c b/hw/pci-host/prep.c > index b41d564..d6bcc63 100644 > --- a/hw/pci-host/prep.c > +++ b/hw/pci-host/prep.c > @@ -119,6 +119,8 @@ static void raven_pcihost_realizefn(DeviceState *d, Error **errp) > MemoryRegion *address_space_mem = get_system_memory(); > int i; > > + isa_mem_base = 0xc0000000; > + > for (i = 0; i < 4; i++) { > sysbus_init_irq(dev, &s->irq[i]); > } Patch is okay with me, but I wonder what we still need the global isa_mem_base for? The only users seem to be VGA, adding offsets to it. Regards, Andreas
Andreas Färber a écrit : > Am 23.07.2013 23:16, schrieb Hervé Poussineau: >> Currently, it is done by i82378 device, which shouldn't care of it. >> >> Signed-off-by: Hervé Poussineau <hpoussin@reactos.org> >> --- >> hw/isa/i82378.c | 3 --- >> hw/pci-host/prep.c | 2 ++ >> 2 files changed, 2 insertions(+), 3 deletions(-) >> >> diff --git a/hw/isa/i82378.c b/hw/isa/i82378.c >> index b25ed04..de71d81 100644 >> --- a/hw/isa/i82378.c >> +++ b/hw/isa/i82378.c >> @@ -45,7 +45,6 @@ typedef struct I82378State { >> typedef struct PCIi82378State { >> PCIDevice pci_dev; >> uint32_t isa_io_base; >> - uint32_t isa_mem_base; >> I82378State state; >> } PCIi82378State; >> >> @@ -234,7 +233,6 @@ static int pci_i82378_init(PCIDevice *dev) >> pci_set_long(dev->wmask + PCI_BASE_ADDRESS_0, 0); >> pci_set_long(pci_conf + PCI_BASE_ADDRESS_0, pci->isa_io_base); >> >> - isa_mem_base = pci->isa_mem_base; >> isa_bus_new(&dev->qdev, pci_address_space_io(dev)); >> >> i82378_init(&dev->qdev, s); >> @@ -244,7 +242,6 @@ static int pci_i82378_init(PCIDevice *dev) >> >> static Property i82378_properties[] = { >> DEFINE_PROP_HEX32("iobase", PCIi82378State, isa_io_base, 0x80000000), >> - DEFINE_PROP_HEX32("membase", PCIi82378State, isa_mem_base, 0xc0000000), >> DEFINE_PROP_END_OF_LIST() >> }; >> >> diff --git a/hw/pci-host/prep.c b/hw/pci-host/prep.c >> index b41d564..d6bcc63 100644 >> --- a/hw/pci-host/prep.c >> +++ b/hw/pci-host/prep.c >> @@ -119,6 +119,8 @@ static void raven_pcihost_realizefn(DeviceState *d, Error **errp) >> MemoryRegion *address_space_mem = get_system_memory(); >> int i; >> >> + isa_mem_base = 0xc0000000; >> + >> for (i = 0; i < 4; i++) { >> sysbus_init_irq(dev, &s->irq[i]); >> } > > Patch is okay with me, but I wonder what we still need the global > isa_mem_base for? The only users seem to be VGA, adding offsets to it. Indeed, isa_mem_base should be removed, and PCI bus regions (memory and I/O) should be adapted in PCI host. However, while I have a patch pending, it is not ready yet, so I prefer to postpone it past QEMU 1.6. Hervé
diff --git a/hw/isa/i82378.c b/hw/isa/i82378.c index b25ed04..de71d81 100644 --- a/hw/isa/i82378.c +++ b/hw/isa/i82378.c @@ -45,7 +45,6 @@ typedef struct I82378State { typedef struct PCIi82378State { PCIDevice pci_dev; uint32_t isa_io_base; - uint32_t isa_mem_base; I82378State state; } PCIi82378State; @@ -234,7 +233,6 @@ static int pci_i82378_init(PCIDevice *dev) pci_set_long(dev->wmask + PCI_BASE_ADDRESS_0, 0); pci_set_long(pci_conf + PCI_BASE_ADDRESS_0, pci->isa_io_base); - isa_mem_base = pci->isa_mem_base; isa_bus_new(&dev->qdev, pci_address_space_io(dev)); i82378_init(&dev->qdev, s); @@ -244,7 +242,6 @@ static int pci_i82378_init(PCIDevice *dev) static Property i82378_properties[] = { DEFINE_PROP_HEX32("iobase", PCIi82378State, isa_io_base, 0x80000000), - DEFINE_PROP_HEX32("membase", PCIi82378State, isa_mem_base, 0xc0000000), DEFINE_PROP_END_OF_LIST() }; diff --git a/hw/pci-host/prep.c b/hw/pci-host/prep.c index b41d564..d6bcc63 100644 --- a/hw/pci-host/prep.c +++ b/hw/pci-host/prep.c @@ -119,6 +119,8 @@ static void raven_pcihost_realizefn(DeviceState *d, Error **errp) MemoryRegion *address_space_mem = get_system_memory(); int i; + isa_mem_base = 0xc0000000; + for (i = 0; i < 4; i++) { sysbus_init_irq(dev, &s->irq[i]); }
Currently, it is done by i82378 device, which shouldn't care of it. Signed-off-by: Hervé Poussineau <hpoussin@reactos.org> --- hw/isa/i82378.c | 3 --- hw/pci-host/prep.c | 2 ++ 2 files changed, 2 insertions(+), 3 deletions(-)