diff --git a/devices/common/machineid.h b/devices/common/machineid.h index 7d81c50..36df9f4 100644 --- a/devices/common/machineid.h +++ b/devices/common/machineid.h @@ -82,7 +82,7 @@ public: ~GossamerID() = default; uint32_t read(uint32_t rgn_start, uint32_t offset, int size) { - return ((!offset && size == 2) ? this->id : 0); + return ((offset == 4 && size == 2) ? this->id : 0); }; /* not writable */ diff --git a/machines/machinegossamer.cpp b/machines/machinegossamer.cpp index eb44f52..4ffa438 100644 --- a/machines/machinegossamer.cpp +++ b/machines/machinegossamer.cpp @@ -109,7 +109,7 @@ int initialize_gossamer(std::string& id) gMachineObj->add_device("MachineID", std::unique_ptr(new GossamerID(sys_reg))); grackle_obj->add_mmio_region( - 0xFF000000 + 4, 4096 - 4, dynamic_cast(gMachineObj->get_comp_by_name("MachineID"))); + 0xFF000000, 4096, dynamic_cast(gMachineObj->get_comp_by_name("MachineID"))); // allocate ROM region if (!grackle_obj->add_rom_region(0xFFC00000, 0x400000)) {