Jump to content
Welcome to InsanelyMac Forum

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

  • Announcements

    • Allan

      Forum Rules   04/13/2018

      Hello folks! As some things are being fixed, we'll keep you updated. Per hour the Forum Rules don't have a dedicated "Tab", so here is the place that we have our Rules back. New Users Lounge > [READ] - InsanelyMac Forum Rules - The InsanelyMac Staff Team. 
Zenith432

GenericUSBXHCI USB 3.0 driver for OS X with source

920 posts in this topic

Recommended Posts

to the ones in most USB patches (0xa8c-0x834) <- Are these other values correct?
These values are enough to charge one iPhone - but if you want to charge 50 iPhones... :D

Share this post


Link to post
Share on other sites

Rampage Dev: I checked the crash log from #122 with IOUSBFamily 5.6.0, and it shows the crash to be a pagefault from a call to IOSleep in AppleUSBHub::CheckForActivePorts. It's inexplicable. Probably caused by some memory corruption.

Share this post


Link to post
Share on other sites

Rampage Dev: I checked the crash log from #122 with IOUSBFamily 5.6.0, and it shows the crash to be a pagefault from a call to IOSleep in AppleUSBHub::CheckForActivePorts. It's inexplicable. Probably caused by some memory corruption.

 

This issue happens on 70% of Asus x79 boards and would really like to fix it. It only started with ML. Lion it worked fine with the older solutions. Thanks.

Share this post


Link to post
Share on other sites
This issue happens on 70% of Asus x79 boards and would really like to fix it. It only started with ML.
Have the user retry with v1.2.3. If the problem still recurs - have the user boot with kernel-flag 'gux_log=2', and then upload the contents of syslog from the point the device is inserted onward. Thanks.

Share this post


Link to post
Share on other sites

Hello Zenith432,

 

GenericUSBXHCI.kext v1.23 added in Pandora Beta2 (will be released within a few days..), and this is the Pandora's log with automatic xhcdump included:

 

Pandora's box 06-05-13_2104.html.zip

 

dump done after waking from sleep (the dump is always done, but only if GenericUSBXHCI.kext is loaded), everything looks super! ;)

 

I hope that log you pleasure, and any tips are welcome!

Thank you for this kext!

 

Micky1979

Share this post


Link to post
Share on other sites

Hi Zenith,

 

First off, thanks a ton for developing this driver.

 

I'm running 10.8.4 with a gigabyte MB with an Etron EJ168 chip, and I've installed V1.23 of the kext. USB 2.0 devices work fine, and my USB 3.0 thumb drive (I don't have a self-powered USB 3.0 drive) shows up in system information with a max speed of 5 GB/S. However, when using it, (1) I seem to get only USB 2.0 speeds (as determined by Blackmagic disk test) and (2) after copying a file back and forth 2-3 times, the next transfer will stall, and then the drive will eject with an error but immediately remount. It then works fine again for a few copies before crashing again.

 

I found this message (similar to one from post 149?) in the system logs:

6/5/13 12:20:49.000 PM kernel[0]: WaitForCMD: Timeout waiting for command completion (opcode 0xf), 100ms

. Also this one, which appears a few times before the drive remounts:

 

6/5/13 12:14:12.000 PM kernel[0]: USBF: 313.290 [0xffffff8020105000] The IOUSBFamily is having trouble enumerating a USB device that has been plugged in. It will keep retrying. (Port 2 of Hub at 0xbc800000)
.

 

I've attached the caps and running dumps from xhcdump, run right after one of the spontaneous ejects and remounts.

Let me know if you need any more info, and thanks again for your hard work (and help :-)).

 

—Q

2013_06_05-dump.txt

Share this post


Link to post
Share on other sites

quendiljt: This behavior indicates the drive is defective. Are you able to use it when connected to an EHCI port, or under any other OS?

The WaitForCMD error means one of the endpoints is stalled, it's trying to stop it, but times out stopping it. The USB stack has a sequence of steps responding to device errors, and that's what you're seeing.

You can do 'xhcdump slots', and then 'xhcdump endpoints #', where # is the slot number where this drive is connected. This will list the endpoint configurations - to see if there's anything unusual about them. However, the USB stack just takes the endpoint configurations as reported by the device descriptors on the device itself - so it's likely just a defective drive.

Share this post


Link to post
Share on other sites

Hi Zenith,

 

I borrowed a USB 3.0 external HD from work, and it worked fine, so I guess it was my thumb drive after all. Sorry about that :blush: . That said, my thumb drive seems to work fine in USB 3.0 ports on a Windows 8 machines and in my MacBook Air. I'll just get a new thumb drive anyway.

 

I've attached the output of xhcdump endpoints in case you're interested.

 

Thanks again for your help!

2013_06_06-xhcdump.txt

Share this post


Link to post
Share on other sites
I've attached the output of xhcdump endpoints in case you're interested.
The endpoint configuration in the dump is normal.

It could be a combination of the Etron controller + chipset in thumbdrive. I found a report of a similar problem.

Looked at the Linux code, and there's an Etron-quirk related to transfers. However, the code in GenericUSBXHCI doesn't need this quirk as it already works right. So the bottom line is if the transfers between Etron controller and thumbdrive were completing successfully - you wouldn't be experiencing this. The data transfers are either being aborted short with errors or timing out.

 

