@@ -59,6 +59,28 @@ int initialize_yosemite(std::string& id)
59
59
sec_bridge->pci_register_device (DEV_FUN (5 ,0 ),
60
60
dynamic_cast <PCIDevice*>(gMachineObj ->get_comp_by_name (" Heathrow" )));
61
61
62
+ InterruptCtrl *int_ctrl_obj =
63
+ dynamic_cast <InterruptCtrl*>(gMachineObj ->get_comp_by_type (HWCompType::INT_CTRL));
64
+
65
+ static const std::vector<PciIrqMap> grackle_irq_map = {
66
+ {" Main_GPU" , DEV_FUN (0x10 ,0 ), 1 << 22 }
67
+ };
68
+
69
+ grackle_obj->set_interrupt_controller (int_ctrl_obj);
70
+ grackle_obj->set_irq_map (grackle_irq_map);
71
+
72
+ 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 }
79
+ };
80
+
81
+ sec_bridge->set_interrupt_controller (int_ctrl_obj);
82
+ sec_bridge->set_irq_map (pci_bridge_irq_map);
83
+
62
84
// allocate ROM region
63
85
if (!grackle_obj->add_rom_region (0xFFF00000 , 0x100000 )) {
64
86
LOG_F (ERROR, " Could not allocate ROM region!" );
0 commit comments