Contribute
Register

Big Sur on HP EliteDesk 800 G4/G5 Mini - The Perfect MacMini8,1 Hackintosh - OpenCore

Joined
Sep 22, 2011
Messages
1,315
Motherboard
HP EliteDesk 800 G5 Mini
CPU
I7-9700
Graphics
UHD 630
Mac
  1. Mac mini
Mobile Phone
  1. iOS
Hi, I found a possible problem on my ZBook, and it seems it also affects your build.

SSDT-PMCR creates the device PMCR but this new device uses the same Memory range as device PRRE
...
Just wanted to let you know that I haven't forgotten this and am still testing. I was looking at ACPI dumps of real Macs (including iMac18,x) and see that some real Macs have Device PMCR that does not allocate any Memory32Fixed memory resources. I am currently running with the injected Device PMCR below to see if I notice any difference in behavior. So far, I don't notice anything different.

Code:
            Device (PMCR)
            {
                Name (_HID, EisaId ("APP9876"))  // _HID: Hardware ID
                Method (_STA, 0, NotSerialized)  // _STA: Status
                {
                    If (_OSI ("Darwin"))
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }
            }


@theroadw Going on Day 2 with using this revised Device PMCR definition (without a Memory32Fixed resource setting). My hack continues to work without issues (and no observable changes). I am leaning toward this "new" PMCR definition as my preferred solution for this potential resource conflict.
 
Last edited:
Joined
Sep 22, 2011
Messages
1,315
Motherboard
HP EliteDesk 800 G5 Mini
CPU
I7-9700
Graphics
UHD 630
Mac
  1. Mac mini
Mobile Phone
  1. iOS
For those who would like to help test my currently preferred solution to @theroadw 's potential resource conflict here, replace SSDT-PMCR.aml (in EFI/OC/ACPI) with the attached version. The attached version implements the change here. Please report any issues with this "new" PMCR. Thank you.
 

Attachments

  • SSDT-PMCR.aml.zip
    639 bytes · Views: 16
Joined
Jul 21, 2011
Messages
243
Motherboard
Zbook G5 17"
CPU
i7
Graphics
AMD WX-4170
Mac
  1. MacBook Pro
  2. Mac mini
  3. Mac Pro
In real Macbooks 15,1 (my SMBIOS) apple uses PMCR with memory so I'm keeping it as before and just disabling PRRE.
But it's an interesting find.

Also @deeveedee you may have missed this one, it's cosmetic only.

 
Joined
Sep 22, 2011
Messages
1,315
Motherboard
HP EliteDesk 800 G5 Mini
CPU
I7-9700
Graphics
UHD 630
Mac
  1. Mac mini
Mobile Phone
  1. iOS
@theroadw My only concern with my originally proposed PRRE._STA=0 is that something in hardware is using PRRE's reserved memory regions and that a change in ACPI won't prevent the conflict. I am becoming more and more convinced that the safest way to handle the conflict you observed is to change Device PMCR (something we do control).

EDIT: I need to remind myself that we are running macOS on Windows hardware. Duplicating ACPI from a real Mac may not always be the best solution (although I do start with that approach in my hacks).
 
Joined
Sep 22, 2011
Messages
1,315
Motherboard
HP EliteDesk 800 G5 Mini
CPU
I7-9700
Graphics
UHD 630
Mac
  1. Mac mini
Mobile Phone
  1. iOS
I may or may not upgrade to OC0.6.9, so I'm posting my current EFI for OC 0.6.8 here. This EFI includes the changes listed below (changes from OC0.6.8-EFI-r001 currently attached to Post #1). I'll attach this to Post #1 after more testing (and hopefully some feedback from others on the change to Device PMCR).

OC 0.6.8.R003 BETA
config.plist
- Removed SAT0->SATA ACPI patch
- New: ACPI > Add SSDT-USBX.aml
- Changes in OC 0.6.8 R002 (below)
ACPI
- Added SSDT-USBX.aml to inject the same power properties as USBPorts.kext
- Modified SSDT-PMCR.aml: removed Memory32Fixed resource setting (potential conflict with original Device PRRE)

OC 0.6.8 R002 (Never posted. Changes included in R003)
config.plist
- Fixed errors identified by OCValidate tool
- OCS: Missing key Patch, context <Booter>!
- OCS: Missing key TextMode, context <Entries>!
- OCS: Missing key RealPath, context <Tools>!
- OCS: Missing key TextMode, context <Tools>!
- OCS: Missing key RealPath, context <Tools>!
- OCS: Missing key TextMode, context <Tools>!
- OCS: Missing key RealPath, context <Tools>!
- OCS: Missing key TextMode, context <Tools>!
 

