Jump to content
Zenith432

Patched AppleUSBXHCI from OS 10.8.2

146 posts in this topic

Recommended Posts

Changed again in 10.9.4 (13E16)

<dict>
    <key>Comment</key>
    <string>Disable Intel & Fresco USB3.0 controllers</string>
    <key>Find</key>
    <data>
    dTpIiw==
    </data>
    <key>Name</key>
    <string>AppleUSBXHCI</string>
    <key>Replace</key>
    <data>
    6zpIiw==
    </data>
</dict>
<dict>
    <key>Comment</key>
    <string>Disable XHCI 1.0</string>
    <key>Find</key>
    <data>
    Zj0AAQ==
    </data>
    <key>Name</key>
    <string>AppleUSBXHCI</string>
    <key>Replace</key>
    <data>
    Zj0AAA==
    </data>
</dict>
<dict>
    <key>Comment</key>
    <string>Patch MSI or pin interrupts</string>
    <key>Find</key>
    <data>
    gUkIAABAAA==
    </data>
    <key>Name</key>
    <string>AppleUSBXHCI</string>
    <key>Replace</key>
    <data>
    gUkIAAAAAA==
    </data>
</dict>
<dict>
    <key>Comment</key>
    <string>Patch MSI or pin interrupts 2</string>
    <key>Find</key>
    <data>
    AABAADE=
    </data>
    <key>Name</key>
    <string>AppleUSBXHCI</string>
    <key>Replace</key>
    <data>
    AAAAADE=
    </data>
</dict>
<dict>
    <key>Comment</key>
    <string>Disable sleep code</string>
    <key>Find</key>
    <data>
    xoDIAAAAAQ==
    </data>
    <key>Name</key>
    <string>AppleUSBXHCI</string>
    <key>Replace</key>
    <data>
    xoDIAAAAAA==
    </data>
</dict>
<dict>
    <key>Comment</key>
    <string>Enable PCI power management</string>
    <key>Find</key>
    <data>
    dU1Ii7voAQAA
    </data>
    <key>Name</key>
    <string>AppleUSBXHCI</string>
    <key>Replace</key>
    <data>
    601Ii7voAQAA
    </data>
</dict>

Share this post


Link to post
Share on other sites
Advertisement

Updated for 10.9.3

 

Guys, try to use my new binary patch for "Disable Intel & Fresco Logic USB3.0 controllers check."

 

Does this work on VIA VL800 chip.

And how to patch on Clover this kext on Yosemite?

Thanks in advanced.

Share this post


Link to post
Share on other sites

Is there a Clover patch for Yosemite DP4/Beta?

Share this post


Link to post
Share on other sites

 

Changed again in 10.9.4 (13E16)

<dict>
    <key>Comment</key>
    <string>Disable Intel & Fresco USB3.0 controllers</string>
    <key>Find</key>
    <data>
    dTpIiw==
    </data>
    <key>Name</key>
    <string>AppleUSBXHCI</string>
    <key>Replace</key>
    <data>
    6zpIiw==
    </data>
</dict>
<dict>
    <key>Comment</key>
    <string>Disable XHCI 1.0</string>
    <key>Find</key>
    <data>
    Zj0AAQ==
    </data>
    <key>Name</key>
    <string>AppleUSBXHCI</string>
    <key>Replace</key>
    <data>
    Zj0AAA==
    </data>
</dict>
<dict>
    <key>Comment</key>
    <string>Patch MSI or pin interrupts</string>
    <key>Find</key>
    <data>
    gUkIAABAAA==
    </data>
    <key>Name</key>
    <string>AppleUSBXHCI</string>
    <key>Replace</key>
    <data>
    gUkIAAAAAA==
    </data>
</dict>
<dict>
    <key>Comment</key>
    <string>Patch MSI or pin interrupts 2</string>
    <key>Find</key>
    <data>
    AABAADE=
    </data>
    <key>Name</key>
    <string>AppleUSBXHCI</string>
    <key>Replace</key>
    <data>
    AAAAADE=
    </data>
</dict>
<dict>
    <key>Comment</key>
    <string>Disable sleep code</string>
    <key>Find</key>
    <data>
    xoDIAAAAAQ==
    </data>
    <key>Name</key>
    <string>AppleUSBXHCI</string>
    <key>Replace</key>
    <data>
    xoDIAAAAAA==
    </data>
