Jump to content

Need advice on USB3 PCI card


frankiee
 Share

41 posts in this topic

Recommended Posts

Since it seems to be impossible to get the ASM1042 chipset running with El Cap, I am looking at this card right now to replace it:

 

http://www.amazon.de/Inateck-Expresskarte-20-Pin-Stecker-Connector-Strom-Y-Kabel/dp/B00FPIMJEW/ref=cm_cr_pr_product_top?ie=UTF8

http://www.amazon.com/dp/B00FPIMJEW/ref=twister_B00YBX2B0Y?_encoding=UTF8&psc=1

 

Has tons of ports as well as an internal header, only drawback is the need for additional power connection.

 

But unlike with other cards of this manufactorer there is no explicit OS X support stated, but it still uses the same FL1100 chipset.

 

So this should run well, and also OOTB?

Link to comment
Share on other sites

I know some Inateck FL1100-based card ended up having issues with MacPros.

 

Yeah, thats why I am asking, since this particular model has no explicit OS X support mentioned. I also think it should work but before trying I wanted to know for sure.

 

Additional questions: did you try charging devices which need additional current (i.e. iPad) and if yes, did you encounter any problems?

 

Plus, are there any additional setup steps needed to get it running properly in 10.11?

Link to comment
Share on other sites

It works perfectly OOTB. I had to enable High Current to get it to charge my iPad because unlike the ASM1042 the FL1100 also functions in USB2.0 mode and this is what the iPad connects to.

 

With Clover this was just a case of enabling the Devices\USB\HighCurrent setting.

 

This is the thread where I read about the issues with MacPros.

Link to comment
Share on other sites

Riley, I think you refer to this sentence:

 

There are also nearly identical PCI-cards from Inatech for WINDOWS!
So - make shure you got the right PCI-card (the KT 4004 and NOT the wrong one)

 

... and yours was also labelled as compatible, while mine is not. Hmmmm.

 

