diff --git a/machines/machineyosemite.cpp b/machines/machineyosemite.cpp index 18cdab0..ea639bd 100644 --- a/machines/machineyosemite.cpp +++ b/machines/machineyosemite.cpp @@ -22,6 +22,7 @@ along with this program. If not, see . /** @file Construct the Yosemite machine (Power Macintosh G3 Blue & White). */ #include +#include #include #include #include @@ -30,13 +31,19 @@ int initialize_yosemite(std::string& id) { LOG_F(INFO, "Building machine Yosemite..."); - // get pointer to the memory controller/PCI host bridge object + // get pointer to the memory controller/primary PCI bridge object MPC106* grackle_obj = dynamic_cast(gMachineObj->get_comp_by_name("Grackle")); + // get pointer to the bridge of the secondary PCI bus + DecPciBridge *sec_bridge = dynamic_cast(gMachineObj->get_comp_by_name("Dec21154")); + // connect PCI devices grackle_obj->pci_register_device( 13, dynamic_cast(gMachineObj->get_comp_by_name("Dec21154"))); + sec_bridge->pci_register_device( + 5, dynamic_cast(gMachineObj->get_comp_by_name("Heathrow"))); + // allocate ROM region if (!grackle_obj->add_rom_region(0xFFF00000, 0x100000)) { LOG_F(ERROR, "Could not allocate ROM region!"); @@ -68,7 +75,7 @@ static const PropMap yosemite_settings = { }; static vector pmg3nw_devices = { - "Grackle", "Dec21154" + "Grackle", "Dec21154", "Heathrow" }; static const MachineDescription pmg3nw_descriptor = {