PS: you could try updating firmware if it's not already the latest.

Share this post


Link to post
Share on other sites

Hi Zenith,

 

I tried my faulty thumbdrive with version 1.2.4d4 and it still stalled and ejected when trying to write to the drive, in line with your expectations. However, it did seem to read fine (and at 3.0 speeds). Let me know if you'd like xhcdump etc.

 

Thanks again for your help and attention,

Q

Share this post


Link to post
Share on other sites

Thank you so much for the great work.

 

I am using an Asus P9X79 Deluxe motherboard that has 8 USB 3.0 ports. 4 of the ports are connected to a VIA VLI810 hub. Although I can get the hub to show in About this Mac, USB 3.0 devices do not show up when connected to any of the ports controlled by the hub.

 

Any help or advice would be greatly appreciated.

 

 

xhcdump P9X79Deluxe ASM1042.txt

Share this post


Link to post
Share on other sites

Tested in 10.9

 

Kext loads and IOreg shows the kext is working as before however it will not mount anything.

If your third part USB 3.0 controller's XHCI version is >=1.0, you can give this a try:

http://www.insanelymac.com/forum/topic/285157-patched-appleusbxhci-from-os-1082/?p=1923014

 

About sleep problem, you can try some combinations enable/disable the Sleep code & PCI power management patches in the post.

Share this post


Link to post
Share on other sites

llauqsd, how about speeds? i have ~20 MBps per port. even on usb 2.0 hosted by x79.

about your issue: i have the same. i thought that it's hardware problem because usb 3.0 disappeared in windows too. but later i noticed that it happens only when i reboot from mac (with loaded genericusbxhci). and all next reboots with "reset button" or restarts by os. cold start doesn't show behaviour like that.

by the way, now on latest version of driver after reboot pc hangs right before post screen with mobo logo. need to use power button. so i see all ports working in windows. with appropriate speeds.

 

i wanted to change motherboard under warranty because of "broken" usb 3.0. but now i have to do this anyway. the first pci-e slot stopped working. going to buy rampage iv extreme instead.

cheers.

Share this post


Link to post
Share on other sites

This board has a VIA Labs VL810 or VL811 USB 3.0 hub, and needs a firmware upgrade.

I am using an Asus P9X79 Deluxe motherboard that has 8 USB 3.0 ports. 4 of the ports are connected to a VIA VLI810 hub. Although I can get the hub to show in About this Mac, USB 3.0 devices do not show up when connected to any of the ports controlled by the hub.

Share this post


Link to post
Share on other sites

Tested in 10.9

 

Kext loads and IOreg shows the kext is working as before however it will not mount anything.

I got same problem. In 10.9 DP1, USB3 port can recognize USB2 device, but not USB3 device. Same kext fully worked in 10.8.4.

Share this post


Link to post
Share on other sites

I've just installed OS X 10.9 DP1. I have uPD720200a updated to the latest version 4.0.2.1.0.3. In OS X 10.8.4 the ports are fully working. In Mavericks they're fully recognized but when I connect something in one of the usb 3.0 ports I don't see anything in Finder.

Share this post


Link to post
Share on other sites

On USB3 ports not connected to the VLI810 hub I get around 100MBps with my USB3 thumbdrive (its rated speed). I will try with a USB3 connected SSD later.

llauqsd, how about speeds? i have ~20 MBps per port. even on usb 2.0 hosted by x79.

Share this post


Link to post
Share on other sites

I got same problem. In 10.9 DP1, USB3 port can recognize USB2 device, but not USB3 device. Same kext fully worked in 10.8.4.

That makes sense, as 10.9 changes the way superspeed port status changes are reported to IOUSBControllerV3 - in order to support a max of 30 ports instead of 15.  This allows for a controller with 15 dual-protocol ports.  It's necessitated by the Lynx-point Z87 chipset xhci that has 8 dual-protocol ports (= 16 ports).

It's probably not hard to fix, but with sources for IOUSBFamily 650 unavailable - I'll need to get it from the binary.

Share this post


Link to post
Share on other sites

I've just installed OS X 10.9 DP1. I have uPD720200a updated to the latest version 4.0.2.1.0.3. In OS X 10.8.4 the ports are fully working. In Mavericks they're fully recognized but when I connect something in one of the usb 3.0 ports I don't see anything in Finder.

hello

 

try to use the iousbfamilly from 10.8.4 in mavericks..

 

and see it is solved...

 

good hack

Share this post


Link to post
Share on other sites

hello

 

try to use the iousbfamilly from 10.8.4 in mavericks..

 

and see it is solved...

 

good hack

Did you not read the post right before yours?

 

            #171            

I made a build for OS 10.9 DP1 to try and solve the superspeed port detection issue.  Please let me know if it works.

 

Note: run 'uname -a' from command line and check to see it reports Darwin 13.0.0.

Testing

I made a build for OS 10.9 DP1 to try and solve the superspeed port detection issue.  Please let me know if it works.

 

Note: run 'uname -a' from command line and check to see it reports Darwin 13.0.0.

No dice... 

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.



×