Contribute
Register

RTC fix with Big Sur - OpenCore ?

Status
Not open for further replies.
Joined
Aug 10, 2019
Messages
46
Motherboard
HP Elitedesk G3 800 -
CPU
i5-6500
Graphics
HD 530
Mobile Phone
  1. iOS
hello everyone,

On my hp, I used to use FixRTC in Clover but now, on Big Sur and OpenCore, I've got RTC problem at each boot (Bios screen).
I tried to activate, in Opencore, to active "DisableRtcchecksum" but no success ...
Any ideas ?

Thanks
 
EDIT: I was answering a question in another thread and realized my post below may create some confusion. Let me clarify: CLOVER's FixRTC ACPI patch excludes the IRQ from RTC (to prevent an IRQ conflict with HPET) AND sets RTC memory to 0x02 (to prevent RTC corruption). CLOVER's FixRTC ACPI patch and CLOVER's AppleRTC kext patch are usually both used to prevent RTC corruption. If you don't use Acidanthera's RTCMemoryFixup.kext with a customized rtcfx-exclude range, then you may need CLOVER's FixRTC ACPI patch (because it does more than address the IRQ conflict). Incorrect RTC patching can prevent proper sleep, so I don't believe that a working sleep solution for the G3 Mini (if we find one) will include CLOVER's FixRTC ACPI patch.

--------------------------------------------------------------

I'm tinkering with my HP EliteDesk 800 G3 Mini and have OC0.6.3 booting Catalina 10.15.7.03. My rig has an i7-7700T (Kabylake). It works perfectly with the exception of wake. I've put it aside for a bit to get some real work done, so I don't have anything to upload, but if you're like me, you'll find that you need to use RTCMemoryFixup.kext and start experimenting with rtcfx_exclude range. I've only gotten as far as to prove that with an exclude range of 0-FF, the RTC problem is resolved (but we don't want a range that broad). I have used SSDT-TIME to create the IRQ patches, but those patches don't address the RTC corruption issue after each shutdown. I've also recently discovered that newer Macs (going as far back as Skylake and maybe earlier) have disabled HPET (see my observation here). With HPET disabled, the IRQ patches should no longer be necessary. I've searched and can't find anyone else who has made the HPET observation (so I doubt many people are looking at the ACPI in real Macs), so if you test my HPET patch (which is valid for the HP EliteDesk 800 G3 Mini), you'll be testing it alone with me.

Regardless, you should be finding that the RTC corruption is not fatal, and your rig should recover gracefully after you acknowledge the error.
 
Last edited:
EDIT: I was answering a question in another thread and realized my post below may create some confusion. Let me clarify: CLOVER's FixRTC ACPI patch excludes the IRQ from RTC (to prevent an IRQ conflict with HPET) AND sets RTC memory to 0x02 (to prevent RTC corruption). CLOVER's FixRTC ACPI patch and CLOVER's AppleRTC kext patch are usually both used to prevent RTC corruption. If you don't use Acidanthera's RTCMemoryFixup.kext with a customized rtcfx-exclude range, then you may need CLOVER's FixRTC ACPI patch (because it does more than address the IRQ conflict). Incorrect RTC patching can prevent proper sleep, so I don't believe that a working sleep solution for the G3 Mini (if we find one) will include CLOVER's FixRTC ACPI patch.

--------------------------------------------------------------

I'm tinkering with my HP EliteDesk 800 G3 Mini and have OC0.6.3 booting Catalina 10.15.7.03. My rig has an i7-7700T (Kabylake). It works perfectly with the exception of wake. I've put it aside for a bit to get some real work done, so I don't have anything to upload, but if you're like me, you'll find that you need to use RTCMemoryFixup.kext and start experimenting with rtcfx_exclude range. I've only gotten as far as to prove that with an exclude range of 0-FF, the RTC problem is resolved (but we don't want a range that broad). I have used SSDT-TIME to create the IRQ patches, but those patches don't address the RTC corruption issue after each shutdown. I've also recently discovered that newer Macs (going as far back as Skylake and maybe earlier) have disabled HPET (see my observation here). With HPET disabled, the IRQ patches should no longer be necessary. I've searched and can't find anyone else who has made the HPET observation (so I doubt many people are looking at the ACPI in real Macs), so if you test my HPET patch (which is valid for the HP EliteDesk 800 G3 Mini), you'll be testing it alone with me.

Regardless, you should be finding that the RTC corruption is not fatal, and your rig should recover gracefully after you acknowledge the error.
I've the same machine as yours and tried the SSDT-AWAC-HPET.aml file in OC but I'm still getting the clock reset error during reboot. Is there anything I'm missing? -Thanks
 
I've the same machine as yours and tried the SSDT-AWAC-HPET.aml file in OC but I'm still getting the clock reset error during reboot. Is there anything I'm missing? -Thanks
SSDT-AWAC-HPET wasn't intended to solve and doesn't solve RTC corruption issues. You need to use CLOVER's "Fix RTC" or Acidanthera's RTCMemoryFixup.kext with a custom rtcfx_exlude range. You can look at my posted EFI here.

My SSDT-AWAC-HPET disables HPET to mimic all real Macs from Skylake and newer. If you examine the ACPI of real Macs, they no longer have HPET enabled starting with Skylake. With HPET disabled, you shouldn't need to worry about IRQ conflicts (and thus shouldn't need to patch IRQ for RTC, PIC, TIMR...). However, MacOS can still write to RTC, so you need to protect your system from these writes. CLOVER's "Fix RTC" does two things: it changes RTC memory length to 2 and it excludes IRQs. Even when you use my SSDT-AWAC-HPET.aml, you still need to either change RTC memory length to 2 (thus the need for CLOVER's "Fix RTC") or you need to exclude specific RTC memory locations using RTCMemoryFixup.kext.

EDIT: @bufferOverflow - I've performed multiple experiments with the EliteDesk 800 G3 Mini and have found that a working rtcfx_exclude range is B0-B3,B7 (for use with RTCMemoryFixup.kext).
 
Last edited:
Thanks a lot @deeveedee for the explaining the details. Your 800 G4 mini exclusion range didn't work for me but used the opencore guide to find the range for my machine (if anyone interested for elitedesk 800 G4 SFF it's DB-DF).
 
When using clover I was using a patch to avoid black screen while booting on my gigabyte z370n wifi MB with BIOS > F8. But after switching to OC I have never used any patch but have SSDT-AWAC.aml in ACPI, the following is from OC installation guide
  • AWAC system clock.
    • This applies to all 300 series motherboards including many Z370 boards, the specific issue is that newer boards ship with AWAC clock enabled. This is a problem because macOS cannot communicate with AWAC clocks, so this requires us to either force on the legacy RTC clock or if unavailable create a fake one for macOS to play with
So it seems nothing more is required in my case not even RTCMemoryFixup.kext
 
Thanks a lot @deeveedee for the explaining the details. Your 800 G4 mini exclusion range didn't work for me but used the opencore guide to find the range for my machine (if anyone interested for elitedesk 800 G4 SFF it's DB-DF).
Hey can you share the guide ?
 
Status
Not open for further replies.
Back
Top