Ccc Posted June 28, 2015 Share Posted June 28, 2015 Based on your Ioreg, El Capitan couldn't detect PRT1 and PRT2 from your DSDT. I think the problem is that you have both HUBN and RHUB in EHC1/EHC2 (My DSDT only has RHUB). On your Yosemite ioreg, your USB is: EHC1/2 (1d000000) > HUB (1d100000) > port (1d160000) Try adding HUBN, UsbConnector=0, port = 01000000 to your EHC1/EHC2 device, and post ioreg again. This worked! I added HUBN, UsbConnector=0, port=01000000 in both EHC1/EHC2 device. The first boot into 10.11, all usb ports did not work. But after rebuild kernel caches with KextUtility and reboot, the system recognize all usb ports (3 usb port, cam, bluetooth). (The structure in IORegistryExplorer is not the same as in Yosemite) Many thanks! Here are the IORegistry data. ElCapitan_IORegistry.zip BTW:sleep does not work, after click to sleep, the system will go to sleep and then wakeup, after this all USB does not work again. Any suggestions? Link to comment Share on other sites More sharing options...
pokenguyen Posted June 28, 2015 Author Share Posted June 28, 2015 For sleep, go to console, search for wake reason to find the reason of wake. Post your DSDT. Try patching DSDT with this: # set _PRW methods to return 0 into method label _PRW parent_adr 0x001D0000 code_regex Return[^(]*\([^(]*\(([^,]*)[^)]*[^,]* replace_matched begin Return (Package(){%1,0}) end; into method label _PRW parent_adr 0x001A0000 code_regex Return[^(]*\([^(]*\(([^,]*)[^)]*[^,]* replace_matched begin Return (Package(){%1,0}) end; into method label _PRW parent_adr 0x00140000 code_regex Return[^(]*\([^(]*\(([^,]*)[^)]*[^,]* replace_matched begin Return (Package(){%1,0}) end; into method label _PRW parent_adr 0x00190000 code_regex Return[^(]*\([^(]*\(([^,]*)[^)]*[^,]* replace_matched begin Return (Package(){%1,0}) end; into method label _PRW parent_adr 0x00190000 code_regex (Return\s+\(.*) replace_matched begin Store (0x00, Index (Local0, 0x01))\n %1 end; To find out why USB does not work again, read this: http://www.insanelymac.com/forum/topic/306777-guide-usb-fix-el-capitan-1011/page-4?do=findComment&comment=2148854 Your case may be different, but the principle is the same: track your _WAK method and find out which one messed up your USB. 1 Link to comment Share on other sites More sharing options...
Ccc Posted June 28, 2015 Share Posted June 28, 2015 For sleep, go to console, search for wake reason to find the reason of wake. Post your DSDT. Try patching DSDT with this: # set _PRW methods to return 0 into method label _PRW parent_adr 0x001D0000 code_regex Return[^(]*\([^(]*\(([^,]*)[^)]*[^,]* replace_matched begin Return (Package(){%1,0}) end; into method label _PRW parent_adr 0x001A0000 code_regex Return[^(]*\([^(]*\(([^,]*)[^)]*[^,]* replace_matched begin Return (Package(){%1,0}) end; into method label _PRW parent_adr 0x00140000 code_regex Return[^(]*\([^(]*\(([^,]*)[^)]*[^,]* replace_matched begin Return (Package(){%1,0}) end; into method label _PRW parent_adr 0x00190000 code_regex Return[^(]*\([^(]*\(([^,]*)[^)]*[^,]* replace_matched begin Return (Package(){%1,0}) end; into method label _PRW parent_adr 0x00190000 code_regex (Return\s+\(.*) replace_matched begin Store (0x00, Index (Local0, 0x01))\n %1 end; To find out why USB does not work again, read this: http://www.insanelymac.com/forum/topic/306777-guide-usb-fix-el-capitan-1011/page-4?do=findComment&comment=2148854 Your case may be different, but the principle is the same: track your _WAK method and find out which one messed up your USB. I found this 15/6/28 上午10:39:12.000 kernel[0]: Wake reason: EHC2 Can you help me fix the dsdt file? I did not know how to fix dsdt. Thanks. Here is the DSDT file. DSDT.aml.zip Link to comment Share on other sites More sharing options...
polyzargone Posted June 28, 2015 Share Posted June 28, 2015 Hello Pokenguyen ! I also have issues with sleep on my D830. USB ports are all recognized thanks to DummyUSBEHCIPCI.kext but the system won't sleep and of course not wake. It looks like more it's just crashed . Therefore, syslog isn't very helpful : MacBook-Pro:~ polyzargone$ syslog | grep -i "wake reason" Jun 27 23:20:35 MacBook-Pro kernel[0] <Notice>: Wake reason: USB2 PBTN LID EHC2 (User) Here's my DSDT & IOreg : PS : I tried to patch it with the code in post #77 but it does nothing in MaciASL DSDT_polyzargone.zip MacBook-Pro.ioreg.zip Link to comment Share on other sites More sharing options...
pokenguyen Posted June 28, 2015 Author Share Posted June 28, 2015 I found this 15/6/28 上午10:39:12.000 kernel[0]: Wake reason: EHC2 Can you help me fix the dsdt file? I did not know how to fix dsdt. Thanks. Here is the DSDT file. DSDT.aml.zip Try this DSDT.zip Hello Pokenguyen ! I also have issues with sleep on my D830. USB ports are all recognized thanks to DummyUSBEHCIPCI.kext but the system won't sleep and of course not wake. It looks like more it's just crashed . Therefore, syslog isn't very helpful : MacBook-Pro:~ polyzargone$ syslog | grep -i "wake reason" Jun 27 23:20:35 MacBook-Pro kernel[0] <Notice>: Wake reason: USB2 PBTN LID EHC2 (User) Here's my DSDT & IOreg : PS : I tried to patch it with the code in post #77 but it does nothing in MaciASL Try this DSDT.aml.zip DSDT.zip DSDT.aml.zip Link to comment Share on other sites More sharing options...
polyzargone Posted June 28, 2015 Share Posted June 28, 2015 Thanks but sadly, it didn't change anything . System is still "crashed like". Have to do hard reset. [EDIT] The DSDT breaks USB device wake in Yosemite (sleep works). Only power button can wake up the system. . Link to comment Share on other sites More sharing options...
pokenguyen Posted June 28, 2015 Author Share Posted June 28, 2015 Thanks but sadly, it didn't change anything . System is still "crashed like". Have to do hard reset. [EDIT] The DSDT breaks USB device wake in Yosemite (sleep works). Only power button can wake up the system. . I disabled the wake capacibility of SB2 PBTN LID EHC2. If they're not the cause, you have to check in WAK method. Link to comment Share on other sites More sharing options...
chich0n Posted June 28, 2015 Share Posted June 28, 2015 Hey ! So i've followed your advices, but when I use the dummy kext all the usb3 ports works as Usb2 Ports. I think the problem is the way my DSDT is maked. I've a first section SB.PCI0 which contains XCH>RHUB>HS1 to 8 and SSP1 and SSP2. I've three others section named _SB.PCI0.XHC.RHUB which containts HC ports or SSP ports. In the info.plist I've renamed XCH1 in XCH and add port with dsdt's adresses. i join my DSDT and my last info.plist from the dummyxhci kext. can you help me ? Thank you ! (sorry for my bad english) DSDT+info-plist.zip Link to comment Share on other sites More sharing options...
pokenguyen Posted June 29, 2015 Author Share Posted June 29, 2015 Hey ! So i've followed your advices, but when I use the dummy kext all the usb3 ports works as Usb2 Ports. I think the problem is the way my DSDT is maked. I've a first section SB.PCI0 which contains XCH>RHUB>HS1 to 8 and SSP1 and SSP2. I've three others section named _SB.PCI0.XHC.RHUB which containts HC ports or SSP ports. In the info.plist I've renamed XCH1 in XCH and add port with dsdt's adresses. i join my DSDT and my last info.plist from the dummyxhci kext. can you help me ? Thank you ! (sorry for my bad english) Your SSP3 is not at port 0x3. Look in your DSDT: Device (SSP3) { Method (_ADR, 0, NotSerialized) // _ADR: Address { Return (Add (XSPA, 0x02)) } } Your SSP3 port = XSPA + 0x2. You have to calculate the value of XSPA (you can use ACPIDebug to check the value of XSPA). Here is my guess. Because your USB 2.0 ports stop at HS14 0x0E, SSP1 should start at 0x0F, SSP2 0x10 and SSP3 0x11. Note that it's just my assumption, you should try it. Another way to check the port of SSP1 is that you can remove port restriction, open ioreg and find SSP1, note the port value of SSP1, then you can calculate the port of SSP2, SSP3, SSP4... 1 Link to comment Share on other sites More sharing options...
Ccc Posted June 29, 2015 Share Posted June 29, 2015 Try this DSDT.zip Try this DSDT.aml.zip This does not work, instant wake up after sleep, and then USB port stops working. wake reason: EHC1 EHC2. Link to comment Share on other sites More sharing options...
RehabMan Posted June 29, 2015 Share Posted June 29, 2015 That seems to be the new way, at least on the hacks I've tried. Seems no more multiplexing from XHC->EHC1 (although it can be forced). There is nothing wrong with it since the XHC controller can handle both USB2(HS) and USB3(SS). It would be interesting if someone could post results (ioreg, System Information -> USB) from a real MacBookPro9,x which I think normally uses XCH->EHC1 multiplexing/passthru. I've discovered a bit more regarding multiplex. It is there in Yosemite, but only for certain devices... And it is not done at startup. - I find that, at startup, none of the EHCA/B/C/D methods are called (these are the methods that clear bits in PR2 which cause USB2 routing to EHC from XHC). - if you plug in USB mouse, it will attach to XHC - if you plug a USB2 flash drive, it will call one of the EHCA methods which turns on multiplexing for that port, flash drive connects to EHC1 - if you then plug a USB mouse to the same port, it will attach to EHC1 - could be ProBook specific: if you plug a USB3 device into a USB3 port, it disables USB mouse in USB3 port. Mouse is restored upon unplugging USB3 device. This bug is in Yosemite and 10.11. If you plug a USB2 flash drive along with a USB3 flash drive, interestingly, the USB2 flash still works (unlike the mouse). At any rate, I've found an easy way to force USB2 routing from XHC using mods to FakePCIID. It is a bit easier than messing with the Multiplex patch. Also... working to understand more about the Multiplex patch. I think only a subset of it is required (so far XHCA/B/C/D are never called... only EHCA/B/C/D on XHC). Link to comment Share on other sites More sharing options...
chich0n Posted June 29, 2015 Share Posted June 29, 2015 I've followed your method, and I've the same problem. My port adresses are : HSx: 01 02 03 04 05 06 08 09 0A 0C 0B And my SSP1 (the only working USB3 with no port restriction) : 0F When i enable the restriction, all my port works as USB2 port. It's like USBEHCI take the control of all the USB ports. I join you my ioreg (with usb restriction) and my last dummyXCHI. Thank you ! Dummyxhci_ioreg.zip Link to comment Share on other sites More sharing options...
RehabMan Posted June 29, 2015 Share Posted June 29, 2015 I've followed your method, and I've the same problem. My port adresses are : HSx: 01 02 03 04 05 06 08 09 0A 0C 0B And my SSP1 (the only working USB3 with no port restriction) : 0F When i enable the restriction, all my port works as USB2 port. It's like USBEHCI take the control of all the USB ports. I join you my ioreg (with usb restriction) and my last dummyXCHI. Thank you ! Not enough details. Maybe you're using Multiplexing (Note: kUSBMuxEnabled=true in EHC1) and all the devices you have plugged in are USB2. If that is the case, the results you show would be expected. Link to comment Share on other sites More sharing options...
chich0n Posted June 29, 2015 Share Posted June 29, 2015 Not enough details. Maybe you're using Multiplexing (Note: kUSBMuxEnabled=true in EHC1) and all the devices you have plugged in are USB2. If that is the case, the results you show would be expected. Which details do you need ? I've add a DummyEHCI kext with kUSBMuxEnabled=false in ECH1 and EHC2 but I still having the same issue. Link to comment Share on other sites More sharing options...
RehabMan Posted June 29, 2015 Share Posted June 29, 2015 Which details do you need ? I've add a DummyEHCI kext with kUSBMuxEnabled=false in ECH1 and EHC2 but I still having the same issue. You should start by describing the type of devices you've plugged in. Are they all USB2 or are some of them USB3? It is not possible to determine from the image you provided. As I implied in #88, your results are reasonable if all your devices are USB2 devices. Link to comment Share on other sites More sharing options...
chich0n Posted June 29, 2015 Share Posted June 29, 2015 You should start by describing the type of devices you've plugged in. Are they all USB2 or are some of them USB3? It is not possible to determine from the image you provided. The only USB3 devices I plugged is the PNY91008663. I tested it on all the USB3 ports. Link to comment Share on other sites More sharing options...
VCH888 Posted June 29, 2015 Share Posted June 29, 2015 10.11 DP2 added 0x8cb18086. You can see the original kext. Or just change 0x8c318086 to 0x8cb18086 in dummy kext. Link to comment Share on other sites More sharing options...
chich0n Posted June 29, 2015 Share Posted June 29, 2015 10.11 DP2 added 0x8cb18086. You can see the original kext. Or just change 0x8c318086 to 0x8cb18086 in dummy kext. The only USB3 devices I plugged is the PNY91008663. I tested it on all the USB3 ports. OK It work with the VCH888 method ! So what i've done : USBXHCI : Dummy with restriction port (Rename XHC1 to XHC, add port with the help of Ioregistry explorer, and change 0x8c318086 to 0x8cb18086 in dummy kext. USBEHCI : Disable kUSBMuxEnabled in ECH1 and ECH2 Thank you to all ! So, I will translate this method in macbidouille forum. Edit : I add my 2 kext, if someone with a MSI Z97 gaming 5 needs it. working_kext_MSI_Z97_gaming5.zip Link to comment Share on other sites More sharing options...
VCH888 Posted June 29, 2015 Share Posted June 29, 2015 @ chich0n Could you post ioreg? Want to learn from different board. Thank you. 1 Link to comment Share on other sites More sharing options...
chich0n Posted June 29, 2015 Share Posted June 29, 2015 @ chich0n Could you post ioreg? Want to learn from different board. Thank you. Ok i join it ! Link to comment Share on other sites More sharing options...
aziiz3 Posted June 30, 2015 Share Posted June 30, 2015 i'm using macpro6,1 smbios, and my front panel usb2 wont work but usb3 just ran fine both front and back.then i'm looking into my dsdt and the usbehcipci on iousb kext,there's only 1 EHCI (EHCI1) in the info.plist, but my board have 2 EHCI (EHCI1 and EHCI2).so how to make it work ? sorry for my noob my board is GA-B75-HD3Thanks Link to comment Share on other sites More sharing options...
pokenguyen Posted June 30, 2015 Author Share Posted June 30, 2015 i'm using macpro6,1 smbios, and my front panel usb2 wont work but usb3 just ran fine both front and back. then i'm looking into my dsdt and the usbehcipci on iousb kext, there's only 1 EHCI (EHCI1) in the info.plist, but my board have 2 EHCI (EHCI1 and EHCI2). Screen Shot 2015-06-30 at 9.11.54 PM.png Screen Shot 2015-06-30 at 9.14.02 PM.png so how to make it work ? sorry for my noob my board is GA-B75-HD3 Thanks Add EHC2 to info.plist and remove port restriction. Read the topic again until you can do that. Link to comment Share on other sites More sharing options...
ervinke2 Posted July 2, 2015 Share Posted July 2, 2015 I have a problem with my USB2.0 too. After I removed the port restriction it's still not working. And then I realized my USB ports in my DSDT aren't under any EHC. I don't know, if it's a problem. Anybody have any idea? DSDT.aml.zip Link to comment Share on other sites More sharing options...
mendietinha Posted July 2, 2015 Share Posted July 2, 2015 I have a problem with my USB2.0 too. After I removed the port restriction it's still not working. And then I realized my USB ports in my DSDT aren't under any EHC. I don't know, if it's a problem. Anybody have any idea? it says ehci and not ehc1 Link to comment Share on other sites More sharing options...
ervinke2 Posted July 2, 2015 Share Posted July 2, 2015 it says ehci and not ehc1 I know. It's not my modded kext. If I change EHC1 to EHCI, it's still not working. Link to comment Share on other sites More sharing options...
Recommended Posts