diff --git a/CHANGELOG.md b/CHANGELOG.md index 1de1bf8..2e983ba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,13 +6,14 @@ [](https://developer.apple.com/documentation/macos-release-notes) [](https://developer.apple.com/documentation/macos-release-notes) [](https://developer.apple.com/documentation/macos-release-notes) -[](https://github.com/acidanthera/OpenCorePkg) +[](https://developer.apple.com/documentation/macos-release-notes) +[](https://github.com/acidanthera/OpenCorePkg) [](/LICENSE)
Status: Maintained
Status: Maintained
diff --git a/Source Code/SSDT-BATX.dsl b/Source Code/SSDT-BATX.dsl
index 3f5fcbd..f8c9762 100644
--- a/Source Code/SSDT-BATX.dsl
+++ b/Source Code/SSDT-BATX.dsl
@@ -276,7 +276,7 @@ DefinitionBlock ("", "SSDT", 2, "T480", "BATX", 0x00009000)
Name (_UID, Zero) // _UID: Unique ID
Name (_PCL, Package (0x01) // _PCL: Power Consumer List
{
- _SB
+ _SB,
})
Method (_STA, 0, NotSerialized) // _STA: Status
{
diff --git a/Source Code/SSDT-DEVICE.dsl b/Source Code/SSDT-DEVICE.dsl
index c7a073a..1c20b27 100644
--- a/Source Code/SSDT-DEVICE.dsl
+++ b/Source Code/SSDT-DEVICE.dsl
@@ -106,34 +106,13 @@ DefinitionBlock ("", "SSDT", 2, "T480", "VDEV", 0x00000000)
Device (DMAC)
{
Name (_HID, EisaId ("PNP0200") /* PC-class DMA Controller */) // _HID: Hardware ID
- Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
+ Name (_CRS, Buffer (0x25) // _CRS: Current Resource Settings
{
- IO (Decode16,
- 0x0000, // Range Minimum
- 0x0000, // Range Maximum
- 0x01, // Alignment
- 0x20, // Length
- )
- IO (Decode16,
- 0x0081, // Range Minimum
- 0x0081, // Range Maximum
- 0x01, // Alignment
- 0x11, // Length
- )
- IO (Decode16,
- 0x0093, // Range Minimum
- 0x0093, // Range Maximum
- 0x01, // Alignment
- 0x0D, // Length
- )
- IO (Decode16,
- 0x00C0, // Range Minimum
- 0x00C0, // Range Maximum
- 0x01, // Alignment
- 0x20, // Length
- )
- DMA (Compatibility, NotBusMaster, Transfer8_16, )
- {4}
+ /* 0000 */ 0x47, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x20, // G......
+ /* 0008 */ 0x47, 0x01, 0x81, 0x00, 0x81, 0x00, 0x01, 0x11, // G.......
+ /* 0010 */ 0x47, 0x01, 0x93, 0x00, 0x93, 0x00, 0x01, 0x0D, // G.......
+ /* 0018 */ 0x47, 0x01, 0xC0, 0x00, 0xC0, 0x00, 0x01, 0x20, // G......
+ /* 0020 */ 0x2A, 0x10, 0x01, 0x79, 0x00 // *..y.
})
Method (_STA, 0, NotSerialized) // _STA: Status
{
diff --git a/Source Code/SSDT-GPI0.dsl b/Source Code/SSDT-GPI0.dsl
new file mode 100644
index 0000000..3399a86
--- /dev/null
+++ b/Source Code/SSDT-GPI0.dsl
@@ -0,0 +1,13 @@
+DefinitionBlock ("", "SSDT", 2, "VNXY", "GPI0", 0x00000000)
+{
+ External (_SB_.PCI0.GPI0, DeviceObj)
+
+ Scope (\_SB.PCI0.GPI0)
+ {
+ Method (_STA, 0, NotSerialized) // _STA: Status
+ {
+ Return (0x0F)
+ }
+ }
+}
+
diff --git a/Source Code/SSDT-KBRD.aml b/Source Code/SSDT-KBRD.aml
deleted file mode 100644
index 18c5f6e..0000000
Binary files a/Source Code/SSDT-KBRD.aml and /dev/null differ
diff --git a/Source Code/SSDT-KBRD.dsl b/Source Code/SSDT-KBRD.dsl
index 9093b68..3e8e637 100644
--- a/Source Code/SSDT-KBRD.dsl
+++ b/Source Code/SSDT-KBRD.dsl
@@ -42,6 +42,7 @@ DefinitionBlock ("", "SSDT", 2, "T480", "KBRD", 0x00000000)
Package (0x03)
{
Package (0x00){},
+ "e038=e05b",
"e037=64"
}
}
diff --git a/Source Code/SSDT-KBTA.dsl b/Source Code/SSDT-KBTA.dsl
index 3d5d9e1..342507d 100644
--- a/Source Code/SSDT-KBTA.dsl
+++ b/Source Code/SSDT-KBTA.dsl
@@ -3,42 +3,37 @@
DefinitionBlock ("", "SSDT", 2, "VNXY", "_KBD", 0x00000000)
{
- External (_SB_.PCI0.LPCB.EC__, DeviceObj) // (from opcode)
- External (_SB_.PCI0.LPCB.KBD_, DeviceObj) // (from opcode)
-
- External (\_SB.PCI0.LPCB.EC.LED, MethodObj)
- External (\_SB.PCI0.LPCB.EC.HKEY.MMTS, MethodObj)
- External (\_SB.PCI0.LPCB.EC.HKEY.MMTG, MethodObj)
- External (\_SB.PCI0.LPCB.EC.XQ6A, MethodObj)
- External (\_SB.PCI0.LPCB.EC.XQ16, MethodObj)
- External (\_SB.PCI0.LPCB.EC.XQ64, MethodObj)
- External (\_SB.PCI0.LPCB.EC.XQ66, MethodObj)
- External (\_SB.PCI0.LPCB.EC.XQ60, MethodObj)
- External (\_SB.PCI0.LPCB.EC.XQ61, MethodObj)
- External (\_SB.PCI0.LPCB.EC.XQ62, MethodObj)
-
- External (\_SB.PCI0.LPCB.EC.HKEY.MLCS, MethodObj)
- External (\_SB.PCI0.LPCB.EC.XQ1F, MethodObj)
+ External (_SB_.PCI0.LPCB.EC__, DeviceObj) // from opcode
+ External (_SB_.PCI0.LPCB.EC__.HKEY.MLCS, MethodObj) // 1 Arguments
+ External (_SB_.PCI0.LPCB.EC__.HKEY.MMTS, MethodObj) // 1 Arguments
+ External (_SB_.PCI0.LPCB.EC__.XQ16, MethodObj) // 0 Arguments
+ External (_SB_.PCI0.LPCB.EC__.XQ1F, MethodObj) // 0 Arguments
+ External (_SB_.PCI0.LPCB.EC__.XQ60, MethodObj) // 0 Arguments
+ External (_SB_.PCI0.LPCB.EC__.XQ61, MethodObj) // 0 Arguments
+ External (_SB_.PCI0.LPCB.EC__.XQ62, MethodObj) // 0 Arguments
+ External (_SB_.PCI0.LPCB.EC__.XQ64, MethodObj) // 0 Arguments
+ External (_SB_.PCI0.LPCB.EC__.XQ66, MethodObj) // 0 Arguments
+ External (_SB_.PCI0.LPCB.EC__.XQ6A, MethodObj) // 0 Arguments
+ External (_SB_.PCI0.LPCB.KBD_, DeviceObj)
Scope (\_SB.PCI0.LPCB.EC)
{
Name (LED1, Zero)
Name (LED2, Zero)
-
- Method (_Q14, 0, NotSerialized) // _Qxx: EC Query
+ Method (_Q14, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
Notify (\_SB.PCI0.LPCB.KBD, 0x0206)
Notify (\_SB.PCI0.LPCB.KBD, 0x0286)
}
- Method (_Q15, 0, NotSerialized) // _Qxx: EC Query
+ Method (_Q15, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
Notify (\_SB.PCI0.LPCB.KBD, 0x0205)
Notify (\_SB.PCI0.LPCB.KBD, 0x0285)
}
// _Q6A - (Fn+F4) microphone mute key.
- Method(_Q6A, 0, NotSerialized)
+ Method (_Q6A, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
If (_OSI ("Darwin"))
{
@@ -46,7 +41,7 @@ DefinitionBlock ("", "SSDT", 2, "VNXY", "_KBD", 0x00000000)
// is picked up by VoodooPS2 and sent to macOS as the F20 key.
//Bug: Currently it's not possivle to map F20 Key in Systemprefs
- Notify (\_SB.PCI0.LPCB.KBD, 0x036b)
+ Notify (\_SB.PCI0.LPCB.KBD, 0x036B)
// Toggle Mute Microphone LED
If ((LED1 == Zero))
@@ -65,12 +60,12 @@ DefinitionBlock ("", "SSDT", 2, "VNXY", "_KBD", 0x00000000)
Else
{
// Call original _Q6A method.
- \_SB.PCI0.LPCB.EC.XQ6A()
+ \_SB.PCI0.LPCB.EC.XQ6A ()
}
}
// _Q16 - (Fn+F7) dual display
- Method(_Q16, 0, NotSerialized)
+ Method (_Q16, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
If (_OSI ("Darwin"))
{
@@ -83,7 +78,7 @@ DefinitionBlock ("", "SSDT", 2, "VNXY", "_KBD", 0x00000000)
}
// _Q64 - (Fn+F8) Wireless disable key.
- Method(_Q64, 0, NotSerialized)
+ Method (_Q64, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
If (_OSI ("Darwin"))
{
@@ -99,7 +94,7 @@ DefinitionBlock ("", "SSDT", 2, "VNXY", "_KBD", 0x00000000)
}
// _Q66 - (Fn+F9) settings
- Method(_Q66, 0, NotSerialized)
+ Method (_Q66, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
If (_OSI ("Darwin"))
{
@@ -112,7 +107,7 @@ DefinitionBlock ("", "SSDT", 2, "VNXY", "_KBD", 0x00000000)
}
// _Q60 - (Fn+F10) bluetooth
- Method(_Q60, 0, NotSerialized)
+ Method (_Q60, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
If (_OSI ("Darwin"))
{
@@ -127,7 +122,7 @@ DefinitionBlock ("", "SSDT", 2, "VNXY", "_KBD", 0x00000000)
}
// _Q61 - (Fn+F11) keyboard
- Method(_Q61, 0, NotSerialized)
+ Method (_Q61, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
If (_OSI ("Darwin"))
{
@@ -145,7 +140,7 @@ DefinitionBlock ("", "SSDT", 2, "VNXY", "_KBD", 0x00000000)
}
// _Q62 - (Fn+F12) star
- Method(_Q62, 0, NotSerialized)
+ Method (_Q62, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
If (_OSI ("Darwin"))
{
@@ -160,54 +155,49 @@ DefinitionBlock ("", "SSDT", 2, "VNXY", "_KBD", 0x00000000)
}
// _Q1F - (Fn+Space) Toggle Keyboard Backlight.
- Method (_Q1F, 0, NotSerialized) // cycle keyboard backlight
+ Method (_Q1F, 0, NotSerialized) // cycle keyboard backlight - _Qxx: EC Query, xx=0x00-0xFF
{
If (_OSI ("Darwin"))
{
// Cycle keyboard backlight states
If ((LED2 == Zero))
- {
+ {
// Right Shift + F16.
Notify (\_SB.PCI0.LPCB.KBD, 0x0136)
Notify (\_SB.PCI0.LPCB.KBD, 0x0367)
- Notify (\_SB.PCI0.LPCB.KBD, 0x01b6)
+ Notify (\_SB.PCI0.LPCB.KBD, 0x01B6)
// Off to dim
\_SB.PCI0.LPCB.EC.HKEY.MLCS (One)
LED2 = One
}
+ ElseIf ((LED2 == One))
+ {
+ // Left Shift + F19.
+ Notify (\_SB.PCI0.LPCB.KBD, 0x012A)
+ Notify (\_SB.PCI0.LPCB.KBD, 0x036A)
+ Notify (\_SB.PCI0.LPCB.KBD, 0x01AA)
+ // dim to bright
+ \_SB.PCI0.LPCB.EC.HKEY.MLCS (0x02)
+ LED2 = 0x02
+ }
+ ElseIf ((LED2 == 0x02))
+ {
+ // Left Shift + F16.
+ Notify (\_SB.PCI0.LPCB.KBD, 0x012A)
+ Notify (\_SB.PCI0.LPCB.KBD, 0x0367)
+ Notify (\_SB.PCI0.LPCB.KBD, 0x01AA)
+ // bright to off
+ \_SB.PCI0.LPCB.EC.HKEY.MLCS (Zero)
+ LED2 = Zero
+ }
Else
{
- If ((LED2 == One))
- {
- // Left Shift + F19.
- Notify (\_SB.PCI0.LPCB.KBD, 0x012a)
- Notify (\_SB.PCI0.LPCB.KBD, 0x036a)
- Notify (\_SB.PCI0.LPCB.KBD, 0x01aa)
- // dim to bright
- \_SB.PCI0.LPCB.EC.HKEY.MLCS (0x02)
- LED2 = 2
- }
- Else
- {
- If ((LED2 == 2))
- {
- // Left Shift + F16.
- Notify (\_SB.PCI0.LPCB.KBD, 0x012a)
- Notify (\_SB.PCI0.LPCB.KBD, 0x0367)
- Notify (\_SB.PCI0.LPCB.KBD, 0x01aa)
- // bright to off
- \_SB.PCI0.LPCB.EC.HKEY.MLCS (Zero)
- LED2 = Zero
- }
- Else
- {
- // Call original _Q6A method.
- \_SB.PCI0.LPCB.EC.XQ1F ()
- }
- }
+ // Call original _Q6A method.
+ \_SB.PCI0.LPCB.EC.XQ1F ()
}
}
}
}
-}
\ No newline at end of file
+}
+
diff --git a/Source Code/SSDT-TbtOnPch-DTPG.dsl b/Source Code/SSDT-TbtOnPch-DTPG.dsl
new file mode 100644
index 0000000..787bc7b
--- /dev/null
+++ b/Source Code/SSDT-TbtOnPch-DTPG.dsl
@@ -0,0 +1,1177 @@
+DefinitionBlock ("", "SSDT", 2, "APPLE ", "TbtOnPCH", 0x00001000)
+{
+ External (_SB_.PCI0, DeviceObj)
+ External (_SB_.PCI0.GPCB, MethodObj) // 0 Arguments
+ External (_SB_.PCI0.RP09, DeviceObj)
+ External (_SB_.PCI0.RP09.PXSX, DeviceObj)
+
+ Scope (\)
+ {
+ Mutex (TCFG, 0x00)
+ Scope (_GPE)
+ {
+ Method (_E2C, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+ {
+ If (_OSI ("Darwin"))
+ {
+ \_SB.PCI0.RP09.UPSB.AMPE ()
+ \_SB.PCI0.RP09.UPSB.UMPE ()
+ }
+ }
+ }
+
+ Scope (_SB)
+ {
+ Scope (PCI0)
+ {
+ If (_OSI ("Darwin"))
+ {
+ Scope (RP09)
+ {
+ Name (PXSX._STA, Zero) // _STA: Status
+ Name (EICM, Zero)
+ Name (R020, Zero)
+ Name (R024, Zero)
+ Name (R028, Zero)
+ Name (R02C, Zero)
+ Name (R118, Zero)
+ Name (R119, Zero)
+ Name (R11A, Zero)
+ Name (R11C, Zero)
+ Name (R120, Zero)
+ Name (R124, Zero)
+ Name (R128, Zero)
+ Name (R12C, Zero)
+ Name (R218, Zero)
+ Name (R219, Zero)
+ Name (R21A, Zero)
+ Name (R21C, Zero)
+ Name (R220, Zero)
+ Name (R224, Zero)
+ Name (R228, Zero)
+ Name (R22C, Zero)
+ Name (R318, Zero)
+ Name (R319, Zero)
+ Name (R31A, Zero)
+ Name (R31C, Zero)
+ Name (R320, Zero)
+ Name (R324, Zero)
+ Name (R328, Zero)
+ Name (R32C, Zero)
+ Name (R418, Zero)
+ Name (R419, Zero)
+ Name (R41A, Zero)
+ Name (R41C, Zero)
+ Name (R420, Zero)
+ Name (R424, Zero)
+ Name (R428, Zero)
+ Name (R42C, Zero)
+ Name (RVES, Zero)
+ Name (R518, Zero)
+ Name (R519, Zero)
+ Name (R51A, Zero)
+ Name (R51C, Zero)
+ Name (R520, Zero)
+ Name (R524, Zero)
+ Name (R528, Zero)
+ Name (R52C, Zero)
+ Name (R618, Zero)
+ Name (R619, Zero)
+ Name (R61A, Zero)
+ Name (R61C, Zero)
+ Name (R620, Zero)
+ Name (R624, Zero)
+ Name (R628, Zero)
+ Name (R62C, Zero)
+ Name (RH10, Zero)
+ Name (RH14, Zero)
+ Name (POC0, Zero)
+ Method (MMBA, 1, Serialized)
+ {
+ Local0 = (\_SB.PCI0.GPCB () + 0x000E8000)
+ OperationRegion (MMMM, SystemMemory, Local0, 0x24)
+ Field (MMMM, DWordAcc, NoLock, Preserve)
+ {
+ Offset (0x19),
+ SB19, 8,
+ Offset (0x20),
+ SB20, 32
+ }
+
+ Switch (ToInteger (Arg0))
+ {
+ Case (One)
+ {
+ Local1 = Local0
+ }
+ Case (0x02)
+ {
+ Local1 = (\_SB.PCI0.GPCB () + (SB19 * 0x00100000))
+ }
+ Case (0x03)
+ {
+ Local1 = (\_SB.PCI0.GPCB () + ((SB19 + One) * 0x00100000))
+ }
+ Case (0x04)
+ {
+ Local1 = ((\_SB.PCI0.GPCB () + ((SB19 + One) * 0x00100000)) +
+ 0x8000)
+ }
+ Case (0x05)
+ {
+ Local1 = ((\_SB.PCI0.GPCB () + ((SB19 + One) * 0x00100000)) +
+ 0x00010000)
+ }
+ Case (0x06)
+ {
+ Local1 = ((\_SB.PCI0.GPCB () + ((SB19 + One) * 0x00100000)) +
+ 0x00020000)
+ }
+ Case (0x07)
+ {
+ Local1 = (\_SB.PCI0.GPCB () + ((SB19 + 0x02) * 0x00100000))
+ }
+ Case (0x08)
+ {
+ Local1 = ((((SB20 & 0xFFFC) << 0x10) & 0xFFF00000) +
+ 0x00039854)
+ }
+
+ }
+
+ Return (Local1)
+ }
+
+ OperationRegion (RSTR, SystemMemory, MMBA (0x08), 0x0100)
+ Field (RSTR, DWordAcc, NoLock, Preserve)
+ {
+ CIOR, 32,
+ Offset (0xB8),
+ ISTA, 32,
+ Offset (0xF0),
+ ICME, 32
+ }
+
+ OperationRegion (RPSM, SystemMemory, MMBA (One), 0x54)
+ Field (RPSM, DWordAcc, NoLock, Preserve)
+ {
+ RPVD, 32,
+ RPR4, 8,
+ Offset (0x18),
+ RP18, 8,
+ RP19, 8,
+ RP1A, 8,
+ Offset (0x1C),
+ RP1C, 16,
+ Offset (0x20),
+ R_20, 32,
+ R_24, 32,
+ R_28, 32,
+ R_2C, 32,
+ Offset (0x52),
+ , 11,
+ RPLT, 1,
+ Offset (0x54)
+ }
+
+ OperationRegion (UPSM, SystemMemory, MMBA (0x02), 0x0550)
+ Field (UPSM, DWordAcc, NoLock, Preserve)
+ {
+ UPVD, 32,
+ UP04, 8,
+ Offset (0x08),
+ CLRD, 32,
+ Offset (0x18),
+ UP18, 8,
+ UP19, 8,
+ UP1A, 8,
+ Offset (0x1C),
+ UP1C, 16,
+ Offset (0x20),
+ UP20, 32,
+ UP24, 32,
+ UP28, 32,
+ UP2C, 32,
+ Offset (0xD2),
+ , 11,
+ UPLT, 1,
+ Offset (0xD4),
+ Offset (0x544),
+ UPMB, 1,
+ Offset (0x548),
+ T2PR, 32,
+ P2TR, 32
+ }
+
+ OperationRegion (DNSM, SystemMemory, MMBA (0x03), 0xD4)
+ Field (DNSM, DWordAcc, NoLock, Preserve)
+ {
+ DPVD, 32,
+ DP04, 8,
+ Offset (0x18),
+ DP18, 8,
+ DP19, 8,
+ DP1A, 8,
+ Offset (0x1C),
+ DP1C, 16,
+ Offset (0x20),
+ DP20, 32,
+ DP24, 32,
+ DP28, 32,
+ DP2C, 32,
+ Offset (0xD2),
+ , 11,
+ DPLT, 1,
+ Offset (0xD4)
+ }
+
+ OperationRegion (DS3M, SystemMemory, MMBA (0x04), 0x40)
+ Field (DS3M, DWordAcc, NoLock, Preserve)
+ {
+ D3VD, 32,
+ D304, 8,
+ Offset (0x18),
+ D318, 8,
+ D319, 8,
+ D31A, 8,
+ Offset (0x1C),
+ D31C, 16,
+ Offset (0x20),
+ D320, 32,
+ D324, 32,
+ D328, 32,
+ D32C, 32
+ }
+
+ OperationRegion (DS4M, SystemMemory, MMBA (0x05), 0x0568)
+ Field (DS4M, DWordAcc, NoLock, Preserve)
+ {
+ D4VD, 32,
+ D404, 8,
+ Offset (0x18),
+ D418, 8,
+ D419, 8,
+ D41A, 8,
+ Offset (0x1C),
+ D41C, 16,
+ Offset (0x20),
+ D420, 32,
+ D424, 32,
+ D428, 32,
+ D42C, 32,
+ Offset (0x564),
+ DVES, 32
+ }
+
+ OperationRegion (DS5M, SystemMemory, MMBA (0x06), 0x40)
+ Field (DS5M, DWordAcc, NoLock, Preserve)
+ {
+ D5VD, 32,
+ D504, 8,
+ Offset (0x18),
+ D518, 8,
+ D519, 8,
+ D51A, 8,
+ Offset (0x1C),
+ D51C, 16,
+ Offset (0x20),
+ D520, 32,
+ D524, 32,
+ D528, 32,
+ D52C, 32
+ }
+
+ OperationRegion (NHIM, SystemMemory, MMBA (0x07), 0x40)
+ Field (NHIM, DWordAcc, NoLock, Preserve)
+ {
+ NH00, 32,
+ NH04, 8,
+ Offset (0x10),
+ NH10, 32,
+ NH14, 32
+ }
+
+ Method (_INI, 0, NotSerialized) // _INI: Initialize
+ {
+ Acquire (TCFG, 0xFFFF)
+ R020 = R_20 /* \_SB_.PCI0.RP09.R_20 */
+ R024 = R_24 /* \_SB_.PCI0.RP09.R_24 */
+ R118 = RP19 /* \_SB_.PCI0.RP09.RP19 */
+ R119 = (RP19 + One)
+ R11A = RP1A /* \_SB_.PCI0.RP09.RP1A */
+ R11C = RP1C /* \_SB_.PCI0.RP09.RP1C */
+ R120 = R_20 /* \_SB_.PCI0.RP09.R_20 */
+ R124 = R_24 /* \_SB_.PCI0.RP09.R_24 */
+ R218 = R119 /* \_SB_.PCI0.RP09.R119 */
+ R219 = (R119 + One)
+ R21A = R11A /* \_SB_.PCI0.RP09.R11A */
+ R21C = R11C /* \_SB_.PCI0.RP09.R11C */
+ R220 = R120 /* \_SB_.PCI0.RP09.R120 */
+ R224 = R124 /* \_SB_.PCI0.RP09.R124 */
+ R318 = R119 /* \_SB_.PCI0.RP09.R119 */
+ R319 = (R119 + 0x02)
+ R31A = (R119 + 0x02)
+ R31C = Zero
+ R320 = Zero
+ R324 = Zero
+ R418 = R119 /* \_SB_.PCI0.RP09.R119 */
+ R419 = (R119 + 0x03)
+ R41A = (R119 + 0x03)
+ R41C = Zero
+ R420 = Zero
+ R424 = Zero
+ RVES = Zero
+ R518 = R119 /* \_SB_.PCI0.RP09.R119 */
+ R519 = (R119 + 0x04)
+ R51A = (R119 + 0x04)
+ R51C = Zero
+ R520 = Zero
+ R524 = Zero
+ R618 = Zero
+ R619 = Zero
+ R61A = Zero
+ R61C = Zero
+ R620 = Zero
+ R624 = Zero
+ RH10 = ((R220 & 0xFFFC) << 0x10)
+ RH14 = Zero
+ Sleep (One)
+ ICMS ()
+ Release (TCFG)
+ }
+
+ Method (ICMS, 0, NotSerialized)
+ {
+ \_SB.PCI0.RP09.POC0 = One
+ If ((\_SB.PCI0.RP09.ICME != 0x800001A3))
+ {
+ If (\_SB.PCI0.RP09.CNHI ())
+ {
+ If ((\_SB.PCI0.RP09.ICME != 0xFFFFFFFF))
+ {
+ \_SB.PCI0.RP09.WTLT ()
+ \_SB.PCI0.RP09.ICME |= 0x06
+ Local0 = 0x03E8
+ While (((Local0 = (\_SB.PCI0.RP09.ICME & 0x80000000)) == Zero))
+ {
+ Local0--
+ If ((Local0 == Zero))
+ {
+ Break
+ }
+
+ Sleep (One)
+ }
+
+ Sleep (0x03E8)
+ }
+ }
+ }
+
+ \_SB.PCI0.RP09.POC0 = Zero
+ }
+
+ Method (CNHI, 0, Serialized)
+ {
+ Local0 = 0x0A
+ While (Local0)
+ {
+ R_20 = R020 /* \_SB_.PCI0.RP09.R020 */
+ R_24 = R024 /* \_SB_.PCI0.RP09.R024 */
+ R_28 = R028 /* \_SB_.PCI0.RP09.R028 */
+ R_2C = R02C /* \_SB_.PCI0.RP09.R02C */
+ RPR4 = 0x07
+ If ((R020 == R_20))
+ {
+ Break
+ }
+
+ Sleep (One)
+ Local0--
+ }
+
+ If ((R020 != R_20))
+ {
+ Return (Zero)
+ }
+
+ Local0 = 0x0A
+ While (Local0)
+ {
+ UP18 = R118 /* \_SB_.PCI0.RP09.R118 */
+ UP19 = R119 /* \_SB_.PCI0.RP09.R119 */
+ UP1A = R11A /* \_SB_.PCI0.RP09.R11A */
+ UP1C = R11C /* \_SB_.PCI0.RP09.R11C */
+ UP20 = R120 /* \_SB_.PCI0.RP09.R120 */
+ UP24 = R124 /* \_SB_.PCI0.RP09.R124 */
+ UP28 = R128 /* \_SB_.PCI0.RP09.R128 */
+ UP2C = R12C /* \_SB_.PCI0.RP09.R12C */
+ UP04 = 0x07
+ If ((R119 == UP19))
+ {
+ Break
+ }
+
+ Sleep (One)
+ Local0--
+ }
+
+ If ((R119 != UP19))
+ {
+ Return (Zero)
+ }
+
+ If ((WTLT () == One)){}
+ Else
+ {
+ Return (Zero)
+ }
+
+ Local0 = 0x0A
+ While (Local0)
+ {
+ DP18 = R218 /* \_SB_.PCI0.RP09.R218 */
+ DP19 = R219 /* \_SB_.PCI0.RP09.R219 */
+ DP1A = R21A /* \_SB_.PCI0.RP09.R21A */
+ DP1C = R21C /* \_SB_.PCI0.RP09.R21C */
+ DP20 = R220 /* \_SB_.PCI0.RP09.R220 */
+ DP24 = R224 /* \_SB_.PCI0.RP09.R224 */
+ DP28 = R228 /* \_SB_.PCI0.RP09.R228 */
+ DP2C = R22C /* \_SB_.PCI0.RP09.R22C */
+ DP04 = 0x07
+ D318 = R318 /* \_SB_.PCI0.RP09.R318 */
+ D319 = R319 /* \_SB_.PCI0.RP09.R319 */
+ D31A = R31A /* \_SB_.PCI0.RP09.R31A */
+ D31C = R31C /* \_SB_.PCI0.RP09.R31C */
+ D320 = R320 /* \_SB_.PCI0.RP09.R320 */
+ D324 = R324 /* \_SB_.PCI0.RP09.R324 */
+ D328 = R328 /* \_SB_.PCI0.RP09.R328 */
+ D32C = R32C /* \_SB_.PCI0.RP09.R32C */
+ D304 = 0x07
+ D418 = R418 /* \_SB_.PCI0.RP09.R418 */
+ D419 = R419 /* \_SB_.PCI0.RP09.R419 */
+ D41A = R41A /* \_SB_.PCI0.RP09.R41A */
+ D41C = R41C /* \_SB_.PCI0.RP09.R41C */
+ D420 = R420 /* \_SB_.PCI0.RP09.R420 */
+ D424 = R424 /* \_SB_.PCI0.RP09.R424 */
+ D428 = R428 /* \_SB_.PCI0.RP09.R428 */
+ D42C = R42C /* \_SB_.PCI0.RP09.R42C */
+ DVES = RVES /* \_SB_.PCI0.RP09.RVES */
+ D404 = 0x07
+ D518 = R518 /* \_SB_.PCI0.RP09.R518 */
+ D519 = R519 /* \_SB_.PCI0.RP09.R519 */
+ D51A = R51A /* \_SB_.PCI0.RP09.R51A */
+ D51C = R51C /* \_SB_.PCI0.RP09.R51C */
+ D520 = R520 /* \_SB_.PCI0.RP09.R520 */
+ D524 = R524 /* \_SB_.PCI0.RP09.R524 */
+ D528 = R528 /* \_SB_.PCI0.RP09.R528 */
+ D52C = R52C /* \_SB_.PCI0.RP09.R52C */
+ D504 = 0x07
+ If ((R219 == DP19))
+ {
+ Break
+ }
+
+ Sleep (One)
+ Local0--
+ }
+
+ If ((R219 != DP19))
+ {
+ Return (Zero)
+ }
+
+ If ((WTDL () != One))
+ {
+ Return (Zero)
+ }
+
+ Local0 = 0x64
+ While (Local0)
+ {
+ NH10 = RH10 /* \_SB_.PCI0.RP09.RH10 */
+ NH14 = RH14 /* \_SB_.PCI0.RP09.RH14 */
+ NH04 = 0x07
+ If ((RH10 == NH10))
+ {
+ Break
+ }
+ Else
+ {
+ }
+
+ Sleep (One)
+ Local0--
+ }
+
+ If ((RH10 != NH10))
+ {
+ Return (Zero)
+ }
+
+ Return (One)
+ }
+
+ Method (UPCK, 0, Serialized)
+ {
+ If (((UPVD & 0xFF00FFFF) == 0x15008086))
+ {
+ Return (One)
+ }
+ Else
+ {
+ Return (Zero)
+ }
+ }
+
+ Method (ULTC, 0, Serialized)
+ {
+ If ((RPLT == Zero))
+ {
+ If ((UPLT == Zero))
+ {
+ Return (One)
+ }
+ }
+
+ Return (Zero)
+ }
+
+ Method (WTLT, 0, Serialized)
+ {
+ Local0 = 0x07D0
+ Local1 = Zero
+ While (Local0)
+ {
+ If ((RPR4 == 0x07))
+ {
+ If (ULTC ())
+ {
+ If (UPCK ())
+ {
+ Local1 = One
+ Break
+ }
+ }
+ }
+
+ Sleep (One)
+ Local0--
+ }
+
+ Return (Local1)
+ }
+
+ Method (DLTC, 0, Serialized)
+ {
+ If ((RPLT == Zero))
+ {
+ If ((UPLT == Zero))
+ {
+ If ((DPLT == Zero))
+ {
+ Return (One)
+ }
+ }
+ }
+
+ Return (Zero)
+ }
+
+ Method (WTDL, 0, Serialized)
+ {
+ Local0 = 0x07D0
+ Local1 = Zero
+ While (Local0)
+ {
+ If ((RPR4 == 0x07))
+ {
+ If (DLTC ())
+ {
+ If (UPCK ())
+ {
+ Local1 = One
+ Break
+ }
+ }
+ }
+
+ Sleep (One)
+ Local0--
+ }
+
+ Return (Local1)
+ }
+
+ Method (_RMV, 0, NotSerialized) // _RMV: Removal Status
+ {
+ Return (Zero)
+ }
+
+ Device (UPSB)
+ {
+ Name (_ADR, Zero) // _ADR: Address
+ Method (_STA, 0, NotSerialized) // _STA: Status
+ {
+ Return (0x0F)
+ }
+
+ Method (_RMV, 0, NotSerialized) // _RMV: Removal Status
+ {
+ Return (Zero)
+ }
+
+ Method (AMPE, 0, Serialized)
+ {
+ Notify (\_SB.PCI0.RP09.UPSB.DSB0.NHI0, Zero) // Bus Check
+ }
+
+ Method (UMPE, 0, Serialized)
+ {
+ Notify (\_SB.PCI0.RP09.UPSB.DSB2.XHC2, Zero) // Bus Check
+ }
+
+ Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
+ {
+ If ((Arg0 == ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b")))
+ {
+ Local0 = Package (0x0A)
+ {
+ "AAPL,slot-name",
+ Buffer (0x0C)
+ {
+ "Thunderbolt"
+ },
+
+ "built-in",
+ Buffer (One)
+ {
+ 0x00
+ },
+
+ "model",
+ Buffer (0x41)
+ {
+ "Intel JHL6240 Alpine Ridge Thunderbolt 3 UPSB Bridge (Low Power)"
+ },
+
+ "device_type",
+ Buffer (0x0B)
+ {
+ "PCI Bridge"
+ },
+
+ "PCI-Thunderbolt",
+ One
+ }
+ DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
+ Return (Local0)
+ }
+
+ Return (Zero)
+ }
+
+ Device (DSB0)
+ {
+ Name (_ADR, Zero) // _ADR: Address
+ Method (_STA, 0, NotSerialized) // _STA: Status
+ {
+ Return (0x0F)
+ }
+
+ Method (_RMV, 0, NotSerialized) // _RMV: Removal Status
+ {
+ Return (Zero)
+ }
+
+ Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
+ {
+ If ((Arg0 == ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b")))
+ {
+ Local0 = Package (0x0A)
+ {
+ "AAPL,slot-name",
+ Buffer (0x0C)
+ {
+ "Thunderbolt"
+ },
+
+ "built-in",
+ Buffer (One)
+ {
+ 0x00
+ },
+
+ "model",
+ Buffer (0x41)
+ {
+ "Intel JHL6240 Alpine Ridge Thunderbolt 3 DSB0 Bridge (Low Power)"
+ },
+
+ "device_type",
+ Buffer (0x0B)
+ {
+ "PCI Bridge"
+ },
+
+ "PCIHotplugCapable",
+ Zero
+ }
+ DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
+ Return (Local0)
+ }
+
+ Return (Zero)
+ }
+
+ Device (NHI0)
+ {
+ Name (_ADR, Zero) // _ADR: Address
+ Name (_STR, Unicode ("Thunderbolt")) // _STR: Description String
+ Method (_RMV, 0, NotSerialized) // _RMV: Removal Status
+ {
+ Return (Zero)
+ }
+
+ Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
+ {
+ Local0 = Package (0x19)
+ {
+ "AAPL,slot-name",
+ Buffer (0x0C)
+ {
+ "Thunderbolt"
+ },
+
+ "name",
+ Buffer (0x24)
+ {
+ "Alpine Ridge Thunderbolt Controller"
+ },
+
+ "model",
+ Buffer (0x3A)
+ {
+ "Intel JHL6240 Alpine Ridge Thunderbolt 3 NHI0 (Low Power)"
+ },
+
+ "device_type",
+ Buffer (0x12)
+ {
+ "System Peripheral"
+ },
+
+ "ThunderboltDROM",
+ Buffer (0x48)
+ {
+ 0xB8, 0x00, 0x32, 0x9D, 0xC8, 0xBC, 0x5A, 0x4E,
+ 0x00, 0xB1, 0x13, 0x83, 0x2D, 0x01, 0x3B, 0x00,
+ 0x09, 0x01, 0x07, 0x17, 0x02, 0x14, 0x08, 0x81,
+ 0x80, 0x02, 0x80, 0x00, 0x00, 0x00, 0x08, 0x82,
+ 0x80, 0x02, 0x80, 0x00, 0x00, 0x00, 0x02, 0x83,
+ 0x0B, 0x84, 0x20, 0x01, 0x00, 0x3C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x05, 0x85, 0x50, 0x00, 0x00,
+ 0x09, 0x01, 0x4C, 0x65, 0x6E, 0x6F, 0x76, 0x6F,
+ 0x00, 0x07, 0x02, 0x54, 0x34, 0x38, 0x30, 0x00
+ },
+
+ "ThunderboltConfig",
+ Buffer (0x20)
+ {
+ 0x00, 0x02, 0x1C, 0x00, 0x02, 0x00, 0x05, 0x03,
+ 0x01, 0x00, 0x04, 0x00, 0x05, 0x03, 0x02, 0x00,
+ 0x03, 0x00, 0x05, 0x03, 0x01, 0x00, 0x00, 0x00,
+ 0x03, 0x03, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00
+ },
+
+ "pathcr",
+ Buffer (0x50)
+ {
+ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x07, 0x00, 0x10, 0x00, 0x10, 0x00,
+ 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x07, 0x00, 0x10, 0x00, 0x10, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x0E, 0x00,
+ 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x04, 0x00, 0x02, 0x00, 0x01, 0x00,
+ 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x07, 0x00, 0x02, 0x00, 0x01, 0x00
+ },
+
+ "linkDetails",
+ Buffer (0x08)
+ {
+ 0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
+ },
+
+ "TBTFlags",
+ Buffer (0x04)
+ {
+ 0x03, 0x00, 0x00, 0x00
+ },
+
+ "sscOffset",
+ Buffer (0x02)
+ {
+ 0x00, 0x07
+ },
+
+ "TBTDPLowToHigh",
+ Buffer (0x04)
+ {
+ 0x01, 0x00, 0x00, 0x00
+ },
+
+ "power-save",
+ One,
+ Buffer (One)
+ {
+ 0x00
+ }
+ }
+ DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
+ Return (Local0)
+ }
+ }
+ }
+
+ Device (DSB1)
+ {
+ Name (_ADR, 0x00010000) // _ADR: Address
+ Name (_SUN, One) // _SUN: Slot User Number
+ Method (_STA, 0, NotSerialized) // _STA: Status
+ {
+ Return (0x0F)
+ }
+
+ Method (_RMV, 0, NotSerialized) // _RMV: Removal Status
+ {
+ Return (Zero)
+ }
+
+ Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
+ {
+ Local0 = Package (0x06)
+ {
+ "AAPL,slot-name",
+ Buffer (0x0C)
+ {
+ "Thunderbolt"
+ },
+
+ "model",
+ Buffer (0x41)
+ {
+ "Intel JHL6240 Alpine Ridge Thunderbolt 3 DSB1 Bridge (Low Power)"
+ },
+
+ "device_type",
+ Buffer (0x0B)
+ {
+ "PCI Bridge"
+ }
+ }
+ DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
+ Return (Local0)
+ }
+
+ Device (UPS0)
+ {
+ Name (_ADR, Zero) // _ADR: Address
+ Method (_RMV, 0, NotSerialized) // _RMV: Removal Status
+ {
+ Return (One)
+ }
+ }
+ }
+
+ Device (DSB2)
+ {
+ Name (_ADR, 0x00020000) // _ADR: Address
+ Method (_STA, 0, NotSerialized) // _STA: Status
+ {
+ Return (0x0F)
+ }
+
+ Method (_RMV, 0, NotSerialized) // _RMV: Removal Status
+ {
+ Return (Zero)
+ }
+
+ Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
+ {
+ If ((Arg0 == ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b") /* Unknown UUID */))
+ {
+ Local0 = Package (0x08)
+ {
+ "AAPL,slot-name",
+ Buffer (0x0C)
+ {
+ "Thunderbolt"
+ },
+
+ "model",
+ Buffer (0x41)
+ {
+ "Intel JHL6240 Alpine Ridge Thunderbolt 3 DSB2 Bridge (Low Power)"
+ },
+
+ "device_type",
+ Buffer (0x0B)
+ {
+ "PCI Bridge"
+ },
+
+ "PCIHotplugCapable",
+ Zero
+ }
+ DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
+ Return (Local0)
+ }
+
+ Return (Zero)
+ }
+
+ Device (XHC2)
+ {
+ Name (_ADR, Zero) // _ADR: Address
+ Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
+ {
+ Return (Package (0x02)
+ {
+ 0x69,
+ 0x03
+ })
+ }
+
+ Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
+ {
+ Local0 = Package (0x10)
+ {
+ "AAPL,slot-name",
+ Buffer (0x0C)
+ {
+ "Thunderbolt"
+ },
+
+ "built-in",
+ Buffer (One)
+ {
+ 0x00 // .
+ },
+
+ "name",
+ Buffer (0x20)
+ {
+ "Alpine Ridge USB 3.1 Controller"
+ },
+
+ "model",
+ Buffer (0x47)
+ {
+ "Intel JHL6240 Alpine Ridge Thunderbolt 3 Type C Controller (Low Power)"
+ },
+
+ "device_type",
+ Buffer (0x0F)
+ {
+ "USB controller"
+ },
+
+ "USBBusNumber",
+ Zero,
+ "UsbCompanionControllerPresent",
+ One,
+ "AAPL,XHC-clock-id",
+ One
+ }
+ DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
+ Return (Local0)
+ }
+
+ Name (HS, Package (0x01)
+ {
+ "XHC2"
+ })
+ Name (FS, Package (0x01)
+ {
+ "XHC2"
+ })
+ Name (LS, Package (0x01)
+ {
+ "XHC2"
+ })
+ Device (RHUB)
+ {
+ Name (_ADR, Zero) // _ADR: Address
+ Device (HS01)
+ {
+ Name (_ADR, One) // _ADR: Address
+ Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities
+ {
+ 0xFF,
+ 0x09,
+ Zero,
+ Zero
+ })
+ Name (_PLD, Package (0x01) // _PLD: Physical Location of Device
+ {
+ ToPLD (
+ 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 (SSP, Package (0x02)
+ {
+ "XHC2",
+ 0x03
+ })
+ Name (SS, Package (0x02)
+ {
+ "XHC2",
+ 0x03
+ })
+ }
+
+ Device (SSP1)
+ {
+ Name (_ADR, 0x03) // _ADR: Address
+ Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities
+ {
+ 0xFF,
+ 0x09,
+ Zero,
+ Zero
+ })
+ Name (_PLD, Package (0x01) // _PLD: Physical Location of Device
+ {
+ ToPLD (
+ 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 (FS, Package (0x02)
+ {
+ "XHC2",
+ One
+ })
+ Name (LS, Package (0x02)
+ {
+ "XHC2",
+ One
+ })
+ Name (HS, Package (0x02)
+ {
+ "XHC2",
+ One
+ })
+ Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
+ {
+ If ((Arg2 == Zero))
+ {
+ Return (Buffer (One)
+ {
+ 0x03 // .
+ })
+ }
+
+ Return (Package (0x04)
+ {
+ "UsbCPortNumber",
+ One,
+ "UsbCompanionPortPresent",
+ One
+ })
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ Method (DTGP, 5, NotSerialized)
+ {
+ If ((Arg0 == ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b")))
+ {
+ If ((Arg1 == One))
+ {
+ If ((Arg2 == Zero))
+ {
+ Arg4 = Buffer (One)
+ {
+ 0x03 // .
+ }
+ Return (One)
+ }
+
+ If ((Arg2 == One))
+ {
+ Return (One)
+ }
+ }
+ }
+
+ Arg4 = Buffer (One)
+ {
+ 0x00 // .
+ }
+ Return (Zero)
+ }
+ }
+}
+
diff --git a/Source Code/SSDT-UTILS.dsl b/Source Code/SSDT-UTILS.dsl
index 05d3027..ebe0822 100644
--- a/Source Code/SSDT-UTILS.dsl
+++ b/Source Code/SSDT-UTILS.dsl
@@ -1,29 +1,5 @@
DefinitionBlock ("", "SSDT", 2, "T480", "UTILS", 0x00001000)
{
- External (_S3_, UnknownObj)
- External (_SB_.LID_, DeviceObj)
- External (_SB_.PCI0.GFX0.CLID, FieldUnitObj)
- External (_SB_.PCI0.GLAN.PMEE, FieldUnitObj)
- External (_SB_.PCI0.HDAS.PMEE, FieldUnitObj)
- External (_SB_.PCI0.LPCB, DeviceObj)
- External (_SB_.PCI0.LPCB.EC__, DeviceObj)
- External (_SB_.PCI0.LPCB.EC__.AC__._PSR, MethodObj) // 0 Arguments
- External (_SB_.PCI0.LPCB.EC__.HPLD, FieldUnitObj)
- External (_SB_.PCI0.LPCB.EC__.LED_, MethodObj) // 2 Arguments
- External (_SB_.PCI0.XDCI.PMEE, FieldUnitObj)
- External (_SB_.PCI0.XHC_.PMEE, FieldUnitObj)
- External (_SB_.SCGE, FieldUnitObj)
- External (LIDS, FieldUnitObj)
- External (OSDW, MethodObj) // 0 Arguments
- External (PWRS, FieldUnitObj)
- External (S0ID, FieldUnitObj)
- External (SS3_, FieldUnitObj)
- External (STY0, FieldUnitObj)
- External (TBTS, FieldUnitObj)
- External (ZPRW, MethodObj) // 2 Arguments
- External (ZPTS, MethodObj) // 1 Arguments
- External (ZWAK, MethodObj) // 1 Arguments
-
Scope (\)
{
Method (DTGP, 5, NotSerialized)
- Version: 1.4.0
+ Version: 1.5.0
Download now ยป
@@ -27,142 +28,162 @@
## ๐ Changelog
-๐
Version 1.4.0: 26.08.2024
-
+### ๐
Version 1.5.0: 12.07.2026
+
+This release supports macOS Tahoe.
+In addition, more patches were added to make Thunderbolt functional.
+
+> [!IMPORTANT]
+> AppleHDA was removed in macOS Tahoe. After installing macOS, you must manually inject an older version of AppleHDA into the system. Instructions for doing so can be found on the wiki.
+
+> [!IMPORTANT]
+> Intel WiFi+BT has not been fully tested in macOS Tahoe. Broadcom WiFi+BT does not work and requires a patch (see here).
+
+> [!NOTE]
+> Please note that macOS Tahoe will not run 100% stably. See the section in the [OpenCore Install Guide](https://dortania.github.io/OpenCore-Install-Guide/extras/tahoe.html#table-of-contents).
+
+The following kexts was added:
+
+- AppleBCMWLANCompanion (Broadcom WiFi and BT)
+- IOElectrify (Thunderbolt)
+- RestrictEvents (Software Update)
+
+The following base / kexts was updated:
+
+- **AppleALC**: 1.9.7
+- **BlueToolFixup**: 2.7.2
+- **CPUFriend**: 1.3.0
+- **IntelBluetoothFirmware**: 2.5.1
+- **IntelBluetoothInjector**: 2.5.1
+- **IntelBTPatcher**: 2.5.1
+- **IntelMausi**: 1.0.8
+- **Lilu**: 1.7.2
+- **NVMeFix**: 1.1.3
+- **VirtualSMC**: 1.3.7
+- **VoodooI2C**: 2.9.1
+- **VoodooPS2Controller**: 2.3.7
+- **VoodooRMI**: 1.4.3
+- **WhateverGreen**: 1.7.0
+- **OpenCore**: 1.0.7
+
+### ๐
Version 1.4.0: 26.08.2024
+
This release supports macOS Sequoia.
The following base / kexts was updated:
- - **Airportitlwm**: 2.3.0
- - **AppleALC**: 1.9.2
- - **BlueToolFixup**: 2.6.8
- - **CPUFriend**: 1.2.8
- - **IntelBluetoothFirmware**: 2.3.0
- - **IntelBluetoothInjector**: 2.3.0
- - **IntelBTPatcher**: 2.3.0
- - **Lilu**: 1.6.8
- - **NVMeFix**: 1.1.1
- - **WhateverGreen**: 1.6.8
- - **VirtualSMC**: 1.3.3
- - **OpenCore**: 1.0.0
-๐
Version 1.3.0: 21.06.2023
-
This release supports macOS Sonoma.
The following kexts was removed:
- - AppleBacklightFixup (merged into WhateverGreen)
-
-The following base / kexts was updated:
- - **Airportitlwm**: 2.2.0
- - **AppleALC**: 1.8.3
- - **CPUFriend**: 1.2.6
- - **HibernationFixup**: 1.4.9
- - **Lilu**: 1.6.6
- - **VoodooI2C**: 2.7.1
- - **VoodooPS2**: 2.3.3
- - **VoodooRMI**: 1.3.5
- - **WhateverGreen**: 1.6.5
- - **YogaSMC**: 1.5.3
- - **VirtualSMC**: 1.3.2
- - **OpenCore**: 0.9.3
-๐
Version 1.2.2: 19.11.2022
-
+The following base / kexts was updated:
+
+- **Airportitlwm**: 2.2.0
+- **AppleALC**: 1.8.3
+- **CPUFriend**: 1.2.6
+- **HibernationFixup**: 1.4.9
+- **Lilu**: 1.6.6
+- **VoodooI2C**: 2.7.1
+- **VoodooPS2**: 2.3.3
+- **VoodooRMI**: 1.3.5
+- **WhateverGreen**: 1.6.5
+- **YogaSMC**: 1.5.3
+- **VirtualSMC**: 1.3.2
+- **OpenCore**: 0.9.3
+
+### ๐
Version 1.2.2: 19.11.2022
The following kexts was added:
- - USBMap (USB mapping)
- - VoodooI2C (Touchscreen Support)
- - VoodooI2CHID (Touchscreen Support)
+
+- USBMap (USB mapping)
+- VoodooI2C (Touchscreen Support)
+- VoodooI2CHID (Touchscreen Support)
The following base / kexts was updated:
- - **Airportitlwm**: (Ventura: 2.2.0 DEBUG, Monterey & Big Sur: 2.1.0)
- - **AppleALC**: 1.7.4
- - **HibernationFixup**: 1.4.6
- - **IntelBluetoothFirmware**: 2.2.0
- - **Lilu**: 1.6.2
- - **NVMeFix**: 1.1.0
- - **VirtualSMC (with plugins)**: 1.3.0
- - **VoodooPC2Controller**: 2.2.9
- - **WhateverGreen**: 1.6.1
- - **OpenCore**: 0.8.5
+
+- **Airportitlwm**: (Ventura: 2.2.0 DEBUG, Monterey & Big Sur: 2.1.0)
+- **AppleALC**: 1.7.4
+- **HibernationFixup**: 1.4.6
+- **IntelBluetoothFirmware**: 2.2.0
+- **Lilu**: 1.6.2
+- **NVMeFix**: 1.1.0
+- **VirtualSMC (with plugins)**: 1.3.0
+- **VoodooPC2Controller**: 2.2.9
+- **WhateverGreen**: 1.6.1
+- **OpenCore**: 0.8.5
The following config changes was applied:
- - **Added Thinkpad ACPI / Kernel patches**
- - **Removed 'LegacyEnable'**
+
+- **Added Thinkpad ACPI / Kernel patches**
+- **Removed 'LegacyEnable'**
The following ACPI changes was applied:
- - **Added SSDT-KBTA.aml with source code (ThinkPadAssistant)**
+
+- **Added SSDT-KBTA.aml with source code (ThinkPadAssistant)**
๐
Version 1.2.1: 22.06.2022
-
+### ๐
Version 1.2.1: 22.06.2022
### Changes
+
- Fix HDMI output (issue #7)
- Fix Brightness controlls (issue #7)
- Fix Trackpad issues (issue #7 & #8)
### Updated Kexts:
+
- **OpenCore**: Version of [e05a69d](https://github.com/acidanthera/OpenCorePkg/commit/e05a69da640009ac1983c7c8c78af4f0d9b4bc6f)
- **AppleALC**: 1.7.2
- **BrcmPatchRAM**: 2.6.2
- **WhateverGreen**: 1.5.9
-๐
Version 1.2.0: 12.06.2022
-
+### ๐
Version 1.2.0: 12.06.2022
+
+#### Changes
-### Changes
- Add macOS 13 Ventura beta support
-### OpenCore / Kext Versions:
+#### OpenCore / Kext Versions:
+
- **OpenCore**: Modified version of [e05a69d](https://github.com/acidanthera/OpenCorePkg/commit/e05a69da640009ac1983c7c8c78af4f0d9b4bc6f)
- **AppleALC**: 1.7.3 ([bce915e](https://github.com/acidanthera/AppleALC/commit/bce915e4d52a04447932eef7a32696433d16dc7f))
- **CPUFriend**: 1.2.6 ([44efb5f](https://github.com/acidanthera/CPUFriend/commit/44efb5fe04245cf2df4f9bcde126d240710df62e))
- **Lilu**: 1.6.1 ([250b65c](https://github.com/acidanthera/Lilu/commit/250b65cbb4e9c3aced2673b71ac359b5d6771cfe))
- **WhateverGreen**: 1.5.9
-### Screenshot
-
+#### Screenshot
+
-๐
Version 1.1.0: 16.05.2022
-
+### ๐
Version 1.1.0: 16.05.2022
- Add HeliPort support
- Add macOS 13 Ventura pre-support
-- Update OpenCore to ```0.8.0```
-- Update AppleALC to ```1.7.1```
-
-๐
Version 1.0.1: 02.04.2022
-
+### ๐
Version 1.0.1: 02.04.2022
- Fix boot chime by adding AudioDxe.efi (issue #2)
-๐
Version 1.0: 13.03.2022
-
-
+### ๐
Version 1.0: 13.03.2022
- Initial commit (supports only Monterey)
-
-
+
[](https://developer.apple.com/documentation/macos-release-notes)
[](https://developer.apple.com/documentation/macos-release-notes)
[](https://developer.apple.com/documentation/macos-release-notes)
[](https://developer.apple.com/documentation/macos-release-notes)
-[](https://github.com/acidanthera/OpenCorePkg)
+[](https://developer.apple.com/documentation/macos-release-notes)
+[](https://github.com/acidanthera/OpenCorePkg)
[](/LICENSE)
- Version: 1.4.0
+ Version: 1.5.0
Download now ยป
@@ -30,9 +31,6 @@ This guide is only for the Lenovo ThinkPad T480. I am NOT responsible for any ha
> The ACPI patches and the style of this README are from [EETagent](https://github.com/EETagent/T480-OpenCore-Hackintosh).
-> [!IMPORTANT]
-> Intel WiFi with Airportitlwm currently doesn't work under macOS Sequoia! Use the HeliPort version instead.
-
> [!NOTE]
> The instructions for installing macOS have been moved [to the wiki](https://github.com/valnoxy/t480-oc/wiki).
@@ -51,10 +49,10 @@ Some users have reported that similar ThinkPads are compatible with this OpenCor
This repo includes multiple EFI configuations for different macOS Versions.
-| EFI | Description | Type |
-| ----------------- | ------------------------------------------------------------------------- | --------- |
-| `EFI` | Supports macOS Monterey, Ventura, Sonoma & Sequoia (using Airportitlwm) | `Stable` |
-| `EFI - HeliPort` | Supports every macOS Version except Ventura, Require HeliPort app | `Stable` |
+| EFI | Description | Type |
+| ----------------- | -------------------------------------------------------------------------------- | --------- |
+| `EFI` | Supports macOS Monterey, Ventura, Sonoma, Sequoia & Tahoe (using Airportitlwm) | `Stable` |
+| `EFI - HeliPort` | Supports every macOS Version except Ventura, Require HeliPort app | `Stable` |
Download HeliPort app ยป
@@ -145,7 +143,7 @@ This repo is licensed under the [MIT License](https://github.com/valnoxy/t480-oc
OpenCore is licensed under the [BSD 3-Clause License](https://github.com/acidanthera/OpenCorePkg/blob/master/LICENSE.txt).
-ยฉ 2018 - 2024 valnoxy. All Rights Reserved.
+
ยฉ 2018 - 2026 valnoxy. All Rights Reserved.
By Jonas Gรผnner <jonas@exploitox.de>