headkaze Posted March 31, 2020 Share Posted March 31, 2020 (edited) I don't currently have OpenCore working so I'm providing this information for whomever wants to take up the task of writing this quirk. This is based on information from USBInjectAll by Rehabman. Please take a look at the following file: https://github.com/Sniki/OS-X-USB-Inject-All/blob/master/USBInjectAll/USBInjectAll-Info.plist Essentially the USBInjectAll Quirk should inject the following ports if the appropriate PCI controller is present. EDIT: @vit9696 has stated that OpenCore will not inject ACPI data and therefore a quirk like this is likely never to exist. PR11 = 0x1D100000 (HUB1) PR21 = 0x1A100000 (HUB2) PR11 = 0x1D1x0000 (HPxx) PR21 = 0x1A1x0000 (HPxx) XHCx - 0x14xx0000 (HSxx, SSxx) EHx1 - 0x1Dxx0000 (PRxx) EHx2 - 0x1Axx0000 (PRxx) 1. Enumerate PCI device's - Read device-id, vendor-id 2. Intel only - vendor-id != 0x8086 continue 3. device-id == 0x1c26 * Inject EHx1 ports: - name: PR11, PR12, PR13, PR14, PR15, PR16, PR17, PR18 - port (Data): 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8 - UsbConnector: 255 (PR11), 0 (PR12 - PR18) - locationID: 0x1Dxx0000 - IOProviderClass: AppleUSBEHCIPCI - port-count (Data): 0x8 * Inject HUB1 ports: - name: HP11, HP12, HP13, HP14, HP15, HP16, HP17, HP18 - port (Data): 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8 - portType: 0 - locationID: 0x1D1x0000 - IOProviderClass: AppleUSB20InternalHub - port-count (Data): 0x8 4. device-id == 0x1c2d * Inject EHx2 ports: - name: PR21, PR22, PR23, PR24, PR25, PR26 - port (Data): 0x1, 0x2, 0x3, 0x4, 0x5, 0x6 - UsbConnector: 255 (PR21), 0 (PR22 - PR26) - locationID: 0x1Axx0000 - IOProviderClass: AppleUSBEHCIPCI - port-count (Data): 0x6 * Inject HUB2 ports: - name: HP21, HP22, HP23, HP24, HP25, HP26, HP27, HP28 - port (Data): 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8 - portType: 0 - locationID: 0x1A1x0000 - IOProviderClass: AppleUSB20InternalHub - port-count (Data): 0x8 5. device-id == 0x1e31, 0x8xxx, 0x9cb1, 0x9dxx, 0x9xxx, 0xa12f, 0xa2af, 0xa36d * Inject XHCx ports: - 8086_1e31: HS01, HS02, HS03, HS04, SS01, SS02, SS03, SS04 - 8086_8xxx: HS01, HS02, HS03, HS04, HS05, HS06, HS07, HS08, HS09, HS10, HS11, HS12, HS13, HS14, SS01, SS02, SS03, SS04, SS05, SS06 - 8086_9cb1: HS01, HS02, HS03, HS04, HS05, HS06, HS07, HS08, HS09, HS10, HS11, SS01, SS02, SS03, SS04 - 8086_9dxx: HS01, HS02, HS03, HS04, HS05, HS06, HS07, HS08, HS09, HS10, SS01, SS02, SS03, SS04, SS05, SS06, USR1, USR2 - 8086_9xxx: HS01, HS02, HS03, HS04, HS05, HS06, HS07, HS08, HS09, SS01, SS02, SS03, SS04 - 8086_a12f: HS01, HS02, HS03, HS04, HS05, HS06, HS07, HS08, HS09, HS10, HS11, HS12, HS13, HS14, SS01, SS02, SS03, SS04, SS05, SS06, SS07, SS08, SS09, SS10, USR1, USR2 - 8086_a2af: HS01, HS02, HS03, HS04, HS05, HS06, HS07, HS08, HS09, HS10, HS11, HS12, HS13, HS14, SS01, SS02, SS03, SS04, SS05, SS06, SS07, SS08, SS09, SS10, USR1, USR2 - 8086_a36d: HS01, HS02, HS03, HS04, HS05, HS06, HS07, HS08, HS09, HS10, HS11, HS12, HS13, HS14, SS01, SS02, SS03, SS04, SS05, SS06, SS07, SS08, SS09, SS10, USR1, USR2 - port (Data): 0x1, 0x2, ... n - UsbConnector: 3 - locationID: 0x14xx0000 - IOProviderClass: AppleUSBXHCIPCI - port-count (Data): n Edited March 31, 2020 by headkaze 7 Link to comment https://www.insanelymac.com/forum/topic/343207-usbinjectall-quirk/ Share on other sites More sharing options...
MacNB Posted April 2, 2020 Share Posted April 2, 2020 On 3/31/2020 at 7:46 PM, headkaze said: I don't currently have OpenCore working so I'm providing this information for whomever wants to take up the task of writing this quirk. This is based on information from USBInjectAll by Rehabman. Please take a look at the following file: https://github.com/Sniki/OS-X-USB-Inject-All/blob/master/USBInjectAll/USBInjectAll-Info.plist Essentially the USBInjectAll Quirk should inject the following ports if the appropriate PCI controller is present. EDIT: @vit9696 has stated that OpenCore will not inject ACPI data and therefore a quirk like this is likely never to exist. PR11 = 0x1D100000 (HUB1) PR21 = 0x1A100000 (HUB2) PR11 = 0x1D1x0000 (HPxx) PR21 = 0x1A1x0000 (HPxx) XHCx - 0x14xx0000 (HSxx, SSxx) EHx1 - 0x1Dxx0000 (PRxx) EHx2 - 0x1Axx0000 (PRxx) 1. Enumerate PCI device's - Read device-id, vendor-id 2. Intel only - vendor-id != 0x8086 continue 3. device-id == 0x1c26 * Inject EHx1 ports: - name: PR11, PR12, PR13, PR14, PR15, PR16, PR17, PR18 - port (Data): 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8 - UsbConnector: 255 (PR11), 0 (PR12 - PR18) - locationID: 0x1Dxx0000 - IOProviderClass: AppleUSBEHCIPCI - port-count (Data): 0x8 * Inject HUB1 ports: - name: HP11, HP12, HP13, HP14, HP15, HP16, HP17, HP18 - port (Data): 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8 - portType: 0 - locationID: 0x1D1x0000 - IOProviderClass: AppleUSB20InternalHub - port-count (Data): 0x8 4. device-id == 0x1c2d * Inject EHx2 ports: - name: PR21, PR22, PR23, PR24, PR25, PR26 - port (Data): 0x1, 0x2, 0x3, 0x4, 0x5, 0x6 - UsbConnector: 255 (PR21), 0 (PR22 - PR26) - locationID: 0x1Axx0000 - IOProviderClass: AppleUSBEHCIPCI - port-count (Data): 0x6 * Inject HUB2 ports: - name: HP21, HP22, HP23, HP24, HP25, HP26, HP27, HP28 - port (Data): 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8 - portType: 0 - locationID: 0x1A1x0000 - IOProviderClass: AppleUSB20InternalHub - port-count (Data): 0x8 5. device-id == 0x1e31, 0x8xxx, 0x9cb1, 0x9dxx, 0x9xxx, 0xa12f, 0xa2af, 0xa36d * Inject XHCx ports: - 8086_1e31: HS01, HS02, HS03, HS04, SS01, SS02, SS03, SS04 - 8086_8xxx: HS01, HS02, HS03, HS04, HS05, HS06, HS07, HS08, HS09, HS10, HS11, HS12, HS13, HS14, SS01, SS02, SS03, SS04, SS05, SS06 - 8086_9cb1: HS01, HS02, HS03, HS04, HS05, HS06, HS07, HS08, HS09, HS10, HS11, SS01, SS02, SS03, SS04 - 8086_9dxx: HS01, HS02, HS03, HS04, HS05, HS06, HS07, HS08, HS09, HS10, SS01, SS02, SS03, SS04, SS05, SS06, USR1, USR2 - 8086_9xxx: HS01, HS02, HS03, HS04, HS05, HS06, HS07, HS08, HS09, SS01, SS02, SS03, SS04 - 8086_a12f: HS01, HS02, HS03, HS04, HS05, HS06, HS07, HS08, HS09, HS10, HS11, HS12, HS13, HS14, SS01, SS02, SS03, SS04, SS05, SS06, SS07, SS08, SS09, SS10, USR1, USR2 - 8086_a2af: HS01, HS02, HS03, HS04, HS05, HS06, HS07, HS08, HS09, HS10, HS11, HS12, HS13, HS14, SS01, SS02, SS03, SS04, SS05, SS06, SS07, SS08, SS09, SS10, USR1, USR2 - 8086_a36d: HS01, HS02, HS03, HS04, HS05, HS06, HS07, HS08, HS09, HS10, HS11, HS12, HS13, HS14, SS01, SS02, SS03, SS04, SS05, SS06, SS07, SS08, SS09, SS10, USR1, USR2 - port (Data): 0x1, 0x2, ... n - UsbConnector: 3 - locationID: 0x14xx0000 - IOProviderClass: AppleUSBXHCIPCI - port-count (Data): n Good info. What would the advantage be for a Quirk vs. the USBInjectAll.kext ? Also, that kext is meant to be a temporary injector till you have found all the ports. Link to comment https://www.insanelymac.com/forum/topic/343207-usbinjectall-quirk/#findComment-2715117 Share on other sites More sharing options...
headkaze Posted April 2, 2020 Author Share Posted April 2, 2020 2 minutes ago, MacNB said: Good info. What would the advantage be for a Quirk vs. the USBInjectAll.kext ? Also, that kext is meant to be a temporary injector till you have found all the ports. Convenience mainly. It would work alongside the XHCIPortLimit quirk which is also meant to be temporary. I spoke to vit9696 and he said it's unlikely they will add ACPI injection to OC so I don't think it's possible anyway. I'll leave the post in case the situation changes. Link to comment https://www.insanelymac.com/forum/topic/343207-usbinjectall-quirk/#findComment-2715119 Share on other sites More sharing options...
rottenpants Posted April 2, 2020 Share Posted April 2, 2020 2 hours ago, headkaze said: Convenience mainly. It would work alongside the XHCIPortLimit quirk which is also meant to be temporary. I spoke to vit9696 and he said it's unlikely they will add ACPI injection to OC so I don't think it's possible anyway. I'll leave the post in case the situation changes. Just a quick question, for proper usb do i have to use USBInjectAll.kext and SSDT-EC.aml (already with the correct ports) simultaneously? Or can i simply use the SSDT without the kext? Cheers Link to comment https://www.insanelymac.com/forum/topic/343207-usbinjectall-quirk/#findComment-2715173 Share on other sites More sharing options...
headkaze Posted April 2, 2020 Author Share Posted April 2, 2020 40 minutes ago, rottenpants said: Just a quick question, for proper usb do i have to use USBInjectAll.kext and SSDT-EC.aml (already with the correct ports) simultaneously? Or can i simply use the SSDT without the kext? Cheers Choose between SSDT-UIAC.aml + USBInjectAll.kext OR USBPorts.kext 1 1 Link to comment https://www.insanelymac.com/forum/topic/343207-usbinjectall-quirk/#findComment-2715178 Share on other sites More sharing options...
rottenpants Posted April 2, 2020 Share Posted April 2, 2020 41 minutes ago, headkaze said: Choose between SSDT-UIAC.aml + USBInjectAll.kext OR USBPorts.kext Thanks Link to comment https://www.insanelymac.com/forum/topic/343207-usbinjectall-quirk/#findComment-2715183 Share on other sites More sharing options...
Simonej Posted April 2, 2020 Share Posted April 2, 2020 1 hour ago, headkaze said: Choose between SSDT-UIAC.aml + USBInjectAll.kext OR USBPorts.kext Following the rottenpants's question, Hackintool is usually generating SSDT-UIAC.aml + SSDT-USBX.aml + SSDT-EC.aml + USBPorts.kext; - SSDT-UIAC.aml is provided to use with USBInjectAll.kext - USBPorts.kext is meant to be used alone - Should we use SSDT-USBX.aml + SSDT-EC.aml created by Hackintool or the standard from OpenCore? (for a Skylake+ system and Mac OS Mojave or Catalina) THANKS! Link to comment https://www.insanelymac.com/forum/topic/343207-usbinjectall-quirk/#findComment-2715188 Share on other sites More sharing options...
rottenpants Posted April 3, 2020 Share Posted April 3, 2020 (edited) If i'm not mistaken (for Skylake+) we can just use SSDT-USBX.aml from OC/ACPI Samples since it already has the usb power properties. So with one SSDT we inject usb power properties and fix the EC. Edited April 3, 2020 by rottenpants Link to comment https://www.insanelymac.com/forum/topic/343207-usbinjectall-quirk/#findComment-2715247 Share on other sites More sharing options...
headkaze Posted April 3, 2020 Author Share Posted April 3, 2020 (edited) On 4/2/2020 at 2:32 PM, Simonej said: Following the rottenpants's question, Hackintool is usually generating SSDT-UIAC.aml + SSDT-USBX.aml + SSDT-EC.aml + USBPorts.kext; - SSDT-UIAC.aml is provided to use with USBInjectAll.kext - USBPorts.kext is meant to be used alone - Should we use SSDT-USBX.aml + SSDT-EC.aml created by Hackintool or the standard from OpenCore? (for a Skylake+ system and Mac OS Mojave or Catalina) For anyone else curious we're talking about the files located @ OpenCorePkg/tree/master/Docs/AcpiSamples There isn't much difference between them. The main difference is it has ACPI you can uncomment to match your existing embedded controller of PNP0C09 type. For Hackintool the file is only generated if it finds this entry in IORegistry. Also the SSDT-EC-USBX.dsl file provided in OC's AcpiSample folder is a combination of both the SSDT-USBX and SSDT-EC files. USBX is for USB power properties and the EC adds AppleBusPowerController. Edited April 4, 2020 by headkaze 1 Link to comment https://www.insanelymac.com/forum/topic/343207-usbinjectall-quirk/#findComment-2715346 Share on other sites More sharing options...
headkaze Posted April 4, 2020 Author Share Posted April 4, 2020 On 4/2/2020 at 2:32 PM, Simonej said: - Should we use SSDT-USBX.aml + SSDT-EC.aml created by Hackintool or the standard from OpenCore? To stay in line with the OpenCore project I've updated Hackintool v3.7.7 so it will no longer prompt to rename EC0, H_EC or ECDV controllers to EC. Also it will now combine both USB power and EC entries into SSDT-EC-USBX. If you have an existing controller with the PNP0C09 name it will also automatically include it in the aml. 2 Link to comment https://www.insanelymac.com/forum/topic/343207-usbinjectall-quirk/#findComment-2715427 Share on other sites More sharing options...
nmano Posted April 4, 2020 Share Posted April 4, 2020 X299 WU8 8086_a2af: HS01, HS02, HS03, HS04, HS05, HS06, HS07, HS08, HS09, HS10, HS11, HS12, HS13, HS14, SS01, SS02, SS03, SS04, SS05, SS06, SS07, SS08, SS09, SS10, USR1, USR2 If I want to disable port HS07 HS08 SS07 SS08 How to do in USBPorts.kext.zip? 1 Link to comment https://www.insanelymac.com/forum/topic/343207-usbinjectall-quirk/#findComment-2715441 Share on other sites More sharing options...
headkaze Posted April 5, 2020 Author Share Posted April 5, 2020 19 hours ago, nmano said: If I want to disable port HS07 HS08 SS07 SS08 How to do in USBPorts.kext.zip? You remove the ports from the Hackintool using the "Delete" button before you export the file. 1 Link to comment https://www.insanelymac.com/forum/topic/343207-usbinjectall-quirk/#findComment-2715560 Share on other sites More sharing options...
nmano Posted April 18, 2020 Share Posted April 18, 2020 On 4/5/2020 at 12:40 PM, headkaze said: You remove the ports from the Hackintool using the "Delete" button before you export the file. USB 3.0 19PIN to USB 2.0 9PIN Cable Adapter My Motherboard not have USB2 Header.I am using this adapter.When I connect this Adapter Sleep not work If remove this adapter sleep worked. How to fix this issue? I try to disable ports but sleep not work. Link to comment https://www.insanelymac.com/forum/topic/343207-usbinjectall-quirk/#findComment-2717943 Share on other sites More sharing options...
Recommended Posts