Contribute
Register

[Guide] Creating a Custom SSDT for USBInjectAll.kext

man, and generate uiac also for my 3 usb ports. so i can remove 15port limit patch now ?

Your ioreg shows you injected only for two USB3 ports.
Is that correct?

You have the wrong UsbConnector value for PR11. The correct values are in SSDT-UIAC-ALL.dsl.
Also you will need to configure HUB1.
You may also need FakePCIDI_XHCIMux (if you plan to continue to use the EHCI controller).
 
yes, i only have two usb3.0 external ports and one usb2.0.
is it better to disable EHCI controller?
 
ok, done.
still no go for lexar usb3.0 drive.
 

Attachments

  • debug_10708.zip
    2 MB · Views: 80
yes, i only have two usb3.0 external ports and one usb2.0.
is it better to disable EHCI controller?
ok, done.
still no go for lexar usb3.0 drive.

It does not appear you eliminated unused ports from HUB1.
And yes, you should probably disable EHCI and use only XHC.
 
do you have a guide for disabling ehci? cant find how to do that.
i left port14 and port16 since i read that it might be used by bluetooth and sdcard reader. the other ports are ok.
 
do you have a guide for disabling ehci? cant find how to do that.

You can find files linked from my ACPI hotpatch guide.

i left port14 and port16 since i read that it might be used by bluetooth and sdcard reader. the other ports are ok.

You should know which ports are used by looking at ioreg.
 
No "Problem Reporting" files attached.
Read FAQ, "Problem Reporting" again. Carefully. Attach all requested files/output.
https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/
Use the tool mentioned in the FAQ, that way it is less likely you'll omit something.

I believe the issue is fixed.

1) Installed USBInjectAll,kext into \L\E and made sure it was loaded successfully. This took care of the USB 3.0 flash drive disconnecting. Not sure why, because ioreg didn't seem to change.
2) After reading some forums, I heard there was a firmware update for my WD drive. Flashed the firmware and not more disconnects. USB 3.0 speeds.

Thanks.
 
1) Installed USBInjectAll,kext into \L\E and made sure it was loaded successfully. This took care of the USB 3.0 flash drive disconnecting. Not sure why, because ioreg didn't seem to change.

As per post #1, this guide is all about configuring USBInjectAll.kext with ACPI.
As one might expect, without USBInjectAll.kext installed, the SSDT has no effect.

2) After reading some forums, I heard there was a firmware update for my WD drive. Flashed the firmware and not more disconnects. USB 3.0 speeds.

Make sense that a firmware update for a device might fix a device specific problem.
 
Hi @RehabMan

I spoke with you yesterday re my system and following that discussion decided to install 10.13.2 which I have now done (HFS-J)

I would like to get USB working correctly but I would need help if you are prepared to do that. The guides are above my level of understanding, so I hope you will indulge me, I can follow instructions accurately and I have rudimentary knowledge, willing to learn.

I have set in BIOS XHCI mode to enabled as suggested.

Re port discovery, I went through this previously when you helped me with an injector Kext (For El Capitan). I identified the ports as below

GAZ87HD3-Map.jpg

I may be asking a stupid question, but I identified these I believe when on EHC so do I need to do the whole thing again while on XHC? Hope that makes sense

EDIT, ATTACHED FILES
 

Attachments

  • debug_2966.zip
    1.9 MB · Views: 74
Last edited:
well, i cant. i tried this code :

// Disabling EHCI #1

DefinitionBlock("", "SSDT", 2, "hack", "D-EHCI", 0)
{
External(_SB.PCI0, DeviceObj)
External(_SB.PCI0.EH01, DeviceObj)
External(_SB.PCI0.LPCB, DeviceObj)

// registers needed for disabling EHC#1
Scope(_SB.PCI0.EH01)
{
OperationRegion(RMP1, PCI_Config, 0x54, 2)
Field(RMP1, WordAcc, NoLock, Preserve)
{
PSTE, 2 // bits 2:0 are power state
}
}
Scope(_SB.PCI0.LPCB)
{
OperationRegion(RMP1, PCI_Config, 0xF0, 4)
Field(RMP1, DWordAcc, NoLock, Preserve)
{
RCB1, 32, // Root Complex Base Address
}
// address is in bits 31:14
OperationRegion(FDM1, SystemMemory, (RCB1 & Not((1<<14)-1)) + 0x3418, 4)
Field(FDM1, DWordAcc, NoLock, Preserve)
{
,13, // skip first 13 bits
FDE2,1, // should be bit 13 (0-based) (FD EHCI#2)
,1,
FDE1,1, // should be bit 15 (0-based) (FD EHCI#1)
}
}
Scope(_SB.PCI0)
{
Device(RMD2)
{
Name(_HID, "RMD20000")
Method(_INI)
{
// disable EHCI#1
// put EHCI#1 in D3hot (sleep mode)
^^EH01.PSTE = 3
// disable EHCI#1 PCI space
^^LPCB.FDE1 = 1
}
}
}
}

now I dont have usb2.0 ports, which seems obvious. but now how do they work now ?
i found ths code in one of your files:

External(_SB.PCI0.XHC, DeviceObj)

// inject properties for XHCI
Method(_SB.PCI0.XHC._DSM, 4)
{
If (!Arg2) { Return (Buffer() { 0x03 } ) }
Local0 = Package()
{
"RM,pr2-force", Buffer() { 0, 0, 0, 0 },
"subsystem-id", Buffer() { 0x70, 0x72, 0x00, 0x00 },
"subsystem-vendor-id", Buffer() { 0x86, 0x80, 0x00, 0x00 },
"AAPL,current-available", Buffer() { 0x34, 0x08, 0, 0 },
"AAPL,current-extra", Buffer() { 0x98, 0x08, 0, 0, },
"AAPL,current-extra-in-sleep", Buffer() { 0x40, 0x06, 0, 0, },
"AAPL,max-port-current-in-sleep", Buffer() { 0x34, 0x08, 0, 0 },
}
// force USB2 on XHC if EHCI is disabled
If (CondRefOf(\_SB.PCI0.RMD2) || CondRefOf(\_SB.PCI0.RMD3) || CondRefOf(\_SB.PCI0.RMD4))
{
CreateDWordField(DerefOf(Local0[1]), 0, PR2F)
PR2F = 0x3fff
}
Return(Local0)
}

but it didnt work.

what about Mux extension? should it be deleted from SLE? i did and nothing change, so i deleted.
 

Attachments

  • debug_6180.zip
    2.5 MB · Views: 76
Back
Top