Jump to content

Help installing Mojave on Xeon W-2175 and Asus WS C422 mobo


obus
 Share

852 posts in this topic

Recommended Posts

On 2/11/2020 at 2:15 AM, yapan4 said:

Wow, @metacollin! With this knowledge, you can help yourself and anyone on this forum :lol:

I hope you are on the right direction.

Maybe you can help us too:worried_anim:

 

For comparison: old SkyLake and new CascadeLake ACPI from ASUS WS C422Pro/SE (dumped by Clover).

 

I'm sure the non-bootable macOS on CascadeLike BIOS v.3003 is somehow related to ACPIs tables. Locked MSR is important but not critical and is temporarily ignored.

WS C422Pro:SE OEM ACPI Tables.zip

 

 

old

Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0074,             // Range Minimum
                            0x0074,             // Range Maximum
                            0x01,               // Alignment
                            0x04,               // Length
                            )
                        IRQNoFlags ()
                            {8}
                    })
                }

new bios

Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0074,             // Range Minimum
                            0x0074,             // Range Maximum
                            0x01,               // Alignment
                            0x04,               // Length
                            )
                        IRQNoFlags ()
                            {8}
                    })
                    Method (_STA, 0, NotSerialized)  // _STA: Status
                    {
                        If ((STAS == 0x01))
                        {
                            Return (0x0F)
                        }
                        Else
                        {
                            Return (0x00)
                        }
                    }
                }

fix(hotpatch)

 


DefinitionBlock ("", "SSDT", 1, "AS", "C422", 0x00000000)
{

    External (_SB_.PC00.LPC0.RTC_._STA, IntObj)


    Device (SH01)
    {
        Name (_HID, "SDH10000")  // _HID: Hardware ID
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            \_SB.PC00.LPC0.RTC._STA = 0x0F
        }

        Method (_STA, 0, NotSerialized)  // _STA: Status
        {
            If (_OSI ("Darwin"))
            {
                Return (0x0F)
            }
            Else
            {
                Return (Zero)
            }
        }
    }

    
}

 

  • Thanks 2
Link to comment
Share on other sites

On 2/24/2020 at 9:17 PM, lovest.fhd said:

 

 

old


Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0074,             // Range Minimum
                            0x0074,             // Range Maximum
                            0x01,               // Alignment
                            0x04,               // Length
                            )
                        IRQNoFlags ()
                            {8}
                    })
                }

new bios


Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0074,             // Range Minimum
                            0x0074,             // Range Maximum
                            0x01,               // Alignment
                            0x04,               // Length
                            )
                        IRQNoFlags ()
                            {8}
                    })
                    Method (_STA, 0, NotSerialized)  // _STA: Status
                    {
                        If ((STAS == 0x01))
                        {
                            Return (0x0F)
                        }
                        Else
                        {
                            Return (0x00)
                        }
                    }
                }

fix(hotpatch)

 



DefinitionBlock ("", "SSDT", 1, "AS", "C422", 0x00000000)
{

    External (_SB_.PC00.LPC0.RTC_._STA, IntObj)


    Device (SH01)
    {
        Name (_HID, "SDH10000")  // _HID: Hardware ID
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            \_SB.PC00.LPC0.RTC._STA = 0x0F
        }

        Method (_STA, 0, NotSerialized)  // _STA: Status
        {
            If (_OSI ("Darwin"))
            {
                Return (0x0F)
            }
            Else
            {
                Return (Zero)
            }
        }
    }

    
}

 

Tested and successfully boot Catalina on BIOS v.3003.

Thank you very much

:thumbsup_anim::thumbsup_anim::thumbsup_anim:

 

 

AppleIntelInfo.rtf

Preboot_log.rtf

SSDT-RTC.aml

Edited by yapan4
  • Like 1
  • Haha 1
Link to comment
Share on other sites

On 2/24/2020 at 8:17 PM, lovest.fhd said:

fix(hotpatch)

 



DefinitionBlock ("", "SSDT", 1, "AS", "C422", 0x00000000)
{

    External (_SB_.PC00.LPC0.RTC_._STA, IntObj)


    Device (SH01)
    {
        Name (_HID, "SDH10000")  // _HID: Hardware ID
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            \_SB.PC00.LPC0.RTC._STA = 0x0F
        }

        Method (_STA, 0, NotSerialized)  // _STA: Status
        {
            If (_OSI ("Darwin"))
            {
                Return (0x0F)
            }
            Else
            {
                Return (Zero)
            }
        }
    }

    
}

 

