Contribute
Register

How to build your own iMac Pro [Successful Build/Extended Guide]

Status
Not open for further replies.
Joined
Sep 29, 2017
Messages
66
Motherboard
ASUS Prime X299 Deluxe
CPU
i7 7820X
Graphics
EVGA GeForce GTX 1080 Ti SC2 HYBRID GAMING
Can you be more explicit?
unable to boot, i'm getting a kernal panic reboot ...

20171015_075724.jpg
 

Attachments

  • 20171015_075724.jpg
    20171015_075724.jpg
    617.4 KB · Views: 123
Joined
Sep 10, 2015
Messages
229
Motherboard
Asus Z370 Strix E
CPU
i7-8700K
Graphics
Vega 64
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
My friend, you have about 20 more DSDT patches! Please explain details if possible to each patch!

a.) apparently you seem to use audio related patches PC00 to PC05 and not only PC00 to PC03 as mentioned in your previous post!

b.) apparently you also use USB related patches _OSI->XOSI, H_EC->EC__, EC0_->EC__, _DSM->XDSM

c.) apparently you also use graphics related patches SL05->GFX0

d.) apparently you also use LAN related patches GBE1->ETH0, D0A4->ETH1

e.) apparently you also use PMC related patches PMC1->PMCR

f.) apparently you also use Device ID's HEC1->IMEI; IDER->MEID... which immediately killed my iCloud account

g.) And you apparently also use several patches I don't understand at all:

LPC0->LPCB
FPU_->MATH
TMR_->TIMR
PIC_->IPIC​

Moreover, you use also a SSDT-X299.aml which supposedly implements all above features and devices in Apple's System Report.

Finally you also use 3 additional drop tables...

All this originates from apfelnico?

a.) Please look in detail which patches are really required for AppleALC v.1.2.0.. The ones you mentioned in your previous posts are apparently not sufficient to successfully run AppleALC v1.2.0...

b.) Please comment and explain all other DSDT patches listed above

c.) Please comment on the additional Drop tables

d.) Finally please comment also on the SSDT-X299.aml and the SSDT-XOSI.aml, where the latter is already known from X99...

I would like that this thread really receives detailed, comprehensive input!

A new approach, like the AppleALC audio approach you suggested and asked to be implemented, must be really comprehensive and explained in it's outermost detail.

Just to post an EFI folder without further comments might certainly not be sufficient for our understanding and further confuse or mislead all readers.... Moreover, if the EFI-Folder like yours contains plenty of additional modifications and details which are not addressed at all...

Please take your time and explain everything in the best possible way!

Cheers and many thanks in advance! :thumbup:

KGP

P.S. Although it looks absolutely gorgeous to see all PCI devices correctly implemented on my rig ;)

View attachment 285720
But please come up with details..;) Unfortunately my system still does not succesfully boot with AppleALC.kext v1.2.0.. :rolleyes:

These patches have been a combination of work between myself and the great 'apfelnico'

The PC00 - 5 renames are for all the PCI slots, this however depends on the board and could potentially vary. This could also depend on how many PCI slots are being used.

The USB rename for EC0 to EC is vital for proper USB power management and to get 2.1A charging working, however I haven't yet managed to get 2.1A fast charging working. I have tried using USBX SSDT with no luck.
H_EC is an alternative name and does not exist on our board, however it could be on other boards.

DSM -> XDSM is vital otherwise without it the main SSDT will not load

Graphics rename SL05 -> GFX0 is to be consistent with the iMac 17,1 SMBios which has discreet graphics as GFX0 and integrated graphics as iGPU (our X299 platform does not have this). If using the Mac Pro 6,1 definition this instead has to be GFX1

The ethernet patches are purely cosmetic and make more sense, the name is from 'apfelnico'

PMC1 to PMCR rename is again to be consistent with names on real Macs and SSDT has device details

FPU_->MATH, TMR_->TIMR, PIC_->IPIC all are simply renames to be consistent with real Macs. Nothing is being loaded under these names on either our X299 board or real Mac.