</dict>
<dict>
    <key>Comment</key>
    <string>Enable PCI power management</string>
    <key>Find</key>
    <data>
    dU1Ii7voAQAA
    </data>
    <key>Name</key>
    <string>AppleUSBXHCI</string>
    <key>Replace</key>
    <data>
    601Ii7voAQAA
    </data>
</dict>

 

 

@maniac10 Please kext  to patch on Yosemite?

Share this post


Link to post
Share on other sites

You need to convert the hex data posted by shiecldk to base64 (here's an online converter). If you use PlistEditPro you don't even have to do that, just input the "data" posted by shiecldk and it will handle the conversion itself.
post-158318-0-48585000-1416606740_thumb.png

<key>KernelAndKextPatches</key>
<dict>
    <key>KextsToPatch</key>
	<array>
		<dict>
			<key>Comment</key>
			<string>Disable XHCI 1.0 check</string>
			<key>Find</key>
			<data>
			QbzHAgDgPQABAAA=
			</data>
			<key>Name</key>
			<string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			QbzHAgDgPQAAAAA=
			</data>
		</dict>
		<dict>
			<key>Comment</key>
			<string>Enable PCI power management</string>
			<key>Find</key>
			<data>
			dU1Ii7voAQAA
			</data>
			<key>Name</key>
			<string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			601Ii7voAQAA
			</data>
		</dict>
                <dict>
                        <key>Comment</key>
                        <string>Patch MSI or pin interrupts 1</string>
                        <key>Find</key>
                        <data>
                        gUkIAABAAA==
                        </data>
                        <key>Name</key>
                        <string>AppleUSBXHCI</string>
                        <key>Replace</key>
                        <data>
                        gUkIAAAAAA==
                        </data>
                </dict>
		<dict>
			<key>Comment</key>
			<string>Patch MSI or pin interrupts 2</string>
			<key>Find</key>
			<data>
			QcdHCAAAQAA=
			</data>
			<key>Name</key>
			<string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			QcdHCAAAAAA=
			</data>
		</dict>
		<dict>
			<key>Comment</key>
			<string>Disable Intel & Fresco USB3.0</string>
			<key>Find</key>
		        <data>
			9oDUAAAAgHU0
			</data>
			<key>Name</key>
			<string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			9oDUAAAAgOs0
			</data>
		</dict>
		<dict>
			<key>Comment</key>
			<string>Disable sleep code</string>
			<key>Find</key>
			<data>
			xoDIAAAAAQ==
			</data>
			<key>Name</key>
		        <string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			xoDIAAAAAA==
			</data>
		</dict>
	</array>
</dict>

Share this post


Link to post
Share on other sites

 

You need to convert the hex data posted by shiecldk to base64 (here's an online converter). If you use PlistEditPro you don't even have to do that, just input the "data" posted by shiecldk and it will handle the conversion itself.

attachicon.gifplisteditpro.png

<key>KernelAndKextPatches</key>
<dict>
    <key>KextsToPatch</key>
	<array>
		<dict>
			<key>Comment</key>
			<string>Disable XHCI 1.0 check</string>
			<key>Find</key>
			<data>
			QbzHAgDgPQABAAA=
			</data>
			<key>Name</key>
			<string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			QbzHAgDgPQAAAAA=
			</data>
		</dict>
		<dict>
			<key>Comment</key>
			<string>Enable PCI power management</string>
			<key>Find</key>
			<data>
			dU1Ii7voAQAA
			</data>
			<key>Name</key>
			<string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			601Ii7voAQAA
			</data>
		</dict>
                <dict>
                        <key>Comment</key>
                        <string>Patch MSI or pin interrupts 1</string>
                        <key>Find</key>
                        <data>
                        gUkIAABAAA==
                        </data>
                        <key>Name</key>
                        <string>AppleUSBXHCI</string>
                        <key>Replace</key>
                        <data>
                        gUkIAAAAAA==
                        </data>
                </dict>
		<dict>
			<key>Comment</key>
			<string>Patch MSI or pin interrupts 2</string>
			<key>Find</key>
			<data>
			QcdHCAAAQAA=
			</data>
			<key>Name</key>
			<string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			QcdHCAAAAAA=
			</data>
		</dict>
		<dict>
			<key>Comment</key>
			<string>Disable Intel & Fresco USB3.0</string>
			<key>Find</key>
		        <data>
			9oDUAAAAgHU0
			</data>
			<key>Name</key>
			<string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			9oDUAAAAgOs0
			</data>
		</dict>
		<dict>
			<key>Comment</key>
			<string>Disable sleep code</string>
			<key>Find</key>
			<data>
			xoDIAAAAAQ==
			</data>
			<key>Name</key>
		        <string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			xoDIAAAAAA==
			</data>
		</dict>
	</array>
</dict>

Thank you very much!!!!

Share this post


Link to post
Share on other sites

I've just updated my file;)

 

 

Hello, can you plz guide me

 

I am gonna patch AppleUSBXHCI for osx 10.10 ,the file i took from S\L\E\IOUSBFamily.kext\Contents\PlugIns\AppleUSBXHCI.kext\Contents\MacOS\AppleUSBXHCI, Am i right??

 

i m unable to find this 000000000000ffc4 jne 0x10000

F6 80 D4 00 00 00 80 75 34

in particular file.

 

 

attaching screenshot plz help.

 

 

i am using chamilion wizard,trying to replace binary using hex editor.

 

 

NOTE:-patching for TUSB73x0,VenID=104c,DevId=8241

post-1114305-0-82905300-1423479513_thumb.png

Share this post


Link to post
Share on other sites

Hello, can you plz guide me

 

I am gonna patch AppleUSBXHCI for osx 10.10 ,the file i took from S\L\E\IOUSBFamily.kext\Contents\PlugIns\AppleUSBXHCI.kext\Contents\MacOS\AppleUSBXHCI, Am i right??

 

i m unable to find this 000000000000ffc4 jne 0x10000

F6 80 D4 00 00 00 80 75 34

in particular file.

 

 

attaching screenshot plz help.

 

 

i am using chamilion wizard,trying to replace binary using hex editor.

 

 

NOTE:-patching for TUSB73x0,VenID=104c,DevId=8241

Simply find "F6 80 D4 00 00 00 80 75 34" and replace it with "F6 80 D4 00 00 00 80 EB 34", and so on.

"000000000000ffc4 jne 0x10000" is the assembly code derived from otool, where you don't need it if you are just attempting to patch yours.

Share this post


Link to post
Share on other sites

Simply find "F6 80 D4 00 00 00 80 75 34" and replace it with "F6 80 D4 00 00 00 80 EB 34", and so on.

"000000000000ffc4 jne 0x10000" is the assembly code derived from otool, where you don't need it if you are just attempting to patch yours.

 

 

hello thnx for help after posting,

 

I have patched AppleUSBXHCI fresh vanila with that all patches which was mentioned here,rebuilded cache repaired permission all done,but the port is still not working.

 

Please check my binary attachment

AppleUSBXHCI.zip

Share this post


Link to post
Share on other sites

Hi,

 

I've applied all the patches for OS X 10.10.2, yet I can't use my Intel 7-Series USB3 port...

Any help? :)

Share this post


Link to post
Share on other sites

 

You need to convert the hex data posted by shiecldk to base64 (here's an online converter). If you use PlistEditPro you don't even have to do that, just input the "data" posted by shiecldk and it will handle the conversion itself.

attachicon.gifplisteditpro.png

<key>KernelAndKextPatches</key>
<dict>
    <key>KextsToPatch</key>
	<array>
		<dict>
			<key>Comment</key>
			<string>Disable XHCI 1.0 check</string>
			<key>Find</key>
			<data>
			QbzHAgDgPQABAAA=
			</data>
			<key>Name</key>
			<string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			QbzHAgDgPQAAAAA=
			</data>
		</dict>
		<dict>
			<key>Comment</key>
			<string>Enable PCI power management</string>
			<key>Find</key>
			<data>
			dU1Ii7voAQAA
			</data>
			<key>Name</key>
			<string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			601Ii7voAQAA
			</data>
		</dict>
                <dict>
                        <key>Comment</key>
                        <string>Patch MSI or pin interrupts 1</string>
                        <key>Find</key>
                        <data>
                        gUkIAABAAA==
                        </data>
                        <key>Name</key>
                        <string>AppleUSBXHCI</string>
                        <key>Replace</key>
                        <data>
                        gUkIAAAAAA==
                        </data>
                </dict>
		<dict>
			<key>Comment</key>
			<string>Patch MSI or pin interrupts 2</string>
			<key>Find</key>
			<data>
			QcdHCAAAQAA=
			</data>
			<key>Name</key>
			<string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			QcdHCAAAAAA=
			</data>
		</dict>
		<dict>
			<key>Comment</key>
			<string>Disable Intel & Fresco USB3.0</string>
			<key>Find</key>
		        <data>
			9oDUAAAAgHU0
			</data>
			<key>Name</key>
			<string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			9oDUAAAAgOs0
			</data>
		</dict>
		<dict>
			<key>Comment</key>
			<string>Disable sleep code</string>
			<key>Find</key>
			<data>
			xoDIAAAAAQ==
			</data>
			<key>Name</key>
		        <string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			xoDIAAAAAA==
			</data>
		</dict>
	</array>
</dict>

 

Hey Maniac10, this patch still works in 10.9.5?

Share this post


Link to post
Share on other sites

I jumped to Yosemite right away so I can't confirm if that same patch works, but here are the supposedly updated binary patches for both Mavericks and Yosemite. At first glance it looks like a couple of patches have changed though.

Share this post


Link to post
Share on other sites

 

Description of patches and what they're good for
  • (5520) Eliminates a check that xhci chip is either Intel Panther Point or Fresco Logic. If you have either of these, use original unpatched AppleUSBXHCI. This patch has the exact same effect as adding AllowAnyXHCI=true in Info.plist. If you feel more comfortable with Info.plist, go ahead.
  • (5624) Eliminates a check that xhci version >= 1.0. If your xhci version is already >= 1.0, you don't need this. For uPD720200, it's reported as 0.96 which is why I added it.
  • (6d65, 7ceb, 7fd1) Set of three patches to make the driver use a single interrupter to resolve problems with use of MSI or pin interrupts.
  • (10014) This patch disables the sleep code that leaves the controller in non-working state after wake. Instead, IOUSBFamily will turn the controller off and restart after wake. Any connected drives will disconnect during sleep, but will be reattached after wake and return to function. Use this patch only if wake after sleep leaves your ports in unusable state.
  • (10056) I added this to enable PCI power management in cases where the xhci controller is not listed in DSDT. For boards in which xhci is in DSDT, this isn't needed.

 

First of All, Thanks for the Patches, work OK with

04:00.0 USB controller [0c03]: Renesas Technology Corp. uPD720201 USB 3.0 Host Controller [1912:0014] (rev 03) (subsys 1912:0014)

OS X Mavericks 10,9,5
1) I used AllowAnyXHCI=true and xhci version >= 1.0 so I do not need first two patches
2) Patches 3,4,5 do their job, with some modifications for newer kext
3) I want to ask, if i can make it better? and avoid problems with ejected devices after sleep?
Maybe it is possible to control PCI slot power management with DSDT? need Your advice, Thanks again

