Contribute
Register

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

Status
Not open for further replies.
Joined
Aug 4, 2018
Messages
47
Motherboard
ASUS Prime X299 Deluxe
CPU
i9-7940X
Graphics
GTX 1070 + GTX 1080 + RX 580
Now we have a config.plist containing all CPxx->PRxx replacements but unfortunately nothing else... :p

Thus.. how we get now the CPxx->PRxx replacements to the system config.plist of my EFI-Folder distribution? :rolleyes:

With a text editor and a copy & paste of the CPxx->PRxx replacements snippet? :p
The config Cloverfield generates is derived from your config, but has the CP-PR replacements for specific CPU. To use one would need to drop-in-replace the one bundled in your EFI distribution. Maybe I'm not getting what you're saying?

This is what I see when I open one of them with Clover-configurator. Replacement are there and are already enabled:
upload_2018-8-14_17-19-18.png


UUID was also generated when I ran generate.py (now I realize that this would only be useful if one runs generate.py themselves, so I should remove it from the distributed configs):
upload_2018-8-14_17-21-0.png
 

kgp

Retired
Joined
May 30, 2014
Messages
6,902
Motherboard
ASUS WS X299 Sage 10G
CPU
i9-7980XE
Graphics
Vega 64
Mac
iMac, MacBook Pro, Mac mini
Mobile Phone
iOS
The config Cloverfield generates is derived from your config, but has the CP-PR replacements for specific CPU. To use one would need to drop-in-replace the one bundled in your EFI distribution. Maybe I'm not getting what you're saying?

This is what I see when I open one of them with Clover-configurator. Replacement are there and are already enabled:
View attachment 346285

UUID was also generated when I ran generate.py (now I realize that this would only be useful if one runs generate.py themselves, so I should remove it from the distributed configs):
View attachment 346286
I see..

But anyway could you see updates and new proposal in post #9890?

I think this should be the correct approach.. Imagine that I or somebody else would change, add or skip something in the distributed config.plist at some point.. It would not be accounted by your program.. you know what I mean?
 
Joined
Aug 4, 2018
Messages
47
Motherboard
ASUS Prime X299 Deluxe
CPU
i9-7940X
Graphics
GTX 1070 + GTX 1080 + RX 580
Your program should to the following:

1.) Automatically mount the correct EFI-partition (which will be already a problem when using APFS file format)
2.) Make a backup of the original config.plist to config.bak
3.) Check for already persistent CPxx->PRxx replacements and remove them if present
4.) Check if there are other ACPI replacements and add the new CPxx->PRxx replacements at the end
5.) Save the modified config.plist and unmount the EFI-partition

Guess there is some work left, right?
I don't really want to evolve this script into Clover-configurator replacement, the latter works well enough :). The intended use of this script is to generate a starter config, thus replacing :
1) some steps in D.1.2 (Enable pluginType, generate UUID)
2) All steps in E.9.1

Can you provide in the meanwhile a text code snippet with the CPxx->PRxx replacements for the i9-7940X together with a screenshot of the new IOREG PRxx CPU thread distribution?
All the snippets I gathered are in the same archive - folder templates/Asus_Prime_X299_Deluxe/_cp_pr

Here's the screenshot:
upload_2018-8-14_17-32-53.png
 
Last edited:

kgp

Retired
Joined
May 30, 2014
Messages
6,902
Motherboard
ASUS WS X299 Sage 10G
CPU
i9-7980XE
Graphics
Vega 64
Mac
iMac, MacBook Pro, Mac mini
Mobile Phone
iOS
I don't really want to evolve this script into Clover-configurator replacement, the latter works well enough :). The intended use of this script is to generate a starter config, thus replacing :
1) some steps in D.1.2 (Enable pluginType, generate UUID)
2) All steps in E.9.1


All the snippets I gathered are in the same archive - folder templates/Asus_Prime_X299_Deluxe/_cp_pr

[Screenshot coming in a bit]
The ACPI replacements of section E.9.1 are already part of my EFI-Folder distribution. Also plugintype is checked by default..

My propsed approach for adding the correct CPU thread replacements is nothing what Clover can offer at present and it is well thought..

It would be annouing for anybody experienced to loose all personal settings for his/her specific build after using your program.. all this would have to be added once more manually before replacing his/her former config.plist.. is this really what we want?

