Jump to content

[Guide] Mac OSX 10.12 and 10.13 with X99 Broadwell-E family and Haswell-E family


nmano
 Share

1,954 posts in this topic

Recommended Posts

Guide update 26-07-2017

X99 Mac osx 10.13

 

First of all you'll need to have Install macOS 10.13 Beta.app in your Applications folder.

 

Then, you'll need to right click it and then go to Show Package Contents/Contents/Shared Support and from there mount InstallESD.dmg.

Once mounted there you'll find Packages folder and inside Core.pkg.

 

Double click Core.pkg and this will install macOS to desired partition, SSD or HDD.

 

Once done, mount BaseSystem.dmg and then copy System/Library/CoreServices/boot.efi and paste it to the same location System/Library/CoreServices/boot.efi   on the installed drive.

 

 

 

 Boot it with your existing Clover and in few seconds you'll reach desktop screen.

 

 

Thank you. Clover team and Apple ALC and others naveedamad,

 

 

Guide update 23-07-2016

 

Mac OSX 10.12 with X99 Broadwell-E family and Haswell-E family

 

X99Gaming G1 wifi

5960X

GTX 970

Samsung SM951 256GB AHCI

Corsair 780T

Corsair H115i

 

 

I install Mac OSX 10.12 (16A239j) with X99 LGA2011-V3 platform. It’s fully supported now we don’t need add FakeCPUID anymore. 5960X needs only CloverPatch.

The Samsung SM951 AHCI model is fully supported by Mac OSX Pro.

 

 

OSX 10.12 Installation Notes:

 

 

Set Mac osx Installer (I updated files)

 

 

Remove DSDT and SSDT

 

Update Clover to latest (_v2.3k_r3652_Special Edition).

Update nvidia latest web drivers.

Set patch 1 Change 15 Port Limit To 30 in XHCI Kext 10.12(99-series)

Set patch 2 5960XPatch 10.12 by Brumbaer

Creative Sound worked with AppleALC.kext

Install X99_Injector USB 3.kext and set your DSDT XHC to XHCI

You have to set IOCPUNumber to VoodooTSCSync.kext.

 

 

BIOS Configuration for USB 3 Flash drive with clover

  1. Intel USB 3.0 XHCI Mode Enabled
  2. CSM Disable
  3. XHCI-Hand-off-Enabled
  4. EHCI-Hand-off-Enabled

BIOS Configuration for USB 2 Flash drive with clover

  1. Intel USB 3.0 XHCI Mode Smart Auto
  2. CSM Disable
  3. XHCI-Hand-off-Enabled
  4. EHCI-Hand-off-Enabled

BIOS Configuration for XCPM

XMP: profile 1
C1E: Disable
C6/C7: Disable
CPU Thermal Monitor: Disable
C3: Enable
EIST: Disable

After installation you have to set DSDT and SSDT.Now graphics work very well after clover update.We have to set nvda_drv=1 and patched AppleGraphicsControl.kext

 

I get Script to generate a SSDT for Power Management

https://github.com/P...ha/ssdtPRGen.sh

AppleALC

https://github.com/vit9696/AppleALC

 

AppleALC Boot Arguments 10.12 you have to add  -alcbeta

-v darkwake=0 npci=0x3000 nvda_drv=1 -alcbeta

Look My Files

 

Mac osx Installer

config.plist

kexts (You have set IOCPUNumber to VoodooTSCSync.kext)

DSDT patches (Before Devices patch check your devices rename H000)

 

SCALED RESOLUTIONS FOR YOUR MONITOR

https://comsysto.github.io/Display-...or-with-HiDPI-Support-For-Scaled-Resolutions/


Enable HiDPI Mode
sudo defaults write /Library/Preferences/com.apple.windowserver.plist DisplayResolutionEnabled -bool true
Set your DisplayProductName
Set your DisplayProductID
Set your DisplayVendorID
Set Scale Resolutions
Download your file then overrides your display vendorId like this.

Example for my Monitor:
sudo cp ~/Downloads/DisplayProductID-79f.plist /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-4c2d/DisplayProductID-79f

 

Auto overclock

My system(X99GamingG1) support Auto overclock just press back panel OC button.

Not work

Automatically Adjust Brightness: No

Sleep

 

USB 3

Update usb3  XHC patch its worked 10.11 and 10.12

EHC1 to EH01

EHC2 to EH02

XHC to name_adr 0x00140000

 

If you update this patch you have to install X99_Injector USB 3.kext in same folder(USB 3 XHC Patch)I updated.

AppleUSBXHCIPCI

Find 83BD74FFFFFF10

Replace 83BD74FFFFFF16

10.12 DP5 change 15 port limit to 20 in AppleUSBXHCIPCI

 

 

X99 Series with GC-ALPINE RIDGE rev 2.0

 

My motherboard is not in this list.(X99 Gaming G1) but Its worked.I thing Mac driver its supported.

I just install SSDT.(SSDT-X99-NH0.aml)

 

Unknown CPU Fixed

About this Mac unknown cpu error fixed.

Thius patched worked Haswell-E CPU and  Broadwell CPU

1-Enable in config xcpm_bootstrap_Broadwell or Haswell

2-Enable in config xcpm_cpuid_set_infoBroadwell or Haswell

3-FakeCPUID is Broadwell 0x040674

4.CPU Type is Broadwell 0x0a02

5-FakeCPUID is Haswell 0x0306F2

6.CPU Type is Haswell 0x0a01

XCPM Brodwell and Haswell.zip 

This config supported haswell-E and Broadwell CPUs bootstrap and cpuid_set_info.

 

New FakeCPUID Credit-Pikeralpha

