Download raw body.
Prevent crash on MacPro6,1 during power-down
I've installed an amd64 snap on an MacPro6,1 (trash can), and noticed
that during power-down the system is crashing at the very last steps:
syncing disks... done
Stopped at x86_bus_space_io_write_4+0x1d: leave
After some investigations I found that this happens when we try to
write to the I/O port 0x80. This seems to be the POST debug port used
by the BIOS and firmware to output POST status codes, and is most
likely not implement on systems like the MacPro6,1.
I couldn't come up with a more elegant solution, but this diff lets me
nicely power down this machine.
Better ideas or OKs?
Index: sys/dev/acpi/acpi.c
===================================================================
RCS file: /cvs/src/sys/dev/acpi/acpi.c,v
diff -u -p -u -p -r1.444 acpi.c
--- sys/dev/acpi/acpi.c 24 Mar 2025 09:53:20 -0000 1.444
+++ sys/dev/acpi/acpi.c 30 Apr 2025 14:47:29 -0000
@@ -253,6 +253,14 @@ acpi_gasio(struct acpi_softc *sc, int io
else
iot = sc->sc_iot;
+ /*
+ * Accessing the I/O port 0x80 (POST debug port) on a
+ * MacPro6,1 will crash the system since this port is likely
+ * not implemented.
+ */
+ if (address == 0x80 && strcmp(hw_prod, "MacPro6,1") == 0)
+ return (-1);
+
if (acpi_bus_space_map(iot, address, len, 0, &ioh) != 0) {
printf("%s: unable to map iospace\n", DEVNAME(sc));
return (-1);
Prevent crash on MacPro6,1 during power-down