Contribute
Register

[Success] ASRock Z390 Phantom Gaming-ITX + TB3 + iGPU + Mojave + SFF Build

Thanks for these documents but I don't really get your point.
The USBPorts kext provided on your repo is basically what I got when using USBMap by myself. The USBPortsALL you attached is here as a basis for anyone who want to make their own mapping, but cannot be used "as is", right ?
I chose to start from @rj510 kext instead of using mine made with USBPorts or yours is that it includes a XHC2 part (still struggling to understand what its purpose is and how it's made), which is not included in ours.


Can i just say thank you! This has been a great resource for my hack build. I essentially got it up and running in one evening. Nearly all the hardware is the same but i've done it in a Dan A4 with an asetek AIO. The thing is great! Tomorrow i'll receive the last component. The Wifi/BT card. I found a BCM94350ZAE for £10. I've removed the intel card and the side of the shield so i can just drop the new card in without having to take the mobo out to access screws. Does anyone know if i'll have to alter anything to make the BCM94350ZAE function?
Did you got your BCM94350ZAE working ? I've ordered one (part number starting with CN-0VW3T3) and not many people use them for desktops, as they are known to be not reliable (especially for laptops...).
 
Thanks for these documents but I don't really get your point.
The USBPorts kext provided on your repo is basically what I got when using USBMap by myself. The USBPortsALL you attached is here as a basis for anyone who want to make their own mapping, but cannot be used "as is", right ?
I chose to start from @rj510 kext instead of using mine made with USBPorts or yours is that it includes a XHC2 part (still struggling to understand what its purpose is and how it's made), which is not included in ours.



Did you got your BCM94350ZAE working ? I've ordered one (part number starting with CN-0VW3T3) and not many people use them for desktops, as they are known to be not reliable (especially for laptops...).
1571841304695.png

Type-C port definition is not in usbport
 
Hi there,
Almost my first post on this forum. First I would say a huge THANKS to @rj510 and everyone else who helped him set his config. I was planning SFF build since several months and eventually bought everything a week ago. As you might guess it's based on the ASRock Z390 Phantom Gaming ITX/ac.
Other parts:
Intel Core i7-9700
2x8GB 3200MHz C16 Corsair Vengeance running at full speed without issue so far
Sapphire Nitro+ RX 590 (running with iGPU activated)
500GB MP510 NVMe for macOS 10.14.6
500GB MX500 M.2 SATA for Windows
Wifi/Bluetooth adapter not switched yet, waiting for a cheap BCM94350ZAE/DW1820A

I will do a more in-depth post later, but for now I just wanted to raise a few points and once again say THANK YOU as I was able to run my machine in a couple of hours (including both Window and macOS installation).

Now it's time for fine tuning. First thing is to modify activated USB ports, as I don't have USB ports on my case so I wanted to disable all internal USB port and enable HS09/SS06. I wanted to use the same method Rj510 use, ie create a custom USBPorts.kext. I tried two methods : starting from scratch using USBMap script, then modifying Rj510's custom USBPorts kext. When I understood all the additionnal stuff he added to the plist file I couldnt get from USBmap (at least I dont know how), I ended up with a mix of both, with Rj510's one as the base, from which I deleted unwanted internal USB ports then added HS09 and SS06. I also changed the port-count key (under iMac19,1-XHC) from GAAAAA== to FgAAAA== (as the last listed port is not SS08 anymore but SS06 with FgAAAA== as data value). The resulting kext is attached below. So far it seems to work as expected.

So here are my questions:
  • Does my modification seems fine to you ?
  • Could you explain why HS03 appears two times, under iMac19,1-XHC2 as an internal port (255) and under iMac19,1-XHC as an USB 3 port (3) ?
  • When trying to make my own usbports kext using USBMap, the script listed several times a USR01 port which does not appear in Rj510 configuration. I still dont get what thit USR port is about and would like to have further explanantion if anyone have enough time and knowledge
  • Can you confirm that there is actually 3 ways of correctly mapping ports:
    • Using a custom USBPorts kext
    • Using USBInjectAll kext with uia_exclude boot argument to exclude unused ports and stay below the 15 ports limit
    • Using USBInjectAll kext with custom SSDT-UIAC and maybe SSDT-EC and SSDT-USBX ?
I would like to go deeper about the last question. You said about the USBPorts.kext method:

while Corpnewt (author of USBMap) says (at the bottom of this page)

Isn't it a bit contradictory ? Or am I missing something ?

Again, thanks Rj510 and everyone else who helped for your time and efforts !

Your modified kext here looks OK. You can use as is.

To give you one more option, I changed it slightly to re-include HS01 and HS02. These internal ports (USB2 header) might come in useful at some point and if not activated you might wonder why they don't work. Anyhow, including them still leaves you at 15 ports. This file keeps your front panel deletions, meaning that all rear panel USB ports are active, along with the internal USB2 header.

As for the XHC2, that device is part of Thunderbolt (TB). It does not count against the 15 port limit. If you go into the SSDT for TB, you'll find that it uses XHC2. This can be defined to be something else, like XHC3 or XHC5; just keep both consistent with each other. This definition is also sometimes declared inside the SSDT-UIAC file when using that method.

You are correct in your 3 ways of limiting ports. I've used all of them at one time or another.

I prefer using the USBInjectAll method with the uia_exclude limiter when setting up a new computer, as I can remove a range of ports and see exactly where ports are located. (Some builds, like the X299 mobos, can get confusing, having 2 or 3 USB devices on a rear panel, only one of which is the main USB device that must have the 15 port limit. The others need no limits.)

USR1 and USR2 are kinda dummy ports. But they do get listed. If uia_exclude is used, then they are both easily removed. You can search on this forum for RehabMan's (creator of USBInjectAll and the SSDT-UIAC method) posts about them for more info.

Hackintool is another nice tool to help define your ports.

Modified.jpg
 

Attachments

  • USBPorts-z390-ASRock-PhGmITX-iMac19,1-NoFront.kext.zip
    115.7 KB · Views: 94

Not to get too off topic on this thread, I tried this on my X299 build and I see no difference with hot-plugging as compared to a custom SSDT I've made for it.

Neither the SSDT nor this EFI driver in my X299, get the the real TB nodes injected. TB devices on real Macs appear off of the NHI0 branch, not the DSBx branches, as shown in the Spoiler below.

Until they get injected, we won't really have true Mac TB behavior.

Hackintosh:
TB Node.jpg


Real Mac:
Real Mac TB Node.jpg
 
Well I can't get the OC to boot on Catalina ! I copied the EFI from @fangf2018's GitHub and tried. It didn't boot at all.
My setup has been working stable with clover 5096. So not very driven to get OC to work (To be honest I am being lazy ).

If anyone gets OC to work - please post the EFI. I want to see what improvement does it deliver over Clover. Thanks !

P.S - For this build I have a z390 ASRock Phantom ITX and a i9-9900K

Edit: It boots now.I made changes to device properties for booting with internal graphics only. Also added the bluetooth kexts. Boot time is marginally faster. Thanks to @fangf2018
 
Last edited:
Well I can't get the OC to boot on Catalina ! I copied the EFI from @fangf2018's GitHub and tried. It didn't boot at all.
My setup has been working stable with clover 5096. So not very driven to get OC to work (To be honest I am being lazy ).

If anyone gets OC to work - please post the EFI. I want to see what improvement does it deliver over Clover. Thanks !

P.S - For this build I have a z390 ASRock Phantom ITX and a i9-9900K

Edit: It boots now.I made changes to device properties for booting with internal graphics only. Also added the bluetooth kexts. Boot time is marginally faster. Thanks to @fangf2018
Only for ASRock z390-itx
 
@fangf2018, what is the use for the following SSDT's

PPMC
PLUG
RTC0

Do we not need SSDT-EC ?
And where is this patch called ?

Code:
        <dict>
          <key>Comment</key>
          <string>Fix AsRock Z390 BIOS DSDT Device(RTC) bug</string>
          <key>Disabled</key>
          <false/>
          <key>Find</key>
          <data>
          oAqTU1RBUwE=
          </data>
          <key>Replace</key>
          <data>
          oAqRCv8L//8=
          </data>
        </dict>
 
@fangf2018 - what is the use for the following SSDT's

PPMC
PLUG
RTC0

Do we not need SSDT-EC ?
And where is this patch called ?

Code:
<dict>
<key>Comment</key>
<string>Fix AsRock Z390 BIOS DSDT Device(RTC) bug</string>
<key>Disabled</key>
<false/>
<key>Find</key>
<data>
oAqTU1RBUwE=
</data>
<key>Replace</key>
<data>
oAqRCv8L//8=
</data>
</dict>
PPMC
1571998310578.png

PLUG= plugin-type=1
RTC0=Fix AsRock Z390 BIOS DSDT Device(RTC) bug
SSDT-EC need
 
Back
Top