]> Git Repo - qemu.git/blobdiff - hw/dec_pci.c
Compile acpi only once
[qemu.git] / hw / dec_pci.c
index 2bf4f71b428051b41f5f15d7d0eb7fe817337d4d..024c67ce7086b826cf1f77d829b94c9f344dc230 100644 (file)
@@ -23,6 +23,7 @@
  * THE SOFTWARE.
  */
 
+#include "dec_pci.h"
 #include "sysbus.h"
 #include "pci.h"
 #include "pci_host.h"
@@ -42,6 +43,25 @@ typedef struct DECState {
     PCIHostState host_state;
 } DECState;
 
+static int dec_map_irq(PCIDevice *pci_dev, int irq_num)
+{
+    return irq_num;
+}
+
+PCIBus *pci_dec_21154_init(PCIBus *parent_bus, int devfn)
+{
+    DeviceState *dev;
+    PCIBus *ret;
+
+    dev = qdev_create(NULL, "dec-21154");
+    qdev_init_nofail(dev);
+    ret = pci_bridge_init(parent_bus, devfn,
+                          PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_21154,
+                          dec_map_irq, "DEC 21154 PCI-PCI bridge");
+
+    return ret;
+}
+
 static int pci_dec_21154_init_device(SysBusDevice *dev)
 {
     DECState *s;
@@ -49,8 +69,8 @@ static int pci_dec_21154_init_device(SysBusDevice *dev)
 
     s = FROM_SYSBUS(DECState, dev);
 
-    pci_mem_config = pci_host_conf_register_mmio(&s->host_state);
-    pci_mem_data = pci_host_data_register_mmio(&s->host_state);
+    pci_mem_config = pci_host_conf_register_mmio(&s->host_state, 1);
+    pci_mem_data = pci_host_data_register_mmio(&s->host_state, 1);
     sysbus_init_mmio(dev, 0x1000, pci_mem_config);
     sysbus_init_mmio(dev, 0x1000, pci_mem_data);
     return 0;
@@ -61,9 +81,8 @@ static int dec_21154_pci_host_init(PCIDevice *d)
     /* PCI2PCI bridge same values as PearPC - check this */
     pci_config_set_vendor_id(d->config, PCI_VENDOR_ID_DEC);
     pci_config_set_device_id(d->config, PCI_DEVICE_ID_DEC_21154);
-    d->config[0x08] = 0x02; // revision
+    pci_set_byte(d->config + PCI_REVISION_ID, 0x02);
     pci_config_set_class(d->config, PCI_CLASS_BRIDGE_PCI);
-    d->config[PCI_HEADER_TYPE] = PCI_HEADER_TYPE_BRIDGE; // header_type
     return 0;
 }
 
This page took 0.02793 seconds and 4 git commands to generate.