Yes that is correct, I began by making individual SSDTs for each component and with 'apfelnico' help joined them into one. Apfelnico incorporated many beneficial aspects and this big SSDT would not be possible without his hard work.

After extensive testing, my build could not sleep with SMBus properties injected. I spoke with RehabMan, and since removed LPCB (AppleLPC injection) and SMBus properties as they are unnecessary on our modern hardware.

LPCB rename is done to be consistent with real Mac names (after speaking with RehabMan, AppleLPC is not required therefore there is no need to inject anything apart from rename)

NOTE: The vast majority of these renames are specific to our Asus X299 Prime Deluxe motherboard and will vary from vendor. If you plan to use these for your Gigabyte board etc, examine IOReg prior to renaming as exact names could be different. With our platform, there is no one size fits all.

The additional drop tables have been the work of 'apfelnico'. However apart from 'DMAR' and 'CpuPm', are unnecessary. Until further testing the others are not required.

Now regarding audio, I am working on building a custom version of CodecCommander using PinConfigOverride data generated in Windows. This will take some time and a lot of testing for our 0x10ec1168, ALC 1120A audio controller.

I am also trying to get SSDT-XCPM to work for our system, according to RehabMan this should be possible. Again this will take some time for me. I experience this tiny amount of lag occasionally if I don't put the system to sleep, after sleep the issue seems to be gone. I believe this has something to do with our CPU power management and should be resolved in future builds when we can use the .

I want to thank 'apfelnico' for his work, advice, ideas and support

PS. The reason you were signed out of iCloud was because of the rename to ETH0 and ETH1. Also I found that I had to manually modify the 'NetworkInterfaces.plist' file to have en0 in either the i219 or i211 adapter. After doing that I have been able to use iCloud services with no issues whatsoever. :)

To do list:
- 2.1A USB fast charging
- ALC1120A Audio after sleep using CodecCommander
- RehabMans SSDT-XCPM power management using our i9s native '0x050654' CPU ID without any XCPM bootstrap patches or VoodooTSC sync
 
Last edited:
Joined
Dec 16, 2013
Messages
82
Motherboard
Rampage 6 Extreme
CPU
i9-7900X
Graphics
Aorus 1080ti xTreme
Mac
  1. iMac
Mobile Phone
  1. Android
These patches have been a combination of work between myself and the great 'apfelnico'

The PC00 - 5 renames are for all the PCI slots, this however depends on the board and could potentially vary. This could also depend on how many PCI slots are being used.

The USB rename for EC0 to EC is vital for proper USB power management and to get 2.1A charging working, however I haven't yet managed to get 2.1A fast charging working. I have tried using USBX SSDT with no luck.
H_EC is an alternative name and does not exist on our board, however it could be on other boards.

DSM -> XDSM is vital otherwise without it the main SSDT will not load

Graphics rename SL05 -> GFX0 is to be consistent with the iMac 17,1 SMBios which has discreet graphics as GFX0 and integrated graphics as iGPU (our X299 platform does not have this). If using the Mac Pro 6,1 definition this instead has to be GFX1

The ethernet patches are purely cosmetic and make more sense, the name is from 'apfelnico'

PMC1 to PMCR rename is again to be consistent with names on real Macs and SSDT has device details

FPU_->MATH, TMR_->TIMR, PIC_->IPIC all are simply renames to be consistent with real Macs. Nothing is being loaded under these names on either our X299 board or real Mac.

Yes that is correct, I began by making individual SSDTs for each component and with 'apfelnico' help joined them into one. Apfelnico incorporated many beneficial aspects and this big SSDT would not be possible without his hard work.

After extensive testing, my build could not sleep with SMBus properties injected. I spoke with RehabMan, and since removed LPCB (AppleLPC injection) and SMBus properties as they are unnecessary on our modern hardware.

LPCB rename is done to be consistent with real Mac names (after speaking with RehabMan, AppleLPC is not required therefore there is no need to inject anything apart from rename)

NOTE: The vast majority of these renames are specific to our Asus X299 Prime Deluxe motherboard and will vary from vendor. If you plan to use these for your Gigabyte board etc, examine IOReg prior to renaming as exact names could be different. With our platform, there is no one size fits all.

