Baio77 Posted April 24, 2024 Share Posted April 24, 2024 (edited) Do any of you still have these NUC models with ALC700 as codec??? I have a new layout to try 22 with this Kext. AppleALC.Layout.22.kext.zip This is how I found the nodes, obviously everything works on Windows, but on Linux the front jack doesn't work because it isn't mapped correctly. The Windows dump is the key. Wid=XX Codec=Native codec nodes Drv=Codec nodes after Windows Driver intervention Dump Linux Dump Windows Edited June 15, 2024 by Baio77 1 Link to comment https://www.insanelymac.com/forum/topic/339291-guide-hac-mini-osx-mojave-on-intel-hades-canyon-nuc8i7hvknuc8i7hnk/page/10/#findComment-2819359 Share on other sites More sharing options...
datafeedexpert Posted May 4, 2024 Share Posted May 4, 2024 On 4/24/2024 at 11:32 PM, Baio77 said: Do any of you still have these NUC models with ALC700 as codec??? I have a new layout to try 22 with this Kext. AppleALC.Layout.22.kext.zip 63.68 kB · 1 download This is how I found the nodes, obviously everything works on Windows, but on Linux the front jack doesn't work because it isn't mapped correctly. The Windows dump is the key. Wid=XX Codec=Native codec nodes Drv=Codec nodes after Windows Driver intervention Dump Linux Dump Windows yes i am using it Thanks @Baio77 Link to comment https://www.insanelymac.com/forum/topic/339291-guide-hac-mini-osx-mojave-on-intel-hades-canyon-nuc8i7hvknuc8i7hnk/page/10/#findComment-2819662 Share on other sites More sharing options...
Baio77 Posted June 15, 2024 Share Posted June 15, 2024 (edited) Layout22 https://github.com/acidanthera/AppleALC/actions Fix HP OUT sound on wake Edited June 15, 2024 by Baio77 Link to comment https://www.insanelymac.com/forum/topic/339291-guide-hac-mini-osx-mojave-on-intel-hades-canyon-nuc8i7hvknuc8i7hnk/page/10/#findComment-2821210 Share on other sites More sharing options...
datafeedexpert Posted July 13, 2024 Share Posted July 13, 2024 On 6/15/2024 at 5:19 PM, Baio77 said: Layout22 https://github.com/acidanthera/AppleALC/actions Fix HP OUT sound on wake @Baio77Have you patch Thunderbolt Firmware & system profiler shows TB3 like this ? Link to comment https://www.insanelymac.com/forum/topic/339291-guide-hac-mini-osx-mojave-on-intel-hades-canyon-nuc8i7hvknuc8i7hnk/page/10/#findComment-2822734 Share on other sites More sharing options...
Baio77 Posted January 23 Share Posted January 23 (edited) Now I've truly solved the problems plaguing this particular NUC. In the end, I followed the OEM ACPI route, applying as few patches as possible. RP05 is now populated from the first bot. Hotplug depends on the Device properties: PCI-Thunderbolt One on the PXSX branch enables hotplug but breaks EGPU. Therefore, for EGPU to work, the property must be removed from the configplist, at the expense of the Hotplug function. Quote DefinitionBlock ("", "SSDT", 2, "HACK", "TB3", 0x00000003) { External (_GPE.OSUP, MethodObj) // 1 Arguments External (_GPE.TINO, MethodObj) // 2 Arguments External (_SB_.PCI0.RP05, DeviceObj) External (_SB_.PCI0.RP05.PXSX, DeviceObj) External (_SB_.PCI0.RP05.PXSX.TBDU, DeviceObj) External (_SB_.PCI0.RP05.PXSX.TBDU.THC_, DeviceObj) External (_SB_.PCI0.RP05.PXSX.TBDU.THC_.RHUB, DeviceObj) External (_SB_.PCI0.RP05.PXSX.TBDU.THC_.RHUB.SS01, DeviceObj) External (_SB_.PCI0.RP05.PXSX.TBDU.THC_.RHUB.SS02, DeviceObj) External (_SB_.PCI0.RP05.PXSX.XRMV, MethodObj) // 0 Arguments External (_SB_.PCI0.RP05.XINI, MethodObj) // 0 Arguments External (_SB_.TBFP, MethodObj) // 1 Arguments External (ADBG, MethodObj) // 1 Arguments External (MMRP, MethodObj) // 1 Arguments External (MMTB, MethodObj) // 1 Arguments External (TBSE, FieldUnitObj) These variables already put RP05 in optimal condition for MacOS Scope (\) { If (_OSI ("Darwin")) { TWIN = Zero SOHP = One TNAT = One } } Scope (\_GPE) { Method (TINI, 2, Serialized) { If (_OSI ("Darwin")) { ADBG ("TINI(W)enter") ADBG (Concatenate ("Arg0=", ToHexString (Arg0))) ADBG (Concatenate ("Arg1=", ToHexString (Arg1))) If ((Arg1 == 0x03)) { ADBG ("Arg1=03") Local0 = MMRP (Arg0) ADBG (Concatenate ("MMRP=", ToHexString (Local0))) OperationRegion (RP_X, SystemMemory, Local0, 0x20) Field (RP_X, DWordAcc, NoLock, Preserve) { REG0, 32, REG1, 32, REG2, 32, REG3, 32, REG4, 32, REG5, 32, REG6, 32, REG7, 32 } Local1 = REG6 /* \_GPE.TINI.REG6 */ ADBG (Concatenate ("REG6-Before=", ToHexString (Local1))) REG6 = 0x003F3F00 ADBG (Concatenate ("REG6-AfterSet=", ToHexString (REG6))) } Else { ADBG ("Arg1!=03") } In TINI I do FPWR as it is one of the first methods to generate initialization problems. ADBG ("TINI call TBFP(1)") \_SB.TBFP (One) Sleep (0x64) ADBG ("TINI after TBFP") Local2 = MMTB (Arg0) ADBG (Concatenate ("MMTB=", ToHexString (Local2))) ADBG ("Call OSUP") Local3 = OSUP (Local2) ADBG (Concatenate ("OSUP-RET=", ToHexString (Local3))) If ((Arg1 == 0x03)) { ADBG ("Restore REG6") REG6 = Local1 ADBG (Concatenate ("REG6-Restore=", ToHexString (REG6))) } ADBG ("End-of-TINI(W)") Return (Local3) } Return (\_GPE.TINO (Arg0, Arg1)) } } Scope (\_SB.PCI0.RP05) { TBON taken from OSY, stripped down to the bare minimum, is essential to have RP05 populated. Method (TBON, 0, Serialized) { If (_OSI ("Darwin")) { ADBG ("RP05.TBON enter") ADBG ("WaitCtrl") Local3 = MMTB (TBSE) ADBG (Concatenate ("MMTB=", ToHexString (Local3))) OperationRegion (UPS0, SystemMemory, Local3, 0x04) Field (UPS0, DWordAcc, NoLock, Preserve) { UPV0, 32 } Local1 = (Timer + 0x02FAF080) While (((Timer < Local1) && (UPV0 == 0xFFFFFFFF))) { Sleep (0x64) } ADBG (Concatenate ("UPV0=", ToHexString (UPV0))) If ((UPV0 != 0xFFFFFFFF)) { ADBG ("SeenCtrl") Return (One) } ADBG ("Failed") Return (Zero) } Return (Zero) } INI calls TBON Method (_INI, 0, NotSerialized) // _INI: Initialize { \_SB.PCI0.RP05.XINI () If (_OSI ("Darwin")) { ADBG ("RP05_INI.TBON enter") TBON () } } Scope (PXSX) { RMV OEM PXSX is not stable, I chose to stabilize it this way. Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { If (_OSI ("Darwin")) { Return (Zero) } Else { Return (\_SB.PCI0.RP05.PXSX.XRMV ()) } } Scope (TBDU) { Here I set Companion XHC THC patch after running rename in config. Scope (THC) { Name (HS, Package (0x01) { "XHC" }) Name (FS, Package (0x01) { "XHC" }) Name (LS, Package (0x01) { "XHC" }) Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (Package (0x02) { 0x6D, 0x04 }) } Method (_PS0, 0, Serialized) // _PS0: Power State 0 { Sleep (0xC8) } Method (_PS3, 0, Serialized) // _PS3: Power State 3 { Sleep (0xC8) } Scope (RHUB) { Scope (SS01) { Name (HS, Package (0x02) { "XHC", 0x0C }) Name (FS, Package (0x02) { "XHC", 0x0C }) Name (LS, Package (0x02) { "XHC", 0x0C }) Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (_OSI ("Darwin")) { If ((Arg2 == Zero)) { Return (Buffer (One) { 0x03 // . }) } Return (Package (0x0A) { "UsbCPortNumber", One, "UsbPowerSource", 0x02, "kUSBWakePortCurrentLimit", 0x0BB8, "kUSBSleepPortCurrentLimit", 0x0BB8, "UsbCompanionPortPresent", One }) } Return (Zero) } } Scope (SS02) { Name (HS, Package (0x02) { "XHC", 0x0D }) Name (FS, Package (0x02) { "XHC", 0x0D }) Name (LS, Package (0x02) { "XHC", 0x0D }) Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (_OSI ("Darwin")) { If ((Arg2 == Zero)) { Return (Buffer (One) { 0x03 // . }) } Return (Package (0x0A) { "UsbCPortNumber", 0x02, "UsbPowerSource", 0x02, "kUSBWakePortCurrentLimit", 0x0BB8, "kUSBSleepPortCurrentLimit", 0x0BB8, "UsbCompanionPortPresent", One }) } Return (Zero) } } } } } } } } SSDT-NUC8i7HVK.dsl SSDT-RP05_TB3.dsl Edited March 22 by Baio77 Link to comment https://www.insanelymac.com/forum/topic/339291-guide-hac-mini-osx-mojave-on-intel-hades-canyon-nuc8i7hvknuc8i7hnk/page/10/#findComment-2846787 Share on other sites More sharing options...
Recommended Posts