61 / 0x3D (Broadwell) = 0x0306D0
63 / 0x3F (Haswell E) = 0x0306F2
70 / 0x46 (Chrystalwell) = 0x040660
71 / 0x47 (Broadwell H) = 0x040670
All IN ONE SSDT and DSDT AUTO PATCHES
# X99_Maintained and disassembled by:N.Mano 
# X99_SSDT_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
# Compiler Options:ACPI 6.1
# Features-Allows automatically setting PCI info
# X99 Gaming G1 wifi
# Bios update F22
# X99_MUT0 warning fix
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
into_all all code_regex (Acquire\s\(MUT0,\s0x)....\) replace_matched begin Acquire (MUT0, 0xFFFF) end;
# X99_Fixed_Error_Possible operator timeout is ignored
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
into_all all code_regex (Acquire\s\(....,\s0x)....\) replace_matched begin %1FFFF) end;
#X99_SSTS Duplicate value in list (Source is the same as Target)
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
into_all all code_regex Store\s\(SSTS,\sSSTS\) replace_matched
begin
Store ("SSTS", SSTS)
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
# X99_Device injection for  Not all control paths return a value _CRS
into method label _CRS parent_label _SB.TPM code_regex (Return\s\(CRST\)) remove_matched;
into method label _CRS parent_label _SB.TPM insert begin Return (CRST)
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#X99_ Device injection for  Not all control paths return a value OE1X
into method label OE1X parent_label _GPE code_regex (Return\s\(Zero\)) remove_matched;
into method label OE1X parent_label _GPE insert begin Return (Zero)
end;
# Device injection for  Not all control paths return a value _OSC
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#15367, 3107, Reserved method must return a value (Buffer required for _OSC)
into method label _OSC parent_label PCI0 code_regex (Return\s\(Zero\)) remove_matched;
into method label _OSC parent_label PCI0 insert begin Return (Zero)
end;
into method label _OSC parent_label PCI1 code_regex (Return\s\(Zero\)) remove_matched;
into method label _OSC parent_label PCI1 insert begin Return (Zero)
end;
into method label _OSC parent_label PCI2 code_regex (Return\s\(Zero\)) remove_matched;
into method label _OSC parent_label PCI2 insert begin Return (Zero)
end;
into method label _OSC parent_label PCI3 code_regex (Return\s\(Zero\)) remove_matched;
into method label _OSC parent_label PCI3 insert begin Return (Zero)
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
into_all method label _OSC set_label begin OSC end;
into_all method code_regex _OSC replaceall_matched begin OSC end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
# Darwin_Method (OSFL, 0, NotSerialized)
into_all method code_regex If\s+\(_OSI\s+\(\"Windows\s2012\"\)\) replace_matched
begin If(LOr(_OSI("Darwin"),_OSI("Windows 2012"))) end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
# sometimes in Scope (_SB)into method label _INI
into method label _INI parent_label _SB code_regex If\s+\(_OSI\s+\(\"Windows\s2012\"\)\) replace_matched
begin If(LOr(_OSI("Darwin"),_OSI("Windows 2012"))) end;
#X99_Rename_patches
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
into device label PIC set_label begin IPIC end;
into device label TMR set_label begin TIMR end;
into device label _T_0 set_label begin T_0 end;
into device label _T_1 set_label begin T_1 end;
into_all all code_regex _T_0 replaceall_matched begin T_0 end;
into_all all code_regex _T_1 replaceall_matched begin T_1 end;
into device label USB0 set_label begin UHC1 end;
into device label USB1 set_label begin UHC2 end;
into device label USB2 set_label begin UHC3 end;
into device label USB3 set_label begin UHC4 end;
into device label USB4 set_label begin UHC5 end;
into device label USB5 set_label begin UHC6 end;
into device label USB6 set_label begin UHC7 end;
into device label USB7 set_label begin UHC8 end;
into device label XHCI set_label begin XHC1 end;
into device label FPU set_label begin MATH end;
into_all all code_regex USB0 replaceall_matched begin UHC1 end;
into_all all code_regex USB1 replaceall_matched begin UHC2 end;
into_all all code_regex USB2 replaceall_matched begin UHC3 end;
into_all all code_regex USB3 replaceall_matched begin UHC4 end;
into_all all code_regex USB4 replaceall_matched begin UHC5 end;
into_all all code_regex USB5 replaceall_matched begin UHC6 end;
into_all all code_regex USB6 replaceall_matched begin UHC7 end;
into_all all code_regex USB7 replaceall_matched begin UHC8 end;
into_all all code_regex XHCI replaceall_matched begin XHC1 end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#X99_Rename_patch_GFX1_HDAU
#If you have GPU card in slot BR3C
# 1. Under Device BR3C - Verify IOReg/H000
# 2. Rename device H000 to device GFX1 
# 3. Rename device H001 to device HDAU  (Nvidia/AMD HDMI audio)
#Remove device D083 in BR3C
into Device label D083 remove_entry;
into_all all code_regex \_SB.PCI0.BR3C.H000 replaceall_matched begin _SB.PCI0.BR3C.GFX1 end;
into_all all code_regex \_SB.PCI0.BR3C.H001 replaceall_matched begin _SB.PCI0.BR3C.HDAU end;
into device label H000 parent_label BR3C set_label begin GFX1 end;
into device label H001 parent_label BR3C set_label begin HDAU end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#X99_Rename_patch_ARPT
#If you have wifi card in slot BR2A
# 1. Under Device BR2A - Verify IOReg/H000
# 2. DSDT_Rename device H000 to device ARPT
into Device label D07B remove_entry;
into_all all code_regex \_SB.PCI0.BR2A.H000 replaceall_matched begin _SB.PCI0.BR2A.ARPT end;
into device label H000 parent_label BR2A set_label begin ARPT end;
#X99_Rename_patch_PCIA
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#If you have FireWire IEEE-1394a in slot BR1A
# 1. Under Device BR1A - Verify IOReg/H000
# 2. DSDT_Rename device H000 to device PCIA
into_all all code_regex \_SB.PCI0.BR1A.H000 replaceall_matched begin _SB.PCI0.BR1A.PCIA end;
into device label H000 parent_label BR1A set_label begin PCIA end;
#X99_Rename_patch_NVME
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#if you have NVMe SSD Controller SM961 in BR3A SLOT.
# 1. Under Device BR3A - Verify IOReg/H000
# 2. DSDT_Rename device H000 to device NVME
into Device label D081 remove_entry;
into_all all code_regex \_SB.PCI0.BR3A.H000 replaceall_matched begin _SB.PCI0.BR3A.NVME end;
into device label H000 parent_label BR3A set_label begin NVME end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#X99_IRQ_patch_PIC_TMR_HPET_RTC
#     IRQ fix(Device (PIC),Device (TMR),Device (HPET),Device (RTC)
into device name_hid PNP0000 code_regex IRQNoFlags\s\(\)\n\s+\{(\d+)\} remove_matched;
into device name_hid PNP0100 code_regex IRQNoFlags\s\(\)\n\s+\{(\d+)\} remove_matched;
into device name_hid PNP0B00 code_regex IRQNoFlags\s\(\)\n\s+\{(\d+)\} remove_matched;
into device name_hid PNP0103 code_regex IRQNoFlags\s\(\)\n\s+\{.*\} removeall_matched;
into device name_hid PNP0103 code_regex Name\s\(([^,]+),\sResourceTemplate\s\(\)\n\s+\{((?:.|\n)*)\}\) replace_matched
begin
Name (%1, ResourceTemplate()\n
{\n
    IRQNoFlags() { 0, 8, 11, 15 }\n
%2
})\n
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#X99_RTC_patch_1
#   RTC 
into device name_hid PNP0B00 code_regex (IO\s\((?:\s*[^,]+,\s*(?:\/\/\s.*)?\s*\n)+\s*)(\dx\d+)(,\s*(?:\/\/\s.*)?\s*\n\s*\)) replace_matched begin %10x08%3 end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#X99_HPET_patch_2
#     HPET fix to avoid AppleIntelCPUPowerManagement panic
into method label _STA parent_hid PNP0103 remove_entry;
into device name_hid PNP0103 code_regex Name\s\(_STA\,\s+0x0F\) remove_matched;
into device name_hid PNP0103 insert
begin
Name (_STA, 0x0F)\n
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#X99_Min/Max/Length_Errors_Fixed_1
# 15571, 3090, Min/Max/Length/Gran are all zero, but no resource tag
into_all all code_regex QWordMemory\s\(ResourceProducer,\sPosDecode,\sMinFixed,\sMaxFixed,\sNonCacheable,\sReadWrite,\n\s+0x0000000000000000,\s+//\sGranularity\n\s+0x0000000000000000,\s+//\sRange\sMinimum\n\s+0x0000000000000000,\s+//\sRange\sMaximum\n\s+0x0000000000000000,\s+//\sTranslation\sOffset\n\s+0x0000000000000000,\s+//\sLength replace_matched
begin
QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,\n
    0x0000000000000000,         // Granularity\n
    0x0000000000000000,         // Range Minimum\n
    0x0000000000000000,         // Range Maximum\n
    0x0000000000000000,         // Translation Offset\n
    0x0000000000000001,         // Length\n
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#X99_Min/Max/Length_Errors_Fixed_2
# 32186, 3090, Min/Max/Length/Gran are all zero, but no resource tag
into_all all code_regex DWordMemory\s\(ResourceProducer,\sPosDecode,\sMinFixed,\sMaxFixed,\sCacheable,\sReadWrite,\n\s+0x00000000,\s+//\sGranularity\n\s+0x00000000,\s+//\sRange\sMinimum\n\s+0x00000000,\s+//\sRange\sMaximum\n\s+0x00000000,\s+//\sTranslation\sOffset\n\s+0x00000000,\s+//\sLength replace_matched
begin
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,\n
    0x00000000,         // Granularity\n
    0x00000000,         // Range Minimum\n
    0x00000000,         // Range Maximum\n
    0x00000000,         // Translation Offset\n
    0x00000001,         // Length\n
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#X99_Min/Max/Length_Errors_Fixed_3
# 32214, 3090, Min/Max/Length/Gran are all zero, but no resource tag
into_all all code_regex QWordMemory\s\(ResourceProducer,\sPosDecode,\sMinFixed,\sMaxFixed,\sNonCacheable,\sReadWrite,\n\s+0x0000000000000000,\s+//\sGranularity\n\s+0x0000000000000000,\s+//\sRange\sMinimum\n\s+0x0000000000000000,\s+//\sRange\sMaximum\n\s+0x0000000000000000,\s+//\sTranslation\sOffset\n\s+0x0000000000000000,\s+//\sLength replace_matched
begin
QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,\n
    0x0000000000000000,         // Granularity\n
    0x0000000000000000,         // Range Minimum\n
    0x0000000000000000,         // Range Maximum\n
    0x0000000000000000,         // Translation Offset\n
    0x0000000000000001,         // Length\n
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#X99_Min/Max/Length_Errors_Fixed_4
# 32214, 3090, Min/Max/Length/Gran are all zero, but no resource tag
into_all all code_regex DWordMemory\s\(ResourceProducer,\sPosDecode,\sMinFixed,\sMaxFixed,\sNonCacheable,\sReadWrite,\n\s+0x00000000,\s+//\sGranularity\n\s+0x00000000,\s+//\sRange\sMinimum\n\s+0x00000000,\s+//\sRange\sMaximum\n\s+0x00000000,\s+//\sTranslation\sOffset\n\s+0x00000000,\s+//\sLength replace_matched
begin
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,\n
    0x00000000,         // Granularity\n
    0x00000000,         // Range Minimum\n
    0x00000000,         // Range Maximum\n
    0x00000000,         // Translation Offset\n
    0x00000001,         // Length\n
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#X99_Address Min is greater then address max_Fixed_1
#32195, 6051, Address Min is greater than Address Max
into_all all code_regex WordIO\s\(ResourceProducer,\sMinFixed,\sMaxFixed,\sPosDecode,\sEntireRange,\n\s+0x0000,\s+//\sGranularity\n\s+0x4158,\s+//\sRange\sMinimum\n\s+0x0000,\s+//\sRange\sMaximum\n\s+0x0000,\s+//\sTranslation\sOffset\n\s+0x0001,\s+//\sLength replace_matched
begin
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,\n
    0x0000,         // Granularity\n
    0x4158,         // Range Minimum\n
    0x4159,         // Range Maximum\n
    0x0000,         // Translation Offset\n
    0x0002,         // Length\n
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#X99_Address Min is greater then address max_Fixed_2
#32202, 6051, Address Min is greater than Address Max
into_all all code_regex WordIO\s\(ResourceProducer,\sMinFixed,\sMaxFixed,\sPosDecode,\sEntireRange,\n\s+0x0000,\s+//\sGranularity\n\s+0x5758,\s+//\sRange\sMinimum\n\s+0x0000,\s+//\sRange\sMaximum\n\s+0x0000,\s+//\sTranslation\sOffset\n\s+0x0000,\s+//\sLength replace_matched
begin
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,\n
    0x0000,         // Granularity\n
    0x5758,         // Range Minimum\n
    0x5759,         // Range Maximum\n
    0x0000,         // Translation Offset\n
    0x0002,         // Length\n
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#X99_Address Min is greater then address max_Fixed_3
#32202, 6051, Address Min is greater than Address Max
into_all all code_regex WordIO\s\(ResourceProducer,\sMinFixed,\sMaxFixed,\sPosDecode,\sEntireRange,\n\s+0x0000,\s+//\sGranularity\n\s+0x5858,\s+//\sRange\sMinimum\n\s+0x0000,\s+//\sRange\sMaximum\n\s+0x0000,\s+//\sTranslation\sOffset\n\s+0x0000,\s+//\sLength replace_matched
begin
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,\n
    0x0000,         // Granularity\n
    0x5858,         // Range Minimum\n
    0x5859,         // Range Maximum\n
    0x0000,         // Translation Offset\n
    0x0002,         // Length\n
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#X99_Address Min is greater then address max_Fixed_3
#39601, 6051, Address Min is greater than Address Max
into_all all code_regex WordIO\s\(ResourceProducer,\sMinFixed,\sMaxFixed,\sPosDecode,\sEntireRange,\n\s+0x0000,\s+//\sGranularity\n\s+0x4558,\s+//\sRange\sMinimum\n\s+0x0000,\s+//\sRange\sMaximum\n\s+0x0000,\s+//\sTranslation\sOffset\n\s+0x0001,\s+//\sLength replace_matched
begin
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,\n
    0x0000,         // Granularity\n
    0x4558,         // Range Minimum\n
    0x4559,         // Range Maximum\n
    0x0000,         // Translation Offset\n
    0x0002,         // Length\n
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#X99_Address Min is greater then address max_Fixed_4
#39610, 6051, Address Min is greater than Address Max
into_all all code_regex WordIO\s\(ResourceProducer,\sMinFixed,\sMaxFixed,\sPosDecode,\sEntireRange,\n\s+0x0000,\s+//\sGranularity\n\s+0x4458,\s+//\sRange\sMinimum\n\s+0x0000,\s+//\sRange\sMaximum\n\s+0x0000,\s+//\sTranslation\sOffset\n\s+0x0000,\s+//\sLength replace_matched
begin
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,\n
    0x0000,         // Granularity\n
    0x4458,         // Range Minimum\n
    0x4459,         // Range Maximum\n
    0x0000,         // Translation Offset\n
    0x0002,         // Length\n
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#X99_Address Min is greater then address max_Fixed_5
#39615, 6051, Address Min is greater than Address Max
into_all all code_regex WordIO\s\(ResourceProducer,\sMinFixed,\sMaxFixed,\sPosDecode,\sEntireRange,\n\s+0x0000,\s+//\sGranularity\n\s+0x4358,\s+//\sRange\sMinimum\n\s+0x0000,\s+//\sRange\sMaximum\n\s+0x0000,\s+//\sTranslation\sOffset\n\s+0x0000,\s+//\sLength replace_matched
begin
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,\n
    0x0000,         // Granularity\n
    0x4358,         // Range Minimum\n
    0x4359,         // Range Maximum\n
    0x0000,         // Translation Offset\n
    0x0002,         // Length\n
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#X99_Address Min is greater then address max_Fixed_6
#47007, 6051, Address Min is greater than Address Max
into_all all code_regex WordIO\s\(ResourceProducer,\sMinFixed,\sMaxFixed,\sPosDecode,\sEntireRange,\n\s+0x0000,\s+//\sGranularity\n\s+0x4958,\s+//\sRange\sMinimum\n\s+0x0000,\s+//\sRange\sMaximum\n\s+0x0000,\s+//\sTranslation\sOffset\n\s+0x0001,\s+//\sLength replace_matched
begin
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,\n
    0x0000,         // Granularity\n
    0x4958,         // Range Minimum\n
    0x4959,         // Range Maximum\n
    0x0000,         // Translation Offset\n
    0x0002,         // Length\n
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#X99_Address Min is greater then address max_Fixed_7
#47014, 6051, Address Min is greater than Address Max
into_all all code_regex WordIO\s\(ResourceProducer,\sMinFixed,\sMaxFixed,\sPosDecode,\sEntireRange,\n\s+0x0000,\s+//\sGranularity\n\s+0x4559,\s+//\sRange\sMinimum\n\s+0x0000,\s+//\sRange\sMaximum\n\s+0x0000,\s+//\sTranslation\sOffset\n\s+0x0000,\s+//\sLength replace_matched
begin
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,\n
    0x0000,         // Granularity\n
    0x4558,         // Range Minimum\n
    0x4559,         // Range Maximum\n
    0x0000,         // Translation Offset\n
    0x0002,         // Length\n
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#X99_Address Min is greater then address max_Fixed_8
#47021, 6051, Address Min is greater than Address Max
into_all all code_regex WordIO\s\(ResourceProducer,\sMinFixed,\sMaxFixed,\sPosDecode,\sEntireRange,\n\s+0x0000,\s+//\sGranularity\n\s+0x4659,\s+//\sRange\sMinimum\n\s+0x0000,\s+//\sRange\sMaximum\n\s+0x0000,\s+//\sTranslation\sOffset\n\s+0x0000,\s+//\sLength replace_matched
begin
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,\n
    0x0000,         // Granularity\n
    0x4658,         // Range Minimum\n
    0x4659,         // Range Maximum\n
    0x0000,         // Translation Offset\n
    0x0002,         // Length\n
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#X99_Address Min is greater then address max_Fixed_9
#39615, 6051, Address Min is greater than Address Max
into_all all code_regex WordIO\s\(ResourceProducer,\sMinFixed,\sMaxFixed,\sPosDecode,\sEntireRange,\n\s+0x0000,\s+//\sGranularity\n\s+0x4259,\s+//\sRange\sMinimum\n\s+0x0000,\s+//\sRange\sMaximum\n\s+0x0000,\s+//\sTranslation\sOffset\n\s+0x0000,\s+//\sLength replace_matched
begin
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,\n
    0x0000,         // Granularity\n
    0x4258,         // Range Minimum\n
    0x4259,         // Range Maximum\n
    0x0000,         // Translation Offset\n
    0x0002,         // Length\n
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#X99_Address Min is greater then address max_Fixed_10
#39615, 6051, Address Min is greater than Address Max
into_all all code_regex WordIO\s\(ResourceProducer,\sMinFixed,\sMaxFixed,\sPosDecode,\sEntireRange,\n\s+0x0000,\s+//\sGranularity\n\s+0x4359,\s+//\sRange\sMinimum\n\s+0x0000,\s+//\sRange\sMaximum\n\s+0x0000,\s+//\sTranslation\sOffset\n\s+0x0000,\s+//\sLength replace_matched
begin
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,\n
    0x0000,         // Granularity\n
    0x4358,         // Range Minimum\n
    0x4359,         // Range Maximum\n
    0x0000,         // Translation Offset\n
    0x0002,         // Length\n
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#HDEF_Device_Patch
into device name_adr 0x001B0000 set_label
begin
HDEF
end;
into_all all code_regex ALZA replaceall_matched
begin
HDEF
end;
into method label _DSM parent_adr 0x001B0000 remove_entry;
into device name_adr 0x001B0000 insert
begin
Method (_DSM, 4, NotSerialized)\n
        {\n
            Store (Package ()\n
                    {\n 
                  "MaximumBootBeepVolume", Buffer() { 0xEF },\n
                  "MaximumBootBeepVolumeAlt", Buffer() { 0xF1 },\n
                  "multiEQDevicePresence", Buffer() { 0x0C, 0x00, 0x01, 0x00 },\n
                  "AAPL,slot-name", Buffer () {"Built In"},\n
                  "model", Buffer () {"Intel C610/X99 Series Chipset HD Audio Controller"},\n
                  "layout-id", Buffer() { 0x09, 0x00, 0x00, 0x00 },\n
                  "hda-gfx", Buffer () {"onboard-1"},\n
                  "built-in", Buffer () {"0x00"},\n
                  "device_type", Buffer () {"High Definition Audio"},\n  
                  "name", Buffer () {"Creative CA0132"},\n
                  "PinConfigurations", Buffer () {"0x00"},\n
                }, Local0)\n
            DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
            Return (Local0)\n
        }
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#DTGP_Devices_Patch
into method label DTGP remove_entry;
into definitionblock code_regex . insert
begin
Method (DTGP, 5, NotSerialized)\n
{\n
    If (LEqual (Arg0, Buffer (0x10)\n
            {\n
                /* 0000 */    0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44, \n
                /* 0008 */    0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B\n
            }))\n
    {\n
        If (LEqual (Arg1, One))\n
        {\n
            If (LEqual (Arg2, Zero))\n
            {\n
                Store (Buffer (One)\n
                    {\n
                        0x03\n
                    }, Arg4)\n
                Return (One)\n
            }\n
            If (LEqual (Arg2, One))\n
            {\n
                Return (One)\n
            }\n
        }\n
    }\n
    Store (Buffer (One)\n
        {\n
            0x00\n
        }, Arg4)\n
    Return (Zero)\n
}
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#GFX_Device_Patch
#If you have GFX card in slot BR3C
# 1. Under Device BR3C 
# 2. Rename device H000 to device GFX1 
# 3. Rename device H001 to device HDAU  (Nvidia/AMD HDMI audio)
#Remove device D083 in BR3C
into Device label D083 remove_entry;
#Maintained by: N.Mano
into device label GFX1 insert begin
Method (_DSM, 4, NotSerialized)\n
        {\n
            If (LEqual (Arg0, ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b")))\n
                                 {\n
               Store (Package ()\n
         {\n             
                "device-id", Buffer() { 0xc2, 0x13, 0x00, 0x00 },\n
                "@0,connector-type", Buffer() { 0x00, 0x08, 0x00, 0x00 },\n
                "@1,connector-type", Buffer() { 0x00, 0x08, 0x00, 0x00 },\n
                "@2,connector-type", Buffer() { 0x00, 0x08, 0x00, 0x00 },\n
                "@3,connector-type", Buffer() { 0x00, 0x08, 0x00, 0x00 },\n
                "@4,connector-type", Buffer() { 0x00, 0x08, 0x00, 0x00 },\n
                "@5,connector-type", Buffer() { 0x00, 0x08, 0x00, 0x00 },\n
                "rom-revision", Buffer () { "84.06.2f.00.52" },\n
                "model", Buffer () {"NVIDIA GeForce GTX 970"},\n 
                "name", Buffer () {"display"},\n
                "hda-gfx", Buffer () {"onboard-2"},\n
                "reg-ltrovr", Buffer () {0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},\n
                }, Local0)\n
            DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
            Return (Local0)\n
        }\n
                    Return (0x00)\n
        }\n
                end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#HDAU_Device_Patch
#Auto patch  Rename(Rename H001 to HDAU)
into device label HDAU insert begin
Method (_DSM, 4, NotSerialized)\n
        {\n
            If (LEqual (Arg0, ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b")))\n
               {\n
               Store (Package ()\n
         {\n                            
                  "device-id", Buffer() { 0xBB, 0x0F, 0x00, 0x00 },\n
                  "name", Buffer () {"HDAU"},\n
                  "built-in", Buffer () {"0x00"},\n
                  "device_type", Buffer () {"AUDIO"},\n  
                  "name", Buffer () {"HDAU"},\n
                  "hda-gfx", Buffer () {"onboard-2"},\n
                }, Local0)\n
            DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
            Return (Local0)\n
        }\n
                    Return (0x00)\n 
}\n
                end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#RP04_ARPT_Device_Patch
# 1.  Insert ARPT dsdt injection
# into device Label RP04 parent_label RP04 set_label begin ARPT end;
into Device label D076 remove_entry;
into device label RP04 insert
begin
Device (ARP1)\n
       {\n
       Name (_ADR, Zero)  // _ADR: Address\n
       Name (_SUN, 0x04)  // _SUN: Slot User Number\n
        Method (_DSM, 4, NotSerialized)\n
        {\n
         If (LEqual (Arg0, ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b")))\n
          {\n
          Store (Package ()\n
         {\n
		"reg-ltrovr", Buffer () {0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},\n                            
             "name", Buffer() { "ARP1" },\n
             "model", Buffer() { "Broadcom BCM943xx 802.11 a/b/g/n Wireless Network Controller" },\n
              "compatible", Buffer() { "pci14e4,43b1" },\n                           
                }, Local0)\n
            DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
            Return (Local0)\n
        }\n
                    Return (0x00)\n
        }\n
}\n
                end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#RP07_XHC2_Device_Patch
#XHC2-USB3 PCIE card.
#with RHU2
#Not all control paths return a value Fixed
# 1.  Insert RP07 dsdt injection
# into device Label RP07 parent_label RP07 set_label begin USB3 Card end;
into Device label D079 remove_entry;
into device label RP07 insert begin
                Device (XHC2)\n
                {\n
                    Name (_ADR, Zero)\n
                    Name (_SUN, 0x07)  // _SUN: Slot User Number\n
                    Method (_DSM, 4, NotSerialized)\n
                {\n
         If (LEqual (Arg0, ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b")))\n
          {\n
          Store (Package ()\n
         {\n
		"reg-ltrovr", Buffer () {0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},\n                         
         "device-id", Buffer() { 0x00, 0x11, 0x00, 0x00 },\n
         "subsystem-id", Buffer() { 0x00, 0x11, 0x00, 0x00 },\n
         "subsystem-vendor-id", Buffer() { 0x73, 0x1b, 0x00, 0x00 },\n
         "AAPL,current-available", 2100,\n
         "AAPL,current-extra", 2200,\n
         "AAPL,current-extra-in-sleep", 1600,\n
         "AAPL,device-internal", 0x02,\n
         "AAPL,max-port-current-in-sleep", 2100,\n
         "name", Buffer () {"Intel XHC Controller"},\n
         "model", Buffer () {"USB xHC Host Controller"},\n
         "device_type", Buffer () {"USB eXtensible Host Controller"},\n
                }, Local0)\n
            DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
            Return (Local0)\n
        }\n
                    Return (0x00)\n
 }\n
}\n
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#GLAN_Device_Patch
# Insert device GLAN into device with _ADR 0x00190000
into device name_adr Zero parent_adr 0x00190000 remove_entry;
into device name_adr 0x00190000 insert
begin
Name (_SUN, 0x02)  // _SUN: Slot User Number\n
Method (_DSM, 4, NotSerialized)\n
        {\n
            Store (Package ()\n
                {\n                            
             "built-in", Buffer() { "0x00" },\n
             "model", Buffer() { "Intel i218V" },\n                                         
             "name", Buffer() { "Ethernet Controller" },\n
              "device-id", Buffer () {0xa1,0x15,0x00,0x00},\n
              "subsystem-id", Buffer () {0x00,0xe0,0x00,0x00},\n
              "subsystem-vendor-id", Buffer () {0x58,0x14,0x00,0x00},\n
               }, Local0)\n
            DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
            Return (Local0)\n
}
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#RP05_Device_Patch
# Insert device RP05 into device with _ADR 0x001C0004
#
into device name_adr Zero parent_adr 0x001C0004 remove_entry;
into device name_adr 0x001C0004 insert
begin
Name (_SUN, 0x09)  // _SUN: Slot User Number\n
Method (_DSM, 4, NotSerialized)\n
        {\n
If (LEqual (Arg0, ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b")))\n
                                 {\n
               Store (Package ()\n
         {\n
		"reg-ltrovr", Buffer () {0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},\n
		"reg-ltrovr", Buffer () {0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},\n
             "built-in", Buffer() { "0x00" },\n
             "model", Buffer() { "Ethernet Controller" },\n                                         
             "name", Buffer() { "Qualcomm Atheros Killer E2200 PCI Express Gigabit Ethernet" },\n
              "device-id", Buffer () {0x91,0xe0,0x00,0x00},\n
              "subsystem-id", Buffer () {0x00,0xe0,0x00,0x00},\n
              "subsystem-vendor-id", Buffer () {0x58,0x14,0x00,0x00},\n
                }, Local0)\n
            DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
            Return (Local0)\n
        }\n
                    Return (0x00)\n
        }\n
                end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#RP08_Device_Patch
# 1.  Insert RP08 dsdt injection
# into device Label RP08 parent_label RP08 set_label begin D078 end;
into method label _adr parent_adr 0x001C0007 remove_entry;
into device name_adr 0x001C0007 insert
begin
Name (_SUN, 0x05)  // _SUN: Slot User Number\n
Method (_DSM, 4, NotSerialized)\n
        {\n
If (LEqual (Arg0, ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b")))\n
               {\n
               Store (Package ()\n
         {\n                             
"reg-ltrovr", Buffer () {0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},\n
         "name", Buffer() {"Intensity Pro"},\n
		"model", Buffer () {"Intensity Pro"},\n
		"device-id", Buffer () {0x1e,0x8d,0x00,0x00},\n
                }, Local0)\n
            DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
            Return (Local0)\n
        }\n
                    Return (0x00)\n
        }\n
                end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#RP02_Device_Patch
# 1.  Insert RP02 dsdt injection
# into device Label RP02 parent_label RP02 set_label begin D074 end;
into method label _adr parent_adr 0x001C0001 remove_entry;
into device name_adr 0x001C0001 insert
begin
Method (_DSM, 4, NotSerialized)\n
        {\n
             If (LEqual (Arg0, ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b")))\n
               {\n
               Store (Package ()\n
         {\n
		"reg-ltrovr", Buffer () {0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},\n
                }, Local0)\n
            DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
            Return (Local0)\n
        }\n
                    Return (0x00)\n
        }\n
                end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#RP03_Device_Patch
# 1.  Insert RP03 dsdt injection
# into device Label RP03 parent_label RP03 set_label begin D075 end;
into method label _adr parent_adr 0x001C0002 remove_entry;
into device name_adr 0x001C0002 insert
begin
Method (_DSM, 4, NotSerialized)\n
        {\n
             If (LEqual (Arg0, ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b")))\n
               {\n
               Store (Package ()\n
         {\n
		"reg-ltrovr", Buffer () {0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},\n
                }, Local0)\n
            DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
            Return (Local0)\n
        }\n
                    Return (0x00)\n
        }\n
                end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#RP06_Device_Patch
# 1.  Insert RP06 dsdt injection
# into device Label RP06 parent_label RP06 set_label begin D075 end;
into method label _adr parent_adr 0x001C0005 remove_entry;
into device name_adr 0x001C0005 insert
begin
Method (_DSM, 4, NotSerialized)\n
        {\n
             If (LEqual (Arg0, ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b")))\n
               {\n
               Store (Package ()\n
         {\n
		"reg-ltrovr", Buffer () {0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},\n
                }, Local0)\n
            DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
            Return (Local0)\n
        }\n
                    Return (0x00)\n
        }\n
                end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#BR2A_Device_Patch
#Auto patch under device BR2A(Rename H000 to ARPT)
# 1.  Insert ARPT dsdt injection Rename BR2A-H000 to BR2A-ARPT
# into device Label BR2A parent_label BR2A set_label begin ARPT end;
into method label _DSM parent_label ARPT remove_entry;
into device label ARPT insert begin
Method (_DSM, 4, NotSerialized)\n
        {\n
            Store (Package ()\n
                {\n                             
             "device_type", Buffer() { "AirPort" },\n
             "model", Buffer() { "Broadcom BCM943xx 802.11 a/b/g/n Wireless Network Controller" },\n
              "compatible", Buffer() { "pci14e4,43a0" },\n                           
"name", Buffer() { "AirPort Extreme" },\n
                }, Local0)\n
            DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
            Return (Local0)\n
        }
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#SAT1_Device_Patch
# Device injection for the Intel 99 Series SATA
into device label SAT1 insert begin
Name (_SUN, 0x0A)  // _SUN: Slot User Number\n
Method (_DSM, 4, NotSerialized)\n
{\n
	Store (Package (0x0A) {\n
         "name", Buffer() {"Intel AHCI Controller"},\n
		"model", Buffer () {"Intel 99 Series Chipset Family SATA Controller"},\n
          "compatible", Buffer() { "pci8086,8d02"},\n
          "device_type", Buffer () {"AHCI Controller"},\n
		"device-id", Buffer () {0x02,0x8d,0x00,0x00},\n
	}, Local0)\n
	DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
	Return (Local0)\n
}
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#EVSS_Device_Patch
# Device injection for the Intel 99 Series sSATA
into device label EVSS insert begin
Name (_SUN, 0x0B)  // _SUN: Slot User Number\n
Method (_DSM, 4, NotSerialized)\n
{\n
	Store (Package (0x0A) {\n
         "name", Buffer() {"Intel sSATA Controller"},\n
		"model", Buffer () {"Intel 99 Series Chipset Family sSATA Controller"},\n
           "compatible", Buffer() { "pci8086,8d62"},\n
          "device_type", Buffer () {"AHCI Controller"},\n
		"device-id", Buffer () {0x62,0x8d,0x00,0x00}\n
	}, Local0)\n
	DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
	Return (Local0)\n
}
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#EH01_Device_Patch
#Maintained by: N.Mano
into device label EHC1 set_label begin EH01 end;
into_all all code_regex EHC1 replaceall_matched begin EH01 end;
into device label EH01 insert begin
Name (_SUN, 0x0C)  // _SUN: Slot User Number\n
Method (_DSM, 4, NotSerialized)\n
                {\n
                    Store (Package ()\n
                        {\n                           
         "device-id", Buffer() { 0x26, 0x8d, 0x00, 0x00 },\n
         "subsystem-id", Buffer() { 0x70, 0x72, 0x00, 0x00 },\n
         "subsystem-vendor-id", Buffer() { 0x86, 0x80, 0x00, 0x00 },\n
         "AAPL,current-available", 2100,\n
         "AAPL,current-extra", 2200,\n
         "AAPL,current-extra-in-sleep", 1600,\n
         "AAPL,device-internal", 0x02,\n
         "AAPL,max-port-current-in-sleep", 2100,\n
          "name", Buffer() {"Intel EHC1 Controller"},\n
		"model", Buffer () {"Intel C610/X99 Series Chipset USB Enhanced Host Controller #1"},\n
          "device_type", Buffer () {"USB Controller"},\n
          "AAPL,clock-id", Buffer () {"0x01"},\n
                        }, Local0)\n
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
                    Return (Local0)\n
                }
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#EH02_Device_Patch
into device label EHC2 set_label begin EH02 end;
into_all all code_regex EHC2 replaceall_matched begin EH02 end;
into device label EH02 insert begin
Name (_SUN, 0x0D)  // _SUN: Slot User Number\n
Method (_DSM, 4, NotSerialized)\n
                {\n
                    Store (Package ()\n
                        {\n                             
        "device-id", Buffer() { 0x2d, 0x8d, 0x00, 0x00 },\n
        "subsystem-id", Buffer() { 0x70, 0x72, 0x00, 0x00 },\n
        "subsystem-vendor-id", Buffer() { 0x86, 0x80, 0x00, 0x00 },\n
        "AAPL,current-available", 2100,\n
        "AAPL,current-extra", 2200,\n
        "AAPL,current-extra-in-sleep", 1600,\n
        "AAPL,device-internal", 0x02,\n
        "AAPL,max-port-current-in-sleep", 2100,\n
        "name", Buffer() {"Intel EHC2 Controller"},\n
	    "model", Buffer () {"Intel C610/X99 Series Chipset USB Enhanced Host Controller #2"},\n
         "device_type", Buffer () {"USB Controller"},\n
         "AAPL,clock-id", Buffer () {"0x01"},\n
                        }, Local0)\n
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
                    Return (Local0)\n
                }
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#XHC1_Device_Patch
# Insert Apple USB properties into USB 3.0 XHCI
into method label _DSM parent_adr 0x00140000 remove_entry;
into device name_adr 0x00140000 insert
begin
Name (_SUN, 0x0E)  // _SUN: Slot User Number\n
Method (_DSM, 4, NotSerialized)\n
                {\n
                    Store (Package ()\n
                        {\n                            
         "device-id", Buffer() { 0x31, 0x8d, 0x00, 0x00 },\n
         "subsystem-id", Buffer() { 0x70, 0x72, 0x00, 0x00 },\n
         "subsystem-vendor-id", Buffer() { 0x58, 0x14, 0x00, 0x00 },\n
         "AAPL,current-available", 2100,\n
         "AAPL,current-extra", 2200,\n
         "AAPL,current-extra-in-sleep", 1600,\n
         "AAPL,device-internal", 0x02,\n
         "AAPL,max-port-current-in-sleep", 2100,\n
         "name", Buffer () {"Intel XHC Controller"},\n
         "model", Buffer () {"Intel 99 Series Chipset Family USB xHC Host Controller"},\n
          "device_type", Buffer () {"USB eXtensible Host Controller"},\n
          "AAPL,clock-id", Buffer () {"0x01"},\n
                        }, Local0)\n
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
                    Return (Local0)\n
                }
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#SMBS_Device_Patch
# Device injection for the Intel 99 Series SMBS
# Fix the SMBUS to allow for loading of the AppleSMBusController.kext
into device label BUS0 parent_label SMBS remove_entry;
into device label SMBS insert begin
Device (BUS0)\n
                {\n
                    Name (_CID, "smbus")  // _CID: Compatible ID\n
                    Name (_ADR, Zero)  // _ADR: Address\n
                    Device (MKY0)\n
                    {\n
                        Name (_ADR, Zero)  // _ADR: Address\n
                        Name (_CID, "mikey")  // _CID: Compatible ID\n
                        Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method\n
                        {\n
			Store (Package ()
                     {\n
                             "refnum",\n 
                                Zero,\n 
                                "address",\n 
                                0x39,\n 
                                "device-id",\n 
                                0x0CCB,\n 
                                Buffer (One)\n
                                {\n
                                     0x00\n
                               }\n
                          }, Local0)\n
			DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
			Return (Local0)\n
		}\n

                        Method (H1EN, 1, Serialized)\n
                        {\n
                            If (LLessEqual (Arg0, One))\n
                            {\n
                                If (LEqual (Arg0, One))\n
                                {\n
                                    Or (GL04, 0x04, GL04)\n
                                }\n
                                Else\n
                                {\n
                                    And (GL04, 0xFB, GL04)\n
                                }\n
                            }\n
                        }\n

                        Method (H1IL, 0, Serialized)\n
                        {\n
                            ShiftRight (And (GL00, 0x02), One, Local0)\n
                            Return (Local0)\n
                        }\n

                        Method (H1IP, 1, Serialized)\n
                        {\n
                            If (LLessEqual (Arg0, One))\n
                            {\n
                                Not (Arg0, Arg0)\n
                                Store (Arg0, GI01)\n
                            }\n
                        }\n

                        Name (H1IN, 0x11)\n
                        Scope (\_GPE)\n
                        {\n
                            Method (_L11, 0, NotSerialized)  // _Lxx: Level-Triggered GPE\n
                            {\n
                                Notify (\_SB.PCI0.SMBS.BUS0.MKY0, 0x80)\n
                            }\n
                        }\n

                        Method (P1IL, 0, Serialized)\n
                        {\n
                            ShiftRight (And (GL00, 0x40), 0x06, Local0)\n
                            Return (Local0)\n
                        }\n

                        Method (P1IP, 1, Serialized)\n
                        {\n
                            If (LLessEqual (Arg0, One))\n
                            {\n
                                Not (Arg0, Arg0)\n
                                Store (Arg0, GI06)\n
                            }\n
                        }\n

                        Name (P1IN, 0x16)\n
                        Scope (\_GPE)\n
                        {\n
                            Method (_L16, 0, NotSerialized)  // _Lxx: Level-Triggered GPE\n
                            {\n
                                XOr (GI06, One, GI06)\n
                                Notify (\_SB.PCI0.SMBS.BUS0.MKY0, 0x81)\n
                            }\n
                        }\n
                    }\n

                    Device (DVL0)\n
                    {\n
                        Name (_ADR, 0x57)  // _ADR: Address\n
                        Name (_CID, "diagsvault")  // _CID: Compatible ID\n
                        Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method\n
                        {\n
                            If (LEqual (Arg2, Zero))\n
                            {\n
                                Return (Buffer (One)\n
                                {\n
                                     0x03\n                                           
                                })\n
                            }\n

                            Return (Package (0x03)\n
                            {\n
                                "address",\n 
                                0x57,\n 
                                Buffer (One)\n
                                {\n
                                     0x00 \n                                          
                                }\n
                            })\n
                        }\n
                    }\n

                    Device (BLC0)\n
                    {\n
                        Name (_ADR, Zero)  // _ADR: Address\n
                        Name (_CID, "smbus-blc")  // _CID: Compatible ID\n
                        Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method\n
                        {\n
                            If (LEqual (Arg2, Zero))\n
                            {\n
                                Return (Buffer (One)\n
                                {\n
                                     0x03\n                                           
                                })\n
                            }\n

                            Return (Package (0x10)\n
                            {\n
                                "refnum",\n 
                                Zero,\n 
                                "version",\n 
                                0x02,\n 
                                "fault-off",\n 
                                0x03,\n 
                                "fault-len",\n 
                                0x04,\n 
                                "skey",\n 
                                0x4C445342,\n 
                                "smask", \n
                                0xFF,\n 
                                "type",\n 
                                0x49324300,\n 
                                "address",\n 
                                0x2C\n
                            })\n
                        }\n
                    }\n
                }\n

                Device (BUS1)\n
                {\n
                    Name (_CID, "smbus")  // _CID: Compatible ID\n
                    Name (_ADR, One)  // _ADR: Address\n
                }\n          
end;
into definitionblock code_regex . insert
begin
Method (MANO, 0, NotSerialized)\n
    {\n
        Return (Package (0x03)\n
        {\n
        "X99", \n
            "olarila.com/forum", \n
            "insanelymac.com/forum"\n
        })\n
    }\n

    OperationRegion (GPIO, SystemIO, 0x0500, 0x3C)\n
    Field (GPIO, ByteAcc, NoLock, Preserve)\n
    {\n
        Offset (0x0C), \n
        GL00,   8, \n
        Offset (0x2C),\n
            ,   1,\n 
        GI01,   1, \n
            ,   1, \n
        GI06,   1, \n
        Offset (0x2D),\n
        GL04,   8\n
}\n 
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#BR1A_PCIA_FRWR_Device_Patch
# 1.  Insert FRWR dsdt injection
#Before patch manually Rename(Rename H000 to PCIA)
# into device Label H000 parent_label BR1A (Rename-PCIA)
into method label _SUN parent_label PCIA remove_entry;
into device label PCIA insert begin                  
                Device (FRWR)\n
                {\n
            Name (_ADR, Zero)\n
            Name (_SUN, 0x03)  // _SUN: Slot User Number\n
       Method (_DSM, 4, NotSerialized)\n
        {\n
            Store (Package ()\n
                {\n                            
         "name", Buffer () {"FireWire IEEE-1394a OHCI Controller"},\n
         "model", Buffer () {"XIO2200A IEEE-1394a-2000 Controller"},\n
         "device-id", Buffer() { 0x35, 0x82, 0x00, 0x00 },\n 
                }, Local0)\n
            DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
            Return (Local0)\n
        }\n
}\n
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#LPC0_Device_Patch
# 1. Under Device LPC0 - Verify IOReg/LPC0
into method label _adr parent_adr 0x001F0000 remove_entry;
into device name_adr 0x001F0000 insert
begin
Name (_SUN, 0x0F)  // _SUN: Slot User Number\n
Method (_DSM, 4, NotSerialized)\n
{\n
    Store (Package ()\n
        {\n
       "device-id", Buffer() { 0x43, 0x9c, 0, 0 },\n
       "name", Buffer () {"pci8086,9c43"},\n
       "compatible", Buffer() { "pci8086,9c43" },\n
        }, Local0)\n
    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
    Return (Local0)\n
        }\n
end;
#Add and remove Device under LPC0
#Credits and thanks for  who developed patches, kexts and bootloaders.
into device label HPET remove_entry;
into device label LPC0 insert begin
                Device (ALS0)\n
                {\n
                    Name (_HID, "ACPI0008")  // _HID: Hardware ID\n
                    Name (_CID, "smc-als")  // _CID: Compatible ID\n
                    Name (BUFF, Buffer (0x02) {})\n
                    CreateByteField (BUFF, Zero, OB0)\n
                    CreateByteField (BUFF, One, OB1)\n
                    CreateWordField (BUFF, Zero, ALSI)\n
                    Method (_STA, 0, NotSerialized)  // _STA: Status\n
                    {\n
                        Return (0x0F)\n
                    }\n

                    Method (_ALI, 0, NotSerialized)  // _ALI: Ambient Light Illuminance\n
                    {\n
                        Store (0x0A, OB0)\n
                        Store (Zero, OB1)\n
                        Store (ALSI, Local0)\n
                        Return (Local0)\n
                    }\n

                    Name (_ALR, Package (0x05)  // _ALR: Ambient Light Response\n
                    {\n
                        Package (0x02)\n
                        {\n
                            0x0A,\n 
                            Zero\n
                        },\n 

                        Package (0x02)\n
                        {\n
                            0x14,\n 
                            0x0A\n
                        },\n 

                        Package (0x02)\n
                        {\n
                            0x32,\n 
                            0x50\n
                        },\n

                        Package (0x02)\n
                        {\n
                            0x5A,\n 
                            0x012C\n
                        },\n 

                        Package (0x02)\n
                        {\n
                            0x64,\n 
                            0x03E8\n
                        }\n
                    })\n
                }\n

                Device (EC)\n
                {\n
                    Name (_HID, EisaId ("PNP0C09"))  // _HID: Hardware ID\n
                    Name (_UID, Zero)  // _UID: Unique ID\n
                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings\n
                    {\n
                        IO (Decode16,\n
                            0x0062,             // Range Minimum\n
                            0x0062,             // Range Maximum\n
                            0x00,               // Alignment\n
                            0x01,               // Length\n
                            )\n
                        IO (Decode16,\n
                            0x0066,             // Range Minimum\n
                            0x0066,             // Range Maximum\n
                            0x00,               // Alignment\n
                            0x01,               // Length\n
                            )\n
                    })\n
                    Name (ECOK, Zero)\n
                    OperationRegion (ECOR, EmbeddedControl, Zero, 0xFF)\n
                    Field (ECOR, ByteAcc, Lock, Preserve)\n
                    {\n
                    }\n
                }\n
                Device (HPET)\n
                {\n
                    Name (_HID, EisaId ("PNP0103"))  // _HID: Hardware ID\n
                    Name (_CID, EisaId ("PNP0C01"))  // _CID: Compatible ID\n
                    Name (_STA, 0x0F)  // _STA: Status\n
                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings\n
                    {\n
                        IRQNoFlags ()\n
                            {0}\n
                        IRQNoFlags ()\n
                            {8}\n
                        IRQNoFlags ()\n
                            {11}\n
                        Memory32Fixed (ReadWrite,\n
                            0xFED00000,         // Address Base\n
                            0x00000400,         // Address Length\n
                            )\n
                    })\n
                }\n
           end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#NVME_Device_Patch
# 1.  Insert BR3A dsdt injection
#Before patch manually Rename(Rename H000 to NVM1
# into device Label BR3A parent_label BR3A set_label begin SM960 end;
into device label NVME insert begin
Method (_DSM, 4, NotSerialized)\n
{\n
    Store (Package ()\n
        {\n
          "AAPL,slot-name", Buffer () {"M.2"},\n
          "built-in", Buffer () {"0x00"},\n
          "device-id", Buffer() { 0x01, 0xa8, 0x00, 0x00 },\n
          "name", Buffer () {"NVMe"},\n
          "model", Buffer () {"960 PRO MZ-V6P512"},\n
          "device_type", Buffer () {"NVMe Controller"},\n
                }, Local0)\n
            DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
            Return (Local0)\n
        }\n
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#IMEI_Device_Patch
# 1. Under Device HECI - Verify IOReg/HECI
into_all all code_regex HECI replaceall_matched begin IMEI end;
into device label HECI set_label begin IMEI end;
into device label IMEI insert begin
Name (_SUN, 0x0F)  // _SUN: Slot User Number\n
Method (_DSM, 4, NotSerialized)\n
{\n
    Store (Package ()\n
        {\n
          "device-id", Buffer() { 0x3A, 0x1E, 0x00, 0x00 },\n
          "name", Buffer () {"Intel Management Engine Interface"},\n
          "model", Buffer () {"Intel Corporation, C610/X99 Series Chipset IMEI Controller"},\n
          "device_type", Buffer () {"IMEI-Controller"},\n
          "compatible", Buffer () {"pci8086,1e3a"},\n
        }, Local0)\n
    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
    Return (Local0)\n
}
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#EVMR_SPSR_Device_Patch
# Name (_ADR, 0x00110000)  // _ADR: Address
into_all all code_regex EVMR replaceall_matched begin SPSR end;
into device label EVMR set_label begin SPSR end;
into device label SPSR insert begin
Method (_DSM, 4, NotSerialized)\n
{\n
    Store (Package ()\n
        {\n
         "AAPL,slot-name", Buffer () {"built-in"},\n
         "built-in", Buffer() { "0x00" },\n
          "device-id", Buffer() { 0x21, 0x9D, 0x00, 0x00 },\n
          "name", Buffer () {"C610/X99 Series Chipset SPSR"},\n
          "model", Buffer () {"Intel Corporation, C610/X99 Series Chipset SPSR Controller"},\n
          "compatible", Buffer () {"pci8086,9d21"},\n
          "device_type", Buffer () {"Intel SPSR Controller"},\n         
        }, Local0)\n
    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
    Return (Local0)\n
}
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#RP01_SSD0_Device_Patch
# 1.  Insert SM951 dsdt injection
# into device Label RP01 parent_label D073 set_label begin AHC2 end;
into Device label D073 remove_entry;
into device label RP01 insert begin
  Device (SSD0)\n
 {\n
   Name (_ADR, Zero)\n             
   Method (_DSM, 4, NotSerialized)\n
   {\n
   If (LEqual (Arg0, ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b")))\n
 {\n
 Store (Package ()\n
 {\n
 "AAPL,slot-name", Buffer () {"M.2"},\n
"built-in", Buffer () {"0x00"},\n
"device-id", Buffer() { 0x01, 0xa8, 0x00, 0x00 },\n
"reg-ltrovr", Buffer () {0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},\n                            
 "name", Buffer() { "SSD0" },\n
 "model", Buffer() { "SM951" },\n
 "device_type", Buffer () {"AHCI Controller"},\n                         
 }, Local0)\n
 DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
 Return (Local0)\n
 }\n
Return (0x00)\n
}\n
}\n
end;
# X99_Maintained and disassembled by:N.Mano
#Credits and thanks for  who developed patches, kexts and bootloaders.
#X99_Sleep_Fixed
#usb_prw_0x6d_xhc.txt
# remove _PRW methods to prevent instant wake
# delete any existing XHC1 device
# delete any existing USB2 device
into device label USB2 name_adr 0x001D0000 remove_entry;
into device label USB2 name_adr 0x001A0000 remove_entry;
# if _PRW objects are methods
into method label _PRW parent_adr 0x001D0000 remove_entry;
into method label _PRW parent_adr 0x001A0000 remove_entry;
into method label _PRW parent_adr 0x00140000 remove_entry;
into method label _PRW parent_adr 0x001B0000 remove_entry;
# some other LAN cards use 0x00190000
into method label _PRW parent_adr 0x00190000 remove_entry;
into method label _PRW parent_adr 0x001C0004 remove_entry;
# some other  cards (RP08Intensity Pro,RP07 USB3 Card,RP04 WIFI card,RP01,RP02,RP03,RP06)
into method label _PRW parent_adr 0x001C0007 remove_entry;
into method label _PRW parent_adr 0x001C0006 remove_entry;
into method label _PRW parent_adr 0x001C0003 remove_entry;
into method label _PRW parent_adr 0x001C0000 remove_entry;
into method label _PRW parent_adr 0x001C0001 remove_entry;
into method label _PRW parent_adr 0x001C0002 remove_entry;
into method label _PRW parent_adr 0x001C0005 remove_entry;
#If_PRW BR1A,BR1B,BR2A,BR2B,BR2C,BR2D,BR3A,BR3B,BR3C,BR3D
into method label _PRW parent_adr 0x00010000 remove_entry;
into method label _PRW parent_adr 0x00010001 remove_entry;
into method label _PRW parent_adr 0x00020000 remove_entry;
into method label _PRW parent_adr 0x00020001 remove_entry;
into method label _PRW parent_adr 0x00020002 remove_entry;
into method label _PRW parent_adr 0x00020003 remove_entry;
into method label _PRW parent_adr 0x00030000 remove_entry;
into method label _PRW parent_adr 0x00030001 remove_entry;
into method label _PRW parent_adr 0x00030002 remove_entry;
into method label _PRW parent_adr 0x00030003 remove_entry;
# if _PRW methods are stuffed into a separate scope
into method label _PRW parent_label _SB.PCI0.EHC1 remove_entry;
into method label _PRW parent_label _SB.PCI0.EHC2 remove_entry;
into method label _PRW parent_label _SB.PCI0.XHC remove_entry;
into method label _PRW parent_label \_SB.PCI0.EHC1 remove_entry;
into method label _PRW parent_label \_SB.PCI0.EHC2 remove_entry;
into method label _PRW parent_label \_SB.PCI0.XHC1 remove_entry;
# if _PRW objects are names
into device name_adr 0x001D0000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x001A0000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x00140000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x001B0000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x00190000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x001C0004 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x001C0007 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x001C0006 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x001C0003 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x001C0000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x001C0001 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x001C0002 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x001C0005 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched;
#If_PRW BR1A,BR1B,BR2A,BR2B,BR2C,BR2D,BR3A,BR3B,BR3C,BR3D
into device name_adr 0x00010000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x00010001 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x00020000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x00020001 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x00020002 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x00020003 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x00030000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x00030001 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x00030002 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x00030003 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched;
# some _PRW have three entries in the Package
into device name_adr 0x001D0000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x001A0000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x00140000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x001B0000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x00190000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x001C0004 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x001C0007 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x001C0006 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x001C0003 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x001C0000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x001C0001 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x001C0002 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x001C0005 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched;
#If_PRW BR1A,BR1B,BR2A,BR2B,BR2C,BR2D,BR3A,BR3B,BR3C,BR3D
into device name_adr 0x00010000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x00010001 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x00020000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x00020001 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x00020002 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x00020003 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x00030000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x00030001 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x00030002 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x00030003 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched;
# seems to work better if _PRW is present, but returns 0 (original was 3) for sleep state
into device name_adr 0x001D0000 insert begin Name(_PRW, Package() { 0x6D, 0 }) end;
into device name_adr 0x001A0000 insert begin Name(_PRW, Package() { 0x6D, 0 }) end;
into device name_adr 0x00140000 insert begin Name(_PRW, Package() { 0x6D, 0 }) end;
into device name_adr 0x001B0000 insert begin Name(_PRW, Package() { 0x6D, 0 }) end;
into device name_adr 0x00190000 insert begin Name(_PRW, Package() { 0x6D, 0 }) end;
into device name_adr 0x001C0004 insert begin Name(_PRW, Package() { 0x6D, 0 }) end;
into device name_adr 0x001C0007 insert begin Name(_PRW, Package() { 0x6D, 0 }) end;
into device name_adr 0x001C0006 insert begin Name(_PRW, Package() { 0x6D, 0 }) end;
into device name_adr 0x001C0003 insert begin Name(_PRW, Package() { 0x6D, 0 }) end;
into device name_adr 0x001C0000 insert begin Name(_PRW, Package() { 0x6D, 0 }) end;
into device name_adr 0x001C0001 insert begin Name(_PRW, Package() { 0x6D, 0 }) end;
into device name_adr 0x001C0002 insert begin Name(_PRW, Package() { 0x6D, 0 }) end;
into device name_adr 0x001C0005 insert begin Name(_PRW, Package() { 0x6D, 0 }) end;
#If_PRW BR1A,BR1B,BR2A,BR2B,BR2C,BR2D,BR3A,BR3B,BR3C,BR3D
into device name_adr 0x00010000 insert begin Name(_PRW, Package() { 0x6D, 0 }) end;
into device name_adr 0x00010001 insert begin Name(_PRW, Package() { 0x6D, 0 }) end;
into device name_adr 0x00020000 insert begin Name(_PRW, Package() { 0x6D, 0 }) end;
into device name_adr 0x00020001 insert begin Name(_PRW, Package() { 0x6D, 0 }) end;
into device name_adr 0x00020002 insert begin Name(_PRW, Package() { 0x6D, 0 }) end;
into device name_adr 0x00020003 insert begin Name(_PRW, Package() { 0x6D, 0 }) end;
into device name_adr 0x00030000 insert begin Name(_PRW, Package() { 0x6D, 0 }) end;
into device name_adr 0x00030001 insert begin Name(_PRW, Package() { 0x6D, 0 }) end;
into device name_adr 0x00030002 insert begin Name(_PRW, Package() { 0x6D, 0 }) end;
into device name_adr 0x00030003 insert begin Name(_PRW, Package() { 0x6D, 0 }) end;

#

X99-SSDT-2017

I update some SSDT for X99 system.This update no need DSDT.(ONLY SSDT)

X99 Devices  with 29 SSDT.

#NO DSDT

#EH01

#EH02

#XHC1

#XHC2

#NVME

#LAN0

#LAN1

#GFX1

#HDAU

#ARPT

#AHCI

#SATA

#SAT1

#SAT2

#EVSS

#HDEF

#SBUS

#FRWR

#MCEH

#DTGP

#ALS0

#EC

#SPSR

#IMEI

#PNLF

#SSD0

#VSND

#MATH

#IPIC

#TIMR

#SLEEP

#IRQ

 

 

#SSDT-X99-2017

#All Credits and thanks to who developed patches, kexts and bootloaders.

 

My susses story

X99 platforms,  high-end desktops an opportunity to customize the look of First  DRAM DDR4 inside their machines. 

My goal is fixed DSDT errors and warning.All devices are show in PCI SLOT in ABOUT THIS MAC.

I found  for X99 Haswell-E need FakeCPUID for  10.11.3 (12-11-2015)

If anyone want to see that story search on google good news for x99.

FakeCPUID 0x0306E0 (Ivy Bridge) to Haswell-E

Now 10.12 no need this ID.

Credit: PikeRAlpha, RehabMan, chris, vit9696, Brumbaer,Okrasit

ACPI.zip

config 10.11 and 10.12.plist.zip

config.plist.zip

drivers64UEFI.zip

DSDT patches.zip

Kexts.zip

post-413859-0-19104500-1468774083_thumb.png

post-413859-0-52487000-1468774101_thumb.png

post-413859-0-29175700-1468774112_thumb.png

post-413859-0-10792300-1468774129_thumb.png

post-413859-0-98796900-1468774150_thumb.png

post-413859-0-10841800-1468774166_thumb.png

post-413859-0-56375500-1468891454_thumb.png

Mac osx Installer.zip

post-413859-0-79878200-1470750717_thumb.png

post-413859-0-55117500-1470750736_thumb.png

Resolutions 2.zip

post-413859-0-52614400-1470830600.jpeg

USB 3 XHC Patch.zip

post-413859-0-03270400-1472426527_thumb.png

post-413859-0-29197800-1472426540_thumb.png

X99DSDT_Fix.zip

X99_Gold.zip

X99_Gold_1.0.zip

XCPM 10.12 and 10.13 update.zip

XCPM Brodwell and Haswell.zip

XCPM_enabler.zip

AppleIntelPCHPMC.kext 10.13_X99.zip

10.13_X99 Final_EFI.zip

X99_SSDT_ALL IN ONE.zip

ALL IN ONE SSDT_Latest.zip

SSDT-X99-All_Sleep.aml.zip

X99_SSDT_Final.zip

X99_RenameXXX.aml.zip

SSDT-X99-2017.zip

SSDT-X99-2018.aml.zip

X99_SSDT-IRQ.aml.zip

SSDT-X99-NH0.aml.zip

Edited by nmano
  • Like 18
  • Thanks 1
Link to comment
Share on other sites

Creative sound  AppleHDA 10.12 Beta (16A239j)

Set LayoutID = 9

This kexts x99 patched and none x99 too.

Just HDEF for DSDT.

post-413859-0-11150400-1468800304_thumb.png

with X99.zip

None X99.zip

just HDEF.zip

  • Like 3
Link to comment
Share on other sites

BIOS Configuration for USB 3 Flash drive with clover

  1. Intel USB 3.0 XHCI Mode Enabled
  2. CSM Disable

BIOS Configuration for USB 2 Flash drive with clover

  1. Intel USB 3.0 XHCI Mode Smart Auto
  2. CSM Disable
  • Like 3
Link to comment
Share on other sites

Creative sound  AppleHDA 10.12 Beta (16A254g))

Set LayoutID = 9

With X99 patched.

DP3 with X99.zip

post-413859-0-34869900-1469104770_thumb.png

  • Like 2
Link to comment
Share on other sites

patch me

this destination is read only

Patch Me.zip

  • Like 1
Link to comment
Share on other sites

can i update 10.11.5 to 10.2?

I have cloned my hack and I want to try upgrade to 10.2 or we need a fresh installation?

Try fresh installation make a partition keep 10.11.5

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

when upgrading 10.11 to 10.12 i was able to boot everything was working fine accept GPU, when installing ;test web driver i would not able to fix the problem so i installed a fresh copy but situation are the same...no GPU acceleration 

tried many things nothing helped.

Link to comment
Share on other sites

Creative sound  AppleHDA 10.12 Beta4 (16A270f)

Set LayoutID = 9

With X99 patched and without x99 patched.

with x99.zip

without x99.zip

  • Like 1
Link to comment
Share on other sites

is ur power management working? XCPM loaded?

for me it seems not loading and sleep not working...i have SDST and Freqvector generated but not loaded...

Auto overclock

My system(X99GamingG1) support Auto overclock just press back panel OC button.I don’t use XCPM.

Not work

Automatically Adjust Brightness: No

Sleep

post-413859-0-47874000-1470830834.jpeg

  • Like 1
Link to comment
Share on other sites

IMEI patch for x99

This patch rename device name and device ID.

HECI to IMEI

AppleIntelFramebufferCapri now Loaded.

IMEI patch for x99.txt.zip

post-413859-0-51084800-1471010649_thumb.png

  • Like 1
Link to comment
Share on other sites

XCPM for 10.12 DP5

Its patched just replace file.

 

xxd -s 0x228f50 -l 528 -u /System/Library/Kernels/kernel

 

xxd: /System/Library/Kernels/kerne: No such file or directory

navaratnams-Pro:~ navaratnammanoranjan$ xxd -s 0x228f50 -l 528 -u /System/Library/Kernels/kernel

00228f50: 5548 89E5 4157 4156 4155 4154 5350 4189  UH..AWAVAUATSPA.

00228f60: D641 89F7 4889 FB45 85FF 0F84 9400 0000  .A..H..E........

00228f70: 4883 C328 4C8D 25E5 E855 004C 8D2D F8E8  H..(L.%..U.L.-..

00228f80: 5500 6666 6666 662E 0F1F 8400 0000 0000  U.fffff.........

00228f90: 8B05 026D 6700 8543 DC74 6045 85F6 7406  ...mg..C.t`E..t.

00228fa0: 4439 73D8 7555 833D 533E 6000 0074 108B  D9s.uU.=S>`..t..

00228fb0: 53D8 31C0 4C89 E74C 89EE E8D1 314F 008B  S.1.L..L....1O..

00228fc0: 4BD8 0F32 48C1 E220 89C0 4809 D048 8943  K..2H.. ..H..H.C

00228fd0: F848 8B53 E848 F7D2 4821 C248 0B53 F08B  .H.S.H..H!.H.S..

00228fe0: 4BD8 89D0 48C1 EA20 0F30 8B4B D80F 3248  K...H.. .0.K..2H

00228ff0: C1E2 2089 C048 09D0 4889 0348 83C3 3041  .. ..H..H..H..0A

00229000: FFCF 758C 4883 C408 5B41 5C41 5D41 5E41  ..u.H...[A\A]A^A

00229010: 5F5D C366 6666 662E 0F1F 8400 0000 0000  _].ffff.........

00229020: 5548 89E5 B9B0 0100 000F 3283 E00F 5DC3  UH........2...].

00229030: 5548 89E5 5348 83EC 1889 FBC7 45EC 0906  UH..SH......E...

00229040: 0000 83FB 2972 0E8B 05EB 8B66 0085 C00F  ....)r.....f....

00229050: 856E 0100 008B 053D 6C67 0031 C985 05D1  .n.....=lg.1....

00229060: 3F60 0074 1081 3DC1 3F60 0009 0600 000F  ?`.t..=.?`......

00229070: 840A 0100 00B9 0100 0000 8505 E43F 6000  .............?`.

00229080: 7410 813D D43F 6000 0906 0000 0F84 ED00  t..=.?`.........

00229090: 0000 B902 0000 0085 05F7 3F60 0074 1081  ..........?`.t..

002290a0: 3DE7 3F60 0009 0600 000F 84D0 0000 00B9  =.?`............

002290b0: 0300 0000 8505 0A40 6000 7410 813D FA3F  .......@`.t..=.?

002290c0: 6000 0906 0000 0F84 B300 0000 B904 0000  `...............

002290d0: 0085 051D 4060 0074 1081 3D0D 4060 0009  ....@`.t..=.@`..

002290e0: 0600 000F 8496 0000 00B9 0500 0000 8505  ................

002290f0: 3040 6000 740C 813D 2040 6000 0906 0000  0@`.t..= @`.....

00229100: 747D B906 0000 0085 0547 4060 0074 0C81  t}.......G@`.t..

00229110: 3D37 4060 0009 0600 0074 64B9 0700 0000  =7@`.....td.....

00229120: 8505 5E40 6000 740C 813D 4E40 6000 0906  ..^@`.t..=N@`...

00229130: 0000 744B B908 0000 0085 0575 4060 0074  ..tK.......u@`.t

00229140: 0C81 3D65 4060 0009 0600 0074 32B9 0900  ..=e@`.....t2...

00229150: 0000 8505 8C40 6000 740C 813D 7C40 6000  .....@`.t..=|@`.

navaratnams-Pro:~ navaratnammanoranjan$ 

I use Hex Fiend

Find-554889E5 41574156 41554154 53504189 D641

Replace-C39089E5 41574156 41554154 53504189 D641

 

XCPM

Find-83 C3 C4 83 FB 22

Replace-83 C3 C1 83 FB 22

 

We don't need CPU iD Fix for Haswell-E family

Result

Last login: Sun Aug 14 14:20:01 on console

manoranjansPro2:~ navaratnammanoranjan$ sysctl -a | grep xcpm

machdep.xcpm.io_filtered_reads: 0

machdep.xcpm.io_control_disengages: 1

machdep.xcpm.io_control_engages: 0

machdep.xcpm.io_thermal_level: 0

machdep.xcpm.gpu_thermal_level: 0

machdep.xcpm.cpu_thermal_level: 0

machdep.xcpm.deep_idle_total_stats: n/a

machdep.xcpm.deep_idle_last_stats: n/a

machdep.xcpm.deep_idle_count: 0

machdep.xcpm.qos_txfr: 1

machdep.xcpm.deep_idle_log: 0

machdep.xcpm.forced_idle_period: 30000000

machdep.xcpm.forced_idle_ratio: 100

machdep.xcpm.mbd_relaxations: 12305

machdep.xcpm.mbd_applications: 12329

machdep.xcpm.mbd_mode: 1

machdep.xcpm.maxintdelay: 0

machdep.xcpm.maxbusdelay: 4294967295

machdep.xcpm.ratio_changes_total: 699153

machdep.xcpm.vectors_loaded_count: 0

machdep.xcpm.tuib_ns: 0

machdep.xcpm.bootpst: 43

machdep.xcpm.bootplim: 0

machdep.xcpm.power_source: 0

machdep.xcpm.tuib_enabled: 0

machdep.xcpm.tuib_plimit_min_100mhz_ratio: 8

machdep.xcpm.tuib_plimit_max_100mhz_ratio: 43

machdep.xcpm.soft_plimit_min_100mhz_ratio: 8

machdep.xcpm.soft_plimit_max_100mhz_ratio: 43

machdep.xcpm.hard_plimit_min_100mhz_ratio: 8

machdep.xcpm.hard_plimit_max_100mhz_ratio: 43

machdep.xcpm.mode: 1

manoranjansPro2:~ navaratnammanoranjan$

 

Credit-pikeralpha

Kernels.zip

  • Like 1
Link to comment
Share on other sites

Hi nmano, 

 

I'm quite interested in your DSDT patches that you manage to compile and apply to your own system.

 

But, I've bumped into a few problems when I try to apply them to my system:

  • "F22J Comfile.rtf" & "F22J Device patches .rtf" - These files are not properly read by MaciASL, I had to convert them into plain text files (see attached) 
  • "F22J Device patches .rtf" - You have repeated several times to do a find/replace all of the H0000 but with different targets each time: IGPU, HDA1, ARP0, H00F & AHC1 (I don't think this is right...)

Can please check my plain text files converted from yours and can you also please help me applying your patches to my own clover extracted DSDT.aml (attached).

 

Thanks.

 

Boa sorte,

Paulo

 

Arquivo.zip

Link to comment
Share on other sites

Hi nmano, 

 

I'm quite interested in your DSDT patches that you manage to compile and apply to your own system.

 

Thats Fake Device names IGPU, HDA1, ARP0, H00F & AHC1(for Rename)

After patched changed to GFX0,HDAU,ARPT

​First check IOREG your Devices names then Rename devices and arrange patch file.

can't check without IOREG.

Link to comment
Share on other sites

Kernel patched for just reboot fix 10.12 DP5 0x228f50© Pike R. Alpha

XCPM clover config patched.

If you disable clover patched AppleIntelCPUPowerManagement loaded.

This way worked xcpm and Apple intel.

 

Just reboot fix .zip

Config.zip

Link to comment
Share on other sites

Thats Fake Device names IGPU, HDA1, ARP0, H00F & AHC1(for Rename)

After patched changed to GFX0,HDAU,ARPT

​First check IOREG your Devices names then Rename devices and arrange patch file.

I can't check without IOREG.

Hi nmano, 

 

Thanks for the clarification.

 

My DSDT knowledge is very rusty and from the X58 platform... And the X99 platform is quite different...

 

I've attached the my system's IOREG as requested, from my current 11.10.6 setup.

 

Boa sorte,

Paulo

Mac Pro.ioreg.zip

Link to comment
Share on other sites

Hi nmano , why use you again NullCpu?

I tested without NullCPU Its worked XCPM and AppleIntelPM.

Remove NullCPUPowerManagement.kext - AppleIntelCPUPowerManagementClient Loaded.

Did you try without Brumbaer patch?

I try without patch not work.

Hi nmano, 

 

Thanks for the clarification.

 

My DSDT knowledge is very rusty and from the X58 platform... And the X99 platform is quite different...

 

I've attached the my system's IOREG as requested, from my current 11.10.6 setup.

 

Boa sorte,

Paulo

attachicon.gifMac Pro.ioreg.zip

I can't open Its to be corrupted.

Try latest version.

  • Like 1
Link to comment
Share on other sites

 Share

×
×
  • Create New...