Otherwise, thanks for the information! I ordered the card nonetheless, so I cross my fingers it will work, since this seems to be the only version of these fitting to my needs. Otherwise it almost seems I actually would need TWO of those :( Damn ASM1042 chip ...

Link to comment
Share on other sites

Let us know how it works out. I really don't need many USB3 ports (I only use one of the front-panel ones for iPad charging) so the KT4006 was fine for me.

 

I was never able to reliably use the rear ASM1042 ports anyway because of the VIA hubs they were attached to.

Link to comment
Share on other sites

OK installed the card, disabled the ASM1042 controller and deleted GenericUSBXHCI.kext.

 

Well, it works .... kind of. What really baffles me though is that my iOS Devices are now shown under a (non existing) USB2.0 Hub. My Android devices show USB3 though.

 

Here it is what it looks like in System profiler:

 

BUwTbCl.png

 

Any ideas? Did I miss some DSDT edits?

 

Edit: OK, it seems to be depending on which USB port on the card I use. Seems the outer two ports are only running as USB2, but they should not? I also now have additional charging support enabled by changing the clover config accordingly. So the remaining issue is that not all ports seem to be recognized as USB3. (Front panel ports are USB3 as well, and show 5Gbit/s with a USB3 drive, so it looks like only the 2 outer ports on the card are affected)

 

Any help appreciated! Other than that, the card indeed seems to work!

Link to comment
Share on other sites

I'm guessing your card may have a VIA hub. Or maybe something is engaging the onboard ones (like a DSDT fix or USB injector)? I know my X79 has VIA hubs for some of the rear ASM1042 ports.

 

Interestingly, I just tried my iPad for the first time since moving from using DSDT-injected fixes to Clover ones. And the iPad wouldn't charge. Looking through the IOreg with my DSDT fix the current properties were injected under the device while Clover was putting them under the PCIe slot. I fixed it by adding a EFI string seeing as I'm using one for the graphics as well. But if HighCurrent works for you that's good.

 

I've attached a shot of how the card looks here in 10.11.1 with my phone and iPad attached. As you can see there's no sign of any hub.

post-267996-0-18832800-1445455721_thumb.png

Link to comment
Share on other sites

Yeah maybe they added a hub bc the card has so many ports. Well, I can live with that - or I even have to I guess. But I have encountered another problem: when I sleep the machine, the devices just stop charging and they still dont when I wake up again. But even worse, connecting and disconnecting does not seem to be recognized anymore. Devices I disconnect still show as connected in Sys Profiler, and newly added devices are simply not recognized. Ugh, not good. Do you have the same behavior?

 

Edit: after a while, I also see a lot of these messages in the console:

21.10.15 23:21:19,224 com.apple.usbmuxd[80]: DeviceRequestAsync failed: 0xe00002c0

and I also found this (immediatly after wake):

21.10.15 23:15:27,000 kernel[0]: USBF:    193.934    AppleUSBXHCI::RestoreControllerStateFromSleep - Error restoring controller state USBSTS = 0x411
Link to comment
Share on other sites

I'm not getting any console errors like that here. I never use sleep on my desktops so I haven't given it much of a look. However...

 

The iPad won't charge on wake but if I plug it into a different port (from front to rear or vice versa) it will. USB sticks remount on wake and there's no ghost devices in System Profiler.

 

I'm thinking having hubs in the mix might be the cause of your problems. Maybe it was sleep issues that the folks in that MacPro thread were having.

 

Looking at the other Inateck cards, there's a 4-port one that doesn't have the Via chip. However it lacks a front-panel connector. There's even a 7-port one for Mac Pros that has a Via chip.

Link to comment
Share on other sites

Hmm, seems like the wakeup problems are directly related to the Clover settings to enable extra current.

 

First, to enable that I have to use all of these settings: "Inject", "Add ClockID" and "HighCurrent". "Fix Ownership" does not seem to make any difference.

 

So if I enable additional charging support, devices are gone on wake, but still being visible in SysProfiler (even if I disconnect them!) And then, I also saw a line I never saw before with my old config:

Sleep current (mA):	2100

(But device does NOT charge while being in sleep)

 

Now, if I do NOT enable these settings, I do not have charging support, but the devices DO function properly after wake.

 

Oh my ... will these USB problems ever end?

 

I am totally baffled by these results, any help would be greatly appreciated!


Edit: I applied the patches listed below and the problem seems to be solved, only thing is that charging while sleeping still does not work.

 

http://www.insanelymac.com/forum/files/file/150-patched-appleusbxhci/

 

Now, lets see if we get all of this to work in 10.11 as well ....

Link to comment
Share on other sites

During my sleep testing I rolled back to my previous Clover config where I use a SSDT to do all the injecting and I still lost iPad charging on wake.

 

However if you want to try this, use IORegistryExplorer to check the name of the slot that the PCIe card is connected to. In my case it's NPE1 but it could be something like PEX0. Then I'll make a minimal SSDT containing just the injections needed for the card. Drop it into Clover's ACPI\Patched folder and we'll see what happens.

 

Are you currently using a DSDT to fix stuff or just Clover config properties?

Link to comment
Share on other sites

Are you currently using a DSDT to fix stuff or just Clover config properties?

 

Actually, its a mix:

 

* DSDT for fixing my USB2 IRQ problems (apparently not doable by just using a SSDT)

* SSDT for CPU PM

* SSDT for the rest (builtin Ethernet, HDA etc)

 

Actually I would prefer using hand tooled SSDT patches for USB instead of using Clover patches, and at the same time also needing kext patches as well to workaround problems using these Clover patches

 

So if you have such a SSDT for your USB I would be glad if you could share it! I admit creating SSDTs is not my  strengh ....

Link to comment
Share on other sites

Here's my "SSDT for the rest". You just need the NPE1 section as that's where I have the card. It might be called something else for you (it depends on the slot the card is in). You can find this out with IORegistryExplorer.

 

Just add the section with the necessary edits. You'll also have to add it to the list at the top of the SSDT. Then you'll need to change the MCDP line at the end with the usual DTGP one as that's probably what your SSDT has.

 

This should get you iPad charging before sleep without needing any Clover fixes or injections. It doesn't charge during sleep here or on wake but I've never tried that before so it may be a BIOS/sleep setting here. As I said, I never use sleep on my desktops so it's something I've rarely touched on.

SSDT.zip

  • Like 1
Link to comment
Share on other sites

Thank you! So I will try this and see if that works better than using Clover patching. But I guess since you also loose charging power when waking one still needs the kext patches I mentioned. Unfortunately those patches are only applicable to 10.9 / 10.10 so I dont know whats the solution for 10.11.

 

Ultimately I think it might not be possible to regain charging power on sleep or even shutdown, since I guess its a hardware limit and I also did not found anything in BIOS regarding that topic. I guess the mobo simply cuts down PCI power completely when sleeping.

 

Yeah, a real disadvantage for me since now I cannot charge my devices overnight anymore. :( On the other hand the ASM1042 chip is apparently simply dead when it comes down to 10.11 ... and as you do not regain chargin power when waking and there seem to be no patches for 10.11 (yet) the situation even gets worse, at least for me.

 

So any additional ideas or hints would be of course greatly appreciated!

Link to comment
Share on other sites

  • 2 weeks later...

OK, so I managed at least to enable additional charging using a similar SSDT as you provided.

 

But still, I cannot get my devices back when waking from sleep without  a certain patch from here: http://www.insanelymac.com/forum/files/file/150-patched-appleusbxhci/

To be precise, this one: "Disable the sleep code leaving the controller in non-working state after wake"

 

Now, this patch only applies to 10.10 so I am still stuck and cannot upgrade to 10.11. Plus, when I boot from my USB3 drive in my 10.11 test installation, the system hangs after wake, apparently because of the same problem, so it seems to be also with 10.11

 

And if I leave this patch out (on 10.10), I get the following USB related messages in the console:

01.11.15 21:18:44,000 kernel[0]: USB (XHCI Root Hub USB 2.0 Simulation):Port 2 on bus 0x1 connected or disconnected: portSC(0x206e1)
01.11.15 21:18:44,000 kernel[0]: USB (XHCI Root Hub USB 2.0 Simulation):Port 3 on bus 0x1 connected or disconnected: portSC(0x206e1)
01.11.15 21:18:44,000 kernel[0]: USBF:    323.373    USB (XHCI):Port 7 on bus 0x1 - connect status changed but still enabled. clearing enable bit: portSC(0x21203)
01.11.15 21:18:44,000 kernel[0]: USBF:    323.374    AppleUSBXHCI::RestoreControllerStateFromSleep - Error restoring controller state USBSTS = 0x411
01.11.15 21:18:44,000 kernel[0]: The USB device USB3.0 Hub (Port 3 of Hub at 0x3000000) may have caused a wake by issuing a remote wakeup (3)
01.11.15 21:18:45,000 kernel[0]: USBMSC Identifier (non-unique): 000000009744 0x5e3 0x716 0x9744, 2

So any help would be really really relly appreciated since I am slowly going mad on this :mad:

 

Riley, can you check if your devices actually are alive when waking? Since you also loose charging, your devices might be dead as well. I.e. disconnect the device and check if its actually gone in Sys Profiler. If not, you might have the same problem.

 

Any ideas, anyone?

Link to comment
Share on other sites

I just checked again with a USB2.0 stick. When I sleep/wake the machine the drive is ejected and remounted with the usual warning. It works fine though and I can read/write to it afterwards.

 

When I remove the stick and refresh system profiler the entry for it is gone. When I put the stick back into the same port it works fine and shows up in system profiler again when I refresh. So no lingering ghost entries or dead devices here.

 

I'm sure I read somewhere that 10.11 was having similar problems on real Macs. The new USB stack still needs a lot of work. But obviously you shouldn't have these problems with 10.10.

Link to comment
Share on other sites

OK, so I reworked my whole DSDT / SSDT configuration and used the patches / SSDT from the great guide from shilohh over at TonyXXXX.  He apparently uses exactly the same USB card than I do. So far I like it very much, seems much leaner and cleaner than the solution I used before. I created / adapted a new SSDT which is a bit different and now I get the following:

  • USB3 works
  • NO clover patch for USB3 needed. Yay!
  • Devices come back after waking

BUT, now for the strange part:

  • In Sys Profiler, no extra charging power is displayed for the iPad, despite having "AAPL,current-extra" in the SSDT
  • but still, the iPad does show the charging icon, and charging is reenabled after wake. (I simply think charging while sleeping is not possible anyways for this card, it also does not charge in windows there)

Now I am confused! AFAIK, the charging icon would not show up in iPad when there is not enough power, and while the charging percent did increase, it feels like its charging very slow, so I do not know if it actually gets all the power it needs. Any way to verify that?

 

I have included the SSDT, so maybe you want to try what that does with your setup (of course you have to change the slot from "NPE7" to yours - think it was "NPE1", right?)

SSDT-2.aml.zip

Link to comment
Share on other sites

I tried that SSDT and it worked much the same as my old one. Devices were still available after wake, but no iPad charging (no charging icon).

 

In El Capitan I don't have any required/available/extra current displayed in system profiler for the USB3 ports, only for the USB2 ones. So I checked in my old Mavericks install (skipped Yosemite here). There I have the current readings but on wake I lose any attached devices (with both SSDTs). So El Capitan works a little better in that regard.

Link to comment
Share on other sites

I've been doing some more messing around here. Trying to get my card to behave as close as possible to the onboard FL1100 controller of the MacPro6,1.

 

With my old SSDT (slightly tweaked with extra AAPL current properties) in Mavericks the IOReg entries are an almost complete match for the IOReg dump I have from a real MP6,1. So I wanted to get the card to match the MP6,1 XHC1 entry in AppleUSBXHCIPCI on El Capitan.

 

I took a look at RampageDev's current SSDT for my board and saw that he's injecting a bunch of port names and properties for the onboard (ASM1042) ports. So I copied all of that section and added it to my XHC entry. Now the ports show up in IOReg as HS01 to SSP4 and I lose the AppleUSBXHCI::createPorts: console spam on boot.

 

Anyway, the outcome of this is that the iPad now continues charging after wake in El Capitan. In Mavericks the ports are still dead on wake.

 

I still don't have any current (or speed as I've noticed) information displayed for the iPad in System Profiler. I think it might be related to this console entry I get when I refresh it:

 

system_profiler[415]: SPUSBDevice: IOServiceGetMatchingService did not return anything for location 0x00300000
 

Because the card has the same number of ports as the MP6,1 I used Clover's infoplist patch to change the MacPro6,1-XHC1 entry in AppleUSBXHCIPCI to MacPro5,1-XHC1. I also had to use another patch to change the generic FL1100 entry so it wouldn't match. This changed the host controller in System Profiler from AppleUSBXHCIFL1100 to AppleUSBXHCIPCI. I hoped that properly naming and injecting the ports would fix the SP error, but it hasn't.

SSDT.zip

Link to comment
Share on other sites

OK, I played a bit more:

  • Adding a clock id in the SSDT entry brings back the additional charging information in Sys Profiler - but then again, devices get lost after wake, very strange ...
  • Setup also seems to work in 10.11 but I still get the problem, that si while being booted from USB (USB2 or USB3 does not matter) my system is simply dead after waking. But this is  a problem I also encountered way back while testing 10.9. At least while being booted from USB2 I hear the "Ding" coming from my iOS devices when waking and I see the charging Icon, so this might indicate that at least these are waking correctly. But hard to tell since as I said the rest of my system is more or less dead (can still use the mouse, but as soon as the system tries to load anything from disk, I get a never ending beachball).
  • As you, I do not see any charging information at all when being booted in 10.11. But I still see the charging Icon on iPad and iPhone, as in 10.10
  • I still think the card does not have as much power as the ASM1042. While being using the iPad (connected) I actually loose charge, something which hasnt happened before. Also charging seems to be slower. Still would like to have an app or something that can actually show me how much Power the iPad is receiving, so thats still unclear to me.
  • I think using AppleUSBXHCIFL1100 is the correct way, I mean this is an extra kext for just using this chip?
  • Rampage Devs SSDT seems to try adding HUB devices to the USB2 ports, makes no sense for me and it seems it has no real effect. AFAIK he hasn't a solution for the ASM1042 USB3 (and I really think there is none anyways)
  • I seem to see all ports in Sys Profiler without doing the stuff you mentioned:

V9qVSiL.png

 

  • Are you sure the "AppleUSBXHCI::createPorts" messages are spam? I also get these but they do not seem to indicate any problem

So far so good. All in all, the bad thing is that charging does not seem to work as well as with the ASM1042 (apparently less power, no charging while sleeping or being powered down). On the other hand, the USB3 itself works way better than with ASM1042 and 10.10. No problems with (re)connecting, or ImageCapture not recognizing my devices etc.

 

One and a half step forward, one back I'd say. But if noone knows a better way, I think I will simply have to live with that.

Link to comment
Share on other sites

I call the "AppleUSBXHCI::createPorts" messages spam because they go away when I specify the ports via SSDT. I had a better look at the MP6,1 BIOS and realised that the reason I couldn't find any XHCI properties in the DSDT was because they were in a seperate SSDT. And it's much the same as the code I found in RampageDev's SSDT. So I'm injecting mostly the same code that the MacPro6,1 uses for it's FL1100 (I had to add AAPl,clock-id to make it show up as built-in in Mavericks).

 

Injecting at least some of that fixed the iPad charging on wake but I still lose the ports in Mavericks. Maybe it's the slot not waking up. Not a huge deal as I doubt I'll be going back to it (and I don't use sleep anyway), it's more the desire to know that I have things set up right.

 

AppleUSBXHCIFL1100 isn't an extra kext, it's just a specific entry in AppleUSBXHCIPCI that matches the FL1100 (presumable for expansion cards). The Clover patches I used were just to see if forcing the card to port-match the MacPro6,1 entry would fix the speed/current info. As it didn't I took them out.

Link to comment
Share on other sites

 Share

×
×
  • Create New...