Cheers @lovest.fhd!!!!!

 

Works like a charm on my rig running on OC 0.5.5. This fix together with AppleXcpmCfgLock --> YES  (which I didn't need with the old 1202 bios because of the unlocked MSR0xE2 register) fixed my boot problems with the new 3003 bios on my rig.

Thank's again man.

Edited by obus
  • Like 1
Link to comment
Share on other sites

9 minutes ago, yapan4 said:

On this BIOS i can boot only with bootstrap_patch and if you remember we was dont able run CPUPM in this case. Don't work...

I can run it on OC without bootstrap_patch.

Se above

Edited by obus
Link to comment
Share on other sites

On 2/24/2020 at 11:50 AM, aprilnine said:

Hi metacollin, can you help me with my hackintosh setup? I have a quite similar board as you (X11DPH-T) and run it with two Xeon 6142 Gold processors. It seems you solved the very same problems I'm having with the setup.

 

I've tried my best to patch up the aml:s, but nothing seems to work. Looks like I can't get the EC running since I get no USB (observed from keyboard lights).

 

Attached are my EFI folders and DSDT dump. Any help would be greatly appreciated :)

 

DSDT.dsl

EFI.zip

What BIOS version are you running?

Link to comment
Share on other sites

OK, I have 10.15.3 running quite well on the most recent Supermicro BIOS for my motherboard, v3.2.  I have good news and bad news though.

 

The bad news:  I still haven't actually figured out what is causing the hang during PCI Device Configuration, but I have conclusively determined it is due to something the DSDT (and not any of the SSDTs) that changed from slightly older BIOSes in comparison to the most recent versions.  

 

The good news:  While this is an extremely ugly and temporary workaround, if you have a DSDT dump from an earlier BIOS and drop the builtin DSDT and use the old table instead, it works.  Thanks to @yapan4 for the idea.  However, if you use an old DSDT, the memory addresses will be wrong so you might have problems such as non-working video or macOS failing to find the boot device.  Fortunately, the fix for this is easy:  In Clover, turn on the 'FixRegions' ACPI fix.  Or, in OpenCore, turn on the 'RebaseRegions' quirk in the ACPI section (and don't forget to block the built-in DSDT!).

 

Both of those fixes/quirks do the same thing, which is recalculate various physical MMIO addresses that can (and in my case, did) change from one BIOS version to the next. 

Edited by metacollin
  • Like 3
  • Thanks 1
Link to comment
Share on other sites

Nice!!177887333_Screenshot2020-02-26at21_53_29.thumb.png.426026120f3045ca06242737a3ed1cfa.png

24 minutes ago, yapan4 said:

He, and How to apply it in Clover?

 

Ok, I'll try the other kernel patches...

Hey @yapan4 you need to swap your boot loader from Clover to OC.

After that you have like 50% less problems.:hysterical:

  • Like 2
Link to comment
Share on other sites

Oh, one final thing:  VirtualSMC and SMCProcessor.kext seem to have mostly non-working support for LGA2066 and LGA3647 CPU sensors.  iStat, HWMonitor3/HWMonitorSMC likewise cannot find any sensors.  However, the "latest" (its over 2 years old now) release of Rehabman's fork of FakeSMC, along with FakeSMC_CPUSensors, can be substituted for VirtualSMC without issue.  It may be old, but it works:

 Screen-Shot-2020-02-26-14-17-32.39.jpg

  • Thanks 2
Link to comment
Share on other sites

1 hour ago, obus said:

Cheers @lovest.fhd!!!!!

 

Works like a charm on my rig running on OC 0.5.5. This fix together with AppleXcpmCfgLock --> YES  (which I didn't need with the old 1202 bios because of the unlocked MSR0xE2 register) fixed my boot problems with the new 3003 bios on my rig.

Thank's again man.

STAS参数在两个设备上都有调用,严格来说,写成这样也许会更加好一点

External (_SB_.AWAC._STA, IntObj)
External (_SB_.PC00.LPC0.RTC_._STA, IntObj)
Device (SH01)
    {
        Name (_HID, "SDH10000")  // _HID: Hardware ID
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            \_SB.PC00.LPC0.RTC._STA = 0x0F
            \_SB.AWAC._STA = Zero
        }

        Method (_STA, 0, NotSerialized)  // _STA: Status
        {
            If (_OSI ("Darwin"))
            {
                Return (0x0F)
            }
            Else
            {
                Return (Zero)
            }
        }
    }

 

问题出在这里:macOS不兼容AWAC,旧的bios默认启用的是RTC(所以是没有问题),这在Z390主板上面是常见的问题,其实OpenCore的DOCS里面有

通过赋予STAS参数一个特定值,屏蔽了AWAC,启用了RTC。如下:

DefinitionBlock ("", "SSDT", 2, "ACDT", "AWAC", 0x00000000)
{
    External (STAS, IntObj)

    Scope (_SB)
    {
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            If (_OSI ("Darwin"))
            {
                STAS = One
            }
        }
    }
}

