The kext should be placed in
/System/Library/Extensions/IOUSBFamily.kext/Contents/Plugins
and kernelcache should be rebuilt.
64-bit only.
I've tested it with the following xhci controllers:
- Renesas uPD720200A - works! Including checked that both high-speed and super-speed drives work at their maximum speeds.
- VMware virtual xhci controller - doesn't work. Hangs during boot trying to connect to the virtual USB hid devices on the controller.
Edit [1/28/2013]: New patches for interrupt problems.
Edit [1/24/2013]: Replaced 4th patch with a different one. Removed disassembly (hex diff still present.) Moved discussion of the patches to this post.
Edit [12/27/2012]: Added 5th patch, moved file offsite.
Patch made (Hex Diff)
1363c1363 < 0005520: 755b 498b 0648 8d35 82fb 0000 4c89 f7ff u[I..H.5....L... --- > 0005520: eb5b 498b 0648 8d35 82fb 0000 4c89 f7ff .[I..H.5....L... 1379c1379 < 0005620: e066 3d00 010f 82ec 0b00 0049 8b86 c002 .f=........I.... --- > 0005620: e066 3d00 000f 82ec 0b00 0049 8b86 c002 .f=........I.... 1751c1751 < 0006d60: 8149 0800 0040 0041 81e4 ffff 0f00 4409 .I...@.A......D. --- > 0006d60: 8149 0800 0000 0041 81e4 ffff 0f00 4409 .I.....A......D. 1999c1999 < 0007ce0: 410f 4ecf 41c7 4424 0800 0040 0080 bd67 A.N.A.D$...@...g --- > 0007ce0: 410f 4ecf 41c7 4424 0800 0000 0080 bd67 A.N.A.D$.......g 2046c2046 < 0007fd0: 0040 0041 8b46 0c83 e001 3501 1c00 0080 .@.A.F....5..... --- > 0007fd0: 0000 0041 8b46 0c83 e001 3501 1c00 0080 ...A.F....5..... 4098c4098 < 0010010: c800 0000 01c6 837f 3a02 0000 488b bbe8 ........:...H... --- > 0010010: c800 0000 00c6 837f 3a02 0000 488b bbe8 ........:...H... 4102c4102 < 0010050: 0200 0048 85c0 7526 488b bbe8 0100 0048 ...H..u&H......H --- > 0010050: 0200 0048 85c0 eb26 488b bbe8 0100 0048 ...H...&H......H
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.
Edited by Zenith432, 28 January 2013 - 11:45 AM.



Sign In
Create Account

















