Contribute
Register

[SUCCESS] Gigabyte Designare Z390 (Thunderbolt 3) + i7-9700K + AMD RX 580

...

Q4:if `patchcr` is removed, the speed goes down to `20x2`, makes my screen flashes randomly

I have two thunderbolt m.2 enclosures, one works will with `patchcr` removed, but another’s speed drop to 20GB/s speed, which lose half speed, implying `patchcr` is crucial. BTW, My ssds are 970 EVO Plus and SN750.
...
Very interesting! We thought pathcr did not matter, so thank you for letting us know. Will add this to the SSDTs soon.
 
Very interesting! We thought pathcr did not matter, so thank you for letting us know. Will add this to the SSDTs soon.
Hi CaseySJ! Can you explain what pathcr is and if I need it with my unflashed Alpine Ridge?
 
Hi CaseySJ! Can you explain what pathcr is and if I need it with my unflashed Alpine Ridge?
My understanding of pathcr is described below. This is just my understanding based on a connect-the-dots approach so it may or may not be accurate.

Preliminary Stuff:
  • The first three stages of booting a UEFI system are:
    1. PEI --> Pre-EFI Initialization
    2. DXE --> Driver Execution Environment
    3. BDS --> Boot Device Select
  • The PEI stage consists of CPU init, chipset init, board init. Low-level stuff.
  • The DXE stage is where buses, devices, and UEFI services are initialized and invoked. This is primarily (not exclusively) done through drivers. There are two kinds of drivers:
    • DXE drivers -- these are more fundamental drivers that are invoked by the firmware itself (by the BIOS). DXE drivers are discovered and invoked first.
    • UEFI drivers -- these include files in OC/Drivers directory containing .efi suffix. These drivers are executed in the final steps of the DXE stage.
The Main Point:
  • DXE drivers on a real Mac initialize and configure all buses and devices. This includes the PCI bus and Thunderbolt controller.
  • Apple's firmware (i.e. Apple's BIOS) contains a lot of DXE drivers, including the three Thunderbolt-related drivers highlighted in red:
Screen Shot 2021-04-23 at 12.20.31 PM.png

  • The firmware (BIOS) on our PC motherboards contains different implementations of some of these drivers, while other drivers don't exist at all.
  • If I recall correctly, ThunderboltNhi and ThunderboltXDomainDevice do not exist on our boards.
  • Apple's implementation of this large set of DXE drivers discovers connected devices such as Thunderbolt monitors and initializes them, which is why those monitors are fully operational even before macOS is booted.
  • After setting up connected devices, Apple's firmware drivers pass some information about these devices to macOS through DevicePathProperties.
  • One of these DevicePathProperties is pathcr. When we compare pathcr on different real Macs, we see different values. For this reason we decided not to incorporate pathcr into our generic Thunderbolt SSDTs.
  • We don't know how to interpret the contents of pathcr. We haven't decoded it.
  • But if pathcr does in fact improve compatibility of some Thunderbolt devices then it makes sense to add this into the Thunderbolt SSDT. But we would be acting somewhat blindly by not really knowing what those values represent.
 
Oh no, it should definitely not revert to any previous BIOS. The outcome you are seeing is correct.
Hi @CaseySJ,


So after all that, everything seems to be working good so far, however there is only 1 last issue left that I am having.

Due to my i211 & i219 Ethernet ports bouncing at random, I have purchased a USB-C Ethernet adapter to use for my wired Ethernet connection. So far I have noticed that it does stay online and does not bounce like the i211 & i219 Ethernet ports. I have researched to no avail with this issue but seems like I am the only special one :lolno: that this is happening to. I have come across a few forms here on tonymacx86 that states their ports aren't connected after a sleep. However, that issue I fortunately do not have. Mine just bounce often and sometimes will get stuck in a bounce loop to which only a restart will fix it...temporarily.

This is the USB-C to Ethernet adapter I purchased.
https://www.amazon.com/gp/product/B077KXY71Q/?tag=tonymacx86com-20

This adapter actually works grea. But the only issue with it is, after a restart, the USB-C ports act like they are not active until I unplug the adapter and re-plug it back in.

Any ideas/tips on this issue or with the i211 & i219 Ethernet ports bouncing?

