diff mbox

[1/2] prep_pci: set isa_mem_base in the PCI host bridge

Message ID 1374614206-9368-2-git-send-email-hpoussin@reactos.org
State New
Headers show

Commit Message

Hervé Poussineau July 23, 2013, 9:16 p.m. UTC
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(-)

Comments

Andreas Färber July 23, 2013, 10:33 p.m. UTC | #1
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
Hervé Poussineau July 24, 2013, 5:37 a.m. UTC | #2
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 mbox

Patch

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]);
     }