Skip to content

Commit

Permalink
Update USB-Port-Configuration.md
Browse files Browse the repository at this point in the history
  • Loading branch information
SchmockLord authored Feb 10, 2022
1 parent f92acac commit d9e0762
Showing 1 changed file with 28 additions and 19 deletions.
47 changes: 28 additions & 19 deletions USB-Port-Configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## USB Port Configuration

From Feb-2022 on, I don't use the Kext-based USB-configuration anymore. Instead, we use the USB-Port configuration via SSDT (SSDT-USB-Ports-Z490-VisionD.aml).
I don't use the Kext-based USB-configuration anymore. Instead, we use the USB-Port configuration via SSDT (SSDT-USB-Ports-Z490-VisionD.aml).

The benefit of this is, that we don't need specific kexts for each SMBIOS (iMac20,2; iMacPro1,1 etc.) and it is the cleanest way of doing the USB-Port Mapping.

Expand All @@ -14,40 +14,49 @@ The benefit of this is, that we don't need specific kexts for each SMBIOS (iMac2

In my SSDT you will see the comments for each port, some are enabled, some are disabled.

Per port you have two relevant methods: GUPC and GPLD (they are Gigabyte methods that call standard methods _UPC: USB port Capabilities and _PLD: Physical Location of Device)
Per port you have two relevant methods:
- GUPC (Gigabyte variant of the standard method _UPC: USB port Capabilities)
- GPLD (Gigabyte variant of the standard method _PLD: Physical Location of Device)

e.g. GUPC (One, 0x03) means this port is enabled (one) and is a USB3-Type A (0x03) The first variable means enabled/disabled (one or 0xFF/zero or 0x00), the second variable describes the port itself.
**GUPC describes the USB-port capabilities.**

zero is the same as 0x00
one is the same as 0xFF
E.g. GUPC (One, 0x03) means this port is enabled (one) and is a USB3-Type A (0x03) The first variable means enabled/disabled (one or 0xFF/zero or 0x00), the second variable describes the port itself.

Port types:
0x00 or zero: standard USB2 port (usually black)
0x03: USB3 Type A (usually blue, red or yellow)
0x09: Type-C with switch, where it doesn't matter which direction you plug the device in, it is always the same port.
0x0A: Type-C without switch, where there are used two ports, each for one direction.
0xFF: internal devices used for RGB, Audio, Bluetooth etc.
- zero is the same as 0x00
- one is the same as 0xFF

GPLD-method describes where the port sits. E.g. GPLD (One, 0x09) means this port is available on this board (one) and has the location HS09 (0x09). HS11 e.g. would be (0x0B). SS ports start with 1 e.g. SS01 is (0x11), SS10 (0x1A).
**Port types:**
- 0x00 or zero: standard USB2 port (usually black)
- 0x03: USB3 Type A (usually blue, red or yellow)
- 0x09: Type-C with switch, where it doesn't matter which direction you plug the device in, it is always the same port.
- 0x0A: Type-C without switch, where there are used two ports, each for one direction.
- 0xFF: internal devices used for RGB, Audio, Bluetooth etc.

**GPLD-method describes the port location.**

E.g. GPLD (One, 0x09) means this port is available on this board (one) and has the location HS09 (0x09).

HS11 would be (0x0B). SS ports start with 1. E.g. SS01 is 0x11, SS10 is 0x1A.

If you don't know the Hex-names of the ports, you can use Hackintool, e.g. Decimal 9 is also Hex 9 but 10 is A:
![Screen Shot 2022-02-10 at 12 01 54](https://user-images.githubusercontent.com/19785918/153393913-d64e66da-6dfc-4762-94e5-6418b84d95b6.png)


If you disable ports for macOS, you should wrap this like this, so Windows e.g. would use the Else-case where this port is enabled (0xFF) and has is a type-C with switch (0x09):

If you want to disable ports for macOS-only, you should wrap them like this:
```
If (_OSI ("Darwin"))
{
Return (GUPC (Zero, Zero))
Return (GUPC (Zero, Zero))
}
Else
{
Return (GUPC (0xFF, 0x09))
Return (GUPC (0xFF, 0x09))
}
```
_OSI ("Darwin") means "If the operating system is macOS (Darwin Kernel) do this..."

This way other OS like Windows or Linux would use the Else-case where this port is enabled (0xFF) and has is a type-C with switch (0x09).

You also need to Delete the original ACPI-table for the USB-Port Mapping: SSDT-7-xh_cmsd4.aml

![Screen Shot 2022-02-10 at 11 58 13](https://user-images.githubusercontent.com/19785918/153393316-97496e56-d6c0-44fc-a62b-c43a9f1656d0.png)



0 comments on commit d9e0762

Please sign in to comment.