and more, there is a possibility to change some settings in NEC's firmware

[usePPON]

1
; When set to '0', the uPD720201 and uPD720202 force the Port Power Control (PPC)
; bit to '0b' in the HCCPARAMS register. When VBUS is not controlled by the PPON
; pin, this bit should be set to '0b'. Default value is '1'
 
[DisablePortCount]
0
;uPD720201
;0 : All ports are enabled.
;1 : Port 4 and Port 8 are disabled
;2 : Port 3,4,7 and 8 are disabled.
;3 : Port 2,3,4,6,7 and 8 are disabled.
;uPD720202
;0 : All ports are enabled.
;1 : Port 2 and 4 are disabled,
 
[PSEL]
1
;When set to '1', the default value of the Active State Power Management Control
;fields in the PCI Express Link Control Register is 00b. 
;When this bit is '0', the default value is 11b.
 
[AUXDET]
1
;Auxiliary Power Detect. When the system supports remote wakeup from D3cold, 
;this bit should be set to '1'.
 
[EnableClockRequest]
1
; Set to '0', if you want to disable the CLKREQ#(ClockRequest). 
; There exist PCs which has problem in its CLKREQ# function for ExpressCard slot.
; It is recommended to disable CLKREQ# function, if the product is ExpressCard.
; Default value is "1". 
 