只是在我主机上面不适合用,无效,也许是与我其它热修复冲突,所以我换了个函数写法,目的是一样

 

I'm sorry, I don't know English~~~~~~~

1 hour ago, obus said:

Cheers @lovest.fhd!!!!!

 

Works like a charm on my rig running on OC 0.5.5. This fix together with AppleXcpmCfgLock --> YES  (which I didn't need with the old 1202 bios because of the unlocked MSR0xE2 register) fixed my boot problems with the new 3003 bios on my rig.

Thank's again man.

STAS参数在两个设备上都有调用,严格来说,写成这样也许会更加好一点

External (_SB_.AWAC._STA, IntObj)
External (_SB_.PC00.LPC0.RTC_._STA, IntObj)
Device (SH01)
    {
        Name (_HID, "SDH10000")  // _HID: Hardware ID
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            \_SB.PC00.LPC0.RTC._STA = 0x0F
            \_SB.AWAC._STA = Zero
        }

        Method (_STA, 0, NotSerialized)  // _STA: Status
        {
            If (_OSI ("Darwin"))
            {
                Return (0x0F)
            }
            Else
            {
                Return (Zero)
            }
        }
    }

 

问题出在这里:macOS不兼容AWAC,旧的bios默认启用的是RTC(所以是没有问题),这在Z390主板上面是常见的问题,其实OpenCore的DOCS里面有

通过赋予STAS参数一个特定值,屏蔽了AWAC,启用了RTC。如下:

DefinitionBlock ("", "SSDT", 2, "ACDT", "AWAC", 0x00000000)
{
    External (STAS, IntObj)

    Scope (_SB)
    {
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            If (_OSI ("Darwin"))
            {
                STAS = One
            }
        }
    }
}

只是在我主机上面不适合用,无效,也许是与我其它热修复冲突,所以我换了个函数写法,目的是一样

 

I'm sorry, I don't know English~~~~~~~

  • Like 1
Link to comment
Share on other sites

1 hour ago, yapan4 said:

On this BIOS i can boot only with bootstrap_patch and if you remember we was dont able run CPUPM in this case. Don't work...

对CLOVER来说,在x11sra-f主板上面,同样是这样的问题,而且CPU固定3.2Ghz(只有解锁才会正常)

在OC引导上面,运行很好,即使没有解锁msr 0xe2,我的主板,新BIOS已经无法解MSR 0XE2

 

I'm sorry, I don't know English~~~~~~

  • Like 1
Link to comment
Share on other sites

1 hour ago, metacollin said:

Oh, one final thing:  VirtualSMC and SMCProcessor.kext seem to have mostly non-working support for LGA2066 and LGA3647 CPU sensors.  iStat, HWMonitor3/HWMonitorSMC likewise cannot find any sensors.  However, the "latest" (its over 2 years old now) release of Rehabman's fork of FakeSMC, along with FakeSMC_CPUSensors, can be substituted for VirtualSMC without issue.  It may be old, but it works:

 Screen-Shot-2020-02-26-14-17-32.39.jpg

I'm on iStat and FakeSMC and it works flawlessly on my rig (Rehabman's fork of FakeSMC)

Edited by obus
Link to comment
Share on other sites

51 minutes ago, lovest.fhd said:

对CLOVER来说,在x11sra-f主板上面,同样是这样的问题,而且CPU固定3.2Ghz(只有解锁才会正常)

在OC引导上面,运行很好,即使没有解锁msr 0xe2,我的主板,新BIOS已经无法解MSR 0XE2

 

I'm sorry, I don't know English~~~~~~

Same for us with the new 3003 bios on clover. Clover can't handle locked MSR 0xE2 register without bootstrap_patch and if you boot with this patch you losing XCPM. I presume you are booting with AppleXcpmCfgLock --> YES  as me?