And anybody not experienced would be lost anyway, as he would not even know what he/she exactly lost..

I still would like that you make a seperate post with the snippet for the i9-7940X (together with sn IOREG screenshot of the resulting PRxx CPU thread implementation) to be linked within my guide for now.
 
Last edited:
Joined
Aug 4, 2018
Messages
47
Motherboard
ASUS Prime X299 Deluxe
CPU
i9-7940X
Graphics
GTX 1070 + GTX 1080 + RX 580
The ACPI replacements of section E.9.1 are already part of my EFI-Folder distribution. Also plugintype is checked by default..
Right, I forgot about plugintype. You do have a step to enable it - I think it needs to be dropped then.
Then the only step it would replace is UUID generation with UUIDgen - I use a Python library to do the same.
My propsed approach for adding the correct CPU thread replacements is nothing what Clover can offer at present and it is well thought..

It would be annouing for anybody experienced to loose all personal settings for his/her specific build after using your program.. all this would have to be added once more manually before replacing his/her former config.plist.. is this really what we want?

And anybody not experienced would be lost anyway, as he would not even know what he/she exactly lost..
I appreciate your thought-out proposal, thanks a lot for looking into this and I'm excited to contribute.

- Editing the existing Clover/config.plist wouldn't be hard to implement, my concern is that modifying system partition will require more QC and support, because the script would be able to brick the computer if something goes wrong during the execution. Even with a perfectly valid script there are ways this can go wrong, e.g. a power outage. Editing or creating the config during initial build would be safer, because you'll still need to use Clover configurator after and that'll validate the changes done by the script. Even if something goes very wrong - worst thing that'll happen is that installation USB will be unbootable. I'm sure ups wouldn't appreciate some users in this thread complaining about bricking their computer :)

- I agree that indeed changes in source config.plist would need to be synched-up to this project, this creates maintenance overhead. It's much smaller than supporting editing of unique configs users have already put on their EFI Partition, but still existent. Right now I have a template in there that I created manually, and that would need to be changed. A few approaches we can do to eliminate the overhead:
1) Remove the config.plist from your EFI distribution, so that the original source of truth is stored alongside this script. Probably not the best approach.
2) We can modify the script to replace config supplied in your EFI distribution with the one rendered from template (but the overhead will stay)
3) We can implement an option to modify the config supplied using XML replacement, so that Cloverfield is not bundled with a config.plist at all
+ For 2) and 3) we can actually implement a download of the most recent EFI distribution to make it easier to the users.
++ I could also add a feature to drop in appropriate SMC Kext pre-modified with the right number of cores
+++ If this happens to run on the target machine (e.g. under Windows and Linux) - it would be easy enough to auto-detect the CPU and make the script completely automatic.

Question: do you expect people will want to apply CPU replacements after initial build is done? My understanding is that this only has to be done once per build.

Let me know what I'm missing!
 
