About This File
Warning: This driver is made for none-Intel chipset USB3.0 controllers.
This AppleUSBXHCI.kext is based on Zenith432's patch.
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 v683.4.0 (10.9.5) See changelog
Released
No changelog available for this version.
Recommended Comments