Issues trying to match SSDT-UIAC with DSDT (USBInjectAll.kext) High Sierra
- I have carefully read RehabMan’s extensive work concerning USB drivers (including USB3) solutions.
[Guide] 10.11+ USB changes and solutions
USBInjectAll.kext
[Guide] creating a custom SSDT for USBInjectAll.kext
- USBInject successfully injects USB2 ports (EH01, EH02).
- UIA_EXCLUDE [Edit: working great @RehabMan: Thank you for catching the typo (-)uia_exclude]
Ok to exclude specific ports such as the internal card reader with uia_exclude=HP22
Problems I could not solve
SLEEP
-Lost computer sleep as soon as USBInject.kext is loaded at boot. try to unload it before sleep but once injected USB stays active.
SSDTUIAC - DSDT
-Could not change XHC1 and XHCI to XHC since XHC is already used in DSDT [
Edit: ReHabMan answered: renaming is not optional. See next post. I had to do it manually in DSDT]
-Had to use PRTx instead of PRx since it is already used in DSDT
BIOS [
Edit:
XHCI Auto at Bios is OK with Clover <Devices><USB> Inject=Yes Fix Ownership=Yes]
Before Edit: -Could not boot with XHCI enabled or Auto at Bios
Boot gets stuck at
AppleUSBLegacyRoot0: AppleUSBLegacyRoot::Init:: enabling legacy matching
XHCI is thus disabled and XHCx does not appear in IO Registry
After Edit: XHC1 and FakePCIID_XHCIMux appears successfully.
External USB port appear as internal [
Edit : As explained in ReHabMan's
guide, "FakePCIID_XHCIMux.kext has the effect of moving all HSxx ports to EHCI (to the internal hub on EH01.PR11)"]
The 2 external USB2/USB3 ports in IO Registry under
AppleUSB20InternalIntelHub.
No Clover USB fix or injection used
Any advice would be greatly appreciated as always
—————
Test computer
UX31a Zenbook (MacBookAir5,2 High Sierra)
Intel(R) Core(TM) i5-3317U CPU @ 1.70GHz
Intel Series 7 chipset (Panther Point.)
DSDT (clean) reveals
Device (
XHC1) - Method _PRW
Device (
EHC1) - Method _PRW
Device (
EHC2) - Method _PRW
_SB.PCI0
Device (
XHC) RHUB
HSP1…
HSP4 = Name (UPCP 0xFF, 0x03, Zero, Zero)
SSP1…
HSP4 = Name (UPCP 0xFF, 0x03, Zero, Zero)
Device (
EHC1) RHUB
PRT1…
PRT6 = Name (UPCP Zero, 0xFF, Zero, Zero)
Device (
EHC2) RHUB
PRT1…
PRT6 = Name (UPCP Zero, 0xFF, Zero, Zero
_SB.PCI0.
EHC1.RHUB.PRT1.PRT5
Device (DCAM)
Name already used in DSDT
XHCI, XHC, XHC1, XHCB, PR01, PR02, PR2, PR3
Name not used in DSDT
EH01 EH02 PR1
Clover:
change EHC1 to EH01
change EHC2 to EH02
IO Registery;
EH01@1D
EH01@1d000000
PRT1@1d100000
IOUSBHostDevice@1d100000
AppleUSBHostLegacyClient
AppleUSB20InternalIntelHub@1d100000
HP11@1d110000
USB-PS/2 Optical Mouse@1d110000
SSDT-UIAC constructed
"
EH01", Package()
{ "port-count", Buffer() { 6, 0, 0, 0 },
"ports", Package()
{"
PRT1", Package()
{ ”UsbConnector",
255,
"port", Buffer() { 1, 0, 0, 0 },
"
XHC", Package() // 7-Series Chipset "8086_1e31" //DSDT Device (XHC)
{"port-count", Buffer() { 8, 0, 0, 0 },
"ports", Package()
{ ”
HSP1", Package()
{ "UsbConnector",
3,
"port", Buffer() { 1, 0, 0, 0 },