The additional drop tables have been the work of 'apfelnico'. However apart from 'DMAR' and 'CpuPm', are unnecessary. Until further testing the others are not required.

Now regarding audio, I am working on building a custom version of CodecCommander using PinConfigOverride data generated in Windows. This will take some time and a lot of testing for our 0x10ec1168, ALC 1120A audio controller.

I am also trying to get SSDT-XCPM to work for our system, according to RehabMan this should be possible. Again this will take some time for me. I experience this tiny amount of lag occasionally if I don't put the system to sleep, after sleep the issue seems to be gone. I believe this has something to do with our CPU power management and should be resolved in future builds when we can use the .

I want to thank 'apfelnico' for his work, advice, ideas and support

PS. The reason you were signed out of iCloud was because of the rename to ETH0 and ETH1. Also I found that I had to manually modify the 'NetworkInterfaces.plist' file to have en0 in either the i219 or i211 adapter. After doing that I have been able to use iCloud services with no issues whatsoever. :)

To do list:
- 2.1A USB fast charging
- ALC1120A Audio after sleep using CodecCommander
- RehabMans SSDT-XCPM power management using our i9s native '0x050654' CPU ID without any XCPM bootstrap patches or VoodooTSC sync
You are working already to make your acpi tables apple friendly :)
Thats good, something i will definitely do too after the main cpu problem :)

One tip, you can do almost everything with clover, instead of ssdts.
The benefit are bios updates, if they change pci regions or other things.
Sometimes it can happen that ssdts become useless then.

Piker gave me new advice to experiment with our cpu.
Thanks, but that basically does the same thing as using a fake CPUID. A stupid work around to just not a fake CPUID. Not good.

What you really want is to look at this snippet in _xcpm_bootstrp:
ffffff80003a6a3c mov dword [_xcpm_cpu_model], 0x4000
ffffff80003a6a46 mov dword [_xcpm_config+204], 0x0
ffffff80003a6a50 mov qword [_xcpm_config+120], 0x989680
ffffff80003a6a5b mov dword [_xcpm_config+560], 0x1
ffffff80003a6a65 mov dword [_xcpm_hwp_enabled], 0x1
now look at this line:
ffffff80003a6a5b mov dword [_xcpm_config+560], 0x1
That line is used to select the MSR to write to (IA32_HWP_REQUEST_PKG or IA32_HWP_REQUEST) but that MSR may not be supported by your processor. What I would do is change it to zero (0). And if that still doesn’t work, then take a look at this line:
ffffff80003a6a50 mov qword [_xcpm_config+120], 0x989680
Change that to 0x7a120 or nop it our completely.

Cheers :)

Edit: ive forgot, can you share me your ioreg, i want to see which drivers you get loaded after your ssdt work.

Cheers :)
 

kgp

Retired
Joined
May 30, 2014
Messages
6,780
Motherboard
ASUS WS X299 Sage 10G
CPU
i9-7980XE
Graphics
Vega 64
Mac
  1. iMac
  2. MacBook Pro
  3. Mac mini
Mobile Phone
  1. iOS
These patches have been a combination of work between myself and the great 'apfelnico'

The PC00 - 5 renames are for all the PCI slots, this however depends on the board and could potentially vary. This could also depend on how many PCI slots are being used.

The USB rename for EC0 to EC is vital for proper USB power management and to get 2.1A charging working, however I haven't yet managed to get 2.1A fast charging working. I have tried using USBX SSDT with no luck.
H_EC is an alternative name and does not exist on our board, however it could be on other boards.

DSM -> XDSM is vital otherwise without it the main SSDT will not load

Graphics rename SL05 -> GFX0 is to be consistent with the iMac 17,1 SMBios which has discreet graphics as GFX0 and integrated graphics as iGPU (our X299 platform does not have this). If using the Mac Pro 6,1 definition this instead has to be GFX1

The ethernet patches are purely cosmetic and make more sense, the name is from 'apfelnico'

