RehabMan Posted August 23, 2015 Share Posted August 23, 2015 hi thanks buddy which solution would u prefer or how can i handle this My solution is detailed in this thread (you can look for my posts as easily as I can). I rename EHC1/EHC2 to EH01/EH02 via direct DSDT edits or via Clover config.plist/ACPI/DSDT/Patches. I leave XHC as XHC (no rename to XHC1). Those names are not used by Apple, which avoids conflicts with Apple's existing injectors. Then I build an injector kext (not "dummy" kext) to add the ports needed for the specific computer, matching on the names EHC1/EHC2/XHC. And add a hub port injector if needed, using an IOProbeScore=5000 to force recognition of my hub port injector over any system provided hub port injector. 1 Link to comment Share on other sites More sharing options...
Rocky12 Posted August 23, 2015 Share Posted August 23, 2015 ok thanks but the question is how to identify which one is the right port any help would be greatly appreciated i have attached some screen short if u want to look in i have also attached my dsdt file in the frist post untitled folder 5.zip Link to comment Share on other sites More sharing options...
RehabMan Posted August 23, 2015 Share Posted August 23, 2015 ok thanks but the question is how to identify which one is the right port any help would be greatly appreciated i have attached some screen short if u want to look in i have also attached my dsdt file in the frist post You can see the list of potential ports in your DSDT. Also you can see the active ones (where _STA returns active), in IOACPIPlane in ioreg. Link to comment Share on other sites More sharing options...
Rocky12 Posted August 23, 2015 Share Posted August 23, 2015 ok thank you so much for ur understanding and providing your help i'm gonna give it go to see what,s happen Link to comment Share on other sites More sharing options...
falanx Posted August 23, 2015 Share Posted August 23, 2015 The port-count is actually not a "count of ports", but actually the maximum value for 'port' in the 'ports' dictionary. Poor naming on the part of Apple. Ah, okey. I didn't know. Thanks for the information. Link to comment Share on other sites More sharing options...
BNZfive Posted August 24, 2015 Share Posted August 24, 2015 Does anybody know how to add xHCI data into a dsdt that doesn't have any? Or would anyone be willing to edit one for me?I have a GA-H61N-USB3 rev 1 board. DSDT from phonymacx86.com repositoryUsing F8 bios.The board uses the FL1009 USB3 chipset, which is basically the same as the FL1100 chipset albeit minus 2 ports.The FL1100 chipset is natively supported, so maybe with some kept editing and a proper DSDT I would be able to boot with USB3 enabled. Currently it must be disabled USB3 in the bios, with it disabled it breaks sleep in both 10.10 and 10.11.Thank you,BNZ EDIT- I made some non-usb3 edit (graphics, AHCI, sata, etc) to the "original" DSDT. I have attached my current version and a IO dump. DSDT.aml.zip bc2’s-iMac.ioreg.zip Link to comment Share on other sites More sharing options...
dgsga Posted August 27, 2015 Share Posted August 27, 2015 @RehabMan I came to the same conclusion as you about renaming devices and using an injector kext but I can't for the life of me get the USB3 ports active on my Asus z97 board. My DSDT is similar to chicOn's earlier on in the thread in that the address of each SSP port in determined by : Method (_ADR, 0, NotSerialized) // _ADR: Address { Return ((XSPA + Zero)) } I have tried to determine the value of XSPA using ACPIDebug and adding the line \RMDT.PUSH(XSPA) into the Method but console shows ACPIDebug loading but no output. If I look at IOACPIPlane in ioreg then i get all the SSP ports showing an _STA of 0xffffffff but the _ADR value of each changes from one boot to the next. The net result is that all USB3 devices attach to EHCA or EHCB and are seen as USB2. No devices ever attach to Device (XHC). Any help here in how to determine the port value for each SSP would be much appreciated. Link to comment Share on other sites More sharing options...
kester Posted August 27, 2015 Share Posted August 27, 2015 Does anyone know whether it is possible to patch the info.plist on the fly through Clover? Link to comment Share on other sites More sharing options...
RehabMan Posted August 27, 2015 Share Posted August 27, 2015 @RehabMan I came to the same conclusion as you about renaming devices and using an injector kext but I can't for the life of me get the USB3 ports active on my Asus z97 board. My DSDT is similar to chicOn's earlier on in the thread in that the address of each SSP port in determined by : Method (_ADR, 0, NotSerialized) // _ADR: Address { Return ((XSPA + Zero)) } I have tried to determine the value of XSPA using ACPIDebug and adding the line \RMDT.PUSH(XSPA) into the Method but console shows ACPIDebug loading but no output. If I look at IOACPIPlane in ioreg then i get all the SSP ports showing an _STA of 0xffffffff but the _ADR value of each changes from one boot to the next. The net result is that all USB3 devices attach to EHCA or EHCB and are seen as USB2. No devices ever attach to Device (XHC). Any help here in how to determine the port value for each SSP would be much appreciated. If you're using a port injector, ACPI is not used to determine the port address as it is specified by the 'ports' dictionary. So it is not unexpected that your _ADR method may not be called. But that's only guess due to incomplete information. If you want me to look at something post ioreg with IORegistryExplorer v2.1 and 'patchmatic -extract' output (so I can see the DSDT/SSDTs loaded). Link to comment Share on other sites More sharing options...
thebo Posted August 27, 2015 Share Posted August 27, 2015 I have the same problem with my ASUS Z-97 Deluxe board. I tried the Fake PCIID fix and some others. Nothing did work. Will post ioreg and the used DSDT and SSDT later also. Thank you very much for your support RehabMan! Link to comment Share on other sites More sharing options...
dgsga Posted August 27, 2015 Share Posted August 27, 2015 If you're using a port injector, ACPI is not used to determine the port address as it is specified by the 'ports' dictionary. So it is not unexpected that your _ADR method may not be called. But that's only guess due to incomplete information. If you want me to look at something post ioreg with IORegistryExplorer v2.1 and 'patchmatic -extract' output (so I can see the DSDT/SSDTs loaded). Thanks for getting back. Attached is ioreg and patchmatic output I am not convinced my XHC port values in the injector are correct. Should I just delete the XHC entry in the injector and repost ioreg? Link to comment Share on other sites More sharing options...
RehabMan Posted August 27, 2015 Share Posted August 27, 2015 Thanks for getting back. Attached is ioreg and patchmatic output I am not convinced my XHC port values in the injector are correct. Should I just delete the XHC entry in the injector and repost ioreg? The ioreg is corrupt. Please use IORegistryExplorer v2.1 as requested. XHC device in DSDT should not be named XHC1... It may cause conflicts with your port injector and injectors provided by the system. The reason you see no output from ACPIDebug for the _ADR method is because you placed the call to \RMDT.PUSH *after* the return statement. Method execution ceases at Return. The code you added is unreachable. See: Method (_ADR, 0, NotSerialized) // _ADR: Address { Return (Add (XSPA, Zero)) // execution of method stops here... \RMDT.PUSH (XSPA) // !! this code is not reachable !! } Link to comment Share on other sites More sharing options...
thebo Posted August 27, 2015 Share Posted August 27, 2015 Here is my ioreg export (using 2.1) and the patchmatic extract. Asus Z97-Deluxe. PS: I tried to use the attached DummyKext's as a fix, because they are also from a Z97 motherboard. patchmatic_export.zip export.ioreg.zip working_kext_MSI_Z97_gaming5.zip Link to comment Share on other sites More sharing options...
RehabMan Posted August 27, 2015 Share Posted August 27, 2015 Here is my ioreg export (using 2.1) and the patchmatic extract. Asus Z97-Deluxe. PS: I tried to use the attached DummyKext's as a fix, because they are also from a Z97 motherboard. Start by renaming EHC1/EHC2 to EH01/EH02. This will test your DSDT _UPC/_PLD methods. If they are good, no injector will be needed. On the XHC you can see you have HS01 through HS14, plus one SS port SSP1. Does this reflect reality? DSDT shows an SSP2. DSDT is not patched to simulate a version of Windows with "Darwin". This could be part of your problem... Link to comment Share on other sites More sharing options...
thebo Posted August 27, 2015 Share Posted August 27, 2015 Start by renaming EHC1/EHC2 to EH01/EH02. This will test your DSDT _UPC/_PLD methods. If they are good, no injector will be needed. Thanks again! I'm a complete newbie at this. Where would I rename the name of the USB2 controllers in the DSDT.aml? Just do a "string replace" on the whole file or at a specific position? Link to comment Share on other sites More sharing options...
RehabMan Posted August 27, 2015 Share Posted August 27, 2015 Thanks again! I'm a complete newbie at this. Where would I rename the name of the USB2 controllers in the DSDT.aml? Just do a "string replace" on the whole file or at a specific position? Simple find/replace. Link to comment Share on other sites More sharing options...
Mrengles Posted August 27, 2015 Share Posted August 27, 2015 Thanks again! I'm a complete newbie at this. Where would I rename the name of the USB2 controllers in the DSDT.aml? Just do a "string replace" on the whole file or at a specific position? Use can also use this simple DSDT patch... # Rename USB 2.0 devices for OS X El Capitan support. # # For more information about USB and OS X El Capitan visit: # http://www.insanelymac.com/forum/topic/306777-guide-usb-fix-el-capitan-1011/ into device label EHC1 set_label begin EH01 end; into device label EHC2 set_label begin EH02 end; into_all all code_regex EHC1 replaceall_matched begin EH01 end; into_all all code_regex EHC2 replaceall_matched begin EH02 end Link to comment Share on other sites More sharing options...
RehabMan Posted August 27, 2015 Share Posted August 27, 2015 Use can also use this simple DSDT patch... # Rename USB 2.0 devices for OS X El Capitan support. # # For more information about USB and OS X El Capitan visit: # http://www.insanelymac.com/forum/topic/306777-guide-usb-fix-el-capitan-1011/ into device label EHC1 set_label begin EH01 end; into device label EHC2 set_label begin EH02 end; into_all all code_regex EHC1 replaceall_matched begin EH01 end; into_all all code_regex EHC2 replaceall_matched begin EH02 end It does not work (in this case). Find/Replace is more complete. I'll leave it as an exercise for the reader to come up with a complete MaciASL patch for the DSDT in #238. 1 Link to comment Share on other sites More sharing options...
thebo Posted August 27, 2015 Share Posted August 27, 2015 Start by renaming EHC1/EHC2 to EH01/EH02. This will test your DSDT _UPC/_PLD methods. If they are good, no injector will be needed. On the XHC you can see you have HS01 through HS14, plus one SS port SSP1. Does this reflect reality? DSDT shows an SSP2. DSDT is not patched to simulate a version of Windows with "Darwin". This could be part of your problem... The Windows patch was a very good direction. I have no applied the USB2 rename and the windows patch (using the Windows13 definition if Darwin matches). Now, I can use the ASM107x USB3 Controller. But the Intel USB 3 controller does not work yet... But at least one thing off the list ;-) Link to comment Share on other sites More sharing options...
dgsga Posted August 27, 2015 Share Posted August 27, 2015 The ioreg is corrupt. Please use IORegistryExplorer v2.1 as requested. XHC device in DSDT should not be named XHC1... It may cause conflicts with your port injector and injectors provided by the system. Cracked it! Thanks very much RehabMan for pointing me in the right direction This is what I did: 1. Disabled Asmedia USB3 in Bios 2. In DSDT: Search and replace XHC1 with XHC Search and replace EHC1 with EHCA Search and replace EHC2 with EHCB Replaced If (_OSI ("Windows 2012")) with If(LOr(_OSI("Darwin"),_OSI("Windows 2013"))) 3. Injector kext only containing the kUSBMuxDisabled flag for EHCA and EHCB (no port entries there). Link to comment Share on other sites More sharing options...
thebo Posted August 27, 2015 Share Posted August 27, 2015 Cracked it! Thanks very much RehabMan for pointing me in the right direction This is what I did: 1. Disabled Asmedia USB3 in Bios 2. In DSDT: Search and replace XHC1 with XHC Search and replace EHC1 with EHCA Search and replace EHC2 with EHCB Replaced If (_OSI ("Windows 2012")) with If(LOr(_OSI("Darwin"),_OSI("Windows 2013"))) 3. Injector kext only containing the kUSBMuxDisabled flag for EHCA and EHCB (no port entries there). Where did you disable the Asmedia USB3 Controller in the bios? I do not find that option?... Link to comment Share on other sites More sharing options...
dgsga Posted August 27, 2015 Share Posted August 27, 2015 Where did you disable the Asmedia USB3 Controller in the bios? I do not find that option?... Go to Advanced > Onboard Devices Configuration. You should see it in there Link to comment Share on other sites More sharing options...
thebo Posted August 27, 2015 Share Posted August 27, 2015 Go to Advanced > Onboard Devices Configuration. You should see it in there Ok, I see. I can only disable the as media ports each. not the whole controller. Link to comment Share on other sites More sharing options...
VCH888 Posted August 28, 2015 Share Posted August 28, 2015 @ thebo try this DummyUSBXHCIPCI.kext.zip that has path of SSP1-SSP6. Still need FakePCIID and FakePCI_Mux. see info.plist for detail and compare the old one. I think you don't need DummyUSBEHCIPCI.kext since your smbios is iMac15,1 that has both EHC1 and EHC2 in AppleUSBEHCIPCI.kext's info.plist. 1 Link to comment Share on other sites More sharing options...
thebo Posted August 28, 2015 Share Posted August 28, 2015 @ thebo try this DummyUSBXHCIPCI.kext.zip that has path of SSP1-SSP6. Still need FakePCIID and FakePCI_Mux. see info.plist for detail and compare the old one. I think you don't need DummyUSBEHCIPCI.kext since your smbios is iMac15,1 that has both EHC1 and EHC2 in AppleUSBEHCIPCI.kext's info.plist. Thank you very much! Will try this evening! Link to comment Share on other sites More sharing options...
Recommended Posts