Thanks again for your time, I really appreciate it.
 
Ouch, sorry to hear that.
  • Do you have a relatively recent bootable backup (not Time Machine)?
    • If not, then boot into Mojave and run Carbon Copy Clonerto make a full bootable backup preferably to an external SATA SSD.
      • Format the external SATA SSD as:
        • Name: Anything
        • Format: APFS
        • Scheme: GUID Partition Map
      • Just clone the internal disk to the external SATA SSD.
      • Then mount EFI partition of (a) internal macOS SSD and (b) external SATA SSD, and use Finder to copy the EFI folder from (a) --> to --> (b).
    • Does Carbon Copy Cloner work right now?
  • If your only backup is Time Machine, are you booting into Recovery and then trying to restore from the Time Machine backup?
  • After making a full bootable backup, if you unable to restore the system using Time Machine, then go ahead and install either Mojave 14.4 or 14.6 without erasing the internal disk.
Thx for the fast response. I cloned my SSD and copied the EFI. That worked. Then I reinstalled Mojave and now my system is running again. Thx a lot

Now I want to try to Update my external SATA SSD to Mojave 14.6 is that possible? Because, after I started the Update in "Software Update" and restarted the Hacki, the external cloned SATA SSD is not shown in Clover. The internal SSD is there and works.

Do I have to update Clover for Mojave 14.6? I still run the Version 4769. I have backed up my EFI and tried the "Kext Updater" program to check what Versions I have, and updated Clover but that did not work. So I booted from another USB Stick with the old Clover Version and reinstalled the older one. After that, it works normally to boot OSX from Clover. I'm a bit confused. Thx for the help.
 
My understanding of pathcr is described below. This is just my understanding based on a connect-the-dots approach so it may or may not be accurate.

Preliminary Stuff:
  • The first three stages of booting a UEFI system are:
    1. PEI --> Pre-EFI Initialization
    2. DXE --> Driver Execution Environment
    3. BDS --> Boot Device Select
  • The PEI stage consists of CPU init, chipset init, board init. Low-level stuff.
  • The DXE stage is where buses, devices, and UEFI services are initialized and invoked. This is primarily (not exclusively) done through drivers. There are two kinds of drivers:
    • DXE drivers -- these are more fundamental drivers that are invoked by the firmware itself (by the BIOS). DXE drivers are discovered and invoked first.
    • UEFI drivers -- these include files in OC/Drivers directory containing .efi suffix. These drivers are executed in the final steps of the DXE stage.
The Main Point:
  • DXE drivers on a real Mac initialize and configure all buses and devices. This includes the PCI bus and Thunderbolt controller.
  • Apple's firmware (i.e. Apple's BIOS) contains a lot of DXE drivers, including the three Thunderbolt-related drivers highlighted in red:
View attachment 517054
  • The firmware (BIOS) on our PC motherboards contains different implementations of some of these drivers, while other drivers don't exist at all.
  • If I recall correctly, ThunderboltNhi and ThunderboltXDomainDevice do not exist on our boards.
  • Apple's implementation of this large set of DXE drivers discovers connected devices such as Thunderbolt monitors and initializes them, which is why those monitors are fully operational even before macOS is booted.
  • After setting up connected devices, Apple's firmware drivers pass some information about these devices to macOS through DevicePathProperties.
  • One of these DevicePathProperties is pathcr. When we compare pathcr on different real Macs, we see different values. For this reason we decided not to incorporate pathcr into our generic Thunderbolt SSDTs.
  • We don't know how to interpret the contents of pathcr. We haven't decoded it.
  • But if pathcr does in fact improve compatibility of some Thunderbolt devices then it makes sense to add this into the Thunderbolt SSDT. But we would be acting somewhat blindly by not really knowing what those values represent.
I'm impressed! Thank you for lesson, Casey! Is this only for flashed TB cards, or you'll implement also for original firmware + SSDT?
 
Hi @CaseySJ,


So after all that, everything seems to be working good so far, however there is only 1 last issue left that I am having.