PMC1 to PMCR rename is again to be consistent with names on real Macs and SSDT has device details

FPU_->MATH, TMR_->TIMR, PIC_->IPIC all are simply renames to be consistent with real Macs. Nothing is being loaded under these names on either our X299 board or real Mac.

Yes that is correct, I began by making individual SSDTs for each component and with 'apfelnico' help joined them into one. Apfelnico incorporated many beneficial aspects and this big SSDT would not be possible without his hard work.

After extensive testing, my build could not sleep with SMBus properties injected. I spoke with RehabMan, and since removed LPCB (AppleLPC injection) and SMBus properties as they are unnecessary on our modern hardware.

LPCB rename is done to be consistent with real Mac names (after speaking with RehabMan, AppleLPC is not required therefore there is no need to inject anything apart from rename)

NOTE: The vast majority of these renames are specific to our Asus X299 Prime Deluxe motherboard and will vary from vendor. If you plan to use these for your Gigabyte board etc, examine IOReg prior to renaming as exact names could be different. With our platform, there is no one size fits all.

The additional drop tables have been the work of 'apfelnico'. However apart from 'DMAR' and 'CpuPm', are unnecessary. Until further testing the others are not required.

Now regarding audio, I am working on building a custom version of CodecCommander using PinConfigOverride data generated in Windows. This will take some time and a lot of testing for our 0x10ec1168, ALC 1120A audio controller.

I am also trying to get SSDT-XCPM to work for our system, according to RehabMan this should be possible. Again this will take some time for me. I experience this tiny amount of lag occasionally if I don't put the system to sleep, after sleep the issue seems to be gone. I believe this has something to do with our CPU power management and should be resolved in future builds when we can use the .

I want to thank 'apfelnico' for his work, advice, ideas and support

PS. The reason you were signed out of iCloud was because of the rename to ETH0 and ETH1. Also I found that I had to manually modify the 'NetworkInterfaces.plist' file to have en0 in either the i219 or i211 adapter. After doing that I have been able to use iCloud services with no issues whatsoever. :)

To do list:
- 2.1A USB fast charging
- ALC1120A Audio after sleep using CodecCommander
- RehabMans SSDT-XCPM power management using our i9s native '0x050654' CPU ID without any XCPM bootstrap patches or VoodooTSC sync


Fantastic answer, @TheOfficialGypsy!! :thumbup::thumbup: Now we certainly better understand the background being all your work! Really an amazing work you did together with apfelnico :clap::clap:

Now we have to see how to implement all these hot stuff stepwise and carefully into my build and guide. :rolleyes: I hope that I can count on your support in this issue! ;)

SSDT-XCPM might not be a that urgent, as Pike's ssdtPRGen.sh and ssdt.aml approach just works brilliant.

My biggest issue at present is what ever I do, AppleALC.kext v1.2.0, which does not work on my system under 10.13. Surprisingly, it works under 10.12.6... However, under 10.12.6, some of your other patches seem to fail and SSDT-X299.aml does not implement any of the respective PCI devices. Do you think we will be able to apply your approach also under 10.12.6?

Well, if you could give me at first place some lift with AppleALC.kext v1.2.0 would be already a nice start of a hopefully very productive and fruitful collaboration in between us ! :headbang:

Please receive once more my outermost respect and gratitude for this absolutely brilliant and exceptional piece of work! :thumbup::thumbup:

Cheers,

KGP :thumbup:
 
Joined
Jun 14, 2017
Messages
158
Motherboard
Asus X299 Prime Deluxe
CPU
i9-7900X
Graphics
Vega & RTX 2080 Ti
@IgnitePro

Finally I have something to play with for your. Thank you for your advice, I would have never searched in that menu item. My config is based on 3200 DDR Ram and 7900x on FW 0802. I have water cooling, please be careful with your CPU temps, even mine runs up to 97 degrees when I do heavy compute tasks.

Current score is 5491 single core and 42374 multi-core.

Let me know how it goes and good luck!
 

Attachments

  • OSX_OC.CMO.zip
    2.4 KB · Views: 82
Status
Not open for further replies.
Top