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.
New since v1:
- 1/3: don't touch the default OSK string, as it's unnecessary
at this time
- 2/3: don't consolidate I/O regions, leave as-is for data
and cmd; This patch now implements the error-code state
machine, AND adds an i/o region dedicaded to the error
status port, complete with read/write access methods.
- 3/3: optional patch setting access width to 1-byte on data and
cmd i/o regions. Tested on OS X versions 10.[6..12].
> 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.
Gabriel L. Somlo (3):
applesmc: cosmetic whitespace and indentation cleanup
applesmc: implement error status port
applesmc: fix port i/o access width
hw/misc/applesmc.c | 219 +++++++++++++++++++++++++++++++++++++----------------
1 file changed, 155 insertions(+), 64 deletions(-)
--
2.7.4