Joined
Aug 4, 2018
Messages
47
Motherboard
ASUS Prime X299 Deluxe
CPU
i9-7940X
Graphics
GTX 1070 + GTX 1080 + RX 580
The CP-PR replacements for i9-7940X:
Code:
                <dict>
                    <key>Comment</key>
                    <string>CP00 -&gt; PR00</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwMA==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIwMA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP01 -&gt; PR01</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwMQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIwMQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP02 -&gt; PR02</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwMg==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIwMg==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP03 -&gt; PR03</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwMw==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIwMw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP04 -&gt; PR04</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwNA==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIwNA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP05 -&gt; PR05</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwNQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIwNQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP06 -&gt; PR06</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwNg==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIwNg==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP07 -&gt; PR07</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwNw==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIwNw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP08 -&gt; PR08</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwOA==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIwOA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP09 -&gt; PR09</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwOQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIwOQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP0A -&gt; PR10</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwQQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIxMA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP0B -&gt; PR11</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwQg==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIxMQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP0C -&gt; PR12</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwQw==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIxMg==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP0D -&gt; PR13</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwRA==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIxMw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP0E -&gt; PR28</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwRQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIyOA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP0F -&gt; PR29</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwRg==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIyOQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP10 -&gt; PR14</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxMA==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIxNA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP11 -&gt; PR15</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxMQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIxNQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP12 -&gt; PR16</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxMg==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIxNg==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP13 -&gt; PR17</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxMw==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIxNw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP14 -&gt; PR18</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxNA==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIxOA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP15 -&gt; PR19</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxNQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIxOQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP16 -&gt; PR20</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxNg==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIyMA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP17 -&gt; PR21</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxNw==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIyMQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP18 -&gt; PR22</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxOA==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIyMg==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP19 -&gt; PR23</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxOQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIyMw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1A -&gt; PR24</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxQQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIyNA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1B -&gt; PR25</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxQg==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIyNQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1C -&gt; PR26</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxQw==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIyNg==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1D -&gt; PR27</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxRA==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIyNw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1E -&gt; PR30</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxRQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIzMA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1F -&gt; PR31</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxRg==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIzMQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP20 -&gt; PR32</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyMA==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIzMg==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP21 -&gt; PR33</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyMQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIzMw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP22 -&gt; PR34</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyMg==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIzNA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP23 -&gt; PR35</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyMw==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIzNQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP24 -&gt; PR36</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyNA==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIzNg==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP25 -&gt; PR37</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyNQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIzNw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP26 -&gt; PR46</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyNg==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI0Ng==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP27 -&gt; PR47</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyNw==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI0Nw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP28 -&gt; PR48</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyOA==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI0OA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP29 -&gt; PR49</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyOQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI0OQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2A -&gt; PR38</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyQQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIzOA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2B -&gt; PR39</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyQg==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIzOQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2C -&gt; PR40</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyQw==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI0MA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2D -&gt; PR41</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyRA==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI0MQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2E -&gt; PR42</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyRQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI0Mg==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2F -&gt; PR43</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyRg==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI0Mw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP30 -&gt; PR44</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AzMA==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI0NA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP31 -&gt; PR45</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AzMQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI0NQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP32 -&gt; PR50</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AzMg==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI1MA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP33 -&gt; PR51</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AzMw==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI1MQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP34 -&gt; PR52</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AzNA==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI1Mg==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP35 -&gt; PR53</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AzNQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI1Mw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP36 -&gt; PR54</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AzNg==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI1NA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP37 -&gt; PR55</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AzNw==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI1NQ==
                    </data>
                </dict>
IOreg screenshot:
 
Joined
Aug 4, 2018
Messages
47
Motherboard
ASUS Prime X299 Deluxe
CPU
i9-7940X
Graphics
GTX 1070 + GTX 1080 + RX 580
The CP-PR replacements for i9-7960X:
Code:
                <dict>
                    <key>Comment</key>
                    <string>CP00 -&gt; PR00</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwMA==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIwMA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP01 -&gt; PR01</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwMQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIwMQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP02 -&gt; PR02</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwMg==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIwMg==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP03 -&gt; PR03</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwMw==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIwMw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP04 -&gt; PR04</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwNA==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIwNA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP05 -&gt; PR05</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwNQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIwNQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP06 -&gt; PR06</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwNg==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIwNg==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP07 -&gt; PR07</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwNw==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIwNw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP08 -&gt; PR08</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwOA==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIwOA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP09 -&gt; PR09</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwOQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIwOQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP0A -&gt; PR10</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwQQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIxMA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP0B -&gt; PR11</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwQg==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIxMQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP0C -&gt; PR12</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwQw==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIxMg==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP0D -&gt; PR13</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwRA==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIxMw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP0E -&gt; PR14</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwRQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIxNA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP0F -&gt; PR15</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwRg==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIxNQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP10 -&gt; PR16</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxMA==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIxNg==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP11 -&gt; PR17</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxMQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIxNw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP12 -&gt; PR18</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxMg==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIxOA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP13 -&gt; PR19</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxMw==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIxOQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP14 -&gt; PR20</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxNA==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIyMA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP15 -&gt; PR21</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxNQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIyMQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP16 -&gt; PR22</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxNg==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIyMg==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP17 -&gt; PR23</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxNw==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIyMw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP18 -&gt; PR24</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxOA==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIyNA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP19 -&gt; PR25</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxOQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIyNQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1A -&gt; PR26</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxQQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIyNg==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1B -&gt; PR27</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxQg==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIyNw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1C -&gt; PR28</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxQw==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIyOA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1D -&gt; PR29</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxRA==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIyOQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1E -&gt; PR30</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxRQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIzMA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1F -&gt; PR31</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxRg==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIzMQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP20 -&gt; PR32</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyMA==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIzMg==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP21 -&gt; PR33</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyMQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIzMw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP22 -&gt; PR34</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyMg==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIzNA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP23 -&gt; PR35</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyMw==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIzNQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP24 -&gt; PR36</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyNA==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIzNg==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP25 -&gt; PR37</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyNQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIzNw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP26 -&gt; PR38</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyNg==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIzOA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP27 -&gt; PR39</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyNw==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFIzOQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP28 -&gt; PR40</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyOA==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI0MA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP29 -&gt; PR41</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyOQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI0MQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2A -&gt; PR42</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyQQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI0Mg==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2B -&gt; PR43</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyQg==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI0Mw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2C -&gt; PR44</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyQw==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI0NA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2D -&gt; PR45</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyRA==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI0NQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2E -&gt; PR46</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyRQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI0Ng==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2F -&gt; PR47</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyRg==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI0Nw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP30 -&gt; PR48</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AzMA==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI0OA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP31 -&gt; PR49</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AzMQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI0OQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP32 -&gt; PR50</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AzMg==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI1MA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP33 -&gt; PR51</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AzMw==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI1MQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP34 -&gt; PR52</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AzNA==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI1Mg==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP35 -&gt; PR53</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AzNQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI1Mw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP36 -&gt; PR54</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AzNg==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI1NA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP37 -&gt; PR55</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AzNw==
                    </data>
                    <key>Replace</key>
                    <data>
                    UFI1NQ==
                    </data>
                </dict>