Edited by obus
Link to comment
Share on other sites

1 hour ago, lovest.fhd said:

STAS参数在两个设备上都有调用,严格来说,写成这样也许会更加好一点


External (_SB_.AWAC._STA, IntObj)
External (_SB_.PC00.LPC0.RTC_._STA, IntObj)
Device (SH01)
    {
        Name (_HID, "SDH10000")  // _HID: Hardware ID
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            \_SB.PC00.LPC0.RTC._STA = 0x0F
            \_SB.AWAC._STA = Zero
        }

        Method (_STA, 0, NotSerialized)  // _STA: Status
        {
            If (_OSI ("Darwin"))
            {
                Return (0x0F)
            }
            Else
            {
                Return (Zero)
            }
        }
    }

 

问题出在这里:macOS不兼容AWAC,旧的bios默认启用的是RTC(所以是没有问题),这在Z390主板上面是常见的问题,其实OpenCore的DOCS里面有

通过赋予STAS参数一个特定值,屏蔽了AWAC,启用了RTC。如下:


DefinitionBlock ("", "SSDT", 2, "ACDT", "AWAC", 0x00000000)
{
    External (STAS, IntObj)

    Scope (_SB)
    {
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            If (_OSI ("Darwin"))
            {
                STAS = One
            }
        }
    }
}

只是在我主机上面不适合用,无效,也许是与我其它热修复冲突,所以我换了个函数写法,目的是一样

 

I'm sorry, I don't know English~~~~~~~

STAS参数在两个设备上都有调用,严格来说,写成这样也许会更加好一点


External (_SB_.AWAC._STA, IntObj)
External (_SB_.PC00.LPC0.RTC_._STA, IntObj)
Device (SH01)
    {
        Name (_HID, "SDH10000")  // _HID: Hardware ID
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            \_SB.PC00.LPC0.RTC._STA = 0x0F
            \_SB.AWAC._STA = Zero
        }

        Method (_STA, 0, NotSerialized)  // _STA: Status
        {
            If (_OSI ("Darwin"))
            {
                Return (0x0F)
            }
            Else
            {
                Return (Zero)
            }
        }
    }

 

问题出在这里:macOS不兼容AWAC,旧的bios默认启用的是RTC(所以是没有问题),这在Z390主板上面是常见的问题,其实OpenCore的DOCS里面有

通过赋予STAS参数一个特定值,屏蔽了AWAC,启用了RTC。如下:


DefinitionBlock ("", "SSDT", 2, "ACDT", "AWAC", 0x00000000)
{
    External (STAS, IntObj)

    Scope (_SB)
    {
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            If (_OSI ("Darwin"))
            {
                STAS = One
            }
        }
    }
}

只是在我主机上面不适合用,无效,也许是与我其它热修复冲突,所以我换了个函数写法,目的是一样

 

I'm sorry, I don't know English~~~~~~~

So you suggest I should use those two new SSDT:s instead of the first one you posted?

Edited by obus
Link to comment
Share on other sites

4 hours ago, obus said:

So you suggest I should use those two new SSDT:s instead of the first one you posted?

Yes, I enable AppleXcpmCfgLock。This is the patch I use now

 


DefinitionBlock ("", "SSDT", 1, "SPMR", "C422", 0x00000000)
{

    
    External (_SB_.AWAC._STA, IntObj)
    External (_SB_.PC00.LPC0.RTC_._STA, IntObj)



    Device (SH01)
    {
        Name (_HID, "SDH10000") 
        Method (_INI, 0, NotSerialized)  
        {
            \_SB.PC00.LPC0.RTC._STA = 0x0F
            \_SB.AWAC._STA = Zero
        }

        Method (_STA, 0, NotSerialized)  
        {
            If (_OSI ("Darwin"))
            {
                Return (0x0F)
            }
            Else
            {
                Return (Zero)
            }
        }
    }

    
}

and you can use IORegistryExplorer search awac,If AWAC is not found, it is effective

  • Like 1
Link to comment
Share on other sites

11 hours ago, lovest.fhd said:

Yes, I enable AppleXcpmCfgLock。This is the patch I use now

 



