As of 10.12.4 (currently the latest Sierra update), OS X refuses to boot unless the AppleSMC supports a third I/O port, which provides the current error status when read.
This series consists of three patches: - 1/3: indentation/whitespace cleanup for applesmc.c to the point where it now passes scripts/checkpatc.pl, and allows subsequent changes to look nice in diff-patch format :) - 2/3: consolidate Port I/O into a single region, and invoke appropriate read/write methods based on the offset being accessed - 3/3: implement read-only error/status port, and update data and command read/write methods to correctly maintain the state machine for keeping the status_1e value up to date. Thanks, --Gabriel Gabriel L. Somlo (3): applesmc: cosmetic whitespace and indentation cleanup applesmc: consolidate port i/o into single contiguous region applesmc: implement error status port hw/misc/applesmc.c | 254 +++++++++++++++++++++++++++++++++++------------------ 1 file changed, 167 insertions(+), 87 deletions(-) -- 2.7.4