Contribute
Register

Intel NUC 10 Frost Canyon

This is known from here and here - it's currently supported codec layouts. None of them proved to work with NUC10.
To those who were lucky to read my post regarding how to make NUC10's layout, here is one more dump I did under Ubuntu 20.04 (this is my second the same NUC10i7FNH)

Did you fix HPET RTC TIMR already?
 
You mean like:

DefinitionBlock ("", "SSDT", 2, "CORP", "HPET", 0x00000000)
{
External (_SB.PCI0.LPCB, DeviceObj) // (from opcode)
External (_SB.PCI0.LPCB.HPET, DeviceObj) // (from opcode)
Name (\_SB.PCI0.LPCB.HPET._CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IRQNoFlags ()
{0,8,11}
Memory32Fixed (ReadWrite,
0xFED00000, // Address Base
0x00000400, // Address Length
)
})
}

and HPET's _CRS to XCRS renamed ... unfortunately doesn't work for me, either.
 
unfortunately doesn't work for me, either.
yes, the SSDT with above contents + patch.
How did you make sure you it didn't work? (what to check?)

PS: I will try chinese version soon
 
did a fresh installation with these settings:

SSDT-AWAC.aml from sample folder
SSDT-EC-USBX.aml from https://www.tonymacx86.com/threads/intel-nuc-10-frost-canyon.289485/post-2140460

AppleALC.kext
IntelMausi.kext
Lilu.kext
VirtualSMC.kext
WhateverGreen.kext

@ BIOS v41 (no additional patching) with F9 optimal default settings and with secure boot disabled

working with emulated Cpuid1data 0C060800 https://www.tonymacx86.com/threads/intel-nuc-10-frost-canyon.289485/post-2133849

Ethernet -> only way to install macOS

post install:

Bluetooth + Thunderbolt -> working without additional kexts or patches -> you need to boot one time into installed catalina with disabled BT & TB settings, after that you can turn settings back on and everything works out of the box.

WiFi -> working with any external WiFi USB stick that is supported by chris1111 https://github.com/chris1111/Wireless-USB-Adapter driver -> you need to boot one time into installed catalina with disabled WLAN settings, after that you can turn settings back on and you can connect to your router, successfully. Without the on/off BIOS trick you can see your router, but the connection isn't working.

USB Mapping works great, too - because this NUC has only 12 ports to handle and that's below 15 that is supported by Apple.

Audio still not working with Realtek nor HDMI/DP, but with bluetooth.
 
Last edited:
PS: I will try chinese version soon
daTscharlie, I gave a try to Chinese version of HPET/TIMR/IRQ.

While I was translating and ammending SSDT's I realised it's actually the same approach as in link from post 251.
The main difference is that dortania uses patch approach while Chinese prefer to disable original ACPI Device and rewrite it with the same code deleting the IRQ from it.

For example, original Device(HPET) contains:
Code:
        Device (HPET)
        {
            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
            Name (_UID, Zero)  // _UID: Unique ID
            Name (BUF0, ResourceTemplate ()
            {
                Memory32Fixed (ReadWrite,
                    0xFED00000,         // Address Base
                    0x00000400,         // Address Length
                    _Y3A)
            })
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (HPTE)
                {
                    Return (0x0F)
                }

                Return (Zero)
            }

            Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
            {
                If (HPTE)
                {
                    CreateDWordField (BUF0, \_SB.PCI0.LPCB.HPET._Y3A._BAS, HPT0)  // _BAS: Base Address
                    HPT0 = HPTB /* \HPTB */
                }

                Return (BUF0) /* \_SB_.PCI0.LPCB.HPET.BUF0 */
            }
        }

Chinese globally disable that device by this (not 100% sure, but most likely):
Code:
    Scope (\)
    {
        If (_OSI ("Darwin"))
        {
            HPTE = Zero
        }
    }

and finally creates a new Device(HPE0) with this code:
Code:
        Device (HPE0)
        {
            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
            Name (_UID, Zero)  // _UID: Unique ID
            Name (BUF0, ResourceTemplate ()
            {
                IRQNoFlags ()
                    {0,8}
                Memory32Fixed (ReadWrite,
                    0xFED00000,         // Address Base
                    0x00000400,         // Address Length
                    )
            })
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (_OSI ("Darwin"))
                {
                    Return (0x0F)
                }
                Else
                {
                    Return (Zero)
                }
            }

            Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
            {
                Return (BUF0) /* \_SB_.PCI0.LPCB.HPE0.BUF0 */
            }
        }

