Contribute
Register

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

** Elias64Fr's Modified Thunderbolt Firmware on my Designare Z390 Test Bench **

It was quite an eventful day, filled with as much volatility as the stock market has experienced in recent days. Today's goal was to determine whether it might be possible to flash the on-board Titan Ridge controller in a reliable and repeatable manner. Conclusion:
  • It remains very difficult to flash the on-board Titan Ridge controller.
  • Perhaps @jb007 might find a workable procedure.
  • Perhaps we'll find a way to extend the time window from 20 seconds to 45 seconds.
Meanwhile, because I bricked my Titan Ridge controller earlier in the day, I had to scramble to find a way to recover. After 2 hours of experimentation, I managed to flash @Elias64Fr's modified firmware to my Designare Test Bench using Raspberry Pi 4 and flashrom at a frequency of 2048 KHz:

sudo flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=2048 -w Z390ModifiedFirmware.bin

After adapting DSM2's SSDT for port RP05 and copying it to the CLOVER/ACPI/patched folder, I am happy to say that on-board Thunderbolt is now working to some degree. It's past 20:00 or 8pm so I'll conduct a battery of tests tomorrow, but for now I'll end with this:

View attachment 454577
Happy to see that you have recovered your firmware and working with the first sended patched firmware that is based on iMac19,1 .. BUT you can have a full operating (or almost full :mrgreen:) with the Z390 Designare patched firmware with sended few bytes .. Like that, You don't have to use any SSDT ..except for cosmetic by renaming each sub-devices:p. You can also have XHC2 operating.
 
Last edited:
  • This seems to be a much better result than the full flashed firmware.
  • Are you sure this result is accomplished only by:
    • Patching about 10 bytes.
    • Adding PCI-Thunderbolt to RP05.PXSX and setting its value to NUMBER 0x01?
