Contribute
Register

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

Status
Not open for further replies.
Hi guys, I bought a Sapphire Vega64 card on Black Fri. After I swap out the old nvidia GTX970, I can no longer boot into H.Sierra. I understand this is not exactly a drop in replacement, so does anyone knows what settings I have to change?

View attachment 369210

After this line loaded, the screen will be blank and the computer sounds like it's been shut off, very quiet and not proceed further.

Thank you guys in advance. :)

Use whatevergreen and one of the Vega GPUs of the respective X299 repository. But first at all, read corresponding sections of my guide.
 
Hi @cloverbay

I believe this is very similar to what happened to me when I switched to VEGA.
To overcome this I have removed the GTX related SSDTs.aml, uninstalled the NVIDIA drivers and installed whatevergreen.kext.

All the best
Frank
 
  • Like
Reactions: kgp
Hey Kgp. I have X299 motherboard with Vega 64. I flash my bios to 1503 using the one you provided but now i can't boot into mac OSX. can you send my your EFI folder since we have similar setup thanks. or can you please send me the 1301 patched bios file? thanks.
 
Hey Kgp. I have X299 motherboard with Vega 64. I flash my bios to 1503 using the one you provided but now i can't boot into mac OSX. can you send my your EFI folder since we have similar setup thanks. or can you please send me the 1301 patched bios file? thanks.

My fully implemented EFI-Folder will not help you at all with your current system configuration. Use my actual EFi-Folder from the Github repository and add a properly adopted TSCAdjustReset.kext!

You should use BIOS 1503 with CFGLock disabled in your BIOS settings!

Good luck,

KGP
 
Last edited:
I hope it works out. There are a couple questions about USB support that are not clear in the manual. It seems there are three methods for USB support.

1) Thunderbolt USB controller. You showed this in your screenshot. The Thunderbolt USB controller of the display has two ports but only one seems to be used - it has a USB 3.0 hub connected internally where one port is used for the USB controls of the display (brightness control, etc.). Audio is only through DisplayPort or HDMI (LG UltraFine used USB audio). Devices can use USB 3.0 speed?

2) USB 2.0 USB-B input. The USB controller of your computer is used. Devices are limited to USB 2.0 speed.

