Contribute
Register

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

The fun starts!

So, on my tests, only the "SSDT-TbtOnPch-Xtreme_TEST.aml" works (populates RP01) and only with GPIO3FPw ON and produces the following log output from Hackingtool:
Timestamp (process)[PID]
2020-01-22 23:50:55.417710+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::start(IOService*)> ACPIDebug: Version 0.1.4 starting on OS X Darwin 19.2.
2020-01-22 23:50:55.419146+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: 0x60039854
2020-01-22 23:50:55.419295+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: 0xe00e0000
2020-01-22 23:50:55.424398+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: 0xe0700000
2020-01-22 23:50:55.424447+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: 0xe0800000
2020-01-22 23:50:55.424495+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: 0xe0808000
2020-01-22 23:50:55.424542+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: 0xe0810000
2020-01-22 23:50:55.424590+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: 0xe0820000
2020-01-22 23:50:55.424637+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: 0xe0900000
2020-01-22 23:50:55.424685+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "_INI Root Port"
2020-01-22 23:50:55.424733+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "ICMBoot"
2020-01-22 23:50:55.424781+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "Tbt TWIN set to One"
2020-01-22 23:50:55.424829+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "Tbt Force Power with FPG0"
2020-01-22 23:50:55.424878+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "Up Stream VID/DID =0000000015EA8086"
2020-01-22 23:50:55.424926+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "Delay to appear = 513 us"
2020-01-22 23:50:55.424973+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "ICMS"
2020-01-22 23:50:55.425020+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "ICME_0="
2020-01-22 23:50:55.425067+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: 0xffffffff
2020-01-22 23:50:55.425114+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "Configure NHI called"
2020-01-22 23:50:55.425162+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "Configure NHI RP OK!"
2020-01-22 23:50:55.425209+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "Configure NHI UPSB OK!"
2020-01-22 23:50:55.425258+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "Configure NHI Dp 0 done"
2020-01-22 23:50:55.425306+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "Configure NHI Dp 3 done"
2020-01-22 23:50:55.425353+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "Configure NHI Dp 4 done"
2020-01-22 23:50:55.425402+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "Configure NHI Dp 5 done"
2020-01-22 23:50:55.425449+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "Configure NHI DPs done"
2020-01-22 23:50:55.425496+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "Configure NHI0 all done"
2020-01-22 23:50:55.425543+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "Configure NHI End"
2020-01-22 23:50:55.425589+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "ICME_1="
2020-01-22 23:50:55.425643+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: 0x800001a1
2020-01-22 23:50:55.425707+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "ICME_2="
2020-01-22 23:50:55.425766+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: 0x800001a1
2020-01-22 23:50:55.425821+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "ICME_3="
2020-01-22 23:50:55.425873+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: 0x800001a7
2020-01-22 23:50:55.425927+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: 0x800003f5
2020-01-22 23:50:55.425981+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "ICME_4="
2020-01-22 23:50:55.426033+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: 0x800001a7
2020-01-22 23:50:55.426084+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "ISTA="
2020-01-22 23:50:55.426137+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: 0x800003f5
2020-01-22 23:50:55.426190+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "Configuration delay = 1008 ms"
2020-01-22 23:50:55.452129+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "_PS0 RP01"
2020-01-22 23:50:55.465039+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "PCEU RP01"
2020-01-22 23:50:55.465679+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "PCEU RP01- Put upstream bridge back into D0 "
2020-01-22 23:50:55.474707+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "_PS0 UPSB"
2020-01-22 23:50:55.477949+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "PCED UPSB"
2020-01-22 23:51:01.499228+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "RTPC NHI0 called with arg: 0000000000000000"
2020-01-22 23:51:01.499441+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "_PS3 NHI0, Nothing to do!"
2020-01-22 23:51:01.501265+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "_PS3 DSB0"
2020-01-22 23:51:01.501318+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "PCDA DSB0"
2020-01-22 23:51:01.501370+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "POFF DSB0"
2020-01-22 23:51:01.501422+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "PCDA DSB0- Put upstream bridge into D3"
2020-01-22 23:51:01.501474+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "PCDA DSB0- Set link disable on upstream bridge"
2020-01-22 23:51:01.501526+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "PCDA DSB0- Wait for link to drop..."
2020-01-22 23:51:01.501578+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "PCDA DSB0 - NHI0 not present"
2020-01-22 23:51:01.501630+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "PCDA DSB0- disable GPIO"
2020-01-22 23:51:01.501681+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "UGIO - PCI wants on"
2020-01-22 23:51:01.501733+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "UGIO - NHI wants off"
2020-01-22 23:51:01.501786+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "UGIO - XHCI wants on"
2020-01-22 23:51:01.501838+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "UGIO - TBT allows off"
2020-01-22 23:51:01.501889+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "UGIO - USB forced on"
2020-01-22 23:51:01.501942+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "UGIO - TBT GPIO should be off"
2020-01-22 23:51:01.501993+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "UGIO - USB GPIO should be on"
2020-01-22 23:51:01.502045+0000 localhost kernel[0]: (ACPIDebug) <ACPIDebug`org_rehabman_ACPIDebug::printTraces()> ACPIDebug: "UGIO - Make sure TBT & USBC is on"

I've attached my EFI folder (generic serials), the IOReg export and the loaded TB extensions:
View attachment 446214

Also, for TB testing I have a TB3 to TB2 cable, which I connect to my MBP(11,5).
Hi augustopaulo,

Like CaseySJ, we don't have any log after "ACPIDebug: "PCED UPSB"" except NHI0 state change request few second later. On SSDT, we should have "PCED - enable GPIO" without any conditions. On my laptop, I have the following sequences :
...
ACPIDebug: "_PS0 UPSB"
ACPIDebug: "PCED UPSB"
ACPIDebug: "PCED - enable GPIO"
ACPIDebug: "UGIO - PCI wants on"
ACPIDebug: "UGIO - NHI wants on"
ACPIDebug: "UGIO - XHCI wants on"
ACPIDebug: "UGIO - TBT forced on"
ACPIDebug: "UGIO - USB forced on"
ACPIDebug: "UGIO - TBT GPIO should be on"
ACPIDebug: "UGIO - USB GPIO should be on"
ACPIDebug: "UGIO - Make sure TBT & USBC is on"
ACPIDebug: "PCED UPSB- restored flag, THUNDERBOLT_PCI_LINK_MGMT_DEVICE.PRSR"
ACPIDebug: 0x0
ACPIDebug: "PCED UPSB- Wait for config space..."
ACPIDebug: "PCED UPSB- Read VID/DID ="
ACPIDebug: 0x15d38086
ACPIDebug: "CRMW Read Value1:"
ACPIDebug: 0x4304027
ACPIDebug: "CRMW Write Value1"
ACPIDebug: 0x4304227
ACPIDebug: "CRMW Read Value2:"
ACPIDebug: 0x4304227
ACPIDebug: "CRMW - Success"
ACPIDebug: "CRMW Read Value1:"
ACPIDebug: 0x430412f
ACPIDebug: "CRMW Write Value1"
ACPIDebug: 0x430432f
ACPIDebug: "CRMW Read Value2:"
ACPIDebug: 0x430432f
ACPIDebug: "CRMW - Success"
ACPIDebug: "_PS0 DSB0"
ACPIDebug: "PCEU DSB0"
ACPIDebug: "PCEU DSB0- Put upstream bridge back into D0 "
ACPIDebug: "_PS0 DSB2"
ACPIDebug: "PCEU DSB2"
ACPIDebug: "PCEU DSB2- Put upstream bridge back into D0 "
ACPIDebug: "_PS0 NHI0"
ACPIDebug: "PCED NHI0"
ACPIDebug: "PCED - enable GPIO"
ACPIDebug: "UGIO - PCI wants on"
ACPIDebug: "UGIO - NHI wants on"
ACPIDebug: "UGIO - XHCI wants on"
ACPIDebug: "UGIO - TBT forced on"
ACPIDebug: "UGIO - USB forced on"
ACPIDebug: "UGIO - TBT GPIO should be on"
ACPIDebug: "UGIO - USB GPIO should be on"
ACPIDebug: "UGIO - Make sure TBT & USBC is on"
...

Could you change RMDT method like described on this post https://www.tonymacx86.com/threads/...olt-3-i7-9700k-amd-rx-580.267551/post-2061815 ?

I see on your IOReg file that you have NHI0 properties, where have you extract yours (maybe customized..) ?
You have ThunderboltConfig property :
<00 02 1c 00 02 00 05 03 01 00 04 00 05 03 02 00 03 00 05 03 01 00 00 00 03 03 02 00 01 00 02 00>

On iMac19,1 (including TitanRidge), we have : ADDED: Oops, this is for the iMacPro1,1 (Alpine rigde) :yawn:
<00 02 ff ff 04 00 03 01 01 00 04 00 05 01 02 00 03 00 03 01 01 00 00 00 03 01 02 00 02 00 01 00> for Controller 1 (Route string or Bus number)
<01 02 ff ff 04 00 03 01 01 00 04 00 05 01 02 00 03 00 03 01 01 00 01 00 03 01 02 00 04 00 03 00> for Controller 2 (@CaseySJ @jiffyslot two last bolded values seem to be Port number)
 
Last edited:
@jiffyslot

The 2018 Mac mini has four Thunderbolt 3 ports and two Thunderbolt controllers.
  • Controller 1 controls either the left two or the right two ports.
  • Controller 2 controls the other two ports.
It's possible that devices connected to Controller 1 are on Thunderbolt Bus 0, and those connected to Controller 2 are on Thunderbolt Bus 1.

Even though Apple uses both Titan Ridge and Alpine Ridge controllers that are somehow multiplexed together, I think that Thunderbolt Bus numbers might correspond to Controllers 1 and 2 rather than to Titan Ridge or Alpine Ridge.

To check this theory:
  • Let's label the four TB3 ports as: 1, 2, 3, 4 (it does not matter whether port 1 is on left or right side).
  • Which port is your UAD Apollo connected to?
  • Which port is the BMD MultiDock II connected to?
If you connect these devices to ports 1 and 2 (or ports 3 and 4) do they appear on the same Thunderbolt Bus?

I should have been more clear,

The description and image is from a genuine Macmini8,1. And I may have been mistaking TB speed compatibility with hardware accommodation of pre-Titan Ridge era Thunderbolt 2 cards on external equipment.

The devices are on separate buses, but I can daisy-chain the Apollo off of the BMD without issue since the BMD has no power switch. That's how I had these devices set up on the 2012 Macmini6,2.

The Thunderbolt ports used are 1 and 4 as you look at the Mini from the back, each device being on its own bus: The BMD MultiDock II is connected to Bus 0 and the Apollo is connected to Bus 1. I am eager to give it a go on the hack, but I am unsure whether I need to change RP01 to RP05 -the state of my current TB patch that originated with @kgp. I'm still running Mojave for Pro Tools, PS CS6, and general functionality.
 

Attachments

  • SSDT-UIAC-DESIGNARE-Z390-FD-DEFINE-R6-USB2-ON-TB-V3.aml
    844 bytes · Views: 120
  • SSDT-Z390-DESIGNARE-TB3HP-V4.aml
    6.1 KB · Views: 141
Without any issues... @CaseySJ

View attachment 446236

Possibly the clip isn't attached correctly... Just try it again, sometimes it can be a little bit tricky.
Make also sure that Pin 1 is correctly attached.
Pin1 is the pin which has a dot on the chip and there you should have the red cable from the usb programmer.

View attachment 446246

View attachment 446247View attachment 446248View attachment 446249View attachment 446250View attachment 446251
Awesome — thank you! I was using a Windows app, but will try Linux “flashrom” instead.
 
You don't need Linux for that....
I use it under macOS :)

Open Terminal and paste this and hit enter:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null

As soon as this is done copy and paste this and hit enter again:
brew install flashrom

afterwards you can use it via terminal like you can see on my pictures:

sudo flashrom --programmer ch341a_spi followed by the command you want it to do: -r (read) -w (write) and the name of the file you want to have it or the path of the file you want to write to it.

Example:

sudo flashrom --programmer ch341a_spi -r example123.bin

If everything was correct and the USB Flasher was attached correctly you will see the same output I showed earlier.
Bildschirmfoto 2020-01-23 um 11.20.46.png

You can find the bin file in your user folder.
 
You don't need Linux for that....
I use it under macOS :)

Open Terminal and paste this and hit enter:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null

As soon as this is done copy and paste this and hit enter again:
brew install flashrom

afterwards you can use it via terminal like you can see on my pictures:

sudo flashrom --programmer ch341a_spi followed by the command you want it to do: -r (read) -w (write) and the name of the file you want to have it or the path of the file you want to write to it.

Example:

sudo flashrom --programmer ch341a_spi -r example123.bin

If everything was correct and the USB Flasher was attached correctly you will see the same output I showed earlier.
View attachment 446263
You can find the bin file in your user folder.
Yes I just found that out! I've already installed it via brew install flashrom. About to begin... :)
 
** Designare Z390 Thunderbolt ROM has been Captured **

@S1lla @App32312 @2DSM

Using flashrom we now have the Designare Z390 Thunderbolt ROM attached here! Thanks to @S1lla for suggesting the use of this utility -- from macOS itself!

Version of ROM: TPS65983 HW FW0001.38.04 ZTBT1 ROM version is 33.

Update: The SOIC8 clip I'm using is not well suited for this task because of its physical bulk which interferes with a tiny resistor or two near one of the pins on the Winbond chip. Hopefully the Pomona 5250 will be a better fit. It took multiple tries and fine-adjustments of the clip before the ROM could be read. Here's a partial output from Terminal.
Code:
Caseys-iMac-Pro-2:~ casey_sj$ sudo flashrom --programmer ch341a_spi -r THU3-2.bin
flashrom v1.1 on Darwin 19.2.0 (x86_64)
flashrom is free software, get the source code at https://flashrom.org
Calibrating delay loop... OK.
No EEPROM/flash device found.
Note: flashrom can never write if the flash chip isn't found automatically.

Caseys-iMac-Pro-2:~ casey_sj$ sudo flashrom --programmer ch341a_spi -r THU3-2.bin
flashrom v1.1 on Darwin 19.2.0 (x86_64)
flashrom is free software, get the source code at https://flashrom.org
Calibrating delay loop... OK.
No EEPROM/flash device found.
Note: flashrom can never write if the flash chip isn't found automatically.

Caseys-iMac-Pro-2:~ casey_sj$ sudo flashrom --programmer ch341a_spi -r THU3-2.bin
flashrom v1.1 on Darwin 19.2.0 (x86_64)
flashrom is free software, get the source code at https://flashrom.org
Calibrating delay loop... OK.
libusb: info [darwin_claim_interface] no interface found; setting configuration: 1
libusb: error [darwin_claim_interface] interface not found
Failed to claim interface 0: 'LIBUSB_ERROR_NOT_FOUND'
Error: Programmer initialization failed.

Caseys-iMac-Pro-2:~ casey_sj$ sudo flashrom --programmer ch341a_spi -r THU3-2.bin
flashrom v1.1 on Darwin 19.2.0 (x86_64)
flashrom is free software, get the source code at https://flashrom.org
Calibrating delay loop... OK.
No EEPROM/flash device found.
Note: flashrom can never write if the flash chip isn't found automatically.

Caseys-iMac-Pro-2:~ casey_sj$ sudo flashrom --programmer ch341a_spi -r THU3-2.bin
flashrom v1.1 on Darwin 19.2.0 (x86_64)
flashrom is free software, get the source code at https://flashrom.org
Calibrating delay loop... OK.
No EEPROM/flash device found.
Note: flashrom can never write if the flash chip isn't found automatically.

Caseys-iMac-Pro-2:~ casey_sj$ sudo flashrom --programmer ch341a_spi -r THU3-2.bin
flashrom v1.1 on Darwin 19.2.0 (x86_64)
flashrom is free software, get the source code at https://flashrom.org
Calibrating delay loop... OK.
libusb: info [darwin_claim_interface] no interface found; setting configuration: 1
libusb: error [darwin_claim_interface] interface not found
Failed to claim interface 0: 'LIBUSB_ERROR_NOT_FOUND'
Error: Programmer initialization failed.

Caseys-iMac-Pro-2:~ casey_sj$ sudo flashrom --programmer ch341a_spi -r THU3-2.bin
flashrom v1.1 on Darwin 19.2.0 (x86_64)
flashrom is free software, get the source code at https://flashrom.org
Calibrating delay loop... OK.
No EEPROM/flash device found.
Note: flashrom can never write if the flash chip isn't found automatically.

Caseys-iMac-Pro-2:~ casey_sj$ sudo flashrom --programmer ch341a_spi -r THU3-2.bin
flashrom v1.1 on Darwin 19.2.0 (x86_64)
flashrom is free software, get the source code at https://flashrom.org
Calibrating delay loop... OK.
No EEPROM/flash device found.
Note: flashrom can never write if the flash chip isn't found automatically.

AND FINALLY!!!

Caseys-iMac-Pro-2:~ casey_sj$ sudo flashrom --programmer ch341a_spi -r THU3-2.bin
flashrom v1.1 on Darwin 19.2.0 (x86_64)
flashrom is free software, get the source code at https://flashrom.org
Calibrating delay loop... OK.
Found Winbond flash chip "W25Q80.V" (1024 kB, SPI) on ch341a_spi.
Reading flash... done.
 

Attachments

  • Gigabyte-Z390-Designare-TB3-ROM.bin.zip
    249.4 KB · Views: 290
Last edited:
"In Clover I added the following renames:
  • Change _INI to XINI"
This change will rename all _INI on the DSDT :| ?! You should renamed it only for RP05 on DSDT but I don't know how it is possible on Clover.

On your Log file, many other errors ... related to OSDW .. I have this method on my DSDT but I think it is not required: Using modified SSDT and DSDT is only for macOS >> I have added OSDW method on the following draft :)
@CaseySJ,

About _INI RP05 only renaming within DSDT .. without extracting DSDT.aml (Clover F4), I have find a solution (and can be used for another method insertion).

The idea is to :
Replace: LNSL = PNL5 (included on native _INI of RP05) on CloverConfigurator
By: XINI
Renaming: _INI of the current SST_TbtOnPch to XINI
and adding previously replaced line within the beginning of XINI method
and don't forget to add on SSDT the following declarations :
External (PNL5, FieldUnitObj)
External (LNSL, IntObj)


On CloverConfigurator, ACPI section, Patches >> I add the following patch:
70504e4c354c4e534c replaced by 58494e49
[which mean pPNL5LNSL replaced by XINI ]

for other Root Port (RP01 or RP21), change PNL5 to PNL1 for RP01, ... to PNLL for RP21

Tested it on my laptop and it work !

UPDATE: .. OR using pre-defined RP05 PINI method with no arguments, this is possible on Z390 Designare DSDT because natively included but I don't know if it's used somewhere else ! The idea is more simple : Only renaming SSDT-TbtOnPch RP05 _INI method to PINI (I haven't this motherboard for testing).
 
Last edited:
** Designare Z390 Thunderbolt ROM has been Captured **

@S1lla @App32312 @2DSM

Using flashrom we now have the Designare Z390 Thunderbolt ROM attached here! Thanks to @S1lla for suggesting the use of this utility -- from macOS itself!

Version of ROM: TPS65983 HW FW0001.38.04 ZTBT1

Update: The SOIC8 clip I'm using is not well suited for this task because of its physical bulk which interferes with a tiny resistor or two near one of the pins on the Winbond chip. Hopefully the Pomona 5250 will be a better fit. It took multiple tries and fine-adjustments of the clip before the ROM could be read. Here's a partial output from Terminal.
Code:
Caseys-iMac-Pro-2:~ casey_sj$ sudo flashrom --programmer ch341a_spi -r THU3-2.bin
flashrom v1.1 on Darwin 19.2.0 (x86_64)
flashrom is free software, get the source code at https://flashrom.org

Calibrating delay loop... OK.
No EEPROM/flash device found.
Note: flashrom can never write if the flash chip isn't found automatically.
Caseys-iMac-Pro-2:~ casey_sj$ sudo flashrom --programmer ch341a_spi -r THU3-2.bin
flashrom v1.1 on Darwin 19.2.0 (x86_64)
flashrom is free software, get the source code at https://flashrom.org

Calibrating delay loop... OK.
No EEPROM/flash device found.
Note: flashrom can never write if the flash chip isn't found automatically.
Caseys-iMac-Pro-2:~ casey_sj$ sudo flashrom --programmer ch341a_spi -r THU3-2.bin
flashrom v1.1 on Darwin 19.2.0 (x86_64)
flashrom is free software, get the source code at https://flashrom.org

Calibrating delay loop... OK.
libusb: info [darwin_claim_interface] no interface found; setting configuration: 1
libusb: error [darwin_claim_interface] interface not found
Failed to claim interface 0: 'LIBUSB_ERROR_NOT_FOUND'
Error: Programmer initialization failed.
Caseys-iMac-Pro-2:~ casey_sj$ sudo flashrom --programmer ch341a_spi -r THU3-2.bin
flashrom v1.1 on Darwin 19.2.0 (x86_64)
flashrom is free software, get the source code at https://flashrom.org

Calibrating delay loop... OK.
No EEPROM/flash device found.
Note: flashrom can never write if the flash chip isn't found automatically.
Caseys-iMac-Pro-2:~ casey_sj$ sudo flashrom --programmer ch341a_spi -r THU3-2.bin
flashrom v1.1 on Darwin 19.2.0 (x86_64)
flashrom is free software, get the source code at https://flashrom.org

Calibrating delay loop... OK.
No EEPROM/flash device found.
Note: flashrom can never write if the flash chip isn't found automatically.
Caseys-iMac-Pro-2:~ casey_sj$
Caseys-iMac-Pro-2:~ casey_sj$ sudo flashrom --programmer ch341a_spi -r THU3-2.bin
flashrom v1.1 on Darwin 19.2.0 (x86_64)
flashrom is free software, get the source code at https://flashrom.org

Calibrating delay loop... OK.
libusb: info [darwin_claim_interface] no interface found; setting configuration: 1
libusb: error [darwin_claim_interface] interface not found
Failed to claim interface 0: 'LIBUSB_ERROR_NOT_FOUND'
Error: Programmer initialization failed.
Caseys-iMac-Pro-2:~ casey_sj$ sudo flashrom --programmer ch341a_spi -r THU3-2.bin
flashrom v1.1 on Darwin 19.2.0 (x86_64)
flashrom is free software, get the source code at https://flashrom.org

Calibrating delay loop... OK.
No EEPROM/flash device found.
Note: flashrom can never write if the flash chip isn't found automatically.
Caseys-iMac-Pro-2:~ casey_sj$ sudo flashrom --programmer ch341a_spi -r THU3-2.bin
flashrom v1.1 on Darwin 19.2.0 (x86_64)
flashrom is free software, get the source code at https://flashrom.org

Calibrating delay loop... OK.
No EEPROM/flash device found.
Note: flashrom can never write if the flash chip isn't found automatically.
Caseys-iMac-Pro-2:~ casey_sj$ sudo flashrom --programmer ch341a_spi -r THU3-2.bin
flashrom v1.1 on Darwin 19.2.0 (x86_64)
flashrom is free software, get the source code at https://flashrom.org

Calibrating delay loop... OK.
Found Winbond flash chip "W25Q80.V" (1024 kB, SPI) on ch341a_spi.
Reading flash... done.
Very nice !

You can inject ThunderboltDROM property:
71000000 000000ED 00E04034 98016900 ED0008C0 01010881 80028000 00000882 90018000 00000883 80048001 00000884 90038001 00000585 50000005 86500000 02C70B88 20010064 00000000 00038980 058A5040 00058B50 40000B01 47494741 42595445 0011025A 33393020 44455349 474E4152 4500

It seem that port 7 is used for IOThunderboltSwitchType3 !

UPDATE:
Z390 Designare (TitanRidge):

71 >> CRC
00 00 00 00 00 00 ED 00 >> UID SwitchType3: ED000000000000
E0 >> CRC
40 34 98 01 69 00 ED 00 >> To be defined
08 C0 01 01 >> To be defined
08 81 80 02 80 00 0000 >> TBPort1 DualLinkport2 HPMAddr0
08 82 90 01 80 00 0000 >> TBPort2 DualLinkport1 HPMAddr0
08 83 80 04 80 01 0000 >> TBPort3 DualLinkport4 HPMAddr1
08 84 90 03 80 01 0000 >> TBPort4 DualLinkport3 HPMAddr1
05 85 50 00 00 >> TBPort5 DisplayPort Adapter
05 86 50 00 00 >> TBPort6 DisplayPort Adapter
02 C7 >> TBSwitch7
0B 88 20 01 00 64 00 00 00 00 00 >> TBPort8 PCI Down Adapter DSB1
03 89 80 >> TBPort9 PCI Down Adapter DSB4
05 8A 50 40 00 >> TBPortA DisplayPort Adapter
05 8B 50 40 00 >> TBPortB DisplayPort Adapter
0B 01 47 49 47 41 42 59 54 45 00 GIGABYTE
11 02 5A 33 39 30 20 44 45 53 49 47 4E 41 52 45 00 Z390 DESIGNARE

Analyzed for long time :crazy: !
 
Last edited:
Back
Top