mirror of
https://github.com/tylernguyen/x1c6-hackintosh.git
synced 2025-02-05 09:33:13 -06:00
Notably new TB3 hotplug patch by @benbender, and other monior changes
This commit is contained in:
parent
fbc7a3e1ec
commit
974889e070
37 changed files with 6916 additions and 7911 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,98 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>BuildMachineOSBuild</key>
|
|
||||||
<string>19G2021</string>
|
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
|
||||||
<string>en</string>
|
|
||||||
<key>CFBundleExecutable</key>
|
|
||||||
<string>ThunderboltReset</string>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>com.osy86.ThunderboltReset</string>
|
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
|
||||||
<string>6.0</string>
|
|
||||||
<key>CFBundleName</key>
|
|
||||||
<string>ThunderboltReset</string>
|
|
||||||
<key>CFBundlePackageType</key>
|
|
||||||
<string>KEXT</string>
|
|
||||||
<key>CFBundleShortVersionString</key>
|
|
||||||
<string>1.0.0d1</string>
|
|
||||||
<key>CFBundleSupportedPlatforms</key>
|
|
||||||
<array>
|
|
||||||
<string>MacOSX</string>
|
|
||||||
</array>
|
|
||||||
<key>CFBundleVersion</key>
|
|
||||||
<string>1.0.0d1</string>
|
|
||||||
<key>DTCompiler</key>
|
|
||||||
<string>com.apple.compilers.llvm.clang.1_0</string>
|
|
||||||
<key>DTPlatformBuild</key>
|
|
||||||
<string>11E708</string>
|
|
||||||
<key>DTPlatformVersion</key>
|
|
||||||
<string>GM</string>
|
|
||||||
<key>DTSDKBuild</key>
|
|
||||||
<string>19G68</string>
|
|
||||||
<key>DTSDKName</key>
|
|
||||||
<string>macosx10.15</string>
|
|
||||||
<key>DTXcode</key>
|
|
||||||
<string>1160</string>
|
|
||||||
<key>DTXcodeBuild</key>
|
|
||||||
<string>11E708</string>
|
|
||||||
<key>IOKitPersonalities</key>
|
|
||||||
<dict>
|
|
||||||
<key>ThunderboltReset</key>
|
|
||||||
<dict>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>com.osy86.ThunderboltReset</string>
|
|
||||||
<key>IOClass</key>
|
|
||||||
<string>ThunderboltReset</string>
|
|
||||||
<key>IOMatchCategory</key>
|
|
||||||
<string>ThunderboltReset</string>
|
|
||||||
<key>IOProviderClass</key>
|
|
||||||
<string>IOResources</string>
|
|
||||||
<key>IOResourceMatch</key>
|
|
||||||
<string>IOKit</string>
|
|
||||||
</dict>
|
|
||||||
<key>ThunderboltWait</key>
|
|
||||||
<dict>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>com.osy86.ThunderboltReset</string>
|
|
||||||
<key>IOClass</key>
|
|
||||||
<string>ThunderboltWait</string>
|
|
||||||
<key>IOPCIClassMatch</key>
|
|
||||||
<string>0x08800000&0xffff0000</string>
|
|
||||||
<key>IOPCIMatch</key>
|
|
||||||
<string>0x15008086&0xff00ffff</string>
|
|
||||||
<key>IOPCITunnelCompatible</key>
|
|
||||||
<true/>
|
|
||||||
<key>IOProbeScore</key>
|
|
||||||
<integer>500</integer>
|
|
||||||
<key>IOProviderClass</key>
|
|
||||||
<string>IOPCIDevice</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>LSMinimumSystemVersion</key>
|
|
||||||
<string>10.14</string>
|
|
||||||
<key>NSHumanReadableCopyright</key>
|
|
||||||
<string>Copyright © 2019 osy86. All rights reserved.</string>
|
|
||||||
<key>OSBundleLibraries</key>
|
|
||||||
<dict>
|
|
||||||
<key>as.vit9696.Lilu</key>
|
|
||||||
<string>1.2.0</string>
|
|
||||||
<key>com.apple.kpi.bsd</key>
|
|
||||||
<string>12.0.0</string>
|
|
||||||
<key>com.apple.kpi.dsep</key>
|
|
||||||
<string>12.0.0</string>
|
|
||||||
<key>com.apple.kpi.iokit</key>
|
|
||||||
<string>12.0.0</string>
|
|
||||||
<key>com.apple.kpi.libkern</key>
|
|
||||||
<string>12.0.0</string>
|
|
||||||
<key>com.apple.kpi.mach</key>
|
|
||||||
<string>12.0.0</string>
|
|
||||||
<key>com.apple.kpi.unsupported</key>
|
|
||||||
<string>12.0.0</string>
|
|
||||||
</dict>
|
|
||||||
<key>OSBundleRequired</key>
|
|
||||||
<string>Local-Root</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
Binary file not shown.
|
@ -1,115 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>files</key>
|
|
||||||
<dict/>
|
|
||||||
<key>files2</key>
|
|
||||||
<dict/>
|
|
||||||
<key>rules</key>
|
|
||||||
<dict>
|
|
||||||
<key>^Resources/</key>
|
|
||||||
<true/>
|
|
||||||
<key>^Resources/.*\.lproj/</key>
|
|
||||||
<dict>
|
|
||||||
<key>optional</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1000</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/.*\.lproj/locversion.plist$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1100</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/Base\.lproj/</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1010</real>
|
|
||||||
</dict>
|
|
||||||
<key>^version.plist$</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
<key>rules2</key>
|
|
||||||
<dict>
|
|
||||||
<key>.*\.dSYM($|/)</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>11</real>
|
|
||||||
</dict>
|
|
||||||
<key>^(.*/)?\.DS_Store$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>2000</real>
|
|
||||||
</dict>
|
|
||||||
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
|
|
||||||
<dict>
|
|
||||||
<key>nested</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>10</real>
|
|
||||||
</dict>
|
|
||||||
<key>^.*</key>
|
|
||||||
<true/>
|
|
||||||
<key>^Info\.plist$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
<key>^PkgInfo$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/.*\.lproj/</key>
|
|
||||||
<dict>
|
|
||||||
<key>optional</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1000</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/.*\.lproj/locversion.plist$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1100</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/Base\.lproj/</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1010</real>
|
|
||||||
</dict>
|
|
||||||
<key>^[^/]+$</key>
|
|
||||||
<dict>
|
|
||||||
<key>nested</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>10</real>
|
|
||||||
</dict>
|
|
||||||
<key>^embedded\.provisionprofile$</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
<key>^version\.plist$</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
|
@ -3,7 +3,7 @@
|
||||||
<plist version="1.0">
|
<plist version="1.0">
|
||||||
<dict>
|
<dict>
|
||||||
<key>BuildMachineOSBuild</key>
|
<key>BuildMachineOSBuild</key>
|
||||||
<string>19H2</string>
|
<string>20A5395g</string>
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
<string>en</string>
|
<string>en</string>
|
||||||
<key>CFBundleExecutable</key>
|
<key>CFBundleExecutable</key>
|
||||||
|
@ -17,29 +17,27 @@
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>KEXT</string>
|
<string>KEXT</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>1.2.1</string>
|
<string>1.3.0</string>
|
||||||
<key>CFBundleSupportedPlatforms</key>
|
<key>CFBundleSupportedPlatforms</key>
|
||||||
<array>
|
<array>
|
||||||
<string>MacOSX</string>
|
<string>MacOSX</string>
|
||||||
</array>
|
</array>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>1.2.1</string>
|
<string>1.3.0</string>
|
||||||
<key>DTCompiler</key>
|
<key>DTCompiler</key>
|
||||||
<string>com.apple.compilers.llvm.clang.1_0</string>
|
<string>com.apple.compilers.llvm.clang.1_0</string>
|
||||||
<key>DTPlatformBuild</key>
|
<key>DTPlatformBuild</key>
|
||||||
<string>12A7300</string>
|
<string>11E801a</string>
|
||||||
<key>DTPlatformName</key>
|
|
||||||
<string>macosx</string>
|
|
||||||
<key>DTPlatformVersion</key>
|
<key>DTPlatformVersion</key>
|
||||||
<string>10.15.6</string>
|
<string>GM</string>
|
||||||
<key>DTSDKBuild</key>
|
<key>DTSDKBuild</key>
|
||||||
<string>19G68</string>
|
<string>19G68</string>
|
||||||
<key>DTSDKName</key>
|
<key>DTSDKName</key>
|
||||||
<string>macosx10.15</string>
|
<string>macosx10.15</string>
|
||||||
<key>DTXcode</key>
|
<key>DTXcode</key>
|
||||||
<string>1201</string>
|
<string>1170</string>
|
||||||
<key>DTXcodeBuild</key>
|
<key>DTXcodeBuild</key>
|
||||||
<string>12A7300</string>
|
<string>11E801a</string>
|
||||||
<key>IOKitPersonalities</key>
|
<key>IOKitPersonalities</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>IdeaVPC</key>
|
<key>IdeaVPC</key>
|
||||||
|
@ -127,6 +125,30 @@
|
||||||
<false/>
|
<false/>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
|
<key>YogaHIDD</key>
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>org.zhen.YogaSMC</string>
|
||||||
|
<key>IOClass</key>
|
||||||
|
<string>YogaHIDD</string>
|
||||||
|
<key>IOProbeScore</key>
|
||||||
|
<integer>200</integer>
|
||||||
|
<key>IOPropertyMatch</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>INT33D5</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>INTC1051</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
<key>IOProviderClass</key>
|
||||||
|
<string>IOACPIPlatformDevice</string>
|
||||||
|
<key>IOUserClientClass</key>
|
||||||
|
<string>YogaSMCUserClient</string>
|
||||||
|
</dict>
|
||||||
<key>YogaWMI</key>
|
<key>YogaWMI</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
|
|
Binary file not shown.
|
@ -126,19 +126,81 @@
|
||||||
<key>Path</key>
|
<key>Path</key>
|
||||||
<string>SSDT-XHC1.aml</string>
|
<string>SSDT-XHC1.aml</string>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
|
||||||
<key>Comment</key>
|
|
||||||
<string>Patch USB Power</string>
|
|
||||||
<key>Enabled</key>
|
|
||||||
<true/>
|
|
||||||
<key>Path</key>
|
|
||||||
<string>SSDT-USBX.aml</string>
|
|
||||||
</dict>
|
|
||||||
</array>
|
</array>
|
||||||
<key>Delete</key>
|
<key>Delete</key>
|
||||||
<array/>
|
<array/>
|
||||||
<key>Patch</key>
|
<key>Patch</key>
|
||||||
<array>
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>Comment</key>
|
||||||
|
<string>INIT: OINIT to ZINI</string>
|
||||||
|
<key>Count</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>Enabled</key>
|
||||||
|
<true/>
|
||||||
|
<key>Find</key>
|
||||||
|
<data>
|
||||||
|
FEcaT0lOSQ==
|
||||||
|
</data>
|
||||||
|
<key>Limit</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>Mask</key>
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
<key>OemTableId</key>
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
<key>Replace</key>
|
||||||
|
<data>
|
||||||
|
FEcaWklOSQ==
|
||||||
|
</data>
|
||||||
|
<key>ReplaceMask</key>
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
<key>Skip</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>TableLength</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>TableSignature</key>
|
||||||
|
<data>
|
||||||
|
RFNEVA==
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>Comment</key>
|
||||||
|
<string>Battery: BAT0 to BATX</string>
|
||||||
|
<key>Count</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>Enabled</key>
|
||||||
|
<true/>
|
||||||
|
<key>Find</key>
|
||||||
|
<data>
|
||||||
|
hkJBVDA=
|
||||||
|
</data>
|
||||||
|
<key>Limit</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>Mask</key>
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
<key>OemTableId</key>
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
<key>Replace</key>
|
||||||
|
<data>
|
||||||
|
hkJBVFg=
|
||||||
|
</data>
|
||||||
|
<key>ReplaceMask</key>
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
<key>Skip</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>TableLength</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>TableSignature</key>
|
||||||
|
<data>
|
||||||
|
RFNEVA==
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>Comment</key>
|
<key>Comment</key>
|
||||||
<string>Battery: Change HWAC to XWAC EC reads</string>
|
<string>Battery: Change HWAC to XWAC EC reads</string>
|
||||||
|
@ -183,7 +245,7 @@
|
||||||
<true/>
|
<true/>
|
||||||
<key>Find</key>
|
<key>Find</key>
|
||||||
<data>
|
<data>
|
||||||
BkdQUlcCcA==
|
R1BSVwI=
|
||||||
</data>
|
</data>
|
||||||
<key>Limit</key>
|
<key>Limit</key>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
|
@ -195,7 +257,7 @@
|
||||||
</data>
|
</data>
|
||||||
<key>Replace</key>
|
<key>Replace</key>
|
||||||
<data>
|
<data>
|
||||||
BlpQUlcCcA==
|
WlBSVwI=
|
||||||
</data>
|
</data>
|
||||||
<key>ReplaceMask</key>
|
<key>ReplaceMask</key>
|
||||||
<data>
|
<data>
|
||||||
|
@ -246,14 +308,14 @@
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>Comment</key>
|
<key>Comment</key>
|
||||||
<string>XHC1: Notify(XHC_, 0x02) to XHC1</string>
|
<string>S3 Sleep: _PTS to ZPTS</string>
|
||||||
<key>Count</key>
|
<key>Count</key>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
<key>Enabled</key>
|
<key>Enabled</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>Find</key>
|
<key>Find</key>
|
||||||
<data>
|
<data>
|
||||||
hlhIQ18K
|
X1BUUw==
|
||||||
</data>
|
</data>
|
||||||
<key>Limit</key>
|
<key>Limit</key>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
|
@ -265,42 +327,7 @@
|
||||||
</data>
|
</data>
|
||||||
<key>Replace</key>
|
<key>Replace</key>
|
||||||
<data>
|
<data>
|
||||||
hlhIQzEK
|
WlBUUw==
|
||||||
</data>
|
|
||||||
<key>ReplaceMask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Skip</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableLength</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableSignature</key>
|
|
||||||
<data>
|
|
||||||
RFNEVA==
|
|
||||||
</data>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Comment</key>
|
|
||||||
<string>Thunderbolt 3: _L27 to XL27</string>
|
|
||||||
<key>Count</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Enabled</key>
|
|
||||||
<true/>
|
|
||||||
<key>Find</key>
|
|
||||||
<data>
|
|
||||||
X0wyNw==
|
|
||||||
</data>
|
|
||||||
<key>Limit</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Mask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>OemTableId</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Replace</key>
|
|
||||||
<data>
|
|
||||||
WEwyNw==
|
|
||||||
</data>
|
</data>
|
||||||
<key>ReplaceMask</key>
|
<key>ReplaceMask</key>
|
||||||
<data>
|
<data>
|
||||||
|
@ -388,41 +415,7 @@
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>Comment</key>
|
<key>Comment</key>
|
||||||
<string>Thunderbolt 3: _L6F to XL6F (Thunderbolt 3 Hotplug GPE)</string>
|
<string>Thunderbolt 3: RP09._INI to RP09.XINI for ICM disable</string>
|
||||||
<key>Count</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Enabled</key>
|
|
||||||
<true/>
|
|
||||||
<key>Find</key>
|
|
||||||
<data>
|
|
||||||
X0w2Rg==
|
|
||||||
</data>
|
|
||||||
<key>Limit</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Mask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>OemTableId</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Replace</key>
|
|
||||||
<data>
|
|
||||||
WEw2Rg==
|
|
||||||
</data>
|
|
||||||
<key>ReplaceMask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Skip</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableLength</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableSignature</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Comment</key>
|
|
||||||
<string>Thunderbolt 3: RP09._INI to RP09.XINI for ICM disable (ThunderboltReset.kext)</string>
|
|
||||||
<key>Count</key>
|
<key>Count</key>
|
||||||
<integer>1</integer>
|
<integer>1</integer>
|
||||||
<key>Enabled</key>
|
<key>Enabled</key>
|
||||||
|
@ -456,14 +449,14 @@
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>Comment</key>
|
<key>Comment</key>
|
||||||
<string>Thunderbolt 3: _PTS to ZPTS(1,N)</string>
|
<string>Thunderbolt 3: NTFY to XTFY</string>
|
||||||
<key>Count</key>
|
<key>Count</key>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
<key>Enabled</key>
|
<key>Enabled</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>Find</key>
|
<key>Find</key>
|
||||||
<data>
|
<data>
|
||||||
X1BUUwE=
|
FENHTlRGWQk=
|
||||||
</data>
|
</data>
|
||||||
<key>Limit</key>
|
<key>Limit</key>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
|
@ -475,7 +468,112 @@
|
||||||
</data>
|
</data>
|
||||||
<key>Replace</key>
|
<key>Replace</key>
|
||||||
<data>
|
<data>
|
||||||
WlBUUwE=
|
FENHWFRGWQk=
|
||||||
|
</data>
|
||||||
|
<key>ReplaceMask</key>
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
<key>Skip</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>TableLength</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>TableSignature</key>
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>Comment</key>
|
||||||
|
<string>XHC1: _UPC to XUPC</string>
|
||||||
|
<key>Count</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>Enabled</key>
|
||||||
|
<true/>
|
||||||
|
<key>Find</key>
|
||||||
|
<data>
|
||||||
|
X1VQQw==
|
||||||
|
</data>
|
||||||
|
<key>Limit</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>Mask</key>
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
<key>OemTableId</key>
|
||||||
|
<data>
|
||||||
|
UHJvalNzZHQ=
|
||||||
|
</data>
|
||||||
|
<key>Replace</key>
|
||||||
|
<data>
|
||||||
|
WFVQQw==
|
||||||
|
</data>
|
||||||
|
<key>ReplaceMask</key>
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
<key>Skip</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>TableLength</key>
|
||||||
|
<integer>6103</integer>
|
||||||
|
<key>TableSignature</key>
|
||||||
|
<data>
|
||||||
|
U1NEVA==
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>Comment</key>
|
||||||
|
<string>XHC1: _PS0 to XPS0</string>
|
||||||
|
<key>Count</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>Enabled</key>
|
||||||
|
<true/>
|
||||||
|
<key>Find</key>
|
||||||
|
<data>
|
||||||
|
FEIQX1BTMAg=
|
||||||
|
</data>
|
||||||
|
<key>Limit</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>Mask</key>
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
<key>OemTableId</key>
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
<key>Replace</key>
|
||||||
|
<data>
|
||||||
|
FEIQWFBTMAg=
|
||||||
|
</data>
|
||||||
|
<key>ReplaceMask</key>
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
<key>Skip</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>TableLength</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>TableSignature</key>
|
||||||
|
<data>
|
||||||
|
RFNEVA==
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>Comment</key>
|
||||||
|
<string>XHC1: _PS3 to XPS3</string>
|
||||||
|
<key>Count</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>Enabled</key>
|
||||||
|
<true/>
|
||||||
|
<key>Find</key>
|
||||||
|
<data>
|
||||||
|
FEY/X1BTMwg=
|
||||||
|
</data>
|
||||||
|
<key>Limit</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>Mask</key>
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
<key>OemTableId</key>
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
<key>Replace</key>
|
||||||
|
<data>
|
||||||
|
FEY/WFBTMwg=
|
||||||
</data>
|
</data>
|
||||||
<key>ReplaceMask</key>
|
<key>ReplaceMask</key>
|
||||||
<data>
|
<data>
|
||||||
|
@ -550,22 +648,58 @@
|
||||||
<dict>
|
<dict>
|
||||||
<key>Add</key>
|
<key>Add</key>
|
||||||
<dict>
|
<dict>
|
||||||
|
<key>PciRoot(0x0)/Pci(0x14,0x0)</key>
|
||||||
|
<dict>
|
||||||
|
<key>acpi-wake-type</key>
|
||||||
|
<data>
|
||||||
|
AQAAAA==
|
||||||
|
</data>
|
||||||
|
<key>device_type</key>
|
||||||
|
<string>USB controller</string>
|
||||||
|
<key>model</key>
|
||||||
|
<string>Sunrise Point-LP USB 3.0 xHCI Controller</string>
|
||||||
|
</dict>
|
||||||
|
<key>PciRoot(0x0)/Pci(0x1C,0x0)</key>
|
||||||
|
<dict>
|
||||||
|
<key>device_type</key>
|
||||||
|
<string>PCI bridge</string>
|
||||||
|
<key>model</key>
|
||||||
|
<string>Sunrise Point-LP PCI Express Root Port #1</string>
|
||||||
|
<key>reg-ltrovr</key>
|
||||||
|
<data>
|
||||||
|
AAQAAAAAAAA=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>PciRoot(0x0)/Pci(0x1C,0x4)</key>
|
||||||
|
<dict>
|
||||||
|
<key>device_type</key>
|
||||||
|
<string>PCI bridge</string>
|
||||||
|
<key>model</key>
|
||||||
|
<string>Sunrise Point-LP PCI Express Root Port #5</string>
|
||||||
|
<key>reg-ltrovr</key>
|
||||||
|
<data>
|
||||||
|
AAQAAAAAAAA=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>PciRoot(0x0)/Pci(0x1D,0x0)</key>
|
||||||
|
<dict>
|
||||||
|
<key>device_type</key>
|
||||||
|
<string>PCI bridge</string>
|
||||||
|
<key>model</key>
|
||||||
|
<string>Sunrise Point-LP PCI Express Root Port #9</string>
|
||||||
|
<key>reg-ltrovr</key>
|
||||||
|
<data>
|
||||||
|
AAQAAAAAAAA=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
<key>PciRoot(0x0)/Pci(0x1D,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)</key>
|
<key>PciRoot(0x0)/Pci(0x1D,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>ThunderboltUUID</key>
|
<key>ThunderboltUUID</key>
|
||||||
<data>
|
<data>
|
||||||
bYT/DabNYl2Vq0VgT/Xr3w==
|
bYT/DabNYl2Vq0VgT/Xr3w==
|
||||||
</data>
|
</data>
|
||||||
<key>built-in</key>
|
|
||||||
<data>
|
|
||||||
AA==
|
|
||||||
</data>
|
|
||||||
<key>device_type</key>
|
<key>device_type</key>
|
||||||
<string>Thunderbolt 3 Controller</string>
|
<string>System peripheral</string>
|
||||||
<key>linkDetails</key>
|
|
||||||
<data>
|
|
||||||
CAAAAAMAAAA=
|
|
||||||
</data>
|
|
||||||
<key>model</key>
|
<key>model</key>
|
||||||
<string>JHL6540 Thunderbolt 3 NHI (C step) [Alpine Ridge 4C 2016]</string>
|
<string>JHL6540 Thunderbolt 3 NHI (C step) [Alpine Ridge 4C 2016]</string>
|
||||||
</dict>
|
</dict>
|
||||||
|
@ -1037,24 +1171,6 @@
|
||||||
<key>PlistPath</key>
|
<key>PlistPath</key>
|
||||||
<string>Contents/Info.plist</string>
|
<string>Contents/Info.plist</string>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
|
||||||
<key>Arch</key>
|
|
||||||
<string>x86_64</string>
|
|
||||||
<key>BundlePath</key>
|
|
||||||
<string>ThunderboltReset.kext</string>
|
|
||||||
<key>Comment</key>
|
|
||||||
<string></string>
|
|
||||||
<key>Enabled</key>
|
|
||||||
<true/>
|
|
||||||
<key>ExecutablePath</key>
|
|
||||||
<string>Contents/MacOS/ThunderboltReset</string>
|
|
||||||
<key>MaxKernel</key>
|
|
||||||
<string></string>
|
|
||||||
<key>MinKernel</key>
|
|
||||||
<string></string>
|
|
||||||
<key>PlistPath</key>
|
|
||||||
<string>Contents/Info.plist</string>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
<dict>
|
||||||
<key>Arch</key>
|
<key>Arch</key>
|
||||||
<string>x86_64</string>
|
<string>x86_64</string>
|
||||||
|
@ -1337,6 +1453,8 @@
|
||||||
<dict>
|
<dict>
|
||||||
<key>Automatic</key>
|
<key>Automatic</key>
|
||||||
<true/>
|
<true/>
|
||||||
|
<key>CustomMemory</key>
|
||||||
|
<false/>
|
||||||
<key>Generic</key>
|
<key>Generic</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>AdviseWindows</key>
|
<key>AdviseWindows</key>
|
||||||
|
|
71
README.md
71
README.md
|
@ -1,8 +1,8 @@
|
||||||
# macOS on Thinkpad X1 Carbon 6th Generation, Model 20KH\*
|
# macOS on Thinkpad X1 Carbon 6th Generation, Model 20KH\*
|
||||||
|
|
||||||
[![macOS](https://img.shields.io/badge/macOS-Catalina-yellow.svg)](https://www.apple.com/macos/catalina/)
|
[![macOS](https://img.shields.io/badge/macOS-Big_Sur-yellow.svg)](https://www.apple.com/macos/catalina/)
|
||||||
[![version](https://img.shields.io/badge/10.15.7-yellow)](https://support.apple.com/en-us/HT210642)
|
[![version](https://img.shields.io/badge/11.0.1-yellow)](https://support.apple.com/en-us/HT210642)
|
||||||
[![BIOS](https://img.shields.io/badge/BIOS-1.45-blue)](https://pcsupport.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-x-series-laptops/thinkpad-x1-carbon-6th-gen-type-20kh-20kg/downloads/driver-list/component?name=BIOS%2FUEFI)
|
[![BIOS](https://img.shields.io/badge/BIOS-1.50-blue)](https://pcsupport.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-x-series-laptops/thinkpad-x1-carbon-6th-gen-type-20kh-20kg/downloads/driver-list/component?name=BIOS%2FUEFI)
|
||||||
[![MODEL](https://img.shields.io/badge/Model-20KH*-blue)](https://github.com/tylernguyen/x1c6-hackintosh/blob/master/docs/references/x1c6-Platform_Specifications.pdf)
|
[![MODEL](https://img.shields.io/badge/Model-20KH*-blue)](https://github.com/tylernguyen/x1c6-hackintosh/blob/master/docs/references/x1c6-Platform_Specifications.pdf)
|
||||||
[![OpenCore](https://img.shields.io/badge/OpenCore-0.6.3-green)](https://github.com/acidanthera/OpenCorePkg)
|
[![OpenCore](https://img.shields.io/badge/OpenCore-0.6.3-green)](https://github.com/acidanthera/OpenCorePkg)
|
||||||
[![LICENSE](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/996icu/996.ICU/blob/master/LICENSE)
|
[![LICENSE](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/996icu/996.ICU/blob/master/LICENSE)
|
||||||
|
@ -25,52 +25,23 @@
|
||||||
|
|
||||||
##### Recent | [Changelog Archive](https://github.com/tylernguyen/x1c6-hackintosh/blob/master/docs/CHANGELOG.md)
|
##### Recent | [Changelog Archive](https://github.com/tylernguyen/x1c6-hackintosh/blob/master/docs/CHANGELOG.md)
|
||||||
|
|
||||||
> ### 2020-11-3
|
> ### 2020-11-13
|
||||||
|
|
||||||
#### Changed
|
#### Changed
|
||||||
|
|
||||||
- OC to 0.6.3 and upgrade various Acidanthera kexts
|
- Upgraded to Big Sur
|
||||||
- Restructured docs: depricated legacy things and combined duplicates.
|
- Upgraded to BIOS-v1.50 and added corresponding ACPI dump.
|
||||||
- `YogaSMC` is now the preferred method to handle Fn keys instead of ThinkpadAssisstant.
|
- Upgraded `YogaSMC` to stable build `1.3.0`
|
||||||
- Note that `YogaSMC` is still in its infancy, so you still prefer ThinkpadAssistant, use `SSDT-Keyboard-Legacy.dsl` and `/patches/OpenCore Patches/ Keyboard-Legacy.plist`
|
- Compatibiltity and improvements on `SSDT-Battery`. Thanks @benbender
|
||||||
- Thank you @zhen-zen for the great kext and app.
|
- Experimental TB3 patch by @benbender:
|
||||||
- Updated `config.plsit`:
|
- Complete hotplug and power management without modded TB3 controller firmware
|
||||||
- Removed depricated ACPI renames in accordance with new ACPI patches.
|
- NOTE: Brokenb USB 3.1 Gen2 hotplug still, but everything else is amazing!
|
||||||
- Added `Arch` value to each kext entry in accordance with new OpenCore doc.
|
- Everyone thanks @benbender again! This would not have been possible without his hard work and research.
|
||||||
- Added Thunderbolt 3 Device Properties.
|
|
||||||
- Added `ExtendBTFeatureFlags` value to replace `BT4LEContinuityFixup`
|
|
||||||
- Reorganized subdirectories within `/patches/` to make things easier to find and understand.
|
|
||||||
- Renamed `3_README-POSTinstallation.md` to `SUMMARY.md` since it's not really a step but more of an overview of what patches what.
|
|
||||||
- More readble and better writing of `SSDT-Keyboard`
|
|
||||||
- New `SSDT-PNLF` to accomodate `AppleBacklightSmoother.kext`
|
|
||||||
- New battery patch `SSDT-Battery` that fixes accesses to 16byte-EC-field HWAC (Issue #82).
|
|
||||||
- `SSDT-Sleep` is an all-in-one sleep patch over `SSDT-PTSWAK`, `SSDT-GPRW`, `SSDT-EXT*`
|
|
||||||
- It is no longer necessary to set sleep mode to `Linux` in BIOS as it is now indepently set by `SSDT-Sleep`
|
|
||||||
- `If (_OSI ("Darwin"))` and `SSDT-DTPG` are now replaced in favor of `SSDT-Darwin` and `OSDW`, just like in genuine Macs.
|
|
||||||
- Removed `USBPorts.kext` in favor of patching/mapping via ACPI with `SSDT-XHC1`, `SSDT-XHC2`, and `SSDT-USBX`
|
|
||||||
- `README.md`:
|
|
||||||
- Turned different sections into menus for better readability.
|
|
||||||
- Merged `3_README-POSTinstallation.md` into the `SUMMARY` section.
|
|
||||||
- Set `HibernateMode` to `NVRAM` instead of `Auto`
|
|
||||||
|
|
||||||
#### Added
|
|
||||||
|
|
||||||
- `update.sh` script to automatically build and replace all ACPI patches
|
|
||||||
- `SSDT-HWAC` to patch access to 16byte-EC-field HWAC
|
|
||||||
- `SSDT-EC` to patch embedded controller for use with `YogaSMC`
|
|
||||||
- `SSDT-Debug`, `SSDT-HOOKS`, and `Debug.plist` for debugging if needed
|
|
||||||
- `SSDT-INIT` to configure system values: `HPET`, `DYTC`, and `DPTF`
|
|
||||||
- `YogaSMC.kext` to interface with the device's EC. Make sure to also install the [app and pref pane](https://github.com/zhen-zen/YogaSMC/releases).
|
|
||||||
- `AppleBacklightSmoother.kext` is just as its name implies.
|
|
||||||
- `BrightnessKeys.kext` to handle Fn keys with ACPI renames.
|
|
||||||
- Documentation of modding the Thunderbolt 3 controller.
|
|
||||||
|
|
||||||
#### Removed
|
#### Removed
|
||||||
|
- Deprecated legacy keyboard patches. `YogaSMC` is now recommended and preferred.
|
||||||
- `SSDT-HPET`, similar to genuine Macs, HPET is now disabled within `SSDT-INIT`
|
- `TbtForcePower.efi` as it is no longer needed.
|
||||||
|
- `ThunderboltReset.kext` has it is no longer needed.
|
||||||
#### Remark
|
|
||||||
- A large of these changes are due to the hardwork of [@benbender](https://github.com/benbender), who debugged and authored many of the new ACPI patches. Thank you for your hard work!
|
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary><strong> SUMMARY </strong></summary>
|
<summary><strong> SUMMARY </strong></summary>
|
||||||
|
@ -112,13 +83,9 @@
|
||||||
| 4K UHD output via HDMI/ DisplayPort **(Modded BIOS)** | ✅ | See `DMVT Pre-Allocated` to `64M` | See [docs/1_README-HARDWAREandBIOS.md](https://github.com/tylernguyen/x1c6-hackintosh/blob/master/docs/1_README-HARDWAREandBIOS.md) for information about modding the BIOS. |
|
| 4K UHD output via HDMI/ DisplayPort **(Modded BIOS)** | ✅ | See `DMVT Pre-Allocated` to `64M` | See [docs/1_README-HARDWAREandBIOS.md](https://github.com/tylernguyen/x1c6-hackintosh/blob/master/docs/1_README-HARDWAREandBIOS.md) for information about modding the BIOS. |
|
||||||
| 4K UHD output via HDMI/ DisplayPort **(Vanilla BIOS)** | ✅ | See `/patches/OpenCore Patches/4K-Output-wo-BIOSmod.plist` | - |
|
| 4K UHD output via HDMI/ DisplayPort **(Vanilla BIOS)** | ✅ | See `/patches/OpenCore Patches/4K-Output-wo-BIOSmod.plist` | - |
|
||||||
| USB 2.0, USB 3.0, and Micro SD Card Reader | ✅ | `SSDT-XHC1.aml` | - |
|
| USB 2.0, USB 3.0, and Micro SD Card Reader | ✅ | `SSDT-XHC1.aml` | - |
|
||||||
| USB 3.1 | ⚠️ | `SSDT-XHC2.aml` | - |
|
| USB 3.1 | ⚠️ | `SSDT-XHC2.aml` | Hotplug WIP |
|
||||||
| USB Power Properties in macOS | ✅ | `SSDT-USBX.aml` | - |
|
| USB Power Properties in macOS | ✅ | `SSDT-USBX.aml` | - |
|
||||||
| Thunderbolt 3 **(Cold Boot)** | ✅ | `SSDT-TB3.aml`, | TB3 device must be plugged in before boot. |
|
| Thunderbolt 3 Hotplug | ✅ | `SSDT-TB3.aml` | Native interface within System Report |
|
||||||
| Thunderbolt 3 Hotplug **(Modded Controller and BIOS)** | ⚠️ | `SSDT-TB3.aml` | [3_README-other.md](https://github.com/tylernguyen/x1c6-hackintosh/blob/master/docs/3_README-other.md), [Issue #24](https://github.com/tylernguyen/x1c6-hackintosh/issues/24#issuecomment-603183002) |
|
|
||||||
| Thunderbolt 3 Hotplug **(Modded Controller and Vanilla BIOS)** | ⚠️ | `SSDT-TB3.aml` | [3_README-other.md](https://github.com/tylernguyen/x1c6-hackintosh/blob/master/docs/3_README-other.md),[Issue #24](https://github.com/tylernguyen/x1c6-hackintosh/issues/24) |
|
|
||||||
| Thunderbolt 3 Hotplug **(Vanilla Controller and Modded BIOS)** | ⚠️ | `SSDT-TB3.aml`, `ThunderboltReset.kext`, `GPIO3 Force Pwr` and `GPIO3 Force Pwr for PR05` checked in BIOS | [3_README-other.md](https://github.com/tylernguyen/x1c6-hackintosh/blob/master/docs/3_README-other.md),[Issue #24](https://github.com/tylernguyen/x1c6-hackintosh/issues/24) |
|
|
||||||
| Thunderbolt 3 Hotplug **(Vanilla Controller and BIOS)** | ⚠️ | `SSDT-TB3.aml`, `ThunderboltReset.kext`, and `TbtForcePower.efi` | [3_README-other.md](https://github.com/tylernguyen/x1c6-hackintosh/blob/master/docs/3_README-other.md),[Issue #24](https://github.com/tylernguyen/x1c6-hackintosh/issues/24) |
|
|
||||||
|
|
||||||
> ### Display, TrackPad, TrackPoint, and Keyboard
|
> ### Display, TrackPad, TrackPoint, and Keyboard
|
||||||
| Feature | Status | Dependency | Remarks |
|
| Feature | Status | Dependency | Remarks |
|
||||||
|
@ -126,9 +93,9 @@
|
||||||
| Brightness Adjustments | ✅ | `WhateverGreen.kext`, `SSDT-PNLF.aml`, `AppleBacklightSmoother.kext`, and `BrightnessKeys.kext`| `AppleBacklightSmoother.kext` is optional for smoother birghtness adjustments |
|
| Brightness Adjustments | ✅ | `WhateverGreen.kext`, `SSDT-PNLF.aml`, `AppleBacklightSmoother.kext`, and `BrightnessKeys.kext`| `AppleBacklightSmoother.kext` is optional for smoother birghtness adjustments |
|
||||||
| HiDPI _(Optional)_ | ✅ | [xzhih/one-key-hidpi](https://github.com/xzhih/one-key-hidpi) | Scaling issues post-sleep fixed with AAPL, ig-platform `BAAnWQ==` |
|
| HiDPI _(Optional)_ | ✅ | [xzhih/one-key-hidpi](https://github.com/xzhih/one-key-hidpi) | Scaling issues post-sleep fixed with AAPL, ig-platform `BAAnWQ==` |
|
||||||
| TrackPoint | ✅ | `VoodooPS2Controller.kext` | - |
|
| TrackPoint | ✅ | `VoodooPS2Controller.kext` | - |
|
||||||
| TrackPad | ✅ | `VoodooPS2Controller.kext` or `VoodooSMBus.kext` and `VoodooRMI.kext` | I prefer `VoodooRMI.kext` so that is the repository default. |
|
| TrackPad | ✅ | `VoodooPS2Controller.kext` or `VoodooSMBus.kext` and `VoodooRMI.kext` | `VoodooRMI.kext` is recommended and preferred over `VoodooPS2`. |
|
||||||
| Built-in Keyboard | ✅ | `VoodooPS2Controller.kext` | Optimizations recommended, see [`docs/3_README-other.md`](https://github.com/tylernguyen/x1c6-hackintosh/blob/master/docs/3_README-other.md) |
|
| Built-in Keyboard | ✅ | `VoodooPS2Controller.kext` | Optimizations recommended, see [`docs/3_README-other.md`](https://github.com/tylernguyen/x1c6-hackintosh/blob/master/docs/3_README-other.md) |
|
||||||
| Multimedia Keys | ✅ | `BrightnessKeys.kext` and [YogaSMC](https://github.com/zhen-zen/YogaSMC) or [ThinkpadAssistant](https://github.com/MSzturc/ThinkpadAssistant) with legacy patches | YogaSMC is the repo default, `SSDT-Keyboard-Legacy.aml`, `patches/OpenCore Patches/ Keyboard-Legacy.plist` if you want to use [ThinkpadAssistant](https://github.com/MSzturc/ThinkpadAssistant) instead |
|
| Multimedia Keys | ✅ | `BrightnessKeys.kext` and [YogaSMC](https://github.com/zhen-zen/YogaSMC) | `YogaSMC` is recommended and preferred over ThinkpadAssisstant |
|
||||||
|
|
||||||
> ### macOS Continuity
|
> ### macOS Continuity
|
||||||
| Feature | Status | Dependency | Remarks |
|
| Feature | Status | Dependency | Remarks |
|
||||||
|
|
|
@ -54,7 +54,7 @@ At the minimum, these BIOS settings must be made to install and run macOS withou
|
||||||
| Main Menu | Sub 1 | Sub 2 | Sub 3 |
|
| Main Menu | Sub 1 | Sub 2 | Sub 3 |
|
||||||
| --------- | ----------- | --------------------------------------------- | ------------------------------------------------------------------ |
|
| --------- | ----------- | --------------------------------------------- | ------------------------------------------------------------------ |
|
||||||
| | >> Config | >> Thunderbolt (TM) 3 | Thunderbolt BIOS Assist Mode `Disabled` |
|
| | >> Config | >> Thunderbolt (TM) 3 | Thunderbolt BIOS Assist Mode `Disabled` |
|
||||||
| | | | Thunderbolt(TM) Device `Enabled` |
|
| | | | Thunderbolt(TM) Device `Disabled` |
|
||||||
|
|
||||||
|
|
||||||
> ## Modding the BIOS:
|
> ## Modding the BIOS:
|
||||||
|
@ -121,29 +121,3 @@ The following are further optimization settings that can be figured once your BI
|
||||||
| Advanced Tab | >> Power & Performance | >> CPU - Power Management Control | Boot performance mode `Max Battery` | |
|
| Advanced Tab | >> Power & Performance | >> CPU - Power Management Control | Boot performance mode `Max Battery` | |
|
||||||
| | | | >> Config TDP Configurations | `Down` |
|
| | | | >> Config TDP Configurations | `Down` |
|
||||||
| | | | | |
|
| | | | | |
|
||||||
* If you do do want to use Thunderbolt 3 hotplug on macOS (at the expense of idle power consumption):
|
|
||||||
|
|
||||||
| Main Menu | Sub 1 | Sub 2 | Sub 3 |
|
|
||||||
|--------------|------------------------|------------------------------------|------------------------------------------------------------------------|
|
|
||||||
| Advanced Tab | >> Intel Advanced Menu | >> Thunderbolt(TM) Configuration | GPIO3 Force Pwr `Checked` |
|
|
||||||
| | | | GPIO3 Force Pwr for PR05 `Checked` |
|
|
||||||
| | | | |
|
|
||||||
|
|
||||||
* Native macOS Thunderbolt interfacing, at the expense of TB3 hotplugging on other OSes:
|
|
||||||
If macOS is your only OS on the machine, or if you only need to use Thunderbolt 3 hotplug on macOS. There is a custom modded firmware that can be flashed onto the Thunderbolt 3 controller that allows for native Thunderbolt interfacing in macOS:
|
|
||||||
https://www.tonymacx86.com/threads/success-gigabyte-designare-z390-thunderbolt-3-i7-9700k-amd-rx-580.267551/page-2452#post-2160674
|
|
||||||
|
|
||||||
- Screenshot/testing courtesy of @nottthebee
|
|
||||||
* The Thunderbolt chip is located on the top right of the motherboard.
|
|
||||||
* A note before you do this, however, the modded thunderbolt firmware will still require that you disable Thunderbolt BIOS assist, so again, TB3 hotplug will come at the cost of power consumption.
|
|
||||||
* Secondly, as far as I can tell, this mod is really to make things look cleaner and more native within macOS, and doesn't have any real improvements versus the TB3 method currently in this repo.
|
|
||||||
|
|
||||||
> ## Modding the Thunderbolt 3 Controller:
|
|
||||||
The `Intel JHL6540 (Alpine Ridge 4C)` TB3 chip is labeled as `Winbond` and `W25Q80DVS` is located on the top right of the motherboard.
|
|
||||||
|
|
||||||
- Download [macOS compatible firmware](https://www.tonymacx86.com/attachments/lenovo-x1-carbon-nvm-43-mod-1-caseysj-bin-zip.483524/)
|
|
||||||
- Again, [@notthebee](https://github.com/notthebee) also has a useful video to follow: https://www.youtube.com/watch?v=ce7kqUEccUM
|
|
||||||
- Remember to dump the vanilla twice and use `diff` to make sure things were dumped properly, store this backup somewhere safe.
|
|
||||||
- Once the vanilla firmware has been safely dumped and backed up, you can flash the custom firmware onto the controller.
|
|
||||||
- Successfully modding your Thunderbolt 3 controller can be confirmed via macOS's System Report:
|
|
||||||
<img align="center" src="https://user-images.githubusercontent.com/30384331/89741356-2a62ab80-da80-11ea-8c76-e1f3aaa1d41d.png" alt="macOS native TB3" width="300">
|
|
|
@ -35,35 +35,13 @@
|
||||||
- See current available patches in `/patches/Internal Displays/`, merge them with `config.plist`
|
- See current available patches in `/patches/Internal Displays/`, merge them with `config.plist`
|
||||||
- If a patch is not yet created for your display model. Please see [Issue #60](https://github.com/tylernguyen/x1c6-hackintosh/issues/60) to create your own EDID override. Please create a pull request to add your EDID override for different displays.
|
- If a patch is not yet created for your display model. Please see [Issue #60](https://github.com/tylernguyen/x1c6-hackintosh/issues/60) to create your own EDID override. Please create a pull request to add your EDID override for different displays.
|
||||||
|
|
||||||
> ## Thunderbolt 3 Hotplug a.k.a The Big Boss (Work in Progress):
|
> ## Thunderbolt 3 Hotplug
|
||||||
|
|
||||||
Summary, TB3 hotplug works perfectly, but with some caveats:
|
- Native-like integration with macOS in System Report without the need of flashing a modded firmware. Thank you @benbender
|
||||||
- Firstly, refer to [docs/1_README-HARDWAREandBIOS.md](https://github.com/tylernguyen/x1c6-hackintosh/blob/master/docs/1_README-HARDWAREandBIOS.md) for BIOS configurations having to do with TB3 hotplug.
|
- Please make sure of these settings in BIOS:
|
||||||
- `Thunderbolt BIOS Assist` needs to be disabled which raises idle CPU power consumption to 2W as opposed to ~0.8W with the option enabled.
|
- Thunderbolt BIOS Assist Mode `Disabled`
|
||||||
- See the ongoing issue/discussion [Issue #24](https://github.com/tylernguyen/x1c6-hackintosh/issues/24)
|
- Thunderbolt(TM) Device `Disabled`
|
||||||
|
- USB 3.1 Gen2 hotplug still WIP.
|
||||||
With those done, there are two scenarios:
|
|
||||||
- You want to use TB3 hotplug on both macOS and another OS, such as Linux or Windows. In this case, stick with the current TB3 hotplug setup in this repo. As my repo is currently designed around compatibility with other OSes as I need Windows for work.
|
|
||||||
- You only need TB3 hotplug on macOS. In this case, it is possible to reflash the Thunderbolt controller chip on the machine with a modded firmware designed to allow native Thunderbolt interfacing with macOS. See [docs/1_README-HARDWAREandBIOS.md](https://github.com/tylernguyen/x1c6-hackintosh/blob/master/docs/1_README-HARDWAREandBIOS.md).
|
|
||||||
|
|
||||||
With Thunderbolt 3 Hotplug, these are the possible scenarios:
|
|
||||||
- **Modded Controller and BIOS:**
|
|
||||||
- No additional kexts or drivers needed. (You can remove TB3 related kexts and drivers from your EFI)
|
|
||||||
- TB3 Hotplug will work natively in macOS.
|
|
||||||
- TB3 Hotplug will NOT work in Windows or other OS'es.
|
|
||||||
- **Modded Controller and Vanilla BIOS:**
|
|
||||||
- No additional kexts or drivers needed. (You can remove TB3 related kexts and drivers from your EFI)
|
|
||||||
- TB3 Hotplug will work natively in macOS.
|
|
||||||
- TB3 Hotplug will NOT work in Windows or other OS'es.
|
|
||||||
- **Vanilla Controller and Modded BIOS:**
|
|
||||||
- Use `ThunderboltReset.kext`
|
|
||||||
- Use modded BIOS to force power on `PR09` and `PR05`
|
|
||||||
- **Vanilla Controller and BIOS:**
|
|
||||||
- Use `ThunderboltReset.kext` and `TbtForcePower.efi`
|
|
||||||
- Hotplug will not work on Power port (`PR05`)
|
|
||||||
|
|
||||||
- Regardless, current TB3 hotplug implementations are not perfect. Current conflicts include getting USB 3.1 gen2, pm, tb - in osx + win all working at the same time.
|
|
||||||
For a more detailed, and better explaination, refer to [osy86's Thunderbolt Hotplug Docs](https://github.com/osy86/HaC-Mini/tree/master/details)
|
|
||||||
|
|
||||||
> ## Keyboard:
|
> ## Keyboard:
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,24 @@
|
||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||||
|
|
||||||
|
> ### 2020-11-13
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
|
||||||
|
- Upgraded to Big Sur
|
||||||
|
- Upgraded to BIOS-v1.50 and added corresponding ACPI dump.
|
||||||
|
- Upgraded `YogaSMC` to stable build `1.3.0`
|
||||||
|
- Compatibiltity and improvements on `SSDT-Battery`. Thanks @benbender
|
||||||
|
- Experimental TB3 patch by @benbender:
|
||||||
|
- Complete hotplug and power management without modded TB3 controller firmware
|
||||||
|
- NOTE: Brokenb USB 3.1 Gen2 hotplug still, but everything else is amazing!
|
||||||
|
- Everyone thanks @benbender again! This would not have been possible without his hard work and research.
|
||||||
|
|
||||||
|
#### Removed
|
||||||
|
- Deprecated legacy keyboard patches. `YogaSMC` is now recommended and preferred.
|
||||||
|
- `TbtForcePower.efi` as it is no longer needed.
|
||||||
|
- `ThunderboltReset.kext` has it is no longer needed.
|
||||||
|
|
||||||
> ### 2020-11-3
|
> ### 2020-11-3
|
||||||
|
|
||||||
#### Changed
|
#### Changed
|
||||||
|
|
|
@ -1,139 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>ACPI</key>
|
|
||||||
<dict>
|
|
||||||
<key>Patch</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Comment</key>
|
|
||||||
<string>TP-BAT:GBIF03 to XBIF03</string>
|
|
||||||
<key>Count</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Enabled</key>
|
|
||||||
<true/>
|
|
||||||
<key>Find</key>
|
|
||||||
<data>
|
|
||||||
R0JJRgM=
|
|
||||||
</data>
|
|
||||||
<key>Limit</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Mask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>OemTableId</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Replace</key>
|
|
||||||
<data>
|
|
||||||
WEJJRgM=
|
|
||||||
</data>
|
|
||||||
<key>ReplaceMask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Skip</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableLength</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Comment</key>
|
|
||||||
<string>TP-BAT:GBIX03 to XBIX03</string>
|
|
||||||
<key>Count</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Enabled</key>
|
|
||||||
<true/>
|
|
||||||
<key>Find</key>
|
|
||||||
<data>
|
|
||||||
R0JJWAM=
|
|
||||||
</data>
|
|
||||||
<key>Limit</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Mask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>OemTableId</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Replace</key>
|
|
||||||
<data>
|
|
||||||
WEJJWAM=
|
|
||||||
</data>
|
|
||||||
<key>ReplaceMask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Skip</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableLength</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Comment</key>
|
|
||||||
<string>TP-BAT:GBST04 to XBST04</string>
|
|
||||||
<key>Count</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Enabled</key>
|
|
||||||
<true/>
|
|
||||||
<key>Find</key>
|
|
||||||
<data>
|
|
||||||
R0JTVAQ=
|
|
||||||
</data>
|
|
||||||
<key>Limit</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Mask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>OemTableId</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Replace</key>
|
|
||||||
<data>
|
|
||||||
WEJTVAQ=
|
|
||||||
</data>
|
|
||||||
<key>ReplaceMask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Skip</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableLength</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Comment</key>
|
|
||||||
<string>TP-BAT:AJTP03 to XJTP03</string>
|
|
||||||
<key>Count</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Enabled</key>
|
|
||||||
<true/>
|
|
||||||
<key>Find</key>
|
|
||||||
<data>
|
|
||||||
QUpUUAM=
|
|
||||||
</data>
|
|
||||||
<key>Limit</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Mask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>OemTableId</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Replace</key>
|
|
||||||
<data>
|
|
||||||
WEpUUAM=
|
|
||||||
</data>
|
|
||||||
<key>ReplaceMask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Skip</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableLength</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableSignature</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
47
patches/OpenCore Patches/Battery.plist
Normal file
47
patches/OpenCore Patches/Battery.plist
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>ACPI</key>
|
||||||
|
<dict>
|
||||||
|
<key>Patch</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>Comment</key>
|
||||||
|
<string>Battery: BAT0 to BATX</string>
|
||||||
|
<key>Count</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>Enabled</key>
|
||||||
|
<true/>
|
||||||
|
<key>Find</key>
|
||||||
|
<data>
|
||||||
|
hkJBVDA=
|
||||||
|
</data>
|
||||||
|
<key>Limit</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>Mask</key>
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
<key>OemTableId</key>
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
<key>Replace</key>
|
||||||
|
<data>
|
||||||
|
hkJBVFg=
|
||||||
|
</data>
|
||||||
|
<key>ReplaceMask</key>
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
<key>Skip</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>TableLength</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>TableSignature</key>
|
||||||
|
<data>
|
||||||
|
RFNEVA==
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
47
patches/OpenCore Patches/INIT.plist
Normal file
47
patches/OpenCore Patches/INIT.plist
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>ACPI</key>
|
||||||
|
<dict>
|
||||||
|
<key>Patch</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>Comment</key>
|
||||||
|
<string>INIT: OINIT to ZINI</string>
|
||||||
|
<key>Count</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>Enabled</key>
|
||||||
|
<true/>
|
||||||
|
<key>Find</key>
|
||||||
|
<data>
|
||||||
|
FEcaT0lOSQ==
|
||||||
|
</data>
|
||||||
|
<key>Limit</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>Mask</key>
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
<key>OemTableId</key>
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
<key>Replace</key>
|
||||||
|
<data>
|
||||||
|
FEcaWklOSQ==
|
||||||
|
</data>
|
||||||
|
<key>ReplaceMask</key>
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
<key>Skip</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>TableLength</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>TableSignature</key>
|
||||||
|
<data>
|
||||||
|
RFNEVA==
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
|
@ -1,397 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>ACPI</key>
|
|
||||||
<dict>
|
|
||||||
<key>Add</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Comment</key>
|
|
||||||
<string>Thinkpad Keyboard (Need x1c6-keyboard.plist)</string>
|
|
||||||
<key>Enabled</key>
|
|
||||||
<true/>
|
|
||||||
<key>Path</key>
|
|
||||||
<string>SSDT-Keyboard.aml</string>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>Patch</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Comment</key>
|
|
||||||
<string>_Q6A to XQ6A (F4 - Microphone Mute)</string>
|
|
||||||
<key>Count</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>Enabled</key>
|
|
||||||
<true/>
|
|
||||||
<key>Find</key>
|
|
||||||
<data>
|
|
||||||
X1E2QQ==
|
|
||||||
</data>
|
|
||||||
<key>Limit</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Mask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>OemTableId</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Replace</key>
|
|
||||||
<data>
|
|
||||||
WFE2QQ==
|
|
||||||
</data>
|
|
||||||
<key>ReplaceMask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Skip</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableLength</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableSignature</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Comment</key>
|
|
||||||
<string>_Q15 to XQ15 (F5 - Brightness Down)</string>
|
|
||||||
<key>Count</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>Enabled</key>
|
|
||||||
<true/>
|
|
||||||
<key>Find</key>
|
|
||||||
<data>
|
|
||||||
X1ExNQ==
|
|
||||||
</data>
|
|
||||||
<key>Limit</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Mask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>OemTableId</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Replace</key>
|
|
||||||
<data>
|
|
||||||
WFExNQ==
|
|
||||||
</data>
|
|
||||||
<key>ReplaceMask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Skip</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableLength</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableSignature</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Comment</key>
|
|
||||||
<string>_Q14 to XQ14 (F6 - Brightness Up)</string>
|
|
||||||
<key>Count</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>Enabled</key>
|
|
||||||
<true/>
|
|
||||||
<key>Find</key>
|
|
||||||
<data>
|
|
||||||
X1ExNA==
|
|
||||||
</data>
|
|
||||||
<key>Limit</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Mask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>OemTableId</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Replace</key>
|
|
||||||
<data>
|
|
||||||
WFExNA==
|
|
||||||
</data>
|
|
||||||
<key>ReplaceMask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Skip</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableLength</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableSignature</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Comment</key>
|
|
||||||
<string>_Q16 to XQ16 (F7 - Dual Display)</string>
|
|
||||||
<key>Count</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>Enabled</key>
|
|
||||||
<true/>
|
|
||||||
<key>Find</key>
|
|
||||||
<data>
|
|
||||||
X1ExNg==
|
|
||||||
</data>
|
|
||||||
<key>Limit</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Mask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>OemTableId</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Replace</key>
|
|
||||||
<data>
|
|
||||||
WFExNg==
|
|
||||||
</data>
|
|
||||||
<key>ReplaceMask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Skip</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableLength</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableSignature</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Comment</key>
|
|
||||||
<string>_Q64 to XQ64 (F8 - Network)</string>
|
|
||||||
<key>Count</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>Enabled</key>
|
|
||||||
<true/>
|
|
||||||
<key>Find</key>
|
|
||||||
<data>
|
|
||||||
X1E2NA==
|
|
||||||
</data>
|
|
||||||
<key>Limit</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Mask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>OemTableId</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Replace</key>
|
|
||||||
<data>
|
|
||||||
WFE2NA==
|
|
||||||
</data>
|
|
||||||
<key>ReplaceMask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Skip</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableLength</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableSignature</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Comment</key>
|
|
||||||
<string>_Q66 to XQ66 (F9 - Settings)</string>
|
|
||||||
<key>Count</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>Enabled</key>
|
|
||||||
<true/>
|
|
||||||
<key>Find</key>
|
|
||||||
<data>
|
|
||||||
X1E2Ng==
|
|
||||||
</data>
|
|
||||||
<key>Limit</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Mask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>OemTableId</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Replace</key>
|
|
||||||
<data>
|
|
||||||
WFE2Ng==
|
|
||||||
</data>
|
|
||||||
<key>ReplaceMask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Skip</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableLength</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableSignature</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Comment</key>
|
|
||||||
<string>_Q60 to XQ60 (F10 - Bluetooth)</string>
|
|
||||||
<key>Count</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>Enabled</key>
|
|
||||||
<true/>
|
|
||||||
<key>Find</key>
|
|
||||||
<data>
|
|
||||||
X1E2MA==
|
|
||||||
</data>
|
|
||||||
<key>Limit</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Mask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>OemTableId</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Replace</key>
|
|
||||||
<data>
|
|
||||||
WFE2MA==
|
|
||||||
</data>
|
|
||||||
<key>ReplaceMask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Skip</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableLength</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableSignature</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Comment</key>
|
|
||||||
<string>_Q61 to XQ61 (F11 - Keyboard)</string>
|
|
||||||
<key>Count</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>Enabled</key>
|
|
||||||
<true/>
|
|
||||||
<key>Find</key>
|
|
||||||
<data>
|
|
||||||
X1E2MQ==
|
|
||||||
</data>
|
|
||||||
<key>Limit</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Mask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>OemTableId</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Replace</key>
|
|
||||||
<data>
|
|
||||||
WFE2MQ==
|
|
||||||
</data>
|
|
||||||
<key>ReplaceMask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Skip</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableLength</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableSignature</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Comment</key>
|
|
||||||
<string>_Q62 to XQ62 (F12 - Star)</string>
|
|
||||||
<key>Count</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>Enabled</key>
|
|
||||||
<true/>
|
|
||||||
<key>Find</key>
|
|
||||||
<data>
|
|
||||||
X1E2Mg==
|
|
||||||
</data>
|
|
||||||
<key>Limit</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Mask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>OemTableId</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Replace</key>
|
|
||||||
<data>
|
|
||||||
WFE2Mg==
|
|
||||||
</data>
|
|
||||||
<key>ReplaceMask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Skip</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableLength</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableSignature</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Comment</key>
|
|
||||||
<string>_Q1F to XQ1F (Keyboard backlight - Fn + Space)</string>
|
|
||||||
<key>Count</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>Enabled</key>
|
|
||||||
<true/>
|
|
||||||
<key>Find</key>
|
|
||||||
<data>
|
|
||||||
X1ExRg==
|
|
||||||
</data>
|
|
||||||
<key>Limit</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Mask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>OemTableId</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Replace</key>
|
|
||||||
<data>
|
|
||||||
WFExRg==
|
|
||||||
</data>
|
|
||||||
<key>ReplaceMask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Skip</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableLength</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableSignature</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>Comment</key>
|
|
||||||
<string>_Q74 to XQ74 (FnLock - Fn + Esc)</string>
|
|
||||||
<key>Count</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>Enabled</key>
|
|
||||||
<true/>
|
|
||||||
<key>Find</key>
|
|
||||||
<data>
|
|
||||||
X1E3NA==
|
|
||||||
</data>
|
|
||||||
<key>Limit</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Mask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>OemTableId</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Replace</key>
|
|
||||||
<data>
|
|
||||||
WFE3NA==
|
|
||||||
</data>
|
|
||||||
<key>ReplaceMask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Skip</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableLength</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableSignature</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
|
@ -14,23 +14,32 @@
|
||||||
<key>Enabled</key>
|
<key>Enabled</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>Find</key>
|
<key>Find</key>
|
||||||
<data>BkdQUlcCcA==</data>
|
<data>
|
||||||
|
R1BSVwI=
|
||||||
|
</data>
|
||||||
<key>Limit</key>
|
<key>Limit</key>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
<key>Mask</key>
|
<key>Mask</key>
|
||||||
<data></data>
|
<data>
|
||||||
|
</data>
|
||||||
<key>OemTableId</key>
|
<key>OemTableId</key>
|
||||||
<data></data>
|
<data>
|
||||||
|
</data>
|
||||||
<key>Replace</key>
|
<key>Replace</key>
|
||||||
<data>BlpQUlcCcA==</data>
|
<data>
|
||||||
|
WlBSVwI=
|
||||||
|
</data>
|
||||||
<key>ReplaceMask</key>
|
<key>ReplaceMask</key>
|
||||||
<data></data>
|
<data>
|
||||||
|
</data>
|
||||||
<key>Skip</key>
|
<key>Skip</key>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
<key>TableLength</key>
|
<key>TableLength</key>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
<key>TableSignature</key>
|
<key>TableSignature</key>
|
||||||
<data>RFNEVA==</data>
|
<data>
|
||||||
|
RFNEVA==
|
||||||
|
</data>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>Comment</key>
|
<key>Comment</key>
|
||||||
|
@ -40,23 +49,67 @@
|
||||||
<key>Enabled</key>
|
<key>Enabled</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>Find</key>
|
<key>Find</key>
|
||||||
<data>X1dBSwk=</data>
|
<data>
|
||||||
|
X1dBSwk=
|
||||||
|
</data>
|
||||||
<key>Limit</key>
|
<key>Limit</key>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
<key>Mask</key>
|
<key>Mask</key>
|
||||||
<data></data>
|
<data>
|
||||||
|
</data>
|
||||||
<key>OemTableId</key>
|
<key>OemTableId</key>
|
||||||
<data></data>
|
<data>
|
||||||
|
</data>
|
||||||
<key>Replace</key>
|
<key>Replace</key>
|
||||||
<data>WldBSwk=</data>
|
<data>
|
||||||
|
WldBSwk=
|
||||||
|
</data>
|
||||||
<key>ReplaceMask</key>
|
<key>ReplaceMask</key>
|
||||||
<data></data>
|
<data>
|
||||||
|
</data>
|
||||||
<key>Skip</key>
|
<key>Skip</key>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
<key>TableLength</key>
|
<key>TableLength</key>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
<key>TableSignature</key>
|
<key>TableSignature</key>
|
||||||
<data>RFNEVA==</data>
|
<data>
|
||||||
|
RFNEVA==
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>Comment</key>
|
||||||
|
<string>S3 Sleep: _PTS to ZPTS</string>
|
||||||
|
<key>Count</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>Enabled</key>
|
||||||
|
<true/>
|
||||||
|
<key>Find</key>
|
||||||
|
<data>
|
||||||
|
X1BUUw==
|
||||||
|
</data>
|
||||||
|
<key>Limit</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>Mask</key>
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
<key>OemTableId</key>
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
<key>Replace</key>
|
||||||
|
<data>
|
||||||
|
WlBUUw==
|
||||||
|
</data>
|
||||||
|
<key>ReplaceMask</key>
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
<key>Skip</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>TableLength</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>TableSignature</key>
|
||||||
|
<data>
|
||||||
|
RFNEVA==
|
||||||
|
</data>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
|
|
|
@ -6,41 +6,6 @@
|
||||||
<dict>
|
<dict>
|
||||||
<key>Patch</key>
|
<key>Patch</key>
|
||||||
<array>
|
<array>
|
||||||
<dict>
|
|
||||||
<key>Comment</key>
|
|
||||||
<string>Thunderbolt 3: _L27 to XL27</string>
|
|
||||||
<key>Count</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Enabled</key>
|
|
||||||
<true/>
|
|
||||||
<key>Find</key>
|
|
||||||
<data>
|
|
||||||
X0wyNw==
|
|
||||||
</data>
|
|
||||||
<key>Limit</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Mask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>OemTableId</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Replace</key>
|
|
||||||
<data>
|
|
||||||
WEwyNw==
|
|
||||||
</data>
|
|
||||||
<key>ReplaceMask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Skip</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableLength</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableSignature</key>
|
|
||||||
<data>
|
|
||||||
RFNEVA==
|
|
||||||
</data>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
<dict>
|
||||||
<key>Comment</key>
|
<key>Comment</key>
|
||||||
<string>Thunderbolt 3: RP09:_PS0 to RP09:XPS0</string>
|
<string>Thunderbolt 3: RP09:_PS0 to RP09:XPS0</string>
|
||||||
|
@ -115,14 +80,14 @@
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>Comment</key>
|
<key>Comment</key>
|
||||||
<string>Thunderbolt 3: _L6F to XL6F (Thunderbolt 3 Hotplug GPE)</string>
|
<string>Thunderbolt 3: NTFY to XTFY</string>
|
||||||
<key>Count</key>
|
<key>Count</key>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
<key>Enabled</key>
|
<key>Enabled</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>Find</key>
|
<key>Find</key>
|
||||||
<data>
|
<data>
|
||||||
X0w2Rg==
|
FENHTlRGWQk=
|
||||||
</data>
|
</data>
|
||||||
<key>Limit</key>
|
<key>Limit</key>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
|
@ -134,7 +99,7 @@
|
||||||
</data>
|
</data>
|
||||||
<key>Replace</key>
|
<key>Replace</key>
|
||||||
<data>
|
<data>
|
||||||
WEw2Rg==
|
FENHWFRGWQk=
|
||||||
</data>
|
</data>
|
||||||
<key>ReplaceMask</key>
|
<key>ReplaceMask</key>
|
||||||
<data>
|
<data>
|
||||||
|
@ -149,7 +114,7 @@
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>Comment</key>
|
<key>Comment</key>
|
||||||
<string>Thunderbolt 3: RP09._INI to RP09.XINI for ICM disable (ThunderboltReset.kext)</string>
|
<string>Thunderbolt 3: RP09._INI to RP09.XINI for ICM disable</string>
|
||||||
<key>Count</key>
|
<key>Count</key>
|
||||||
<integer>1</integer>
|
<integer>1</integer>
|
||||||
<key>Enabled</key>
|
<key>Enabled</key>
|
||||||
|
@ -181,72 +146,6 @@
|
||||||
<data>
|
<data>
|
||||||
</data>
|
</data>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
|
||||||
<key>Comment</key>
|
|
||||||
<string>Thunderbolt 3: _PTS to ZPTS(1,N)</string>
|
|
||||||
<key>Count</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Enabled</key>
|
|
||||||
<true/>
|
|
||||||
<key>Find</key>
|
|
||||||
<data>
|
|
||||||
X1BUUwE=
|
|
||||||
</data>
|
|
||||||
<key>Limit</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>Mask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>OemTableId</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Replace</key>
|
|
||||||
<data>
|
|
||||||
WlBUUwE=
|
|
||||||
</data>
|
|
||||||
<key>ReplaceMask</key>
|
|
||||||
<data>
|
|
||||||
</data>
|
|
||||||
<key>Skip</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableLength</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>TableSignature</key>
|
|
||||||
<data>
|
|
||||||
RFNEVA==
|
|
||||||
</data>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
</dict>
|
|
||||||
<key>Kernel</key>
|
|
||||||
<dict>
|
|
||||||
<key>Add</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Arch</key>
|
|
||||||
<string>x86_64</string>
|
|
||||||
<key>BundlePath</key>
|
|
||||||
<string>ThunderboltReset.kext</string>
|
|
||||||
<key>Comment</key>
|
|
||||||
<string></string>
|
|
||||||
<key>Enabled</key>
|
|
||||||
<true/>
|
|
||||||
<key>ExecutablePath</key>
|
|
||||||
<string>Contents/MacOS/ThunderboltReset</string>
|
|
||||||
<key>MaxKernel</key>
|
|
||||||
<string></string>
|
|
||||||
<key>MinKernel</key>
|
|
||||||
<string></string>
|
|
||||||
<key>PlistPath</key>
|
|
||||||
<string>Contents/Info.plist</string>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
</dict>
|
|
||||||
<key>UEFI</key>
|
|
||||||
<dict>
|
|
||||||
<key>Drivers</key>
|
|
||||||
<array>
|
|
||||||
<string>TbtForcePower.efi</string>
|
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
|
|
|
@ -8,14 +8,50 @@
|
||||||
<array>
|
<array>
|
||||||
<dict>
|
<dict>
|
||||||
<key>Comment</key>
|
<key>Comment</key>
|
||||||
<string>XHC1: Notify(XHC_, 0x02) to XHC1 (Fix Restart on Shutdown)</string>
|
<string>XHC1: _UPC to XUPC</string>
|
||||||
<key>Count</key>
|
<key>Count</key>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
<key>Enabled</key>
|
<key>Enabled</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>Find</key>
|
<key>Find</key>
|
||||||
<data>
|
<data>
|
||||||
hlhIQ18K
|
X1VQQw==
|
||||||
|
</data>
|
||||||
|
<key>Limit</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>Mask</key>
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
<key>OemTableId</key>
|
||||||
|
<data>
|
||||||
|
UHJvalNzZHQ=
|
||||||
|
</data>
|
||||||
|
<key>Replace</key>
|
||||||
|
<data>
|
||||||
|
WFVQQw==
|
||||||
|
</data>
|
||||||
|
<key>ReplaceMask</key>
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
<key>Skip</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>TableLength</key>
|
||||||
|
<integer>6103</integer>
|
||||||
|
<key>TableSignature</key>
|
||||||
|
<data>
|
||||||
|
U1NEVA==
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>Comment</key>
|
||||||
|
<string>XHC1: _PS0 to XPS0</string>
|
||||||
|
<key>Count</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>Enabled</key>
|
||||||
|
<true/>
|
||||||
|
<key>Find</key>
|
||||||
|
<data>
|
||||||
|
FEIQX1BTMAg=
|
||||||
</data>
|
</data>
|
||||||
<key>Limit</key>
|
<key>Limit</key>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
|
@ -27,7 +63,42 @@
|
||||||
</data>
|
</data>
|
||||||
<key>Replace</key>
|
<key>Replace</key>
|
||||||
<data>
|
<data>
|
||||||
hlhIQzEK
|
FEIQWFBTMAg=
|
||||||
|
</data>
|
||||||
|
<key>ReplaceMask</key>
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
<key>Skip</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>TableLength</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>TableSignature</key>
|
||||||
|
<data>
|
||||||
|
RFNEVA==
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>Comment</key>
|
||||||
|
<string>XHC1: _PS3 to XPS3</string>
|
||||||
|
<key>Count</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>Enabled</key>
|
||||||
|
<true/>
|
||||||
|
<key>Find</key>
|
||||||
|
<data>
|
||||||
|
FEY/X1BTMwg=
|
||||||
|
</data>
|
||||||
|
<key>Limit</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>Mask</key>
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
<key>OemTableId</key>
|
||||||
|
<data>
|
||||||
|
</data>
|
||||||
|
<key>Replace</key>
|
||||||
|
<data>
|
||||||
|
FEY/WFBTMwg=
|
||||||
</data>
|
</data>
|
||||||
<key>ReplaceMask</key>
|
<key>ReplaceMask</key>
|
||||||
<data>
|
<data>
|
||||||
|
|
|
@ -1,50 +1,115 @@
|
||||||
|
// Depends on /patches/OpenCore Patches/ Battery.plist
|
||||||
//
|
//
|
||||||
// SSDT-BATX
|
// SSDT-BATX
|
||||||
// Revision 5
|
// Revision 7
|
||||||
//
|
//
|
||||||
// Copyleft (c) 2020 by bb. No rights reserved.
|
// Copyleft (c) 2020 by bb. No rights reserved.
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
// Abstract:
|
// Abstract:
|
||||||
|
//
|
||||||
// This SSDT is a complete, self-contained replacement for all battery-patches on Thinkpads which share
|
// This SSDT is a complete, self-contained replacement for all battery-patches on Thinkpads which share
|
||||||
// a common EC-layout for battery-handling. It should be compatible with all(?) T- and X-series Thinkpads and maybe even more.
|
// a common EC-layout [1] for battery-handling. It should be compatible with all(?) T- and X-series Thinkpads which are using the basic H8-EC-Layout [2].
|
||||||
//
|
//
|
||||||
// It doesn't need any patches to the original DSDT, handles single- and dual-battery-systems gracefully and adds
|
// Its designed for the requirements of VirtualSMC [3], leaves the original DSDT largely untouched,
|
||||||
// support for `Battery Information Supplement` (see: https://github.com/acidanthera/VirtualSMC/blob/master/Docs/Battery%20Information%20Supplement.md).
|
// handles single- and dual-battery-systems gracefully and adds support for `Battery Information Supplement` [4].
|
||||||
//
|
//
|
||||||
// It is faster, more compatible and much more robust than existing patches as it doesn't relie on the original DSDT-implementation
|
// Sadly, it needs patching of battery-ACPI-notifies as the EC doesn't seem to be updated correctly by the firmware if they are missing.
|
||||||
// for battery-handling and EC-access. It eliminates the need to patch mutexes, notifies or EC-fields completely.
|
//
|
||||||
|
// It is faster, more compatible and much more robust than existing patches as it doesn't rely on the original DSDT-implementation
|
||||||
|
// for battery-handling and EC-access. It eliminates the need to patch mutexes and EC-fields completely. Patching notify()'s is
|
||||||
|
// not needed, but may be desireable for smoother operation - espacially on dual-battery-systems.
|
||||||
//
|
//
|
||||||
// It replaces any battery-related DSDT-patches and any SSDT like SSDT-BAT0, SSDT-BATT, SSDT-BATC, SSDT-BATN and similar.
|
// It replaces any battery-related DSDT-patches and any SSDT like SSDT-BAT0, SSDT-BATT, SSDT-BATC, SSDT-BATN and similar.
|
||||||
//
|
//
|
||||||
// Its only dependency is the memory-layout of the Embedded Controller (EC), which is mostly the same for all decent modern thinkpads
|
// Because of its implementation, its only dependency is the memory-layout of the Embedded Controller (EC) [1],
|
||||||
// (at least T440/X440 upwards) and nothing else. Just drop the SSDT in and be done.
|
// which is mostly the same for all decent modern thinkpads (at least T440/X440 upwards) and nothing else.
|
||||||
// For most Thinkpads, this should be the only thing you need to handle your batteries. Nothing more, nothing less.
|
// Just drop the SSDT in and be done. For most Thinkpads, this should be the only thing you need to handle your batteries.
|
||||||
|
// Nothing more, nothing less.
|
||||||
//
|
//
|
||||||
// But be aware: this is newly created stuff, not much tested or battle proven yet. May contain bugs and edgecases.
|
// But be aware: this is newly created stuff, not much tested or battle proven yet. May contain bugs and edgecases.
|
||||||
// If so, please open a bug @ https://github.com/benbender/x1c6-hackintosh/issues
|
// If so, please open a bug @ https://github.com/benbender/x1c6-hackintosh/issues.
|
||||||
|
// Additionally, as this implementation is more straight-forward and according to specs, it may reveal bugs and glitches
|
||||||
|
// in other parts of the system.
|
||||||
|
//
|
||||||
|
// Compatibility:
|
||||||
|
//
|
||||||
|
// - Lenovo Thinkpad X1 Carbon generation 6 (X1C6)
|
||||||
|
// - Lenovo Thinkpad T480 (T480)
|
||||||
|
// - Lenovo Thinkpad T460 (T460)
|
||||||
|
// - Lenovo Thinkpad T460 (T440)
|
||||||
|
// - ... many more to be added as testing is done
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
// References:
|
// Technical Background
|
||||||
// https://github.com/coreboot/coreboot/blob/master/src/ec/quanta/it8518/acpi/ec.asl
|
//
|
||||||
// https://uefi.org/sites/default/files/resources/ACPI_6_3_final_Jan30.pdf
|
// On genuine MacBooks batteries are connected via SBS (Smart Battery System [5]) to the
|
||||||
// https://github.com/acidanthera/VirtualSMC/blob/master/Docs/Battery%20Information%20Supplement.md
|
// SMC (System Management Controller) [6]. The SMC provides the battery-data via SMC-keys [7] to the OS.
|
||||||
|
//
|
||||||
|
// On Hackintoshes we "only" have an emulated SMC as substitute for the HW-SMC because of the missing hardware.
|
||||||
|
// Our systems usually provide battery-data, read from an EC (Embedded Controller), via ACPI [8].
|
||||||
|
//
|
||||||
|
// In practice the OS reads SMC-keys provided by VirtualSMC which uses its SMCBatteryManager-plugin to poll those
|
||||||
|
// raw-data from ACPI which normally reads those data from the EC of the machine.
|
||||||
|
//
|
||||||
|
// Every part of the flow computes and interpretes the data. Therefor control in this SSDT is limited.
|
||||||
|
//
|
||||||
|
// As the ACPI-battery-interface is a proven standard and commonly implemented, this approach should, theoretically,
|
||||||
|
// work out of the box on most laptop-systems.
|
||||||
|
//
|
||||||
|
// In practice the AppleACPIPlatform.kext doesn't implement access to EC-fields larger than 8 bits and
|
||||||
|
// will crash on reading them. This limitation of the driver in OSX is the reason why all those battery-patching
|
||||||
|
// is neccessary in the first place. We need to ensure that every EC-field, accessed from OSX, is 8 bit at most.
|
||||||
|
//
|
||||||
|
// Additionally no such thing as dual-battery-systems exist in mac-world. OSX is able to recognize
|
||||||
|
// multiple batteries, but will only handle display of the data for the first battery. Therefor we need
|
||||||
|
// to combine multiple batteries transperantly into one and hide additional batteries to the OS.
|
||||||
|
//
|
||||||
|
// Implementation-wise, the apple-approach is able to provide some more data to the OS in comparison to ACPI.
|
||||||
|
// That might be the reason why apple opted for their implementation in the first place. To circumvent those
|
||||||
|
// limitations of the ACPI specification, VirtualSMC adds `Battery Information Supplement` (BIS).
|
||||||
|
//
|
||||||
|
// BIS tries to add the missing information normally provided on genuine MacBooks. Therefor it enables
|
||||||
|
// much more OSX-native handling of batteries but also may reveal glitches and bugs between implementations
|
||||||
|
// of OSX/ACPI/EC. Therefor its configureable in this SSDT.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Known Issues:
|
||||||
|
//
|
||||||
|
// - no known issues atm
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Links & References:
|
||||||
|
//
|
||||||
|
// [1] https://github.com/coreboot/coreboot/blob/master/src/ec/quanta/it8518/acpi/ec.asl
|
||||||
|
// [2] https://en.wikipedia.org/wiki/H8_Family
|
||||||
|
// [3] https://github.com/acidanthera/VirtualSMC
|
||||||
|
// [4] https://github.com/acidanthera/VirtualSMC/blob/master/Docs/Battery%20Information%20Supplement.md
|
||||||
|
// [5] https://en.wikipedia.org/wiki/Smart_Battery_System
|
||||||
|
// [6] https://en.wikipedia.org/wiki/System_Management_Controller
|
||||||
|
// [7] https://github.com/acidanthera/VirtualSMC/blob/master/Docs/SMCKeys.txt
|
||||||
|
// [6] https://uefi.org/sites/default/files/resources/ACPI_6_3_final_Jan30.pdf
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
// Changelog:
|
// Changelog:
|
||||||
// Revision 1 - Raised timeout for mutexes, factored bank-switching out, added sleep to bank-switching, moved HWAC to its own SSDT
|
//
|
||||||
// Revision 2 - Prelimitary dual-battery-support, large refactoring
|
// Revision 7 - Smaller fixes, adds Notify-patches as EC won't update without them in edge-cases, replaces fake serials with battery-serial
|
||||||
// Revision 3 - Remove need of patched notifies, handle battery attach/detach inside, make the whole device self-contained (exept for the EC-helpers)
|
// Revision 6 - fixes, make the whole system more configureable, adds technical backround-documentation
|
||||||
// Revision 4 - Waits on initialization of the batts now. Besides that: Optimization, rework, cleanup, fixes. Truely self-contained now. And faster.
|
|
||||||
// Revision 5 - optimization, bug-fixing. Adds temp, concatenates string-data on combined batteries.
|
// Revision 5 - optimization, bug-fixing. Adds temp, concatenates string-data on combined batteries.
|
||||||
|
// Revision 4 - Waits on initialization of the batts now. Besides that: Optimization, rework, cleanup, fixes. Truely self-contained now. And faster.
|
||||||
|
// Revision 3 - Remove need of patched notifies, handle battery attach/detach inside, make the whole device self-contained (exept for the EC-helpers)
|
||||||
|
// Revision 2 - Prelimitary dual-battery-support, large refactoring
|
||||||
|
// Revision 1 - Raised timeout for mutexes, factored bank-switching out, added sleep to bank-switching, moved HWAC to its own SSDT
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
// Add the following methods if didn't have them defined anyways:
|
|
||||||
//
|
|
||||||
// Credits @benbender
|
// Credits @benbender
|
||||||
|
|
||||||
DefinitionBlock ("", "SSDT", 2, "tyler", "_Battery", 0x00001000)
|
|
||||||
|
DefinitionBlock ("", "SSDT", 2, "tyler", "_Battery", 0x00007000)
|
||||||
{
|
{
|
||||||
|
// Please ensure that your LPC bus-device is available at \_SB.PCI0.LPCB (check your DSDT).
|
||||||
|
// Some older Thinkpads provide the LPC on \_SB.PCI0.LPC and if thats the case for you,
|
||||||
|
// you need to adjust the paths in the following line until the first "Scope ()".
|
||||||
External (_SB.PCI0.LPCB.EC, DeviceObj)
|
External (_SB.PCI0.LPCB.EC, DeviceObj)
|
||||||
|
|
||||||
// @see https://en.wikipedia.org/wiki/Bank_switching
|
// @see https://en.wikipedia.org/wiki/Bank_switching
|
||||||
|
@ -76,17 +141,45 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_Battery", 0x00001000)
|
||||||
{
|
{
|
||||||
/************************* Configuration *************************/
|
/************************* Configuration *************************/
|
||||||
|
|
||||||
Name (BDBG, One)
|
//
|
||||||
|
// Enable debugging output
|
||||||
|
//
|
||||||
|
// Add https://github.com/acidanthera/DebugEnhancer to your kexts
|
||||||
|
// and add `debug=0x12a acpi_layer=0x8 acpi_level=0x2` to your boot-args
|
||||||
|
// to see the output in syslog/dmesg (f.e. via `sudo dmesg|egrep BATX`)
|
||||||
|
//
|
||||||
|
Name (BDBG, Zero) // possible values: One / Zero
|
||||||
|
|
||||||
|
//
|
||||||
|
// Enable Battery Information Supplement (BIS)
|
||||||
|
//
|
||||||
|
// BIS tries to add the missing information normally provided on genuine MacBooks
|
||||||
|
// but not available in the ACPI-specification. It enables much more OSX-native handling
|
||||||
|
// of batteries but also may reveal glitches and bugs between implementation of OSX/ACPI/EC.
|
||||||
|
//
|
||||||
|
// Therefor its configureable here.
|
||||||
|
//
|
||||||
|
// See https://github.com/acidanthera/VirtualSMC/blob/master/Docs/Battery%20Information%20Supplement.md
|
||||||
|
//
|
||||||
|
Name (BBIS, One) // possible values: One / Zero
|
||||||
|
|
||||||
|
//
|
||||||
|
// Disable quickpoll in VirtualSMC SMCBatteryManager
|
||||||
|
//
|
||||||
|
// Implicitly disabled if BBIS is disabled
|
||||||
|
//
|
||||||
|
Name (BDQP, One) // possible values: One / Zero
|
||||||
|
|
||||||
|
|
||||||
/************************* Mutex **********************************/
|
/************************* Mutex **********************************/
|
||||||
|
|
||||||
|
// We reimplement the battery-mutex here to solve the need to patch the original mutex
|
||||||
|
// on older thinkpads where the mutex has a non-zero synclevel which isn't handled by OSX.
|
||||||
Mutex (BAXM, 0x00)
|
Mutex (BAXM, 0x00)
|
||||||
|
|
||||||
|
|
||||||
/************************* EC overlay *****************************/
|
/************************* EC overlay *****************************/
|
||||||
|
|
||||||
|
|
||||||
Field (BRAM, ByteAcc, NoLock, Preserve)
|
Field (BRAM, ByteAcc, NoLock, Preserve)
|
||||||
{
|
{
|
||||||
Offset (0x38),
|
Offset (0x38),
|
||||||
|
@ -106,8 +199,15 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_Battery", 0x00001000)
|
||||||
HB1S, 7, /* Battery 1 state */
|
HB1S, 7, /* Battery 1 state */
|
||||||
HB1A, 1, /* Battery 1 present */
|
HB1A, 1, /* Battery 1 present */
|
||||||
|
|
||||||
Offset (0xC9),
|
Offset (0x46),
|
||||||
HWAT, 8, /* Wattage of AC/DC */
|
, 1,
|
||||||
|
, 1,
|
||||||
|
, 1,
|
||||||
|
, 1,
|
||||||
|
HPAC, 1,
|
||||||
|
|
||||||
|
// Offset (0xC9),
|
||||||
|
// HWAT, 8, /* Wattage of AC/DC */
|
||||||
|
|
||||||
// Zero on the X1C6. Probably because of the charging is handled by the TI USB-C-PD-chip.
|
// Zero on the X1C6. Probably because of the charging is handled by the TI USB-C-PD-chip.
|
||||||
// Offset (0xCC),
|
// Offset (0xCC),
|
||||||
|
@ -435,23 +535,7 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_Battery", 0x00001000)
|
||||||
*/
|
*/
|
||||||
Method (SBSN, 0, NotSerialized)
|
Method (SBSN, 0, NotSerialized)
|
||||||
{
|
{
|
||||||
Local0 = B1B2 (SN00, SN01)
|
Return (B1B2 (SN00, SN01))
|
||||||
|
|
||||||
Local3 = Buffer (0x06)
|
|
||||||
{
|
|
||||||
" "
|
|
||||||
}
|
|
||||||
|
|
||||||
Local2 = 0x04
|
|
||||||
|
|
||||||
While (Local0)
|
|
||||||
{
|
|
||||||
Divide (Local0, 10, Local1, Local0)
|
|
||||||
Local3 [Local2] = (Local1 + 0x30)
|
|
||||||
Local2--
|
|
||||||
}
|
|
||||||
|
|
||||||
Return (ToString (Local3))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -610,7 +694,6 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_Battery", 0x00001000)
|
||||||
0x01, // 0x00: BIXRevision - Revision - Integer
|
0x01, // 0x00: BIXRevision - Revision - Integer
|
||||||
0x01, // 0x01: BIXPowerUnit - Power Unit: mAh - Integer (DWORD)
|
0x01, // 0x01: BIXPowerUnit - Power Unit: mAh - Integer (DWORD)
|
||||||
// ACPI spec : 0 - mWh : 1 - mAh
|
// ACPI spec : 0 - mWh : 1 - mAh
|
||||||
// We are always outputting mAh.
|
|
||||||
0xFFFFFFFF, // 0x02: BIXDesignCapacity - Design Capacity - Integer (DWORD)
|
0xFFFFFFFF, // 0x02: BIXDesignCapacity - Design Capacity - Integer (DWORD)
|
||||||
0xFFFFFFFF, // 0x03: BIXLastFullChargeCapacity - Last Full Charge Capacity - Integer (DWORD)
|
0xFFFFFFFF, // 0x03: BIXLastFullChargeCapacity - Last Full Charge Capacity - Integer (DWORD)
|
||||||
0x01, // 0x04: BIXBatteryTechnology - Battery Technology: Rechargeable - Integer (DWORD)
|
0x01, // 0x04: BIXBatteryTechnology - Battery Technology: Rechargeable - Integer (DWORD)
|
||||||
|
@ -766,7 +849,7 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_Battery", 0x00001000)
|
||||||
Arg1 [0x05] = SBDV /* \_SB_.PCI0.LPCB.EC__.BATX.SBDV */
|
Arg1 [0x05] = SBDV /* \_SB_.PCI0.LPCB.EC__.BATX.SBDV */
|
||||||
|
|
||||||
// Serial Number
|
// Serial Number
|
||||||
Arg1 [0x11] = SBSN /* \_SB_.PCI0.LPCB.EC__.BATX.SBSN */
|
Arg1 [0x11] = ToString (SBSN) /* \_SB_.PCI0.LPCB.EC__.BATX.SBSN */
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -810,8 +893,11 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_Battery", 0x00001000)
|
||||||
* _BIF object plus additional battery information. The _BIF object is deprecated in lieu of _BIX in ACPI 4.0
|
* _BIF object plus additional battery information. The _BIF object is deprecated in lieu of _BIX in ACPI 4.0
|
||||||
*/
|
*/
|
||||||
Method (_BIX, 0, NotSerialized) // _BIX: Battery Information Extended
|
Method (_BIX, 0, NotSerialized) // _BIX: Battery Information Extended
|
||||||
|
{
|
||||||
|
If (BDBG == One)
|
||||||
{
|
{
|
||||||
Debug = "BATX:_BIX"
|
Debug = "BATX:_BIX"
|
||||||
|
}
|
||||||
|
|
||||||
// needs to be run in any way as it waits for the bat-device to be available
|
// needs to be run in any way as it waits for the bat-device to be available
|
||||||
BX0I = GBIX (0x00, PBIX)
|
BX0I = GBIX (0x00, PBIX)
|
||||||
|
@ -974,19 +1060,45 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_Battery", 0x00001000)
|
||||||
Local6 = HB1S
|
Local6 = HB1S
|
||||||
}
|
}
|
||||||
|
|
||||||
// Not charging
|
If ((Local6 & 0x20))
|
||||||
Local0 = 0x00
|
|
||||||
|
|
||||||
If ((Local6 & 0x20) == 0x20)
|
|
||||||
{
|
{
|
||||||
// 2 = Charging
|
// 2 = Charging
|
||||||
Local0 = 0x02
|
Local0 = 2
|
||||||
}
|
}
|
||||||
ElseIf ((Local6 & 0x40) == 0x40)
|
ElseIf ((Local6 & 0x40) )
|
||||||
{
|
{
|
||||||
// 1 = Discharging
|
// 1 = Discharging
|
||||||
Local0 = 0x01
|
Local0 = 1
|
||||||
}
|
}
|
||||||
|
Else
|
||||||
|
{
|
||||||
|
// 0 = Not charging / Full
|
||||||
|
Local0 = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set critical flag if battery is empty
|
||||||
|
If ((Local6 & 0x0F) == 0)
|
||||||
|
{
|
||||||
|
Local6 = Local6 | 0x04
|
||||||
|
}
|
||||||
|
|
||||||
|
Store (Zero, Local1)
|
||||||
|
|
||||||
|
// Check if AC is present
|
||||||
|
If (HPAC)
|
||||||
|
{
|
||||||
|
// Set only charging/discharging bits
|
||||||
|
And (Local0, 0x03, Local1)
|
||||||
|
}
|
||||||
|
Else
|
||||||
|
{
|
||||||
|
// Always discharging when on battery power
|
||||||
|
Local0 = One
|
||||||
|
}
|
||||||
|
|
||||||
|
// Flag if the battery level is critical
|
||||||
|
Local4 = Local0 & 0x04
|
||||||
|
Local0 = Local1 | Local4
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -1019,17 +1131,18 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_Battery", 0x00001000)
|
||||||
If ((Local1 >= 0x8000))
|
If ((Local1 >= 0x8000))
|
||||||
{
|
{
|
||||||
// If discharging
|
// If discharging
|
||||||
If ((Local0 & 0x01) == 0x01)
|
If ((Local0 & 0x01))
|
||||||
{
|
{
|
||||||
// Negate present rate
|
// Negate present rate
|
||||||
Local1 = (0x00010000 - Local1)
|
Local1 = (0x00010000 - Local1)
|
||||||
}
|
}
|
||||||
Else
|
Else
|
||||||
{
|
{
|
||||||
|
// Error
|
||||||
Local1 = 0x00
|
Local1 = 0x00
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ElseIf (!(Local0 & 0x02) == 0x02)
|
ElseIf (!(Local0 & 0x02))
|
||||||
{
|
{
|
||||||
Local1 = 0x00
|
Local1 = 0x00
|
||||||
}
|
}
|
||||||
|
@ -1069,8 +1182,11 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_Battery", 0x00001000)
|
||||||
* Battery status
|
* Battery status
|
||||||
*/
|
*/
|
||||||
Method (_BST, 0, NotSerialized) // _BST: Battery Status
|
Method (_BST, 0, NotSerialized) // _BST: Battery Status
|
||||||
|
{
|
||||||
|
If (BDBG == One)
|
||||||
{
|
{
|
||||||
Debug = "BATX:_BST()"
|
Debug = "BATX:_BST()"
|
||||||
|
}
|
||||||
|
|
||||||
// Check if battery is added or removed
|
// Check if battery is added or removed
|
||||||
Local3 = DerefOf (PBAI [0x00])
|
Local3 = DerefOf (PBAI [0x00])
|
||||||
|
@ -1146,18 +1262,18 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_Battery", 0x00001000)
|
||||||
Local4 = DerefOf (BT0P [0x00])
|
Local4 = DerefOf (BT0P [0x00])
|
||||||
Local5 = DerefOf (BT1P [0x00])
|
Local5 = DerefOf (BT1P [0x00])
|
||||||
|
|
||||||
If (Local4 != Local5)
|
// Discharging
|
||||||
|
Local0 [0x00] = 0
|
||||||
|
|
||||||
|
If ((Local4 == 2) || (Local5 == 2))
|
||||||
{
|
{
|
||||||
If (((Local4 & 0x02) == 0x02) || ((Local5 & 0x02) == 0x02))
|
// 2 = Critical
|
||||||
{
|
Local0 [0x00] = 2
|
||||||
// 2 = Charging
|
|
||||||
Local0 [0x00] = 0x02
|
|
||||||
}
|
}
|
||||||
ElseIf (((Local4 & 0x01) == 0x01) || ((Local5 & 0x01) == 0x01))
|
ElseIf ((Local4 == 1) || (Local5 == 1))
|
||||||
{
|
{
|
||||||
// 1 = Discharging
|
// 1 = Charging
|
||||||
Local0 [0x00] = 0x01
|
Local0 [0x00] = 1
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// _BST 1 - Battery Present Rate - add BAT0 and BAT1 values
|
// _BST 1 - Battery Present Rate - add BAT0 and BAT1 values
|
||||||
|
@ -1182,7 +1298,9 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_Battery", 0x00001000)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Provide the API for `Battery Information Supplement` if enabled in configuration above
|
||||||
|
If (BBIS)
|
||||||
|
{
|
||||||
/**
|
/**
|
||||||
* Battery Status Supplement pack layout
|
* Battery Status Supplement pack layout
|
||||||
*/
|
*/
|
||||||
|
@ -1264,8 +1382,11 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_Battery", 0x00001000)
|
||||||
* Battery Status Supplement
|
* Battery Status Supplement
|
||||||
*/
|
*/
|
||||||
Method (CBSS, 0, NotSerialized)
|
Method (CBSS, 0, NotSerialized)
|
||||||
|
{
|
||||||
|
If (BDBG == One)
|
||||||
{
|
{
|
||||||
Debug = "BATX:CBSS()"
|
Debug = "BATX:CBSS()"
|
||||||
|
}
|
||||||
|
|
||||||
If (!H8DR)
|
If (!H8DR)
|
||||||
{
|
{
|
||||||
|
@ -1339,9 +1460,10 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_Battery", 0x00001000)
|
||||||
*/
|
*/
|
||||||
Name (PBIS, Package (0x07)
|
Name (PBIS, Package (0x07)
|
||||||
{
|
{
|
||||||
// 0x006F007F, // 0x00: BISConfig - config, double check if you have valid AverageRate before
|
0x007F007F, // 0x00: BISConfig - config
|
||||||
// fliping that bit to 0x007F007F since it will disable quickPoll
|
// double check if you have valid AverageRate before disabling QuicPoll
|
||||||
0x007F007F, // disable quickpoll
|
// - 0x007F007F - Quickpoll disabled, more native battery handling
|
||||||
|
// - 0x006F007F - Quickpoll enabled, more robust battery handling
|
||||||
0xFFFFFFFF, // 0x01: BISManufactureDate - ManufactureDate (0x1), AppleSmartBattery format
|
0xFFFFFFFF, // 0x01: BISManufactureDate - ManufactureDate (0x1), AppleSmartBattery format
|
||||||
0x00002342, // 0x02: BISPackLotCode - PackLotCode
|
0x00002342, // 0x02: BISPackLotCode - PackLotCode
|
||||||
0x00002342, // 0x03: BISPCBLotCode - PCBLotCode
|
0x00002342, // 0x03: BISPCBLotCode - PCBLotCode
|
||||||
|
@ -1355,11 +1477,14 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_Battery", 0x00001000)
|
||||||
*/
|
*/
|
||||||
Method (CBIS, 0, NotSerialized)
|
Method (CBIS, 0, NotSerialized)
|
||||||
{
|
{
|
||||||
Debug = "BATX:CBIS()"
|
If (BDQP == One)
|
||||||
|
|
||||||
If (!H8DR)
|
|
||||||
{
|
{
|
||||||
Return (PBIS)
|
PBIS[0x00] = 0x006F007F
|
||||||
|
}
|
||||||
|
|
||||||
|
If (BDBG == One)
|
||||||
|
{
|
||||||
|
Debug = "BATX:CBIS()"
|
||||||
}
|
}
|
||||||
|
|
||||||
If (Acquire (BAXM, 65535))
|
If (Acquire (BAXM, 65535))
|
||||||
|
@ -1369,7 +1494,6 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_Battery", 0x00001000)
|
||||||
Return (PBIS)
|
Return (PBIS)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Information Page 2 -
|
// Information Page 2 -
|
||||||
//
|
//
|
||||||
|
@ -1378,6 +1502,13 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_Battery", 0x00001000)
|
||||||
// 0x01: ManufactureDate (0x1), AppleSmartBattery format
|
// 0x01: ManufactureDate (0x1), AppleSmartBattery format
|
||||||
PBIS [0x01] = SBDT
|
PBIS [0x01] = SBDT
|
||||||
|
|
||||||
|
// Serial Number
|
||||||
|
PBIS [0x02] = SBSN /* \_SB_.PCI0.LPCB.EC__.BATX.SBSN */
|
||||||
|
PBIS [0x03] = SBSN /* \_SB_.PCI0.LPCB.EC__.BATX.SBSN */
|
||||||
|
PBIS [0x04] = SBSN /* \_SB_.PCI0.LPCB.EC__.BATX.SBSN */
|
||||||
|
PBIS [0x05] = SBSN /* \_SB_.PCI0.LPCB.EC__.BATX.SBSN */
|
||||||
|
PBIS [0x06] = SBSN /* \_SB_.PCI0.LPCB.EC__.BATX.SBSN */
|
||||||
|
|
||||||
Release (BAXM)
|
Release (BAXM)
|
||||||
|
|
||||||
Return (PBIS)
|
Return (PBIS)
|
||||||
|
@ -1385,4 +1516,5 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_Battery", 0x00001000)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
//EOF
|
//EOF
|
||||||
|
|
|
@ -36,26 +36,5 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_DMAC", 0x00001000)
|
||||||
Return (Zero)
|
Return (Zero)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* FPU / MATH */
|
|
||||||
Device(MAT0)
|
|
||||||
{
|
|
||||||
Name (_HID, EISAID("PNP0C04"))
|
|
||||||
Name (_CRS, ResourceTemplate()
|
|
||||||
{
|
|
||||||
IO (Decode16, 0xf0, 0xf0, 0x01, 0x01)
|
|
||||||
IRQNoFlags() { 13 }
|
|
||||||
})
|
|
||||||
|
|
||||||
Method (_STA, 0, NotSerialized)
|
|
||||||
{
|
|
||||||
If (OSDW ())
|
|
||||||
{
|
|
||||||
Return (0x0F)
|
|
||||||
}
|
|
||||||
|
|
||||||
Return (Zero)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,4 +1,6 @@
|
||||||
/*
|
/*
|
||||||
|
* Depends on /patches/OpenCore Patches/ HWAC.plist
|
||||||
|
*
|
||||||
* On many modern hackintoshed thinkpads there are ofthen accesses to the 16-bit EC-field `HWAC`, which are mostly
|
* On many modern hackintoshed thinkpads there are ofthen accesses to the 16-bit EC-field `HWAC`, which are mostly
|
||||||
* not handled by battery-patches (f.e. those currated by @daliansky). Those accesses are (mostly) located in the _OWAK()
|
* not handled by battery-patches (f.e. those currated by @daliansky). Those accesses are (mostly) located in the _OWAK()
|
||||||
* and/or _L17-ACPI-methods of the original DSDT.
|
* and/or _L17-ACPI-methods of the original DSDT.
|
||||||
|
@ -26,7 +28,6 @@
|
||||||
* This includes 16, 32, 64, and larger fields.`
|
* This includes 16, 32, 64, and larger fields.`
|
||||||
* - @Rehabman, https://www.tonymacx86.com/threads/guide-how-to-patch-dsdt-for-working-battery-status.116102/
|
* - @Rehabman, https://www.tonymacx86.com/threads/guide-how-to-patch-dsdt-for-working-battery-status.116102/
|
||||||
*
|
*
|
||||||
* Depends on /patches/OpenCore Patches/ HWAC.plist
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@ -37,9 +38,9 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_HWAC", 0x00001000)
|
||||||
|
|
||||||
Scope (\_SB.PCI0.LPCB.EC)
|
Scope (\_SB.PCI0.LPCB.EC)
|
||||||
{
|
{
|
||||||
//
|
/**
|
||||||
// EC region overlay.
|
* EC region overlay.
|
||||||
//
|
*/
|
||||||
OperationRegion (ERAM, EmbeddedControl, 0x00, 0x0100)
|
OperationRegion (ERAM, EmbeddedControl, 0x00, 0x0100)
|
||||||
Field (ERAM, ByteAcc, NoLock, Preserve)
|
Field (ERAM, ByteAcc, NoLock, Preserve)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
// Depends on /patches/OpenCore Patches/ INIT.plist
|
||||||
|
//
|
||||||
/*
|
/*
|
||||||
Source: https://github.com/tianocore/edk2-platforms/blob/master/Platform/Intel/KabylakeOpenBoardPkg/Include/Acpi/GlobalNvs.asl
|
Source: https://github.com/tianocore/edk2-platforms/blob/master/Platform/Intel/KabylakeOpenBoardPkg/Include/Acpi/GlobalNvs.asl
|
||||||
//
|
//
|
||||||
|
@ -43,21 +45,37 @@
|
||||||
Offset(83), TBS1, 8, // Offset(83), Thunderbolt(TM) Root port selector
|
Offset(83), TBS1, 8, // Offset(83), Thunderbolt(TM) Root port selector
|
||||||
Offset(84), BDID, 8, // Offset(84), Board ID
|
Offset(84), BDID, 8, // Offset(84), Board ID
|
||||||
*/
|
*/
|
||||||
|
//
|
||||||
// Credits @benbender
|
// Credits @benbender
|
||||||
|
|
||||||
DefinitionBlock ("", "SSDT", 2, "tyler", "_INIT", 0x00001000)
|
DefinitionBlock ("", "SSDT", 2, "tyler", "_INIT", 0x00001000)
|
||||||
{
|
{
|
||||||
|
// External method from SSDT-Darwin.dsl
|
||||||
External (OSDW, MethodObj) // 0 Arguments
|
External (OSDW, MethodObj) // 0 Arguments
|
||||||
|
|
||||||
|
External (_SB.PCI0, DeviceObj)
|
||||||
|
|
||||||
|
// System
|
||||||
External (HPTE, FieldUnitObj) // HPET enabled?
|
External (HPTE, FieldUnitObj) // HPET enabled?
|
||||||
External (WNTF, FieldUnitObj) // DYTC enabled?
|
External (WNTF, FieldUnitObj) // DYTC enabled?
|
||||||
External (DPTF, FieldUnitObj) // DPTF enabled?
|
External (DPTF, FieldUnitObj) // DPTF enabled?
|
||||||
|
External (OSYS, FieldUnitObj) // OS type
|
||||||
|
|
||||||
|
External (ZINI, MethodObj)
|
||||||
|
|
||||||
|
// Thunderbolt
|
||||||
|
External (_SB.PCI0.RP09.INIT, MethodObj)
|
||||||
|
|
||||||
|
|
||||||
|
Scope (\_SB.PCI0)
|
||||||
|
{
|
||||||
|
Method (OINI, 0, NotSerialized)
|
||||||
|
{
|
||||||
If (OSDW())
|
If (OSDW())
|
||||||
{
|
{
|
||||||
Debug = "INIT: Set Variables..."
|
Debug = "INIT: Set Variables..."
|
||||||
|
|
||||||
// Disable HPET. It shouldn't be needed on modern systems anyway and is also disabled in genuine OSX
|
// disable HPET. It shouldn't be needed on modern systems anyway and is also disabled in genuine OSX
|
||||||
HPTE = Zero
|
HPTE = Zero
|
||||||
|
|
||||||
// Enables DYTC, Lenovos thermal solution. Can be controlled by YogaSMC
|
// Enables DYTC, Lenovos thermal solution. Can be controlled by YogaSMC
|
||||||
|
@ -65,5 +83,19 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_INIT", 0x00001000)
|
||||||
|
|
||||||
// Disable DPTF, we use DYTC!
|
// Disable DPTF, we use DYTC!
|
||||||
DPTF = Zero
|
DPTF = Zero
|
||||||
|
|
||||||
|
// Patch OSYS to native value of darwin
|
||||||
|
OSYS = 0x07DF
|
||||||
|
}
|
||||||
|
|
||||||
|
ZINI ()
|
||||||
|
|
||||||
|
// Thunderbolt-setup
|
||||||
|
If (OSDW () && CondRefOf (\_SB.PCI0.RP09.INIT))
|
||||||
|
{
|
||||||
|
\_SB.PCI0.RP09.INIT ()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//EOF
|
||||||
|
|
|
@ -1,327 +0,0 @@
|
||||||
/*
|
|
||||||
* For use with ThinkpadAssistant (would need ACPI renames: /patches/OpenCore Patches/ Keyboard-Legacy.plist)
|
|
||||||
* https://github.com/MSzturc/ThinkpadAssistant
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
DefinitionBlock("", "SSDT", 2, "tyler", "_KBD", 0)
|
|
||||||
{
|
|
||||||
External (OSDW, MethodObj)
|
|
||||||
External (_SB.PCI0.LPCB.KBD, DeviceObj)
|
|
||||||
External (_SB.PCI0.LPCB.EC, DeviceObj)
|
|
||||||
External (_SB.PCI0.LPCB.EC.XQ74, MethodObj) // FnLock
|
|
||||||
External (_SB.PCI0.LPCB.EC.XQ6A, MethodObj) // F4 - Mic Mute
|
|
||||||
External (_SB.PCI0.LPCB.EC.XQ15, MethodObj) // F5
|
|
||||||
External (_SB.PCI0.LPCB.EC.XQ14, MethodObj) // F6
|
|
||||||
External (_SB.PCI0.LPCB.EC.XQ16, MethodObj) // F7
|
|
||||||
External (_SB.PCI0.LPCB.EC.XQ64, MethodObj) // F8
|
|
||||||
External (_SB.PCI0.LPCB.EC.XQ66, MethodObj) // F9
|
|
||||||
External (_SB.PCI0.LPCB.EC.XQ60, MethodObj) // F10
|
|
||||||
External (_SB.PCI0.LPCB.EC.XQ61, MethodObj) // F11
|
|
||||||
External (_SB.PCI0.LPCB.EC.XQ62, MethodObj) // F12
|
|
||||||
External (_SB.PCI0.LPCB.EC.XQ1F, MethodObj) // Keyboard Backlight (Fn+Space)
|
|
||||||
External (_SB.PCI0.LPCB.EC.HKEY.MHKQ, MethodObj) // FnLock LED
|
|
||||||
External (_SB.PCI0.LPCB.EC.HKEY.MMTS, MethodObj) // F4 - Mic Mute LED
|
|
||||||
External (_SB.PCI0.LPCB.EC.HKEY.MLCS, MethodObj) // Keyboard Backlight LED
|
|
||||||
|
|
||||||
Scope (_SB.PCI0.LPCB.EC)
|
|
||||||
{
|
|
||||||
Name (FUNL, Zero) // FnLock LED
|
|
||||||
Method (_Q74, 0, NotSerialized) // FnLock (Fn + Esc)
|
|
||||||
{
|
|
||||||
If (OSDW ())
|
|
||||||
{
|
|
||||||
FUNL = (FUNL + 1) % 2
|
|
||||||
Switch (FUNL)
|
|
||||||
{
|
|
||||||
Case (One)
|
|
||||||
{
|
|
||||||
// Right Shift + F18
|
|
||||||
Notify (KBD, 0x012A)
|
|
||||||
Notify (KBD, 0x0369)
|
|
||||||
Notify (KBD, 0x01aa)
|
|
||||||
|
|
||||||
// Enable LED
|
|
||||||
\_SB.PCI0.LPCB.EC.HKEY.MHKQ (0x02)
|
|
||||||
}
|
|
||||||
Case (Zero)
|
|
||||||
{
|
|
||||||
// Left Shift + F18
|
|
||||||
Notify (KBD, 0x0136)
|
|
||||||
Notify (KBD, 0x0369)
|
|
||||||
Notify (KBD, 0x01b6)
|
|
||||||
|
|
||||||
// Disable LED
|
|
||||||
\_SB.PCI0.LPCB.EC.HKEY.MHKQ (Zero)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Else
|
|
||||||
{
|
|
||||||
// Call original _Q74 method.
|
|
||||||
XQ74()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Name (MICL, Zero) // F4 - Mic Mute LED
|
|
||||||
Method (_Q6A, 0, NotSerialized) // F4 - Microphone Mute = F20
|
|
||||||
{
|
|
||||||
If (OSDW ())
|
|
||||||
{
|
|
||||||
MICL = (MICL + 1) % 2
|
|
||||||
Switch (MICL)
|
|
||||||
{
|
|
||||||
Case (One)
|
|
||||||
{
|
|
||||||
// Right Shift + F20
|
|
||||||
Notify (KBD, 0x0136)
|
|
||||||
Notify (KBD, 0x036B)
|
|
||||||
Notify (KBD, 0x01b6)
|
|
||||||
|
|
||||||
// Enable LED
|
|
||||||
\_SB.PCI0.LPCB.EC.HKEY.MMTS (0x02)
|
|
||||||
}
|
|
||||||
Case (Zero)
|
|
||||||
{
|
|
||||||
// Left Shift + F20
|
|
||||||
Notify (KBD, 0x012A)
|
|
||||||
Notify (KBD, 0x036B)
|
|
||||||
Notify (KBD, 0x01aa)
|
|
||||||
|
|
||||||
// Disable LED
|
|
||||||
\_SB.PCI0.LPCB.EC.HKEY.MMTS (Zero)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Else
|
|
||||||
{
|
|
||||||
// Call original _Q6A method.
|
|
||||||
XQ6A()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Method (_Q15, 0, NotSerialized) // F5 - Brightness Down = F14
|
|
||||||
{
|
|
||||||
If (OSDW ())
|
|
||||||
{
|
|
||||||
Notify(KBD, 0x0405)
|
|
||||||
Notify(KBD, 0x20) // Reserved
|
|
||||||
}
|
|
||||||
Else
|
|
||||||
{
|
|
||||||
// Call original _Q15 method.
|
|
||||||
XQ15()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Method (_Q14, 0, NotSerialized) // F6 - Brightness Up = F15
|
|
||||||
{
|
|
||||||
If (OSDW ())
|
|
||||||
{
|
|
||||||
Notify(KBD, 0x0406)
|
|
||||||
Notify(KBD, 0x10) // Reserved
|
|
||||||
}
|
|
||||||
Else
|
|
||||||
{
|
|
||||||
// Call original _Q14 method.
|
|
||||||
XQ14()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Method (_Q16, 0, NotSerialized) // F7 - Dual Display = F16
|
|
||||||
{
|
|
||||||
If (OSDW ())
|
|
||||||
{
|
|
||||||
Notify(KBD, 0x0367)
|
|
||||||
}
|
|
||||||
Else
|
|
||||||
{
|
|
||||||
// Call original _Q16 method.
|
|
||||||
XQ16()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Method (_Q64, 0, NotSerialized) // F8 - Network = F17
|
|
||||||
{
|
|
||||||
If (OSDW ())
|
|
||||||
{
|
|
||||||
Notify(KBD, 0x0368)
|
|
||||||
}
|
|
||||||
Else
|
|
||||||
{
|
|
||||||
// Call original _Q64 method.
|
|
||||||
XQ64()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Method (_Q66, 0, NotSerialized) // F9 - Settings = F18
|
|
||||||
{
|
|
||||||
If (OSDW ())
|
|
||||||
{
|
|
||||||
Notify(KBD, 0x0369)
|
|
||||||
}
|
|
||||||
Else
|
|
||||||
{
|
|
||||||
// Call original _Q66 method.
|
|
||||||
XQ66()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Method (_Q60, 0, NotSerialized) // F10 - Bluetooth
|
|
||||||
{
|
|
||||||
|
|
||||||
If (OSDW ())
|
|
||||||
{
|
|
||||||
// Left Shift + F17
|
|
||||||
Notify (KBD, 0x012A)
|
|
||||||
Notify (KBD, 0x0368)
|
|
||||||
Notify (KBD, 0x01AA)
|
|
||||||
}
|
|
||||||
Else
|
|
||||||
{
|
|
||||||
// Call original _Q60 method.
|
|
||||||
XQ60()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Method (_Q61, 0, NotSerialized) // F11 - Keyboard
|
|
||||||
{
|
|
||||||
If (OSDW ())
|
|
||||||
{
|
|
||||||
// Send a down event for the Control key (scancode 1d), then a one-shot event (down then up) for
|
|
||||||
// the up arrow key (scancode 0e 48), and finally an up event for the Control key (break scancode 9d).
|
|
||||||
// This is picked up by VoodooPS2 and sent to macOS as the Control+Up key combo.
|
|
||||||
Notify (KBD, 0x011D)
|
|
||||||
Notify (KBD, 0x0448)
|
|
||||||
Notify (KBD, 0x019D)
|
|
||||||
}
|
|
||||||
Else
|
|
||||||
{
|
|
||||||
// Call original _Q61 method.
|
|
||||||
XQ61()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Method (_Q62, 0, NotSerialized) // F12 - Star = F19
|
|
||||||
{
|
|
||||||
If (OSDW ())
|
|
||||||
{
|
|
||||||
Notify(KBD, 0x036A)
|
|
||||||
}
|
|
||||||
Else
|
|
||||||
{
|
|
||||||
// Call original _Q62 method.
|
|
||||||
XQ62()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Name (KEYL, Zero) // Keyboard Backlight LED (Fn+Space)
|
|
||||||
Method (_Q1F, 0, NotSerialized) // cycle keyboard backlight
|
|
||||||
{
|
|
||||||
If (OSDW ())
|
|
||||||
{
|
|
||||||
KEYL = (KEYL + 1) % 3
|
|
||||||
Switch (KEYL)
|
|
||||||
{
|
|
||||||
Case (Zero)
|
|
||||||
{
|
|
||||||
// Left Shift + F16.
|
|
||||||
Notify (KBD, 0x012a)
|
|
||||||
Notify (KBD, 0x0367)
|
|
||||||
Notify (KBD, 0x01aa)
|
|
||||||
|
|
||||||
// Bright --> Off
|
|
||||||
\_SB.PCI0.LPCB.EC.HKEY.MLCS (Zero)
|
|
||||||
}
|
|
||||||
Case (One)
|
|
||||||
{
|
|
||||||
// Right Shift + F16.
|
|
||||||
Notify (KBD, 0x0136)
|
|
||||||
Notify (KBD, 0x0367)
|
|
||||||
Notify (KBD, 0x01b6)
|
|
||||||
|
|
||||||
// Off --> Dim
|
|
||||||
\_SB.PCI0.LPCB.EC.HKEY.MLCS (One)
|
|
||||||
}
|
|
||||||
Case (0x02)
|
|
||||||
{
|
|
||||||
// Left Shift + F19.
|
|
||||||
Notify (KBD, 0x012a)
|
|
||||||
Notify (KBD, 0x036a)
|
|
||||||
Notify (KBD, 0x01aa)
|
|
||||||
|
|
||||||
// Dim --> Bright
|
|
||||||
\_SB.PCI0.LPCB.EC.HKEY.MLCS (0x02)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Else
|
|
||||||
{
|
|
||||||
// Call original _Q1F method.
|
|
||||||
XQ1F()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
Scope (_SB.PCI0.LPCB.KBD)
|
|
||||||
{
|
|
||||||
Method(_DSM, 4)
|
|
||||||
{
|
|
||||||
If (!Arg2) { Return (Buffer() { 0x03 } ) }
|
|
||||||
Return (Package()
|
|
||||||
{
|
|
||||||
"RM,oem-id", "LENOVO",
|
|
||||||
"RM,oem-table-id", "Thinkpad_ClickPad",
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// Overrides (the example data here is default in the Info.plist)
|
|
||||||
Name(RMCF, Package()
|
|
||||||
{
|
|
||||||
"Synaptics TouchPad", Package()
|
|
||||||
{
|
|
||||||
"BogusDeltaThreshX", 800,
|
|
||||||
"BogusDeltaThreshY", 800,
|
|
||||||
"Clicking", ">y",
|
|
||||||
"DragLockTempMask", 0x40004,
|
|
||||||
"DynamicEWMode", ">n",
|
|
||||||
"FakeMiddleButton", ">n",
|
|
||||||
"HWResetOnStart", ">y",
|
|
||||||
//"ForcePassThrough", ">y",
|
|
||||||
//"SkipPassThrough", ">y",
|
|
||||||
"PalmNoAction When Typing", ">y",
|
|
||||||
"ScrollResolution", 800,
|
|
||||||
"SmoothInput", ">y",
|
|
||||||
"UnsmoothInput", ">y",
|
|
||||||
"Thinkpad", ">y",
|
|
||||||
"EdgeBottom", 0,
|
|
||||||
"FingerZ", 30,
|
|
||||||
"MaxTapTime", 100000000,
|
|
||||||
"MouseMultiplierX", 2,
|
|
||||||
"MouseMultiplierY", 2,
|
|
||||||
"MouseScrollMultiplierX", 2,
|
|
||||||
"MouseScrollMultiplierY", 2,
|
|
||||||
//"TrackpointScrollYMultiplier", 1, //Change this value to 0xFFFF in order to inverse the vertical scroll direction of the Trackpoint when holding the middle mouse button.
|
|
||||||
//"TrackpointScrollXMultiplier", 1, //Change this value to 0xFFFF in order to inverse the horizontal scroll direction of the Trackpoint when holding the middle mouse button.
|
|
||||||
},
|
|
||||||
|
|
||||||
"Keyboard", Package()
|
|
||||||
{
|
|
||||||
"Custom PS2 Map", Package()
|
|
||||||
{
|
|
||||||
Package() { },
|
|
||||||
"e037=64", // PrtSc = F13
|
|
||||||
"46=80", // Fn + K = Deadkey
|
|
||||||
"e045=80", // Fn + P = Deadkey
|
|
||||||
"38=e05b", // Left Alt (mismapped to Left GUI by default) = Left Alt
|
|
||||||
"e038=e05c", // Right Alt (mismapped to Right GUI by default) = Right Alt
|
|
||||||
"e05b=38", // Windows (mismapped to Left Alt by default) = Left GUI
|
|
||||||
// "1d=80", // Fn + B = Deadkey
|
|
||||||
// "54=80", // Fn + S = Deadkey
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//EOF
|
|
|
@ -1,7 +1,9 @@
|
||||||
/*
|
/*
|
||||||
* For use with BrightnessKeys.kext and YogaSMC
|
* For use with BrightnessKeys.kext, YogaSMC, and VoodooRMI
|
||||||
* https://github.com/zhen-zen/YogaSMC
|
* https://github.com/zhen-zen/YogaSMC
|
||||||
*
|
*
|
||||||
|
* For more customizations, refer to YogaSMCPrefPane, VoodooRMI's info.plist
|
||||||
|
* and/or third party software such as BetterTouchTool or Karabiner-Elements.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
DefinitionBlock("", "SSDT", 2, "tyler", "_KBD", 0)
|
DefinitionBlock("", "SSDT", 2, "tyler", "_KBD", 0)
|
||||||
|
@ -10,46 +12,8 @@ DefinitionBlock("", "SSDT", 2, "tyler", "_KBD", 0)
|
||||||
|
|
||||||
Scope (_SB.PCI0.LPCB.KBD)
|
Scope (_SB.PCI0.LPCB.KBD)
|
||||||
{
|
{
|
||||||
Method(_DSM, 4)
|
|
||||||
{
|
|
||||||
If (!Arg2) { Return (Buffer() { 0x03 } ) }
|
|
||||||
Return (Package()
|
|
||||||
{
|
|
||||||
"RM,oem-id", "LENOVO",
|
|
||||||
"RM,oem-table-id", "Thinkpad_ClickPad",
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// Overrides (the example data here is default in the Info.plist)
|
|
||||||
Name(RMCF, Package()
|
Name(RMCF, Package()
|
||||||
{
|
{
|
||||||
"Synaptics TouchPad", Package()
|
|
||||||
{
|
|
||||||
"BogusDeltaThreshX", 800,
|
|
||||||
"BogusDeltaThreshY", 800,
|
|
||||||
"Clicking", ">y",
|
|
||||||
"DragLockTempMask", 0x40004,
|
|
||||||
"DynamicEWMode", ">n",
|
|
||||||
"FakeMiddleButton", ">n",
|
|
||||||
"HWResetOnStart", ">y",
|
|
||||||
//"ForcePassThrough", ">y",
|
|
||||||
//"SkipPassThrough", ">y",
|
|
||||||
"PalmNoAction When Typing", ">y",
|
|
||||||
"ScrollResolution", 800,
|
|
||||||
"SmoothInput", ">y",
|
|
||||||
"UnsmoothInput", ">y",
|
|
||||||
"Thinkpad", ">y",
|
|
||||||
"EdgeBottom", 0,
|
|
||||||
"FingerZ", 30,
|
|
||||||
"MaxTapTime", 100000000,
|
|
||||||
"MouseMultiplierX", 2,
|
|
||||||
"MouseMultiplierY", 2,
|
|
||||||
"MouseScrollMultiplierX", 2,
|
|
||||||
"MouseScrollMultiplierY", 2,
|
|
||||||
//"TrackpointScrollYMultiplier", 1, //Change this value to 0xFFFF in order to inverse the vertical scroll direction of the Trackpoint when holding the middle mouse button.
|
|
||||||
//"TrackpointScrollXMultiplier", 1, //Change this value to 0xFFFF in order to inverse the horizontal scroll direction of the Trackpoint when holding the middle mouse button.
|
|
||||||
},
|
|
||||||
|
|
||||||
"Keyboard", Package()
|
"Keyboard", Package()
|
||||||
{
|
{
|
||||||
"Custom PS2 Map", Package()
|
"Custom PS2 Map", Package()
|
||||||
|
|
1814
patches/SSDT-TB3.dsl
1814
patches/SSDT-TB3.dsl
File diff suppressed because it is too large
Load diff
|
@ -1,42 +0,0 @@
|
||||||
/*
|
|
||||||
* Fix USB Power
|
|
||||||
* https://dortania.github.io/OpenCore-Post-Install/usb/misc/power.html
|
|
||||||
*/
|
|
||||||
|
|
||||||
DefinitionBlock ("", "SSDT", 2, "tyler", "_USBX", 0x00001000)
|
|
||||||
{
|
|
||||||
External (DTGP, MethodObj) // 4 Arguments
|
|
||||||
External (OSDW, MethodObj) // 0 Arguments
|
|
||||||
|
|
||||||
Scope (\_SB)
|
|
||||||
{
|
|
||||||
Device (\_SB.USBX)
|
|
||||||
{
|
|
||||||
Name (_ADR, Zero) // _ADR: Address
|
|
||||||
|
|
||||||
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
|
|
||||||
{
|
|
||||||
Local0 = Package ()
|
|
||||||
{
|
|
||||||
// Values from genuine macbook14,1 with same USB-controller
|
|
||||||
"kUSBSleepPortCurrentLimit", 2100,
|
|
||||||
"kUSBWakePortCurrentLimit", 2100,
|
|
||||||
"kUSBSleepPowerSupply", 9600,
|
|
||||||
"kUSBWakePowerSupply", 9600,
|
|
||||||
}
|
|
||||||
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
|
|
||||||
Return (Local0)
|
|
||||||
}
|
|
||||||
|
|
||||||
Method (_STA, 0, NotSerialized) // _STA: Status
|
|
||||||
{
|
|
||||||
If (OSDW ())
|
|
||||||
{
|
|
||||||
Return (0x0F)
|
|
||||||
}
|
|
||||||
|
|
||||||
Return (Zero)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,6 +1,15 @@
|
||||||
/*
|
//
|
||||||
* USB 3.1
|
// USB-C 3.1 Gen2-controller
|
||||||
*/
|
//
|
||||||
|
// The controller is part of the alpine ridge Thunderbolt-controller.
|
||||||
|
//
|
||||||
|
// At the moment there is no known way to have - or at least I haven't found it yet -
|
||||||
|
// to have native Thunderbolt incl. power-management and USB-C 3.1 Gen2-hotplug at the
|
||||||
|
// same time. For the moment I opted for thunderbolt and the runtime power saving.
|
||||||
|
//
|
||||||
|
// So sadly, this is broken on runtime for the moment :(
|
||||||
|
//
|
||||||
|
// Credits @benbender
|
||||||
|
|
||||||
DefinitionBlock ("", "SSDT", 2, "tyler", "_XHC2", 0x00001000)
|
DefinitionBlock ("", "SSDT", 2, "tyler", "_XHC2", 0x00001000)
|
||||||
{
|
{
|
||||||
|
@ -9,8 +18,11 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_XHC2", 0x00001000)
|
||||||
External (OSDW, MethodObj) // OS Is Darwin?
|
External (OSDW, MethodObj) // OS Is Darwin?
|
||||||
|
|
||||||
External (_SB.PCI0.RP09.RUSB, IntObj)
|
External (_SB.PCI0.RP09.RUSB, IntObj)
|
||||||
External (_SB.PCI0.RP09.GXCI, FieldUnitObj)
|
External (_SB.PCI0.RP09.RTBT, IntObj)
|
||||||
|
External (_SB.PCI0.RP09.GXCI, IntObj)
|
||||||
|
External (_SB.PCI0.RP09.GNHI, IntObj)
|
||||||
External (_SB.PCI0.RP09.UGIO, MethodObj)
|
External (_SB.PCI0.RP09.UGIO, MethodObj)
|
||||||
|
External (_SB.PCI0.RP09.TBST, MethodObj)
|
||||||
External (_SB.PCI0.RP09.UPSB.DSB2, DeviceObj)
|
External (_SB.PCI0.RP09.UPSB.DSB2, DeviceObj)
|
||||||
External (_SB.PCI0.RP09.UPSB.PCED, MethodObj)
|
External (_SB.PCI0.RP09.UPSB.PCED, MethodObj)
|
||||||
External (_SB.PCI0.RP09.UPSB.MDUV, IntObj)
|
External (_SB.PCI0.RP09.UPSB.MDUV, IntObj)
|
||||||
|
@ -21,14 +33,12 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_XHC2", 0x00001000)
|
||||||
External (_SB.PCI0.RP09.UPSB.DSB2.LACT, FieldUnitObj)
|
External (_SB.PCI0.RP09.UPSB.DSB2.LACT, FieldUnitObj)
|
||||||
External (_SB.PCI0.RP09.UPSB.DSB2.LTRN, FieldUnitObj)
|
External (_SB.PCI0.RP09.UPSB.DSB2.LTRN, FieldUnitObj)
|
||||||
|
|
||||||
External (_SB.PCI0.RP09.PXSX.TBDU.XHC.RHUB.TPLD, MethodObj)
|
External (_SB.PCI0.RP09.UPN1, IntObj)
|
||||||
External (_SB.PCI0.RP09.PXSX.TBDU.XHC.RHUB.TUPC, MethodObj)
|
External (_SB.PCI0.RP09.UPN2, IntObj)
|
||||||
|
|
||||||
External (TBSE, IntObj)
|
External (TBSE, IntObj)
|
||||||
External (TBTS, IntObj)
|
External (TBTS, IntObj)
|
||||||
External (TBAS, IntObj)
|
External (TBAS, IntObj)
|
||||||
External (UPT1, IntObj)
|
|
||||||
External (UPT2, IntObj)
|
|
||||||
External (USME, IntObj)
|
External (USME, IntObj)
|
||||||
|
|
||||||
Name (U2OP, One) // Companion controller present?
|
Name (U2OP, One) // Companion controller present?
|
||||||
|
@ -59,77 +69,70 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_XHC2", 0x00001000)
|
||||||
*/
|
*/
|
||||||
Method (PCED, 0, Serialized)
|
Method (PCED, 0, Serialized)
|
||||||
{
|
{
|
||||||
Debug = "TB:UPSB:DSB2:XHC2:PCED - PCI Enable downstream"
|
Debug = "TB:DSB2:XHC2:PCED"
|
||||||
// Debug = "TB:UPSB:DSB2:XHC2:PCED - enable GPIO"
|
Debug = "TB:DSB2:XHC2:PCED - Request USB-GPIO to be enabled & force TBT-GPIO"
|
||||||
|
|
||||||
\_SB.PCI0.RP09.GXCI = One
|
\_SB.PCI0.RP09.GXCI = One
|
||||||
|
\_SB.PCI0.RP09.GNHI = One
|
||||||
|
|
||||||
// this powers up both TBT and USB when needed
|
// this powers up both TBT and USB when needed
|
||||||
If (\_SB.PCI0.RP09.UGIO () != Zero)
|
If (\_SB.PCI0.RP09.UGIO () != Zero)
|
||||||
{
|
{
|
||||||
// Debug = "TB:UPSB:DSB2:XHC2:PCED - GPIOs changed, restored = true"
|
Debug = "TB:DSB2:XHC2:PCED - GPIOs changed, restored = true"
|
||||||
\_SB.PCI0.RP09.UPSB.DSB2.PRSR = One
|
\_SB.PCI0.RP09.UPSB.DSB2.PRSR = One
|
||||||
}
|
}
|
||||||
|
|
||||||
// Do some link training
|
// Local0 = Zero
|
||||||
Local0 = Zero
|
// Local1 = Zero
|
||||||
Local1 = Zero
|
Local5 = (Timer + 0x00989680)
|
||||||
Local5 = (Timer + 10000000)
|
|
||||||
|
|
||||||
// Debug = "TB:UPSB:DSB2:XHC2:PCED - restored flag, THUNDERBOLT_PCI_LINK_MGMT_DEVICE.PRSR"
|
Debug = Concatenate ("TB:DSB2:XHC2:PCED - restored flag, THUNDERBOLT_PCI_LINK_MGMT_DEVICE.PRSR: ", \_SB.PCI0.RP09.UPSB.DSB2.PRSR)
|
||||||
// Debug = \_SB.PCI0.RP09.UPSB.DSB2.PRSR
|
|
||||||
|
|
||||||
If (\_SB.PCI0.RP09.UPSB.DSB2.PRSR != Zero)
|
If (\_SB.PCI0.RP09.UPSB.DSB2.PRSR != Zero)
|
||||||
{
|
{
|
||||||
// Debug = "TB:UPSB:DSB2:XHC2:PCED - Wait for power up"
|
Debug = "TB:DSB2:XHC2:PCED - Wait for power up"
|
||||||
// Debug = "TB:UPSB:DSB2:XHC2:PCED - Wait for downstream bridge to appear"
|
Debug = "TB:DSB2:XHC2:PCED - Wait for downstream bridge to appear"
|
||||||
|
Local5 = (Timer + 0x00989680)
|
||||||
Local5 = (Timer + 10000000)
|
|
||||||
|
|
||||||
While (Timer <= Local5)
|
While (Timer <= Local5)
|
||||||
{
|
{
|
||||||
// Debug = "TB:UPSB:DSB2:XHC2:PCED - Wait for link training..."
|
Debug = "TB:DSB2:XHC2:PCED - Wait for link training..."
|
||||||
If (\_SB.PCI0.RP09.UPSB.DSB2.LACR == Zero)
|
If (\_SB.PCI0.RP09.UPSB.DSB2.LACR == Zero)
|
||||||
{
|
{
|
||||||
If (\_SB.PCI0.RP09.UPSB.DSB2.LTRN != One)
|
If (\_SB.PCI0.RP09.UPSB.DSB2.LTRN != One)
|
||||||
{
|
{
|
||||||
// Debug = "TB:UPSB:DSB2:XHC2:PCED - Link training cleared"
|
Debug = "TB:DSB2:XHC2:PCED - Link training cleared"
|
||||||
Break
|
Break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ElseIf ((\_SB.PCI0.RP09.UPSB.DSB2.LTRN != One) && (\_SB.PCI0.RP09.UPSB.DSB2.LACT == One))
|
ElseIf ((\_SB.PCI0.RP09.UPSB.DSB2.LTRN != One) && (\_SB.PCI0.RP09.UPSB.DSB2.LACT == One))
|
||||||
{
|
{
|
||||||
// Debug = "TB:UPSB:DSB2:XHC2:PCED - Link training cleared and link is active"
|
Debug = "TB:DSB2:XHC2:PCED - Link training cleared and link is active"
|
||||||
Break
|
Break
|
||||||
}
|
}
|
||||||
|
|
||||||
Sleep (10)
|
Sleep (0x0A)
|
||||||
}
|
}
|
||||||
|
|
||||||
Sleep (150)
|
Sleep (0x96)
|
||||||
}
|
}
|
||||||
|
|
||||||
\_SB.PCI0.RP09.UPSB.DSB2.PRSR = Zero
|
\_SB.PCI0.RP09.UPSB.DSB2.PRSR = Zero
|
||||||
|
|
||||||
While (Timer <= Local5)
|
While (Timer <= Local5)
|
||||||
{
|
{
|
||||||
// Debug = "TB:UPSB:DSB2:XHC2:PCED - Wait for config space..."
|
Debug = "TB:DSB2:XHC2:PCED - Wait for config space..."
|
||||||
If (\_SB.PCI0.RP09.UPSB.DSB2.XHC2.AVND != 0xFFFFFFFF)
|
If (\_SB.PCI0.RP09.UPSB.DSB2.XHC2.AVND != 0xFFFFFFFF)
|
||||||
{
|
{
|
||||||
// Debug = "TB:UPSB:DSB2:XHC2:PCED - Read VID/DID"
|
Debug = "TB:DSB2:XHC2:PCED - DSB2 Up - Read VID/DID"
|
||||||
\_SB.PCI0.RP09.UPSB.DSB2.PCIA = One
|
\_SB.PCI0.RP09.UPSB.DSB2.PCIA = One
|
||||||
Break
|
Break
|
||||||
}
|
}
|
||||||
|
|
||||||
Sleep (10)
|
Sleep (0x0A)
|
||||||
}
|
}
|
||||||
|
|
||||||
\_SB.PCI0.RP09.UPSB.DSB2.IIP3 = Zero
|
\_SB.PCI0.RP09.UPSB.DSB2.IIP3 = Zero
|
||||||
}
|
}
|
||||||
|
|
||||||
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
|
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
|
||||||
{
|
|
||||||
If (U2OP == One)
|
|
||||||
{
|
{
|
||||||
Local0 = Package (0x06)
|
Local0 = Package (0x06)
|
||||||
{
|
{
|
||||||
|
@ -140,17 +143,6 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_XHC2", 0x00001000)
|
||||||
"UsbCompanionControllerPresent",
|
"UsbCompanionControllerPresent",
|
||||||
One
|
One
|
||||||
}
|
}
|
||||||
}
|
|
||||||
Else
|
|
||||||
{
|
|
||||||
Local0 = Package (0x04)
|
|
||||||
{
|
|
||||||
"USBBusNumber",
|
|
||||||
Zero,
|
|
||||||
"AAPL,xhci-clock-id",
|
|
||||||
One
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
|
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
|
||||||
Return (Local0)
|
Return (Local0)
|
||||||
|
@ -158,20 +150,22 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_XHC2", 0x00001000)
|
||||||
|
|
||||||
Name (HS, Package (0x01)
|
Name (HS, Package (0x01)
|
||||||
{
|
{
|
||||||
"XHC1"
|
"XHC"
|
||||||
})
|
})
|
||||||
|
|
||||||
Name (FS, Package (0x01)
|
Name (FS, Package (0x01)
|
||||||
{
|
{
|
||||||
"XHC1"
|
"XHC"
|
||||||
})
|
})
|
||||||
|
|
||||||
Name (LS, Package (0x01)
|
Name (LS, Package (0x01)
|
||||||
{
|
{
|
||||||
"XHC1"
|
"XHC"
|
||||||
})
|
})
|
||||||
|
|
||||||
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
|
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
|
||||||
{
|
{
|
||||||
Return (Package (0x02)
|
Return (Package ()
|
||||||
{
|
{
|
||||||
0x6D,
|
0x6D,
|
||||||
0x03
|
0x03
|
||||||
|
@ -180,25 +174,24 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_XHC2", 0x00001000)
|
||||||
|
|
||||||
Method (_PS0, 0, Serialized) // _PS0: Power State 0
|
Method (_PS0, 0, Serialized) // _PS0: Power State 0
|
||||||
{
|
{
|
||||||
Debug = "TB:UPSB:DSB2:XHC2:_PS0"
|
Debug = "TB:DSB2:XHC2:_PS0"
|
||||||
// Debug = "TB:UPSB:DSB2:XHC2:_PS0 - USME: " // One
|
|
||||||
// Debug = USME
|
|
||||||
// Debug = "TB:UPSB:DSB2:XHC2:_PS0 - TBTS: " // One
|
|
||||||
// Debug = TBTS
|
|
||||||
// Debug = "TB:UPSB:DSB2:XHC2:_PS0 - TBSE: " // 0x09
|
|
||||||
// Debug = TBSE
|
|
||||||
// Debug = "TB:UPSB:DSB2:XHC2:_PS0 - TBAS: " // Zero
|
|
||||||
// Debug = TBAS
|
|
||||||
|
|
||||||
If (OSDW ())
|
If (OSDW ())
|
||||||
{
|
{
|
||||||
PCED ()
|
PCED ()
|
||||||
|
|
||||||
|
\_SB.PCI0.RP09.TBST ()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Method (_PS3, 0, Serialized) // _PS3: Power State 3
|
Method (_PS3, 0, Serialized) // _PS3: Power State 3
|
||||||
{
|
{
|
||||||
Debug = "TB:UPSB:DSB2:XHC2:_PS3"
|
Debug = "TB:DSB2:XHC2:_PS3"
|
||||||
|
|
||||||
|
If (OSDW ())
|
||||||
|
{
|
||||||
|
\_SB.PCI0.RP09.TBST ()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -207,26 +200,19 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_XHC2", 0x00001000)
|
||||||
*/
|
*/
|
||||||
Method (RTPC, 1, Serialized)
|
Method (RTPC, 1, Serialized)
|
||||||
{
|
{
|
||||||
If (OSDW ())
|
Debug = Concatenate ("TB:DSB2:XHC2:RTPC called with Arg0: ", Arg0)
|
||||||
{
|
|
||||||
If (Arg0 <= One)
|
If (Arg0 <= One)
|
||||||
{
|
{
|
||||||
If (Arg0 == One)
|
Debug = Concatenate ("TB:NHI0:RTPC setting RUSB to: ", Arg0)
|
||||||
{
|
|
||||||
Debug = "TB:UPSB:DSB2:XHC2:RTPC - USB3.2 Run Time Power Check - Enabling"
|
|
||||||
}
|
|
||||||
|
|
||||||
If (Arg0 == Zero)
|
|
||||||
{
|
|
||||||
Debug = "TB:UPSB:DSB2:XHC2:RTPC - USB3.2 Run Time Power Check - Disabling"
|
|
||||||
}
|
|
||||||
|
|
||||||
\_SB.PCI0.RP09.RUSB = Arg0
|
\_SB.PCI0.RP09.RUSB = Arg0
|
||||||
}
|
|
||||||
Else
|
// Force TB on
|
||||||
|
If (Arg0 == One)
|
||||||
{
|
{
|
||||||
Debug = "TB:UPSB:DSB2:XHC2:RTPC - USB3.2 Run Time Power Check - ??? - Arg0: "
|
Debug = Concatenate ("TB:NHI0:RTPC forcing RTBT to: ", Arg0)
|
||||||
Debug = Arg0
|
\_SB.PCI0.RP09.RTBT = One
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -237,22 +223,14 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_XHC2", 0x00001000)
|
||||||
* USB cable check
|
* USB cable check
|
||||||
* Called by XHC driver to check cable status
|
* Called by XHC driver to check cable status
|
||||||
* Used as idle hint.
|
* Used as idle hint.
|
||||||
|
*
|
||||||
|
* Return:
|
||||||
|
* kUSBTypeCCableTypeNone = 0,
|
||||||
|
* kUSBTypeCCableTypeUSB = 1,
|
||||||
*/
|
*/
|
||||||
Method (MODU, 0, Serialized)
|
Method (MODU, 0, Serialized)
|
||||||
{
|
{
|
||||||
If (\_SB.PCI0.RP09.UPSB.MDUV == Zero)
|
Debug = Concatenate ("TB:DSB2:XHC2:MODU - return: ", \_SB.PCI0.RP09.UPSB.MDUV)
|
||||||
{
|
|
||||||
Debug = "TB:UPSB:DSB2:XHC2:MODU - USB cable check - unplugged (MDUV = Zero)"
|
|
||||||
}
|
|
||||||
ElseIf (\_SB.PCI0.RP09.UPSB.MDUV == One)
|
|
||||||
{
|
|
||||||
Debug = "TB:UPSB:DSB2:XHC2:MODU - USB cable check - plugged (MDUV = One)"
|
|
||||||
}
|
|
||||||
Else
|
|
||||||
{
|
|
||||||
Debug = "TB:UPSB:DSB2:XHC2:MODU - USB cable check - ??? - MDUV: "
|
|
||||||
Debug = \_SB.PCI0.RP09.UPSB.MDUV
|
|
||||||
}
|
|
||||||
|
|
||||||
Return (\_SB.PCI0.RP09.UPSB.MDUV)
|
Return (\_SB.PCI0.RP09.UPSB.MDUV)
|
||||||
}
|
}
|
||||||
|
@ -264,31 +242,6 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_XHC2", 0x00001000)
|
||||||
Device (SSP1)
|
Device (SSP1)
|
||||||
{
|
{
|
||||||
Name (_ADR, 0x03) // _ADR: Address
|
Name (_ADR, 0x03) // _ADR: Address
|
||||||
|
|
||||||
// Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
|
|
||||||
// {
|
|
||||||
// If ((USME == Zero))
|
|
||||||
// {
|
|
||||||
// Return (\_SB.PCI0.RP09.PXSX.TBDU.XHC.RHUB.TUPC (One, 0x09))
|
|
||||||
// }
|
|
||||||
// Else
|
|
||||||
// {
|
|
||||||
// Return (\_SB.PCI0.RP09.PXSX.TBDU.XHC.RHUB.TUPC (One, 0x0A))
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
|
|
||||||
// {
|
|
||||||
// If ((USME == Zero))
|
|
||||||
// {
|
|
||||||
// Return (\_SB.PCI0.RP09.PXSX.TBDU.XHC.RHUB.TPLD (One, One))
|
|
||||||
// }
|
|
||||||
// Else
|
|
||||||
// {
|
|
||||||
// Return (\_SB.PCI0.RP09.PXSX.TBDU.XHC.RHUB.TPLD (One, UPT1))
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities
|
Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities
|
||||||
{
|
{
|
||||||
0xFF,
|
0xFF,
|
||||||
|
@ -296,72 +249,34 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_XHC2", 0x00001000)
|
||||||
Zero,
|
Zero,
|
||||||
Zero
|
Zero
|
||||||
})
|
})
|
||||||
Name (_PLD, Package (0x01) // _PLD: Physical Location of Device
|
|
||||||
|
Name (HS, Package ()
|
||||||
{
|
{
|
||||||
ToPLD (
|
"XHC",
|
||||||
PLD_Revision = 0x1,
|
|
||||||
PLD_IgnoreColor = 0x1,
|
|
||||||
PLD_Red = 0x0,
|
|
||||||
PLD_Green = 0x0,
|
|
||||||
PLD_Blue = 0x0,
|
|
||||||
PLD_Width = 0x0,
|
|
||||||
PLD_Height = 0x0,
|
|
||||||
PLD_UserVisible = 0x1,
|
|
||||||
PLD_Dock = 0x0,
|
|
||||||
PLD_Lid = 0x0,
|
|
||||||
PLD_Panel = "UNKNOWN",
|
|
||||||
PLD_VerticalPosition = "UPPER",
|
|
||||||
PLD_HorizontalPosition = "LEFT",
|
|
||||||
PLD_Shape = "UNKNOWN",
|
|
||||||
PLD_GroupOrientation = 0x0,
|
|
||||||
PLD_GroupToken = 0x0,
|
|
||||||
PLD_GroupPosition = 0x0,
|
|
||||||
PLD_Bay = 0x0,
|
|
||||||
PLD_Ejectable = 0x0,
|
|
||||||
PLD_EjectRequired = 0x0,
|
|
||||||
PLD_CabinetNumber = 0x0,
|
|
||||||
PLD_CardCageNumber = 0x0,
|
|
||||||
PLD_Reference = 0x0,
|
|
||||||
PLD_Rotation = 0x0,
|
|
||||||
PLD_Order = 0x0,
|
|
||||||
PLD_VerticalOffset = 0x0,
|
|
||||||
PLD_HorizontalOffset = 0x0)
|
|
||||||
})
|
|
||||||
Name (HS, Package (0x02)
|
|
||||||
{
|
|
||||||
"XHC1",
|
|
||||||
0x03
|
0x03
|
||||||
})
|
})
|
||||||
Name (FS, Package (0x02)
|
|
||||||
|
Name (FS, Package ()
|
||||||
{
|
{
|
||||||
"XHC1",
|
"XHC",
|
||||||
0x03
|
0x03
|
||||||
})
|
})
|
||||||
Name (LS, Package (0x02)
|
|
||||||
|
Name (LS, Package ()
|
||||||
{
|
{
|
||||||
"XHC1",
|
"XHC",
|
||||||
0x03
|
0x03
|
||||||
})
|
})
|
||||||
|
|
||||||
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
|
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
|
||||||
{
|
{
|
||||||
If (U2OP == One)
|
Local0 = Package ()
|
||||||
{
|
|
||||||
Local0 = Package (0x04)
|
|
||||||
{
|
{
|
||||||
"UsbCPortNumber",
|
"UsbCPortNumber",
|
||||||
0x02,
|
\_SB.PCI0.RP09.UPN1,
|
||||||
"UsbCompanionPortPresent",
|
"UsbCompanionPortPresent",
|
||||||
One
|
One
|
||||||
}
|
}
|
||||||
}
|
|
||||||
Else
|
|
||||||
{
|
|
||||||
Local0 = Package (0x02)
|
|
||||||
{
|
|
||||||
"UsbCPortNumber",
|
|
||||||
0x02,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
|
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
|
||||||
Return (Local0)
|
Return (Local0)
|
||||||
|
@ -371,31 +286,6 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_XHC2", 0x00001000)
|
||||||
Device (SSP2)
|
Device (SSP2)
|
||||||
{
|
{
|
||||||
Name (_ADR, 0x04) // _ADR: Address
|
Name (_ADR, 0x04) // _ADR: Address
|
||||||
|
|
||||||
// Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
|
|
||||||
// {
|
|
||||||
// If ((USME == Zero))
|
|
||||||
// {
|
|
||||||
// Return (\_SB.PCI0.RP09.PXSX.TBDU.XHC.RHUB.TUPC (One, 0x09))
|
|
||||||
// }
|
|
||||||
// Else
|
|
||||||
// {
|
|
||||||
// Return (\_SB.PCI0.RP09.PXSX.TBDU.XHC.RHUB.TUPC (One, 0x0A))
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
|
|
||||||
// {
|
|
||||||
// If ((USME == Zero))
|
|
||||||
// {
|
|
||||||
// Return (\_SB.PCI0.RP09.PXSX.TBDU.XHC.RHUB.TPLD (One, 0x02))
|
|
||||||
// }
|
|
||||||
// Else
|
|
||||||
// {
|
|
||||||
// Return (\_SB.PCI0.RP09.PXSX.TBDU.XHC.RHUB.TPLD (One, UPT2))
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities
|
Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities
|
||||||
{
|
{
|
||||||
0xFF,
|
0xFF,
|
||||||
|
@ -403,74 +293,34 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_XHC2", 0x00001000)
|
||||||
Zero,
|
Zero,
|
||||||
Zero
|
Zero
|
||||||
})
|
})
|
||||||
Name (_PLD, Package (0x01) // _PLD: Physical Location of Device
|
|
||||||
|
Name (HS, Package ()
|
||||||
{
|
{
|
||||||
ToPLD (
|
"XHC",
|
||||||
PLD_Revision = 0x1,
|
0x04
|
||||||
PLD_IgnoreColor = 0x1,
|
|
||||||
PLD_Red = 0x0,
|
|
||||||
PLD_Green = 0x0,
|
|
||||||
PLD_Blue = 0x0,
|
|
||||||
PLD_Width = 0x0,
|
|
||||||
PLD_Height = 0x0,
|
|
||||||
PLD_UserVisible = 0x1,
|
|
||||||
PLD_Dock = 0x0,
|
|
||||||
PLD_Lid = 0x0,
|
|
||||||
PLD_Panel = "UNKNOWN",
|
|
||||||
PLD_VerticalPosition = "LOWER",
|
|
||||||
PLD_HorizontalPosition = "LEFT",
|
|
||||||
PLD_Shape = "UNKNOWN",
|
|
||||||
PLD_GroupOrientation = 0x0,
|
|
||||||
PLD_GroupToken = 0x0,
|
|
||||||
PLD_GroupPosition = 0x0,
|
|
||||||
PLD_Bay = 0x0,
|
|
||||||
PLD_Ejectable = 0x0,
|
|
||||||
PLD_EjectRequired = 0x0,
|
|
||||||
PLD_CabinetNumber = 0x0,
|
|
||||||
PLD_CardCageNumber = 0x0,
|
|
||||||
PLD_Reference = 0x0,
|
|
||||||
PLD_Rotation = 0x0,
|
|
||||||
PLD_Order = 0x0,
|
|
||||||
PLD_VerticalOffset = 0x0,
|
|
||||||
PLD_HorizontalOffset = 0x0)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
Name (HS, Package (0x02)
|
Name (FS, Package ()
|
||||||
{
|
{
|
||||||
"XHC1",
|
"XHC",
|
||||||
0x04
|
0x04
|
||||||
})
|
})
|
||||||
Name (FS, Package (0x02)
|
|
||||||
|
Name (LS, Package ()
|
||||||
{
|
{
|
||||||
"XHC1",
|
"XHC",
|
||||||
0x04
|
|
||||||
})
|
|
||||||
Name (LS, Package (0x02)
|
|
||||||
{
|
|
||||||
"XHC1",
|
|
||||||
0x04
|
0x04
|
||||||
})
|
})
|
||||||
|
|
||||||
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
|
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
|
||||||
{
|
{
|
||||||
If (U2OP == One)
|
Local0 = Package ()
|
||||||
{
|
|
||||||
Local0 = Package (0x04)
|
|
||||||
{
|
{
|
||||||
"UsbCPortNumber",
|
"UsbCPortNumber",
|
||||||
One,
|
\_SB.PCI0.RP09.UPN2,
|
||||||
"UsbCompanionPortPresent",
|
"UsbCompanionPortPresent",
|
||||||
One
|
One
|
||||||
}
|
}
|
||||||
}
|
|
||||||
Else
|
|
||||||
{
|
|
||||||
Local0 = Package (0x02)
|
|
||||||
{
|
|
||||||
"UsbCPortNumber",
|
|
||||||
One,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
|
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
|
||||||
Return (Local0)
|
Return (Local0)
|
||||||
|
@ -479,4 +329,5 @@ DefinitionBlock ("", "SSDT", 2, "tyler", "_XHC2", 0x00001000)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in a new issue