Reference driver to shim AMI APTIO proprietary mouse & keyboard protocols for File Vault 2 GUI input support.
Generally modified UsbKbDxe by CupertinoNet team works better on APTIO V, but for Z77, Z87, and similar AptioInputFix may be the only solution.
Sends pressed keys to APPLE_KEY_MAP_DATABASE_PROTOCOL
Fixes mouse movement via EFI_SIMPLE_POINTER_PROTOCOL
Fork of the original OsxAptioFix2 driver with a cleaner (yet still terrible) codebase and improved stability and functionality.
Important Notes: To debug boot.efi errors on 10.13, aside the usual verbose (-v) boot-arg, you may need a boot.efi patch or an nvram preference. Either is necessary to get sensible error messages instead of 'does printf work??', but the patch may help in case you have issues when reading nvram.
Before using AptioMemoryFix please ensure that you have:
Most up-to-date UEFI BIOS firmware (check your motherboard vendor website).
Fast Boot and Hardware Fast Boot disabled in BIOS if present.
Above 4G Decoding or similar enabled in BIOS if present.
VT-d disabled in BIOS if present (you could also drop ACPI DMAR table with a bootloader).
No slide boot argument present in NVRAM or anywhere else (it is not necessary unless you cannot boot at all or see No slide values are usable! Use custom slide! message from AptioMemoryFix).
CFG Lock (MSR 0xE2 write protection) disabled in BIOS if present (consider patching it otherwise if you have enough skills).
CSM disabled in BIOS if present (you may need to flash GOP ROM on NVIDIA 6xx/AMD 2xx or older, using GopUpdate or AMD UEFI GOP MAKER could simplify things).
EHCI/XHCI Hand-off enabled in BIOS only if boot stalls unless USB devices are disconnected.
VT-x, Hyper Threading, Execute Disable Bit enabled in BIOS if present.
When debugging sleep issues you may want to (temporarily) disable Power Nap and automatic power off, which appear to sometimes cause wake to black screen or bootloop issues on older platforms. The particular issues may vary, but in general you should check ACPI tables first. Here is an example of a bug found in some Z68 motherboards. To turn Power Nap and the others off run the following commands in Terminal:
sudo pmset autopoweroff 0
sudo pmset powernap 0
sudo pmset standby 0
Note, that these settings may reset at hardware change and in certain other circumstances. To view their current values run pmset -g.
Features (compared to the original)
Automatically finds the available memory region for boot.efi to use
Implements KASLR support for systems where certain slides cannot be used
Adds Safe Mode support on systems with used lower addresses
Ensures no slide argument leak to the operating system
Attempts to more properly handle the memory mappings
Implements new mapping code when waking from hibernation (still not stable enough)
Apple for macOS
AMI for APTIO firmware
dmazar, apianti, CodeRush, night199uk, Slice for developing the original OsxAptioFix driver
CupertinoNet team for continuous support
Download-Fritz for implimenting some of this code and invaluable suggestions
vit9696 for all the mess
Big thanks go to all the contributors and researchers involved in AMI APTIO exploration!
Additional thanks go to people on AppleLife and InsanelyMac who helped to test things