Contribute
Register

Asus Z690 ProArt Creator WiFi (Thunderbolt 4) + i7-12700K + AMD RX 6800 XT

On my way to find stability over time, I go back to this, from changing it with a command line using setup_var.efi . Work quite the same it seems, and is more practical.
I would recommend sticking to the sample EFI in this guide as its a very proven and reliable method for asus x790 and x690 series boards especially when the mods update the first page to reflect the slide=0 boot arg for updated bios
 
I would recommend sticking to the sample EFI in this guide as its a very proven and reliable method for asus x790 and x690 series boards especially when the mods update the first page to reflect the slide=0 boot arg for updated bios
I think there is a misunderstanding, I mod the sample because it was not quite stable for me. Now it is :)
The sample in the first page is made with and for z690, almost everything is the same as z790 yes, but not all.
I am pretty confident that at least for me it is better: no more boot fail or crash when plugin a thunderbolt device.
 
Theses 2 patches consist on changing default IOThunderboltSwitchOS to IOThunderboltSwitchType6 :)

@Elias64Fr Thanks for reporting your findings, so I only need to modify the the ROM chip on the Thunderbolt 4 card default IOThunderboltSwitchOS to IOThunderboltSwitchType6 and nothing else?
 
As I said, slide=0 was not a fix for me.
It's been really stable now, in both Windows & Sonoma

If some need it, BIOS 1303, but it should work with later BIOS. Opencore 0.9.9
IOMMU is disable in BIOS, some hacking protection from Thunderbolt devices @ boot is pretty useless for me (If I understood correctly that's what it does).
You will need to add serials number.

For the graphic card part, SSDT is only for 6950. I try nootrx.kext, but performances are better with whatevergreen.
Hello,
I'm having exactly your problem,here is the story:
My motherboard Asus Z690 Creator WiFi has died so I have replaced with a new Z790 Creator WiFi!
But now I'm having problems at booting from OpenCore.It gets stuck when I select to boot into Monterey!
The only fix is by resetting NVRAM, but is very frustrating. What exactly should I change to boot normally without keep resetting NVRAM?
Thank you!
 
Hi @CaseySJ ,
What's gone wrong three years ago with thunderbolt 4 firmware patching ?

I have bought an Asrock Thunderbolt 4 AIC (Rev 1) at discount price (around 40euros), then patched its firmware as usual (3 bytes)... et voila:

View attachment 580493

This AIC board have a TBTForcePower jumper, no external wire jumper required.
Without a TBTHeader cable and plugged into an Asus B460M that doesn't include Thunderbolt setting (No TBT header and no TBT BIOS capabilities), it works fine (Hot-plug, Sleep/Wake, Alternate mode DisplayPort and 10Gbps USB-C).

Before firmware patching, Hot-plug wasn't working. It seems that macOS can drive Hot-plug capability very well... without AppleHPMIECS driver.


View attachment 580494

I also made 2 kernel patches to improve detection of "Complex" thunderbolt devices (that take more virtual memory like eGPU). "Simple" devices like Apple thunderbolt Ethernet (connected on previous screenshot) work without theses kernel patches.
Theses 2 patches consist on changing default IOThunderboltSwitchOS to IOThunderboltSwitchType6 :)

For information, on disassembled code of IOThunderboltFamily, I also seen IOThunderboltSwitchJHL8440 .. I tried it, but I didn't have such as a good result as the SwitchType6

This last screen shot is with an AMD RX5500 XT graphic card embedded on eGPU :

EDIT:

Port@C and Port@D are USB4 adapters for AppleThunderboltUSBDownAdapter , I have enabled them on DROM (0x28C & 0x28D).. alas this driver plug-in is not available for Intel x86 platform (Apple Silicon only).. We should try an USB4 device that use PCIe bus to see what happen.

I have customised DROM part (at 0x4210 firmware address) before firmware flashing.

Two lessons learned during reverse code investigations:
  • IOThunderboltSwitchOS & IOThunderboltSwitchType6 doesn't read ThunderboltDROM property.
  • TBTFlags property is required with minimum value of 0x8 (4 bytes) to load previous ThunderboltSwitches.

I hope that Thunderbolt 5 (Barlow Ridge), expected in 2024, would be quite similar to Thunderbolt 3 & 4 :rolleyes:
Hi @Elias64Fr,

I didn’t see this post until now!

On our motherboards with on-board Maple Ridge there isn’t a dedicated Flash ROM chip for Thunderbolt firmware. Instead, the firmware seems to reside in the BIOS Flash chip, which unfortunately is not an 8-pin package — hence not compatible with CH341a.

However, we did try flashing Gigabyte’s GC-Maple Ridge which does have a dedicated Flash ROM. But we were never successful in activating Thunderbolt Bus.

Which version of macOS are you using? Maybe something has changed and it might be good to re-try the experiment on GC-Maple Ridge (which I still have).
 
