Contribute
Register

Mojave 10.14.4 Port Limit Removal Patch

Joined
Aug 31, 2018
Messages
1,125
Motherboard
Asus ROG Strix Z390 I-Gaming
CPU
i7-8700K
Graphics
RX 580
Mac
MacBook
Classic Mac
512K, iMac
Mobile Phone
iOS
Some people say there might be memory error by allowing port number to go above 15. That is not true because AppleUSBXHCI actually read hardware registers to allocate memory, for example activeDeviceSet is constructed from Max Device Slots value in HCSPARAMS1. Port limit checks can be safely removed. People might wonder why the first place to limit ports is in AppleUSBXHCI not AppleUSBXHCIPCI. Well, AppleUSBXHCIPCI constructs ports property and calls super class (AppleUSBXHCI) method to enumerate ports. If ports property is defined, only ports listed will be constructed. If no such property exists, AppleUSBXHCI goes through all capabilities defined in the controller. That means by deleting all ACPI USB port definitions, all ports will be enumerated!
The only credit I claim for the following patch is having great search skills :)

10.14.4 Port Limit Removal Patch by PMHeart

Seems to work perfectly but more testing needed to confirm full functionality.

com.apple.iokit.IOUSBHostFamily
83FB0F0F 870B0400 00
83FB3F0F 870B0400 00
USB Port Limit Patch 1 ©PMHeart
10.14.4

com.apple.driver.usb.AppleUSBXHCI
4183FF0F 0F839404 0000
4183FF3F 0F839404 0000
USB Port Limit Patch 2 ©PMHeart
10.14.4

com.apple.iokit.IOUSBHostFamily
83E30FD3 E34109DF
83E33FD3 E34109DF
USB Port Limit Patch 3 ©PMHeart
10.14.4

Plist code below if you prefer:

Code:
<dict>
                <key>Comment</key>
                <string>USB Port Limit Patch 1 ©PMHeart</string>
                <key>Disabled</key>
                <false/>
                <key>Find</key>
                <data>
                g/sPD4cLBAAA
                </data>
                <key>InfoPlistPatch</key>
                <false/>
                <key>MatchOS</key>
                <string>10.14.4</string>
                <key>Name</key>
                <string>com.apple.iokit.IOUSBHostFamily</string>
                <key>Replace</key>
                <data>
                g/s/D4cLBAAA
                </data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>USB Port Limit Patch 2 ©PMHeart</string>
                <key>Disabled</key>
                <false/>
                <key>Find</key>
                <data>
                QYP/Dw+DlAQAAA==
                </data>
                <key>InfoPlistPatch</key>
                <false/>
                <key>MatchOS</key>
                <string>10.14.4</string>
                <key>Name</key>
                <string>com.apple.driver.usb.AppleUSBXHCI</string>
                <key>Replace</key>
                <data>
                QYP/Pw+DlAQAAA==
                </data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>USB Port Limit Patch 3 ©PMHeart</string>
                <key>Disabled</key>
                <false/>
                <key>Find</key>
                <data>
                g+MP0+NBCd8=
                </data>
                <key>InfoPlistPatch</key>
                <false/>
                <key>MatchOS</key>
                <string>10.14.4</string>
                <key>Name</key>
                <string>com.apple.iokit.IOUSBHostFamily</string>
                <key>Replace</key>
                <data>
                g+M/0+NBCd8=
                </data>
            </dict>
 
Joined
Feb 19, 2018
Messages
191
Motherboard
Gigabyte Z390 Designare
CPU
i9-9900K
Graphics
RX 580
Mac
MacBook Pro
Mobile Phone
iOS
Or just build a proper SSDT and not have these issues of USB3 ports not working. It only takes 10-15 minutes and saves a lot of hassle in the future as each .x is released.
 

Feartech

Moderator
Joined
Aug 3, 2013
Messages
12,482
Motherboard
Asus N752VX-Clover
CPU
i7-6700HQ / HM170
Graphics
HD530 + GTX 950m 1920 x 1080
Mac
iMac
Mobile Phone
Android
Or just build a proper SSDT and not have these issues of USB3 ports not working. It only takes 10-15 minutes and saves a lot of hassle in the future as each .x is released.
it would make sense :)
 
Joined
Aug 31, 2018
Messages
1,125
Motherboard
Asus ROG Strix Z390 I-Gaming
CPU
i7-8700K
Graphics
RX 580
Mac
MacBook
Classic Mac
512K, iMac
Mobile Phone
iOS
Or just build a proper SSDT and not have these issues of USB3 ports not working. It only takes 10-15 minutes and saves a lot of hassle in the future as each .x is released.
I just realized something, are you saying that if I build a custom SSDT I am NOT limited to 15 ports? If that's the case that is the way to go for sure!
 

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
2,512
Motherboard
Gigabyte Z370M D3H
CPU
i3-8350K
Graphics
RX 560
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
I just realized something, are you saying that if I build a custom SSDT I am NOT limited to 15 ports? If that's the case that is the way to go for sure!
Yes, this is true. Follow @RehabMan's guide to creating a custom SSDT and you can define them all. However what is explained is that you should also "-uia_exclude" and "-uia_ignore" surplus ones to get down to the 15 :thumbup:
 

Feartech

Moderator
Joined
Aug 3, 2013
Messages
12,482
Motherboard
Asus N752VX-Clover
CPU
i7-6700HQ / HM170
Graphics
HD530 + GTX 950m 1920 x 1080
Mac
iMac
Mobile Phone
Android
I already have one and it's included in my post for people who don't want to use PLRP but still limited to 15 ports so limited functionality.
15 ports as per Apple design
 

MacMan

Administrator
Staff member
Joined
Feb 2, 2010
Messages
8,278
Motherboard
ASUS ROG STRIX Z370-E GAMING - 1601 - UEFI
CPU
i7-8700K
Graphics
Vega 64
Mac
MacBook Pro, Mac Pro
Classic Mac
Power Mac, PowerBook
Mobile Phone
iOS
If you have an ASUS motherboard you can always use my kext free USB3 SSDT guide.

I do need to update it and also publish the Gigabyte version.
 
Top