Due to my i211 & i219 Ethernet ports bouncing at random, I have purchased a USB-C Ethernet adapter to use for my wired Ethernet connection. So far I have noticed that it does stay online and does not bounce like the i211 & i219 Ethernet ports. I have researched to no avail with this issue but seems like I am the only special one :lolno: that this is happening to. I have come across a few forms here on tonymacx86 that states their ports aren't connected after a sleep. However, that issue I fortunately do not have. Mine just bounce often and sometimes will get stuck in a bounce loop to which only a restart will fix it...temporarily.

This is the USB-C to Ethernet adapter I purchased.
https://www.amazon.com/gp/product/B077KXY71Q/?tag=tonymacx86com-20

This adapter actually works grea. But the only issue with it is, after a restart, the USB-C ports act like they are not active until I unplug the adapter and re-plug it back in.

Any ideas/tips on this issue or with the i211 & i219 Ethernet ports bouncing?

Thanks again for your time, I really appreciate it.
It might be a good idea to install a fresh copy of macOS on an external SATA SSD and see if Ethernet ports are or are not stable. If they are stable in a fresh installation, it means the problem is software-related and not a hardware fault. In that case we can subsequently install our applications on the external SSD one by one, and eventually copy all our Documents and Downloads and media files over to the new disk. (Do not use Migration Assistant.) If Ethernet remains stable and the new SSD is fully configured, it can be cloned onto the internal SSD.
 
It might be a good idea to install a fresh copy of macOS on an external SATA SSD and see if Ethernet ports are or are not stable. If they are stable in a fresh installation, it means the problem is software-related and not a hardware fault. In that case we can subsequently install our applications on the external SSD one by one, and eventually copy all our Documents and Downloads and media files over to the new disk. (Do not use Migration Assistant.) If Ethernet remains stable and the new SSD is fully configured, it can be cloned onto the internal SSD.
I can definitely try that, however I'm 99% certain that it is hardware related because the ethernet ports bounce in win10 also and win10 is installed on a different ssd than macOS. I am also trying to reach out to Gigabyte to see if they can replace the board since it's still under the 3yr warranty.

Before I try to install a fresh copy of macOS on an external ssd, have you heard of the USB-C ports doing that? Not being recognized until re-plugged? What are some possible things I can try?
 
Thx for the fast response. I cloned my SSD and copied the EFI. That worked. Then I reinstalled Mojave and now my system is running again. Thx a lot

Now I want to try to Update my external SATA SSD to Mojave 14.6 is that possible? Because, after I started the Update in "Software Update" and restarted the Hacki, the external cloned SATA SSD is not shown in Clover. The internal SSD is there and works.

Do I have to update Clover for Mojave 14.6? I still run the Version 4769. I have backed up my EFI and tried the "Kext Updater" program to check what Versions I have, and updated Clover but that did not work. So I booted from another USB Stick with the old Clover Version and reinstalled the older one. After that, it works normally to boot OSX from Clover. I'm a bit confused. Thx for the help.
This will sound frustrating, but I strong recommend it:
  • First, double check that the entire EFI folder is copied to the EFI partition on the external SATA SSD.
  • Shutdown the system, flip power switch on PSU to OFF.
  • Physically remove the internal macOS NVMe SSD.
  • Connect only the SATA SSD with Mojave 14.4.
  • Power up the system.
  • Press F12 at Gigabyte splash screen to open the BIOS Boot Menu and select the SATA SSD.
    • If the SATA SSD does not appear in the BIOS Boot Menu, it means there is no valid EFI folder in EFI partition.
  • Now Clover Boot Menu will appear.
  • Boot Mojave.
  • Begin the Mojave upgrade from System Preferences --> Software Update.
  • Each time the system reboots, press F12 at Gigabyte splash screen and choose the SATA SSD.
 
I can definitely try that, however I'm 99% certain that it is hardware related because the ethernet ports bounce in win10 also and win10 is installed on a different ssd than macOS. I am also trying to reach out to Gigabyte to see if they can replace the board since it's still under the 3yr warranty.

Before I try to install a fresh copy of macOS on an external ssd, have you heard of the USB-C ports doing that? Not being recognized until re-plugged? What are some possible things I can try?
Okay, I see. If the problem occurs in Windows as well then there's something more fundamental. No need to install macOS on spare disk.

Instead, try re-flashing the BIOS (F9g or F9i) if you haven't tried that already. It will be necessary to configure BIOS afterwards, starting with F7 (Load Optimized Defaults).
 
Back
Top