Leopard Patch Summary
* Additional segment/section hack
o header modification (ncmds, size)
o load command addition (max vm_prot)
* Built-in decryption
o dsmos_page_transform_hook (ret)
o dsmos_page_transform (+ new func)
o karma/key addition
o karma integration along w/ commpage_stuff2 calls
* SSE3 emulation
o enable read-write on commpage (remove write-only setting)
o append vm_protect call to commpage_allocate
o emulator blob addition
o commpage_stuff2 for each emulator blob
o patch IDT to replace gate ffe00050 (t_invop)
* HPET emulation
o hpet_init
o hpet_get_info
o ml_hpet_cfg (machine_nap_policy, ret)
o HPETInterrupt (ret 1)
o hpet_save
o hpet_restore
o rdHPET (see stx code)
o db_hpet
o db_display_hpet
o lapic_interrupt
o rtc_sleep_wakeup
o pmDispatch? (power_management_init)
* AMD support
o change 0xfb interrupt to U_INTR_GATE
o patch gate at ffe01680 to emulate cpuid
* EFI code fixes
o remove EFI-specific FSB code
o replace tsc_init with stx auto-fsb
o remove EFI initialization code
* No-NX support
o remove CPUID_EXTFEATURE_XD, MSR_IA32_EFER_NXE MSR usage
o hardcode nx_enabled to zero
* Miscellaneous
o ensure cpuid_cores_per_package > 0 (cpuid_set_info)
o force legacy mode, no 64-bit
o remove hpet_init, power_management_init calls
o remove "commpage no match for last" panic
o reboot fix (915 boards?)
o /efi -> /rom (IORegistryEntry::fromPath)
* Leopard-specific
o vmx initialization workaround (vmx_get_specs, MSRs)
o remove "no linesize" panic
o fix L2 cache size and zero size L1I
o remove "Unsupported CPU" panic in cpuid_set_info