Jump to content
shiecldk

Patched AppleUSBXHCI v710.4.11 (10.10.5)

By shiecldk ( Find their other files )

1 Screenshot

About This File

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):

 

 

10.9.*

 

 

Disable Intel & Fresco Logic USB3.0 controllers check:



000000000000ffc4 jne 0x10000F6 80 D4 00 00 00 80 75 3A-->000000000000ffc4 jmp 0x10000F6 80 D4 00 00 00 80 EB 3A
 

This one is actually 75 3A-->EB 3A, but there are more than one 75 3A in the binary.

Disable XHCI 1.0 check:



00000000000100ab cmpw $0x100, %ax66 3D 00 01-->00000000000100ab cmpw $0x000, %ax66 3D 00 00
 

Patch MSI or pin interrupts:



0000000000012301 orl $0x400000, 0x8(%rcx)81 49 08 00 00 40 00-->0000000000012301 orl $0x000000, 0x8(%rcx)81 49 08 00 00 00 000000000000013460 movl $0x400000, 0x8(%r15)41 C7 47 08 00 00 40 00-->0000000000013460 movl $0x000000, 0x8(%r15)41 C7 47 08 00 00 00 000000000000013686 movl $0x400000, 0x8(%r15)41 C7 47 08 00 00 40 00-->0000000000013686 movl $0x000000, 0x8(%r15)41 C7 47 08 00 00 00 00
 

Disable the sleep code leaving the controller in non-working state after wake:



000000000000568e movb $0x1, 0xc8(%rax)C6 80 C8 00 00 00 01-->000000000000568e movb $0x0, 0xc8(%rax)C6 80 C8 00 00 00 00
 

Enable PCI power management if there is no such code in DSDT:



00000000000056f6 jne 0x5bc575 4D 48 8B BB E8 01 00 00-->00000000000056f6 jmp 0x5bc5EB 4D 48 8B BB E8 01 00 00
 

This one is actually 75 4D-->EB 4D, but we can't be sure if next OSX update would bring more than one 75 4D in the binary.

 

 

10.10.*

 

 

Disable Intel & Fresco Logic USB3.0 controllers check:



000000000000ffc4 jne 0x10000F6 80 D4 00 00 00 80 75 34-->000000000000ffc4 jmp 0x10000F6 80 D4 00 00 00 80 EB 34
 

This one is actually "75 34"-->"EB 34", but there are more than one "75 34" in the binary.

Disable XHCI 1.0 check:



0000000000012160 cmpl $0x100, %eax ## imm = 0x10041 BC C7 02 00 E0 3D 00 01 00 00-->0000000000012160 cmpl $0x000, %eax ## imm = 0x00041 BC C7 02 00 E0 3D 00 00 00 00
 

This one is actually "3D 00 01 00 00"-->"3D 00 00 00 00", but there are more than one "3D 00 01 00 00" in the binary.

Patch MSI or pin interrupts:



00000000000144a3 orl $0x400000, 0x8(%rcx) ## imm = 0x40000081 49 08 00 00 40 00-->00000000000144a3 orl $0x000000, 0x8(%rcx) ## imm = 0x00000081 49 08 00 00 00 00000000000001574c movl $0x000000, 0x8(%r15) ## imm = 0x40000041 C7 47 08 00 00 40 00-->000000000001574c movl $0x000000, 0x8(%r15) ## imm = 0x00000041 C7 47 08 00 00 00 0000000000000159bc movl $0x400000, 0x8(%r15) ## imm = 0x40000041 C7 47 08 00 00 40 00-->00000000000159bc movl $0x000000, 0x8(%r15) ## imm = 0x00000041 C7 47 08 00 00 00 00
 

Disable the sleep code leaving the controller in non-working state after wake:



000000000000641e movb $0x1, 0xc8(%rax)C6 80 C8 00 00 00 01-->000000000000641e movb $0x0, 0xc8(%rax)C6 80 C8 00 00 00 00
 

Enable PCI power management if there is no such code in DSDT:



