Hackintool icon indicating copy to clipboard operation
Hackintool copied to clipboard

USB port

Open anhtutran37 opened this issue 4 years ago • 6 comments

Hi @headkaze I have a question. The thunderbolt type c should be set to “Internal” or "TypeC+Sw". I don't know how to set it correctly. Thank you for helping

anhtutran37 avatar Mar 31 '20 19:03 anhtutran37

I have a similar question, what is the difference between 'TypeC+Sw' and 'TypeC'?

aptonline avatar Apr 07 '20 19:04 aptonline

Hi guys, you need to check your IORegistry for the value assigned by the system. On my system, due to the fact that I have both XHC as the USB3 controller and XHC as the USBC controller, the system (Mojave latest) set the value of UsbConnector to 9. Find out your value with IORegistryExplorer tool and set it accordingly.

Normally, the value is 9 by default for such controllers, such as on my embedded USB-C on my Intel NUC9i7BEH2 but depends on hardware on your motherboard, of course.

When I was building my SSDT-UIAC.aml the values that UsbConnector can accept (per https://github.com/corpnewt/USBMap/ page) are many but mainly 0, 3, 9 and 255 (for internal OS device)

 0: Type-A connector
 1: Mini-AB connector
 2: ExpressCard
 3: USB 3 Standard-A connector
 4: USB 3 Standard-B connector
 5: USB 3 Micro-B connector
 6: USB 3 Micro-AB connector
 7: USB 3 Power-B connector
 8: Type-C connector - USB 2 only
 9: Type-C connector - USB 2 and SuperSpeed with Switch
10: Type-C connector - USB 2 and SuperSpeed without Switch
11 - 254: Reserved
255: Proprietary connector

mackonsti avatar Apr 07 '20 22:04 mackonsti

Thanks @mackonsti, out of interest do you know if choosing the correct connector for a port in Hackintool makes a difference to the actual port or it it purely cosmetic/reference in Hackintool?

aptonline avatar Apr 07 '20 22:04 aptonline

Hi @aptonline I remember discussing this with @headkaze over at InsanelyMac and he was quite clear about this, better always use the true electrical type of the connector. I do not think it's cosmetic, for sure, especially if you have an older motherboard like my Z97 that has EHCI as well as XHCI (you must have read somewhere that from High Sierra or Mojave and later, the XHCI driver takes over, even for USB 2 devices, and bypasses EHCI).

I mean, I found out about it when reading about FakePCIID.kext and saw that FakePCIID_XHCIMux.kext "routes any USB2 devices attached to the USB2 pins on the XHC ports back to EHC1. In other words, handle USB2 devices with the USB2 drivers instead of the USB3 drivers (AppleUSBEHCI vs. AppleUSBXHCI)" so no, not cosmetic in my opinion.

So a hardware USB 3.0 connector should be marked as UsbConnector=3 for example, and in the case of USB-C if we see the choices here (above) you see UsbConnector=9 as being the first and most likely correct option (supporting both normal and super-speed USBs).

I think "Switch" refers to the internal driver system, not a physical switch obviously, so "9" is a good place to start. Hopefully when you fix all this, you can test external devices with success (and expected behaviour) On my Intel NUC8i7BEH2 the connector is used for display purposes with a cable USB-C to MiniDP with excellent results. Alas, no external drive to test via USB-C or other.

mackonsti avatar Apr 08 '20 08:04 mackonsti

I have a similar question, what is the difference between 'TypeC+Sw' and 'TypeC'?

If you plugging in your USB-C cable, rotating it 180 degrees then pluging it back in lights up two separate rows green in Hackintool, then you have TypeC for both of those rows. If the same row lights up green whichever way the cable is plugged in, you have TypeC+Sw.

As for not having ports set correctly, I experienced issues with my USB dongles randomly ejecting when they were set incorrectly so there must be some magic happening.

jamesfawcett avatar Aug 28 '20 18:08 jamesfawcett

@jamesfawcett - my hack has a single physical USB-C port that is a USB 3.1 port. When I rotate a USB2 device in the USB-C port, the logical port retains a single "HS10" identity. When I rotate a USB3 device in the USB-C port, the logical port identity alternates between "SS03" and "SS04" depending on the physical connector orientation. Since my USB-C port's USB2 "orientation" behavior is different from my USB-C port's USB3 "orientation" behavior, is it correct to label HS10's Connector as "TypeC+Sw" and to label the SS03 and SS04 Connectors as "TypeC" ?

I currently have my USB-C logical ports (for the single USB-C physical port) defined as follows (as viewed in Hackintool)

  Type    Name    Location ID     Port    Connector       Comment
  XHC     HS10    0x14600000      0x0A    TypeC+Sw        Front USB-C (USB2)
  XHC     SS03    0x14A00000      0x13    TypeC           Front USB-C (USB3)
  XHC     SS04    0x14B00000      0x14    TypeC           Front USB-C (USB3)

TonyC5 avatar Jan 22 '21 14:01 TonyC5