is it useful for described problem?

Share this post


Link to post
Share on other sites

PS

 


  • (6d65, 7ceb, 7fd1) Set of three patches to make the driver use a single interrupter to resolve problems with use of MSI or pin interrupts.
  • (10014) This patch disables the sleep code that leaves the controller in non-working state after wake. Instead, IOUSBFamily will turn the controller off and restart after wake. Any connected drives will disconnect during sleep, but will be reattached after wake and return to function. Use this patch only if wake after sleep leaves your ports in unusable state.

these two are necessary

  • (10056) I added this to enable PCI power management in cases where the xhci controller is not listed in DSDT. For boards in which xhci is in DSDT, this isn't needed.

and this produces no visible effect in my case

Share this post


Link to post
Share on other sites

Does this work with El Capitan? Does anyone have any experience with that?

 

There is no AppleUSBXHCI.kext in El Capitan
it is called AppleUSBXHCIPCI and it is different from this

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By onemanOSX
      Hi,
      Currently working on an MSI B360 Gaming Arctic (for some reason my signature is not showing my builds).
       
      This motherboard has mixture of USB 3.1 gen 1, gen 2 and 2.0 ports. All USB ports are working as well as i can get 5gbps speed. However, in verbose, I noticed these errors and found no joy on how to solve the matter. I have a suspicion it has something to do with the gen 2 speed of 10gbps? But, I do not have the devices to test that speed yet as of now.
       
      I also have an additional Asmedia 2 ports USB 3.1 pcie installed if that helps. But the issue is more to XHC@14000000 so I suppose the pcie has no part to play in the error.
       
      Appreciate if anyone can guide me to the correct direction to troubleshoot and pin point the area I should be looking at.
       
      PS: I can attach more files if requested. But, I am currently not at my hack so I can only upload later in the evening.
       
      Thanks in advance.
       
       

       
       
       
    • By shiecldk
      Warning: This driver is made for none-Intel chipset USB3.0 controllers.
       
      This AppleUSBXHCI.kext is based on Zenith432's patch.
      Original Topic
       
      Please install this driver to /System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns.
      Alternatively, you can use Clover's KextsToPatch with the following Binary patch.
       
      Binary patch description (Hex & Assembly Codes):
       
       
      Chipset Compatible List: (Working/Semi-working)
      Please feel free give some feedbacks, if your chipset is not on this list, or if you think there is something wrong about the list.
      NEC/Renesas:
      D720200
      D720200a
      D720201
      D720202
      D720210
      Etron:
      EJ168
      EJ168a
      EJ188
      EF198
      Fresco Logic:
      FL1000
      FL1009
      FL1100
      VIA:
      VL800
      VL801
      VL805
      VL806
      Texas Instruments:
      TUSB7320
      TUSB7340
      ASMedia:
      ASM1042
       
      If this driver doesn't work for you, restore the original AppleUSBXHCI.kext and check out Zenith432's GenericUSBXHCI.kext.
    • By alexanderM
      Hi people!
       
      In these days I'm trying to install macOS Sierra on my PC with also Windows installed.
       
      My hardware isn't exactly brand new: Intel Core 2 Quad q8600, 7GB ram and nVidia GTS450 1GB on an Asus P5Q SE, so no UEFI avaible.
       
      I'd like to install macOS on a 64GB Lexar USB 3 inserted in my USB 3 PCI-e x1 module, but my mobo doesn't see the device (incompatible bios?), I can see that only in Windows.
       
      My idea is to install a boot loader (Chameleon? Clover?) on a USB 2 stick connected directly to the motherboard and from that boot the MacOS on the Lexar USB 3 or Windows from my HDD. Is that possible? Clover or Chameleon could see my PCI-e module?
       
      Now, I was out of hackintosh scene for a while, I know that many things changed in these years, so sorry if I asked something obvious.
       
      Thank you in advance for your help!
    • By arstherapia
      Guys,
       
      I'm new here, but really counting on your help.
       
      I'm setting up a computer for video editing and DTP and all work fine except for USB 3.0.
      I've read hundreds of web pages and forum, but cannot find a working solution. 
       
      Does anyone of you have this board and successfully working USB 3.0 ports?
       
      I would really appreciate help.
       
      Cheers, Rafał

×