diff --git a/devices/common/machineid.h b/devices/common/machineid.h index aedbd19..40f7da3 100644 --- a/devices/common/machineid.h +++ b/devices/common/machineid.h @@ -27,6 +27,7 @@ along with this program. If not, see . #include #include +#include #include /** @@ -58,7 +59,14 @@ public: ~NubusMacID() = default; uint32_t read(uint32_t rgn_start, uint32_t offset, int size) { - return (offset < 4 ? this->id[offset] : 0); + if (size == 4 && offset == 0) { + return *(uint32_t*)this->id; + } + if (size == 1 && offset < 4) { + return this->id[offset]; + } + ABORT_F("NubusMacID: invalid read size %d, offset %d!", size, offset); + return 0; }; /* not writable */ diff --git a/machines/machinepdm.cpp b/machines/machinepdm.cpp index be91e70..ef81233 100644 --- a/machines/machinepdm.cpp +++ b/machines/machinepdm.cpp @@ -50,7 +50,7 @@ int initialize_pdm(std::string& id) HMC* hmc_obj = dynamic_cast(gMachineObj->get_comp_by_name("HMC")); if (id == "pm6100") { - machine_id = 0x3010; + machine_id = 0x3011; } else if (id == "pm7100") { machine_id = 0x3012; } else if (id == "pm8100") {