Attachments

  • OC0.6.8-EFI-r003.zip
    2.3 MB · Views: 17
Joined
Jul 21, 2011
Messages
243
Motherboard
Zbook G5 17"
CPU
i7
Graphics
AMD WX-4170
Mac
  1. MacBook Pro
  2. Mac mini
  3. Mac Pro
@theroadw My only concern with my originally proposed PRRE._STA=0 is that something in hardware is using PRRE's reserved memory regions and that a change in ACPI won't prevent the conflict. I am becoming more and more convinced that the safest way to handle the conflict you observed is to change Device PMCR (something we do control).

EDIT: I need to remind myself that we are running macOS on Windows hardware. Duplicating ACPI from a real Mac may not always be the best solution (although I do start with that approach in my hacks).

Without knowing how the OS uses PMCR, and if different SMBIOS's change anything with it's use, you could also be potentially creating a problem. Since PRRE doesn't attach to anything in OSX, it's very unlikely we'll have problems by disabling the device altogether.
I guess there's no right or wrong here. Both approaches may work perfectly
 
Joined
Sep 22, 2011
Messages
1,315
Motherboard
HP EliteDesk 800 G5 Mini
CPU
I7-9700
Graphics
UHD 630
Mac
  1. Mac mini
Mobile Phone
  1. iOS
@theroadw As long as we're guessing about how these reserved memory buffers work, I mapped out the Memory32Fixed buffers declared within the HP EliteDesk 800 G4 Mini DSDT. There are "free" regions that are unclaimed: 0xFE020000-0xFE100000, 0xFED94000-0xFEE00000 and 0xFEF00000-0xFF000000. If we believe that Device PMCR just needs a free buffer of length 0x00010000, then for the HP EliteDesk 800 G4, the following PMCR._CRS might be acceptable:

Code:
                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                {
                    Memory32Fixed (ReadWrite,
                        0xFE020000,         // Address Base
                        0x00010000,         // Address Length
                        )
                })

EDIT: I am currently running with with this PMCR:

Screen Shot 2021-04-26 at 12.49.46 PM.png
 
Last edited:
Joined
Jul 21, 2011
Messages
243
Motherboard
Zbook G5 17"
CPU
i7
Graphics
AMD WX-4170
Mac
  1. MacBook Pro
  2. Mac mini
  3. Mac Pro
@theroadw As long as we're guessing about how these reserved memory buffers work, I mapped out the Memory32Fixed buffers declared within the HP EliteDesk 800 G4 Mini DSDT. There are "free" regions that are unclaimed: 0xFE020000-0xFE100000, 0xFED94000-0xFEE00000 and 0xFEF00000-0xFF000000. If we believe that Device PMCR just needs a free buffer of length 0x00010000, then for the HP EliteDesk 800 G4, the following PMCR._CRS might be acceptable:

Code:
                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                {
                    Memory32Fixed (ReadWrite,
                        0xFE020000,         // Address Base
                        0x00010000,         // Address Length
                        )
                })

EDIT: I am currently running with with this PMCR:

View attachment 516427

I think that is the best solution, how did you get the 'free" regions? Just what's not declared used on the DSDT and SSDT's?
 
Last edited:
Joined
Sep 22, 2011
Messages
1,315
Motherboard
HP EliteDesk 800 G5 Mini
CPU
I7-9700
Graphics
UHD 630
Mac
  1. Mac mini
Mobile Phone
  1. iOS
Caution: for anyone who attempts to duplicate this method on their rig, the "free" memory regions will be platform-specific. If you don't have an HP EliteDesk 800 G4/G5 Mini, you will need to calculate your own "free" memory regions.

@theroadw Yes. A tedious search for Memory32Fixed in the HP EliteDesk 800 G4 ACPI. I recorded the Base and Length and then calculated each buffer range (Base + Length). The result showed the "holes" in the memory mapped buffers.

EDIT: In the case of the HP EliteDesk 800 G4 Mini, there was nothing of importance in the SSDTs - only the DSDT.

EDIT2: @theroadw My memory mapping is attached.
 

Attachments

  • EliteDesk800-Memory32Fixed.pdf
    33.9 KB · Views: 13
Last edited:
Joined
Jul 21, 2011
Messages
243
Motherboard
Zbook G5 17"
CPU
i7
Graphics
AMD WX-4170
Mac
  1. MacBook Pro
  2. Mac mini
  3. Mac Pro
Other than the Variable names _Y?? and UBTC which is absent, on the Zbook it's identical.
Thanks for the info!
Now I'm doing the same with PMCR, time will tell if it's right.
 
Top