As you might see the difference is how now handled HPTE which was disabled earlier..
Pretty much the same happens with TIMR (IRQ 0) and RTC (IRQ 8) .

As for IPIC he suggests to disable real device and create new one that excludes IRQ2 in _CRS method.
Original Device(IPIC):
Code:
Device (IPIC)
        {
            Name (_HID, EisaId ("PNP0000") /* 8259-compatible Programmable Interrupt Controller */)  // _HID: Hardware ID
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                IO (Decode16,
                    0x0020,             // Range Minimum
                    0x0020,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x0024,             // Range Minimum
                    0x0024,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x0028,             // Range Minimum
                    0x0028,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x002C,             // Range Minimum
                    0x002C,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x0030,             // Range Minimum
                    0x0030,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x0034,             // Range Minimum
                    0x0034,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x0038,             // Range Minimum
                    0x0038,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x003C,             // Range Minimum
                    0x003C,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x00A0,             // Range Minimum
                    0x00A0,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x00A4,             // Range Minimum
                    0x00A4,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x00A8,             // Range Minimum
                    0x00A8,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x00AC,             // Range Minimum
                    0x00AC,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x00B0,             // Range Minimum
                    0x00B0,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x00B4,             // Range Minimum
                    0x00B4,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x00B8,             // Range Minimum
                    0x00B8,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x00BC,             // Range Minimum
                    0x00BC,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x04D0,             // Range Minimum
                    0x04D0,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IRQNoFlags ()
                    {2}
            })
        }

new Device(IPI0):
Code:
Scope (_SB.PCI0.LPCB)
    {
        Device (IPI0)
        {
            Name (_HID, EisaId ("PNP0000") /* 8259-compatible Programmable Interrupt Controller */)  // _HID: Hardware ID
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                IO (Decode16,
                    0x0020,             // Range Minimum
                    0x0020,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x0024,             // Range Minimum
                    0x0024,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x0028,             // Range Minimum
                    0x0028,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x002C,             // Range Minimum
                    0x002C,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x0030,             // Range Minimum
                    0x0030,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x0034,             // Range Minimum
                    0x0034,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x0038,             // Range Minimum
                    0x0038,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x003C,             // Range Minimum
                    0x003C,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x00A0,             // Range Minimum
                    0x00A0,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x00A4,             // Range Minimum
                    0x00A4,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x00A8,             // Range Minimum
                    0x00A8,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x00AC,             // Range Minimum
                    0x00AC,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x00B0,             // Range Minimum
                    0x00B0,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x00B4,             // Range Minimum
                    0x00B4,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x00B8,             // Range Minimum
                    0x00B8,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x00BC,             // Range Minimum
                    0x00BC,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
                IO (Decode16,
                    0x04D0,             // Range Minimum
                    0x04D0,             // Range Maximum
                    0x01,               // Alignment
                    0x02,               // Length
                    )
            })
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (_OSI ("Darwin"))
                {
                    Return (0x0F)
                }
                Else
                {
                    Return (Zero)
                }
            }
        }
    }

The attached aml's to those who want to try, but I saw no difference so far.

It's a pity to see the progress with NUC10 has paused in this thread.
dolgarrenan, any news on revised TB3 SSDT?
 

Attachments

  • SSDT-HPET_RTC_TIMR.aml
    403 bytes · Views: 67
  • SSDT-IPIC.aml
    336 bytes · Views: 72
Last edited:
Are you sure your working EFI is as exactly as you posted?
1. It doesn't boot due to lot of ACPI errors that caused by loading DSDT.aml that is a FULL COPY of existing ACPI tables - it's definitely excessive to load
2. Could you get audio working with AppleALC? Voododo is known to work
 
Hi,
sorry.... i corrected the error
Now try to use ALC kext
Were you going to attach an updated EFI? It seemed from your post you corrected something in the ACPI Tables. However I didn't see an updated package.
 
Hi, is there a guide to install mac catalina on nuc10i5fnh similar to that one created to install mac on nuc6 and reported below?
 
Hi.
I have updated my efi to the latest version.
My nuc works perfectly.
Fixed the voodooHDA plist to eliminate the background noise of the integrated microphone.
The only thing wrong is the egpu hotplug.
thanks for ur work~ btw what's this thread's attachment for?
 
Back
Top