3) USB-C input (via the Thunderbolt port for computers that don't have Thunderbolt). The USB controller of your computer is used. This supports USB 3.0 speed? If so then 5K2K 60Hz cannot be supported. So you will have to change the display option to get USB from the USB-B port. Hopefully the monitor is smart enough to allow 5K2K 60Hz over USB-C by not forcing USB 3.0 support. It would be better if the monitor supported switching the USB-C input between USB 2.0 and USB 3.0 speed so that only one cable would be required for USB and DisplayPort signals.


I can see the USB3.0 and USB2.0 controllers implemented under DSB1 (TB) in IOREG when connecting the LG 5K2K via one of the Thunderbolt3 (USB-C) ports of the Titan Ridge although no USB2.0 or USB3.0 cables are connected to the monitor at present.

Screenshot 2018-11-28 at 10.38.56.png



Very strange. It might be useful to create a program to read DDC directly, since it is unclear if SwitchResX is returning an unmodified EDID. There are some DDC programs for macOS to control options like brightness that could be easily modified to read both the EDID and DisplayID I2C addresses of DDC.

I think moninfo.exe (Monitor Asset Manager) in Windows uses DDC to read directly EDID.

Will this approach would be Windows only..

#3 and #4 are the same. Added custom resolutions does not create a custom EDID. Custom resolutions are stored separately from EDID in the Overrides files.

#1 has a mode for 5120 × 2160 @ 60.000Hz but #2 has only a mode for 2560 × 2160 @ 59.662Hz

#3/#4 are identical to #2 but have an extra Display ID extension block (version 1.1 where the rest are 1.2) containing the missing "5120 × 2160 @ 59.990Hz" resolution.

Maybe an error occurs in the case of #2 while reading the extra extension blocks from DDC. That doesn't make sense since #2 contains the proper extension block count at byte 7E of the first block.

I wonder if #3/#4 is the EDID to support DisplayPort 1.4 SST and #2 is the EDID to support DisplayPort 1.2 Dual Link SST.

#1 is the standard SwitchResX resolution implemented when connecting the LG5K2K via the DP1.4 port of the GC-Titan Ridge or one of the DP1.4 ports of the Vega.

#2 is the standard SwitchResX resolution implemented when connecting the LG5K2K via one of the TB3 ports of the GC-Titan Ridge, i.e. 2 displays with 3860 × 2160 @ 59.662Hz and 2560 × 2160 @ 59.662Hz max resolution

#3 and #4 implement MY custom SwitchResX resolution with 5120 × 2160 @ 59.990Hz.

#3 corresponds to only connecting the LG 5K2K via one of the TB3 ports of the GC-Titan Ridge with my custom Switchresx resolution of 5120 × 2160 @ 59.990Hz. On the LG 5K2K the resolution seems fine, but there are 2 monitors apparent in ResSwitchX, both with a 5120 × 2160 @ 59.990Hz resolution. The monitor goes on and off with OSX permanently switching between 1x and 2x display implementations.

#4 corresponds to connecting the Lg 5K2K via one of the TB3 ports of the GC-Titan Ridge with my custom Switchresx resolution of 5120 × 2160 @ 59.990Hz and connecting my LG 38UC99 with the DP1.4 port of the GC-Titan Ridge with the SwitchResx standard resolution of 3840 × 1600 @ 60.000Hz. Only in this case the LG 5K2K is properly implemented when connected via the one of the TB3 ports of the GC-Titan ridge, with a permanent single display implementation of 5120 × 2160 @ 59.990Hz resolution in SwitchResX and OSX.


I would like confirmation that this display can support 5K2K 60Hz from a Mac using Alpine Ridge (therefore using DisplayPort 1.2 Dual Link SST).

If the display is working as DisplayPort 1.4 700 MHz via Titan Ridge, then you should be able to disconnect one of the DisplayPort cables from the GC-TITAN RIDGE or connect it to a different graphics card.

On my X99 rig I am using the Alpine Ridge which seems not to work at all with the LG 5K2K connected via one of the TB3 ports, not even under Windows, neither with LG 5K2K DisplayPort settings of DP1.4 nor DP1.2. There is also no boot screen or clover boot loader image when connecting the LG 5K2K with one of the TB3 ports of the Alpine Rdige, which is totally wird as it is supposed that the LG 5K2K uses DisplayPort 1.2 Dual Link SST for TB3. I don't think that it would work to drive the LG 5K2K with the GC-Titan Ridge, with only one DP cable connected to the Vega. Let me try and report back.

Interesting. We don't know exactly how Thunderbolt transforms DisplayPort signals.

Vendor = Manufacturer, so you need to look in the "DisplayVendorID-1e6d" folder. You can make a change in SwitchResX, save it, and view the files by Date Modified. There's an interesting file in there for the Thunderbolt port of this display (Product ID 7721; The DisplayPort has Product ID 7720). The DisplayProductID-7721.mtdd file describes the multi cable connection information for the display. The overlay data appears to be an EDID but it's different than the three you provided.

Ok, thanks for this information.
 
Last edited:
@joevt, @Rulebreaker01

I just obtained a more than weird and surprising result.

Within configuration #4 detailed in post #11555 above, the LG 5K2K continues working with 5K2K @59,990 Hz single display implementation when removing one of the DP cables connecting the GC-Titan Ridge with the two DP ports of my Vega. Only the additional LG 38UC99-W display connected via the DP1.4 port of the GCTitan Ridge with 3840x1600 @60Hz resolution is lost in this case.

This fact and the general LG 5K2K incompatibility with the GC-Alpine Ridge suggests that the LG5K2K does not use a standard DisplayPort1.2 Dual Link SST!

Two DP cables between GC-Titan Ridge and Vega:

Screenshot 2018-12-01 at 09.28.06.png


One DP cable between GC-Titan Ridge and Vega:

Screenshot 2018-12-01 at 09.28.52.png


The LG 5K2K perfectly works also standalone connected via the TB3 port of the GC-Titan Ridge with my custom SwitchResX resolution profile and the second DP cable between the GC-Titan Ridge and Vega removed.

IMG_2701.jpg

IMG_2705.jpg

IMG_2706.jpg

IMG_2707.jpg

Screenshot 2018-12-01 at 10.09.32.png


Screenshot 2018-12-01 at 10.10.33.png


Screenshot 2018-12-01 at 10.11.55.png


including TB Display HotPlug

Screenshot 2018-12-01 at 10.15.04.png


Screenshot 2018-12-01 at 10.16.22.png


I use SSDT-X299-TB3HP.aml, SSDT-X299-Vega64.aml and the actual Whatevergreen and Lilu kext distribution.
 
Last edited:
I can see the USB3.0 and USB2.0 controllers implemented under DSB1 (TB) in IOREG when connecting the LG 5K2K via one of the Thunderbolt3 (USB-C) ports of the Titan Ridge although no USB2.0 or USB3.0 cables are connected to the monitor at present.
Yes, DSB1 (downstream bus 1) is the downstream bus for a Thunderbolt port of your GC-TITAN RIDGE. DSB2 contains the USB controller (XHC5) of your GC-TITAN RIDGE. DSB4 is the other Thunderbolt port of your GC-TITAN RIDGE which has nothing connected to it. DSB0 contains the Thunderbolt NHI.

UPS0 is the Titan Ridge controller of the LG5K2K. pci-bridge@2 is a downstream bus of that controller and contains the Titan Ridge USB controller (pci8086,15ec).

Both pci8086,15ec (your display's Titan Ridge) and XHC5 (your GC-TITAN RIDGE) contain two USB ports (one per Thunderbolt port).

There's a four port hub connected to the pci8086,15ec (your display's Titan Ridge). The display has a USB device connected to the fourth port of the hub for the controls of the display (such as brightness control). Two of the hub ports are probably for the two USB-A connectors on the back of the LG display. The remaining port is unused? Seems like a waste of a port. Maybe it's used in a non Thunderbolt configuration for something.

You should test the ports of the LG5K2K with a USB 2.0 device (like a mouse) and a USB 3.0 device (like a flash drive). Compare what happens when you change the USB Upstream option in the display's menu.

See what happens when you set the USB Upstream to USB-B (have a cable connected from your computer to the USB-B input of the display). In this case, I would expect the four port hub connected to pci8086,15ec to be moved to the USB port of your computer (but I'm not sure if this is true in the case of a Thunderbolt connection). Only the USB 2.0 hub would move - the USB 3.0 hub will not exist.

See what happens when you try to use USB-C instead of Thunderbolt after you get the cable. If the USB upstream option is set to USB-C, then I expect that 5K2K 60Hz over USB-C is impossible because it will use USB 3.0 - the USB 2.0 hub and USB 3.0 hub will move to your computer's USB port. If the USB Upstream option is set to USB-B, then 5K2K 60Hz should be possible (if the display is smart enough to allow it) and only the USB 2.0 hub will exist and be moved to your computer's USB port.

Will this approach would be Windows only..
Right, moninfo.exe is Windows only, but the DDC programs for controlling brightness exist for macOS and Windows. They are open source and probably can be modified to obtain EDID and DisplayID if they don't already.

#3 and #4 implement MY custom SwitchResX resolution with 5120 × 2160 @ 59.990Hz.
But I don't think SwitchResX created or modified those EDIDs. In other words they would be that way with or without your custom resolution. What the custom resolution does is tell the macOS that there is a timing that it should consider which is useful in this case where it was ignored for some reason, since it did exist in the EDID. Well, you can see what SwitchResX does when you compare the override file it created with the original.

Within configuration #4 detailed in post #11555 above, the LG 5K2K continues working with 5K2K @59,990 Hz single display implementation when removing one of the DP cables connecting the GC-Titan Ridge with the two DP ports of my Vega. Only the additional LG 38UC99-W display connected via the DP1.4 port of the GCTitan Ridge with 3860x1600 @60Hz resolution is lost in this case.

This fact and the general LG 5K2K incompatibility with the GC-Alpine Ridge suggests that the LG5K2K does not use a standard DisplayPort1.2 Dual Link SST!
SwitchResX still reports 700+ MHz pixel clock? Very interesting. If that's true, then why does Apple supply an mtdd file? Maybe the mtdd file is only for Alpine Ridge based Macs and might be the cause of the problem (or part of the problem) with the Titan Ridge MacBook Pro 2018. Well, if Apple supported DisplayID properly, and the display had proper Display ID information, then the mtdd files wouldn't be necessary. Maybe try moving that file to a different location.

SwitchResX results for an Alpine Ridge Mac would be useful.

You can make the LG 38UC99-W display work with the LG5K2K by connecting the LG38 directly to the Vega?
 
Yes, DSB1 (downstream bus 1) is the downstream bus for a Thunderbolt port of your GC-TITAN RIDGE. DSB2 contains the USB controller (XHC5) of your GC-TITAN RIDGE. DSB4 is the other Thunderbolt port of your GC-TITAN RIDGE which has nothing connected to it. DSB0 contains the Thunderbolt NHI.

UPS0 is the Titan Ridge controller of the LG5K2K. pci-bridge@2 is a downstream bus of that controller and contains the Titan Ridge USB controller (pci8086,15ec).

Both pci8086,15ec (your display's Titan Ridge) and XHC5 (your GC-TITAN RIDGE) contain two USB ports (one per Thunderbolt port).

There's a four port hub connected to the pci8086,15ec (your display's Titan Ridge). The display has a USB device connected to the fourth port of the hub for the controls of the display (such as brightness control). Two of the hub ports are probably for the two USB-A connectors on the back of the LG display. The remaining port is unused? Seems like a waste of a port. Maybe it's used in a non Thunderbolt configuration for something.

You should test the ports of the LG5K2K with a USB 2.0 device (like a mouse) and a USB 3.0 device (like a flash drive). Compare what happens when you change the USB Upstream option in the display's menu.

I know the meaning of UPSB, DSB1, DSB2, DSB4, NHI0 and XHC5 as the devices are implemented such by means of my SST-X299-TB.aml ;)...

Well.. USB-C devices plugged to XHC5 of the GC-Titan Ridge work anyway.

But also USB2.0 and USB3.0 devices work flawless on the two back panel USB3.0 Type-A connectors of the LG 5K2K when the latter is connected to one of the TB3 ports of the GC-TiTan Ridge.


Screenshot 2018-12-01 at 12.55.30.png


USB Upstream is set to USB-C in the LG 5K2K settings.


See what happens when you set the USB Upstream to USB-B (have a cable connected from your computer to the USB-B input of the display). In this case, I would expect the four port hub connected to pci8086,15ec to be moved to the USB port of your computer (but I'm not sure if this is true in the case of a Thunderbolt connection). Only the USB 2.0 hub would move - the USB 3.0 hub will not exist.

I guess that's just obvious and does not require any testing.

See what happens when you try to use USB-C instead of Thunderbolt after you get the cable. If the USB upstream option is set to USB-C, then I expect that 5K2K 60Hz over USB-C is impossible because it will use USB 3.0 - the USB 2.0 hub and USB 3.0 hub will move to your computer's USB port. If the USB Upstream option is set to USB-B, then 5K2K 60Hz should be possible (if the display is smart enough to allow it) and only the USB 2.0 hub will exist and be moved to your computer's USB port.

That's some important information. I will try as soon I have the cable.


Right, moninfo.exe is Windows only, but the DDC programs for controlling brightness exist for macOS and Windows. They are open source and probably can be modified to obtain EDID and DisplayID if they don't already.

I could use moninfo.exe under Windows 10, but will you be able to use and apply the obtained information under macOS?


But I don't think SwitchResX created or modified those EDIDs. In other words they would be that way with or without your custom resolution. What the custom resolution does is tell the macOS that there is a timing that it should consider which is useful in this case where it was ignored for some reason, since it did exist in the EDID. Well, you can see what SwitchResX does when you compare the override file it created with the original.

I agree..

SwitchResX still reports 700+ MHz pixel clock? Very interesting. If that's true, then why does Apple supply an mtdd file? Maybe the mtdd file is only for Alpine Ridge based Macs and might be the cause of the problem (or part of the problem) with the Titan Ridge MacBook Pro 2018. Well, if Apple supported DisplayID properly, and the display had proper Display ID information, then the mtdd files wouldn't be necessary. Maybe try moving that file to a different location.

Yes the pixel clock is still 703 Mhz with a resulting resolution of 5120x2160 @59,990 Hz. Where can I find the mtdd file?

SwitchResX results for an Alpine Ridge Mac would be useful.

So far I have not been able to get any image with the LG5K2K connected to one of the TB3 ports of the Alpine Ridge on my X99 rig, neither under Windows 10 nor under macOS.

You can make the LG 38UC99-W display work with the LG5K2K by connecting the LG38 directly to the Vega?

Sure.. no problem...

IMG_2708.jpg


LG38 connected via 1x Dp1.4 of my Sapphire Nitro+ Vega 64 (which btw only has 2xDP1.4 and 2x HDMI). LG 5K2K connected via TB3 port of the GC-TitanRidge, with just 1x DP cable from the GC-Titan Ridge to the second DP1.4 port of my Sapphire Nitro+ Vega 64 .

BTW.. These are the SwitchResX resolution options I get now with the LG38 connected to the DP1.4 port of the GC-Titan Ridge and the LG 5K2K connected to one of the two TB3 ports of the GC-Titan Ridge, with both DP-cables connected between the GC-Titan Ridge and the 2x DP1.4 ports of my Sapphire Nitro+ Vega 64:

Screenshot 2018-12-01 at 13.36.44.png


Screenshot 2018-12-01 at 14.16.06.png
 
Last edited:
Hi guys, I bought a bluetooth adapter from ebay, it's a GYMLE Bluetooth 4.0 Adapter, recommended in Tonymacx86 buyers guide. I plugged in, the system see's that, I can turn it on and of, but it can not see any devices. Just searching... cant see my razer bluetooth mouse, not even my iphone. I have checked the vendor and product id, already implemented in the IOBluetoothFamily.kext. Should I do something more to make it work? On windows, everything is fine...

Thanks for the help! :)
 
Status
Not open for further replies.
Back
Top