Sure !
  • Patched with sended bytes .. 8 bytes exactly (one is optional, only for upgrading microcode version from 0.99.0 to 1.99.0 :)). Plist file include 2x8bytes but in fact tbpatch work on 2bytes patching)
  • I can't add "PCI-Thunderbolt" as a Number 1 but as Data on Clover, I used a _DSM method for that .. but it might be possible with Clover with more search
  • I use a special AIO SSDT in order to avoid custom DSDT (need of correcting some required (for booting) SystemMemory address each time I modify a BIOS setting on a device (memory remapping..). This file include disabling all unrequired devices, enabling CPU PM (Plugin to one), renaming some devices (CPU,...), adding all required devices (SBUS with included methods, MCHC,DMAC, FWHD, USBX, ...) and the results is
Capture d’écran 2020-03-15 à 09.35.51.png


This is done in relation with Clover methods renaming (required _STA to XSTA and required _DSM to XDSM).

For information,
  • CPTC is Cannon lake Pch Thermal Controller (cosmetic)
  • XSPI is Cannon lake Pch SPI controller (cosmetic)
  • SRAM is Cannon lake Pch Shared SRAM (another cosmetic .. because I'm worth it :mrgreen: )
 
Last edited:
Is it possible to write a script that executes these stages on startup? Obviously switching off the PSU requires manual input, but some quick googling makes me think that the rest can be done, including giving it admin credentials. Then 20s is more than enough!
@kejocu @CaseySJ @jb007
I think about 20s: Redemption or rather 24: Redemption 2008 movie :angel:
 
Last edited:
Happy to see that you have recovered your firmware and working with the first sended patched firmware that is based on iMac19,1 .. BUT you can have a full operating (or almost full :mrgreen:) with the Z390 Designare patched firmware with sended few bytes .. Like that, You don't have to use any SSDT ..except for cosmetic by renaming each sub-devices:p. You can also have XHC2 operating.
This will be today's mission! :)

Step 1:
Attempt the 10K pull-up resistor method to read Flash ROM. Fortunately I have an Arduino kit that includes many resistors of various Ohms, including 10K. If this method can reliably read W25Q80DV in-circuit, then it's on to next step.

Step 2:
Flash original firmware back and verify.

Step 3:
Use the TbtOnPch method to modify 10 bytes. Use a script registered with Launch Daemon to run automatically on startup with root privileges.

Step 4:
If I brick the system again with Step 3, I'll modify those 10 bytes directly in original firmware and flash entire thing with external programmer.
 
Could you provide the custom TbtOnPch SSDT? @CaseySJ
After today's mission, I'll provide the needed files/procedure. I bricked my Thunderbolt Controller despite trying to beat the clock. If I release this TbtOnPch right now without an accompanying procedure, it would be irresponsible.
 
So I did just that and I'm happy to let you know that it worked! Now I have Windows and macOS available in Clover menu. The strange thing is there are like 5 or 6 different Windows options (although only one Windows is installed on the SSD), which doesn't affect the functionality, but just doesn't look appealing (if unnecessary options can be hidden, please let me know).
As @Spagnoletto stated, we can Hide Volumes in Clover Configurator.
The major issue is I can't see the third SATA SSD (WD Blue 500gb) neither in BIOS, nor in Windows, nor in macOS (I was planning to used this 3rd SSD as a shared drive between all OSs). I've tried several different cables (psu + sata) and all the possible sata ports on the motherboard and SATA ports on PSU, but with no luck. AHCI mode is selected in BIOS. Do you guys think the problem is with the SATA SSD itself (it's brand new)? Or I've missed something during the initial setup?
Not all 6 SATA ports will be available when NVMe SSDs are used. Because you've populated both M2M and M2P slots, you are now left with 3 functioning SATA ports. Please move the SATA SSD to:
  • SATA2 -- which is the 3rd SATA port
  • SATA3 -- which is the 4th SATA port
Please see SATA Port Limitations in Post #1:

Screen Shot 2020-03-15 at 4.12.36 AM.png
 
@jb007

Can you please clarify whether Option 1 or Option 2 is the right one?

Option 1:
  • Connect Vcc from flasher to Pin 8
  • Connect CS from flasher to Pin 1
  • Connect 10K Ohm resistor between Pins 1 and 8 of the chip
Option 2:
  • Connect Vcc from flasher to Pin 8
  • Connect 10K Ohm resistor between Pins 1 and 8 of the chip
  • (But do not connect CS from flasher.)
 
@Elias64Fr

Because I'm currently running your modified firmware, tbpatch is fully working. Do you think it can be used to completely re-flash the entire W25Q80DV? Even the TI Power Delivery section? Alternatively, I can flash only the Thunderbolt section.
Screen Shot 2020-03-15 at 4.21.43 AM.png

Because tbpatch seems to work on our TPS65983, why does this warning appear on Osy86's GitHub page?
Screen Shot 2020-03-15 at 4.23.13 AM.png
 
Last edited:
This will be today's mission! :)

Step 1:
Attempt the 10K pull-up resistor method to read Flash ROM. Fortunately I have an Arduino kit that includes many resistors of various Ohms, including 10K. If this method can reliably read W25Q80DV in-circuit, then it's on to next step.

Step 2:
Flash original firmware back and verify.

Step 3:
Use the TbtOnPch method to modify 10 bytes. Use a script registered with Launch Daemon to run automatically on startup with root privileges.

Step 4:
If I brick the system again with Step 3, I'll modify those 10 bytes directly in original firmware and flash entire thing with external programmer.

How are you arriving at the 10 bytes ? I mean how do you know which one to change ? I have the .bin for my board which is unfortunately NVMv14 and any MAC .bin I look at has a lot of differences (the earliest original firmware I could find was NVM22).
Edit:
Stupid Question - I read about the 1000 bytes in the active partition being the ones which are relevant. So you copy the 1000 bytes from Active partition from the original bin to the 1000 bytes in the MAC .bin and flash the MAC.bin ? Correct ?
What if the differences between the two bin's are much more in the non-active partition ?
 
Last edited:
@mango1122. here's the SSDT and OpenCore ACPI config that I'm currently using in my ASRock Z370itx/ac. Just make sure Force Power is enabled in the thunderbolt section of the BIOS and you should be good to go. Let us know how you get on...
 

Attachments

  • config.plist.zip
    1 KB · Views: 88
  • SSDT-TbtOnPch.dsl.zip
    10.5 KB · Views: 110
Back
Top