IOreg screenshot, courtesy of @egroys
Screen Shot 2018-08-14 at 9.40.38 PM.png Screen Shot 2018-08-14 at 9.41.05 PM.png
 
Last edited:
Joined
Aug 4, 2018
Messages
47
Motherboard
ASUS Prime X299 Deluxe
CPU
i9-7940X
Graphics
GTX 1070 + GTX 1080 + RX 580
I still would like that you make a seperate post with the snippet for the i9-7940X (together with sn IOREG screenshot of the resulting PRxx CPU thread implementation) to be linked within my guide for now.
Got it, see posts #9896 and #9897
 
Joined
Aug 4, 2018
Messages
47
Motherboard
ASUS Prime X299 Deluxe
CPU
i9-7940X
Graphics
GTX 1070 + GTX 1080 + RX 580
1.) Are you sure that when you disable SL0A it is substituted by PEGP? please look up DSDT.. maybe it is PXSX?
After looking into DSDT I figured out that NOTHING substituted SL0A. So the key to get this adopted was to remove the removal of PEGP. Now everything looks similar to your screenshot.

2.) The most recent TB-SSDT has been configured for and tested with the Gigabyte Alpine Ridge.. If you use the latter there is no need for any further adaptations of the file, such as subsystem-vendor-ID, subsystem-ID or compatible! Values have been chosen on purpose such.
Okay, got it. Now it makes sense why I had to adopt.

After I switched the card to Slot-4, my original adoption that includes PEGP removal worked like a charm.

Attaching SSDT for Slot4 and Slot6 for the ones who are interested.

Now, my Thunderbolt device still doesn't appear when cold-plugged. BUT after moving the card back and forth between Slot4 and Slot6, when I hot-plug or unplug my RAID - I'm getting the system to freeze. Maybe it's a good sign?
 
Last edited:
Joined
Sep 10, 2015
Messages
230
Motherboard
Asus Z370 Strix E
CPU
i7-8700K
Graphics
Vega 64
Mac
MacBook Pro
Mobile Phone
iOS
Hi @TheOfficialGypsy,
did you find a solution for this problem meanwhile?

Testing a lot here but still no luck.
Found your rather old posting...
I found no solution to the annoying issue. It is also why Unlock with Apple Watch never worked since bluetooth and in fact any connected USB device would be disconnected during wakeup. I ended up switching to the Z370 8700k platform for ease of use, and also switched my 1080Ti for a Sapphire Vega 64 Nitro +
 
Status
Not open for further replies.
Top