0000000000006486 jne 0x64d575 4D 48 8B BB E8 01 00 00-->0000000000006486 jmp 0x64d5EB 4D 48 8B BB E8 01 00 00
 

This one is actually "75 4D"-->"EB 4D", but we can't be sure if next OSX update would bring more than one "75 4D" in the binary.

 

 

 

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.


What's New in Version v710.4.11 (10.10.5)   See changelog

Released

No changelog available for this version.




User Feedback

Recommended Comments



Working for ASMEDIA1042?

Edit: Not working for Asmedia1042 any idea?

DSDT issue I guess?

 

You can try to eliminate the "Enable PCI power management if there is no such code in DSDT" patch or see this post.

Share this comment


Link to comment
Share on other sites

This is not working for 10.9.2, can you advice something. I using clover path.

Updated.

"Intel & Fresco Logic USB3.0 controllers check" binary code has changed.

Share this comment


Link to comment
Share on other sites

Guys, you can always use "otool" to decompile AppleUSBXHCI.kext/MacOS/AppleUSBXHCI yourself. Then you'll be able to see the assembly code and patch it on your own, even if I don't have time to update this in the furture.

In terminal, type:

otool -tv /System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBXHCI.kext/Contents/MacOS/AppleUSBXHCI

But remember to install Xcode first in order to get otool.

Share this comment


Link to comment
Share on other sites

Works for me on OSX 10.10 DP6

 

(with NEC - RENESAS USB3)

 

:))

I have put de kext as indicated.

Question:

For Clover patching, do I have to do all patches ?  If not which do i need for NEC  Renesas 720200 chip) ?

 

Thanks for help

Share this comment


Link to comment
Share on other sites

Version of AppleUSBXHCI in DP7 is v 705.4.14    !

 

Do you try patch like this?

otool -tv /System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBXHCI.kext/Contents/MacOS/AppleUSBXHCI

Share this comment


Link to comment
Share on other sites

 

Do you try patch like this?

otool -tv /System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBXHCI.kext/Contents/MacOS/AppleUSBXHCI

Yes I did, but no success ! System info shows USB3 but is not working ! Neither with GenericUSBXHCI.kext v.2.7 or 2.8d7 nor the new release GenericUSBXHCI 1.2.7 Yosemite Beta and DP 1.2.7 10.10

Share this comment


Link to comment
Share on other sites

Yes I did, but no success ! System info shows USB3 but is not working ! Neither with GenericUSBXHCI.kext v.2.7 or 2.8d7 nor the new release GenericUSBXHCI 1.2.7 Yosemite Beta and DP 1.2.7 10.10

 

Yes I did, but no success ! System info shows USB3 but is not working ! Neither with GenericUSBXHCI.kext v.2.7 or 2.8d7 nor the new release GenericUSBXHCI 1.2.7 Yosemite Beta and DP 1.2.7 10.10

Ok. It works now with the latest GenericUSBXHCI 1.2.7 Yosemite Beta and patch

 

otool -tv /System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBXHCI.kext/Contents/MacOS/AppleUSBXHCI

 

(reInstalled Original IOUSBFamily.kext (705.4.14 from delta 10.10DP7)

 

Thank you very much for your help !

Share this comment


Link to comment
Share on other sites

Thank you shiecldk.

 

Clover Kext patch using your Binary files works like a charm on Yosemite 10.10 for my SD-PEX50055 PCI-E card with Etron EJ168A chipset on it.

I use Jettison app with this patch to eject/remount drives after sleep.

Share this comment


Link to comment
Share on other sites

I am using AKE upd720202 express card in my macbook pro.

Patched AppleUSBXHCI v710.4.11 works in osx 10.10.2.

I use the following 3 command to install the patch.

 

 

sudo cp -R AppleUSBXHCI.kext /System/Library/Extensions/IOUSBFamily.kext/Contents/Plugins

 

sudo kextcache -system-prelinked-kernel

 

sudo kextcache -system-caches

 

 

Share this comment


Link to comment
Share on other sites

×