Last edited:
I have bought an Asrock Thunderbolt 4 AIC (Rev 1) at discount price (around 40euros), then patched its firmware as usual (3 bytes)... et voila:
I suppose it's still too early for a complete write-up, but have you also made a TB4 SSDT to name/populate these NIH0/DSB# entities?
 
Hi @CaseySJ

On our motherboards with on-board Maple Ridge there isn’t a dedicated Flash ROM chip for Thunderbolt firmware. Instead, the firmware seems to reside in the BIOS Flash chip, which unfortunately is not an 8-pin package — hence not compatible with CH341a.
We had seen that when you have launch your Asus ProArt Z690-Creator. Thunderbolt firmware is stored on BIOS firmware under freeform (Raw data) with GUID EED54281-1C11-4358-BF5A-F64995FBF11B... but we also had seen an application with GUID CCF23F50-F7C1-4F00-8E70-13643C37E8B0 5EDCCC1A-F4CA-42F4-8D3E-CA4C0B396BF7 that include following text :
Press any key to continue . . .
NVM.binCan't find NVM.bin.
Can't find %S.

****************************************
* ASUS TbtNvmDrvShellUpdate tool V1.6 *
****************************************
Support TBT module: Maple ridge
Support Platform: %s

Command: TbtNvmDrvShellUpdate.efi [Nvm.bin]


NVM file is not illegal,please check NVM file.

This file Nvm version is %x.%x

This platform don't support Tbt Nvm update so far
Please check bios version and contact Asus customer service

Please Unplug all device from Thunderbolt before update

Check file is valid and prepare for update,please wait a moment...

Can't get thunderbolt device!! please make sure it work normally.
If you make sure it work normally,but it's still fail,
that mean this platform don't support Tbt Nvm update so far.
Please check bios version and contact Asus customer service.

Current Nvm is newer!! no need update.

Update fail!!
Please check file is valid or contact Asus customer service
Update done!!,please reset now

BIOS is updating Thunderbolt Nvm firmware.
Do not shut down or reset the system to prevent system bootup failure.
TbtNvmDrvSetImage: Invalid arguments

Image write started:

Got a FATAL error, exiting...
ImageSize : 0x%05x
Written so far : 0x%05x bytes
Got a error at offset 0x%08x!!!!

Image write finished.

Got an error while writing the image. As a recovery, starting again

Image write wasn't successefull due to a device error
Image was updated successefully and passed the authentication

That mean somewhere on motherboard, we should have a flash component that only store Tbt firmware .. we only have to find it and verify if it's a SOIC8 component (If you hadn't found it on down-side maybe on up-side near connectors and under ProArt designed cover)

However, we did try flashing Gigabyte’s GC-Maple Ridge which does have a dedicated Flash ROM. But we were never successful in activating Thunderbolt Bus.
Response of this enigma should be on my previous post ;) ! ...(TBTFlags & DROM modified on firmware to enable port 7)

Which version of macOS are you using?
I'am on macOS 13.6.6 but I have also 14.4.1 on another drive, both work fine with 3 optionals kernel patches for SwitchType6 (one common to twice version, one for 13.6.6 and one for 14.4.1).

The following Tbt firmware patches should be applied to your GC-Maple Ridge :
@0x4035: 2 bytes modified from 0x2121 to 0x3131
@0x4081: 1 byte modified from 0x85 to 0x05
@0x4210: full DROM should be updated with personal UID & 0x287 for port 7 and ... I don't know if that work but we have to test it ... adding 0x28C & 0x28D to enable USB4 downstream busses (like done on an Apple Silicon DROM seen on ioreg MacBookPro17,1 on port@4) .. DROM update including CRC8 & CRC32

I have opened a tread here, you can find my modified firmware file for Asrock Thunderbolt 4 AIC.
 
Last edited:
I currently have an AMD Radeon RX 6900 XT 16 GB installed in my machine, but would like to add an Nvidia GPU just for Windows 11. Is it possible to disable the Nvidia GPU when using Mac OS, and disable the AMD GPU when using Windows?

Mac OS - AMD GPU only
Windows - Nvidia GPU only
 
I suppose it's still too early for a complete write-up, but have you also made a TB4 SSDT to name/populate these NIH0/DSB# entities?
Hi @etorix
Yes, SSDT should be updated like done with SSDT of Titan-Ridge but .. without ThunderboltDROM property, now included on firmware .. with TBTFlags property @ 0x8 (4 bytes) under NHI0 .. and by replacing DSB4 (_ADR @ 0x40000) by DSB3 (_ADR @ 0x30000).
 
@Elias64Fr Thanks for reporting your findings, so I only need to modify the the ROM chip on the Thunderbolt 4 card default IOThunderboltSwitchOS to IOThunderboltSwitchType6 and nothing else?
Hi @taylorsyn
you can find responses on my 2 previous post ;) and another opened thread here
 
Back
Top