@@ -52,7 +52,10 @@ int initialize_yosemite(std::string& id)
52
52
// get pointer to the bridge of the secondary PCI bus
53
53
DecPciBridge *sec_bridge = dynamic_cast <DecPciBridge*>(gMachineObj ->get_comp_by_name (" Dec21154" ));
54
54
55
- // connect PCI devices
55
+ // attach PCI devices to the PCI bridges
56
+ grackle_obj->pci_register_device (DEV_FUN (16 ,0 ),
57
+ dynamic_cast <PCIBase*>(gMachineObj ->get_comp_by_name (" AtiRage128" )));
58
+
56
59
grackle_obj->pci_register_device (DEV_FUN (13 ,0 ),
57
60
dynamic_cast <PCIBase*>(gMachineObj ->get_comp_by_name (" Dec21154" )));
58
61
@@ -63,19 +66,20 @@ int initialize_yosemite(std::string& id)
63
66
dynamic_cast <InterruptCtrl*>(gMachineObj ->get_comp_by_type (HWCompType::INT_CTRL));
64
67
65
68
static const std::vector<PciIrqMap> grackle_irq_map = {
66
- {" Main_GPU " , DEV_FUN (0x10 ,0 ), 1 << 22 }
69
+ {" pci_J12 " , DEV_FUN (0x10 ,0 ), 1 << 22 } // GPU PCI slot, 66 MHz
67
70
};
68
71
69
72
grackle_obj->set_interrupt_controller (int_ctrl_obj);
70
73
grackle_obj->set_irq_map (grackle_irq_map);
71
74
75
+ // 33 MHz PCI devices behind the DEC21154 PCI-to-PCI bridge
72
76
static const std::vector<PciIrqMap> pci_bridge_irq_map = {
73
- {" FireWire " , DEV_FUN (0x00 ,0 ), 1 << 21 },
74
- {" UltraATA " , DEV_FUN (0x01 ,0 ), 1 << 26 },
75
- {" Slot_J11 " , DEV_FUN (0x02 ,0 ), 1 << 23 },
76
- {" Slot_J10 " , DEV_FUN (0x03 ,0 ), 1 << 24 },
77
- {" Slot_J9 " , DEV_FUN (0x04 ,0 ), 1 << 25 },
78
- {" USB_OHCI " , DEV_FUN (0x06 ,0 ), 1 << 28 }
77
+ {" pci_FireWire " , DEV_FUN (0x00 ,0 ), 1 << 21 },
78
+ {" pci_UltraATA " , DEV_FUN (0x01 ,0 ), 1 << 26 },
79
+ {" pci_J11 " , DEV_FUN (0x02 ,0 ), 1 << 23 },
80
+ {" pci_J10 " , DEV_FUN (0x03 ,0 ), 1 << 24 },
81
+ {" pci_J9 " , DEV_FUN (0x04 ,0 ), 1 << 25 },
82
+ {" pci_USB " , DEV_FUN (0x06 ,0 ), 1 << 28 }
79
83
};
80
84
81
85
sec_bridge->set_interrupt_controller (int_ctrl_obj);
0 commit comments