* THE SOFTWARE.
*/
+#include "dec_pci.h"
#include "sysbus.h"
#include "pci.h"
#include "pci_host.h"
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;
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;
/* 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;
}