DefinitionBlock ("", "SSDT", 1, "SPMR", "C422", 0x00000000)
{

    
    External (_SB_.AWAC._STA, IntObj)
    External (_SB_.PC00.LPC0.RTC_._STA, IntObj)



    Device (SH01)
    {
        Name (_HID, "SDH10000") 
        Method (_INI, 0, NotSerialized)  
        {
            \_SB.PC00.LPC0.RTC._STA = 0x0F
            \_SB.AWAC._STA = Zero
        }

        Method (_STA, 0, NotSerialized)  
        {
            If (_OSI ("Darwin"))
            {
                Return (0x0F)
            }
            Else
            {
                Return (Zero)
            }
        }
    }

    
}

and you can use IORegistryExplorer search awac,If AWAC is not found, it is effective

Thank's man I will test this new SSDT. AWAC is already initialised so I don't need that patch.

 

Tested this new SSDT and it works like a treat. The only thing I have problem with now is Bluetooth. With bios 1202 my Mac keyboard worked during boot (UEFI) and in bios but with bios 3003 I need to connect by USB to get it to work.

Any ideas?

Edited by obus
Link to comment
Share on other sites

22 hours ago, lovest.fhd said:

>> STAS arg is invoked on both devices. Technically, it is better to write the code in this way:


External (_SB_.AWAC._STA, IntObj)
External (_SB_.PC00.LPC0.RTC_._STA, IntObj)
Device (SH01)
    {
        Name (_HID, "SDH10000")  // _HID: Hardware ID
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            \_SB.PC00.LPC0.RTC._STA = 0x0F
            \_SB.AWAC._STA = Zero
        }

        Method (_STA, 0, NotSerialized)  // _STA: Status
        {
            If (_OSI ("Darwin"))
            {
                Return (0x0F)
            }
            Else
            {
                Return (Zero)
            }
        }
    }

 

>> The problem is that macOS is not compatible with AWAC, and RTC was used by default on the older version of BIOS (which is fine). On Z390 this is common. In fact, OpenCore Docs has demonstrated a possible approach that specifies a value which enables RTC, as follows:


DefinitionBlock ("", "SSDT", 2, "ACDT", "AWAC", 0x00000000)
{
    External (STAS, IntObj)

    Scope (_SB)
    {
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            If (_OSI ("Darwin"))
            {
                STAS = One
            }
        }
    }
}

>> But it's not compatible with my case, presumably due to some conflicts with other hot-patches. As a result, I slightly modified the code, for the sake of the same purpose:

 

 


External (_SB_.AWAC._STA, IntObj)
External (_SB_.PC00.LPC0.RTC_._STA, IntObj)
Device (SH01)
    {
        Name (_HID, "SDH10000")  // _HID: Hardware ID
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            \_SB.PC00.LPC0.RTC._STA = 0x0F
            \_SB.AWAC._STA = Zero
        }

        Method (_STA, 0, NotSerialized)  // _STA: Status
        {
            If (_OSI ("Darwin"))
            {
                Return (0x0F)
            }
            Else
            {
                Return (Zero)
            }
        }
    }

 

 

 

 

 

 

 

>> On x11sra-f motherboard the problem remains the same with Clover. And the CPU frequency is locked to 3.2 GHz, which can only be circumvented by unlocking. On the other hand, it's just fine with OC even without unlocking MSR 0xE2. Unfortunately, it's impossible to unlock it on the latest BIOS.

 

Translation of @lovest.fhd :s post made by my friend @PMheart:thumbsup_anim:

Edited by obus
  • Like 1
Link to comment
Share on other sites

2 hours ago, yapan4 said:

Don't worry, me too

:)

 

                            CommentFind* [HEX]      Replace [HEX]

BIOS RTC Patch.     A00A9353 54415301       A00A910A FF0BFFFF

 

This patch could work instead of the RTC SSDT in clover. Test it if you want. I'm back on 1202 because of my loss of Bluetooth keyboard in UEFI.

Edited by obus
  • Like 1
Link to comment
Share on other sites

24 minutes ago, obus said:

 

                            CommentFind* [HEX]      Replace [HEX]

BIOS RTC Patch.     A00A9353 54415301       A00A910A FF0BFFFF

 

This patch could work instead of the RTC SSDT in clover. Test it if you want. I'm back on 1202 because of my loss of Bluetooth keyboard in UEFI.

Thank you @obus

I will be test and this path.

The results - tomorrow...

 

What type of Bluetooth you using? Another one bug in v.3003?

Edited by yapan4
Link to comment
Share on other sites

 Share

×
×
  • Create New...