Jump to content

Patched AppleUSBXHCI from OS 10.8.2


Zenith432
 Share

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>
  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...
  • 1 month later...
  • 3 months later...

 

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?

Link to comment
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>
  • Like 1
Link to comment
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!!!!

Link to comment
Share on other sites

  • 3 weeks later...
  • 1 month later...

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

Link to comment
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.

Link to comment
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

Link to comment
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?

Link to comment
Share on other sites

  • 1 year later...

 

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?
Link to comment
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

Link to comment
Share on other sites

  • 3 weeks later...
 Share

×
×
  • Create New...