RehabMan
Moderator
- Joined
- May 2, 2012
- Messages
- 181,058
- Motherboard
- Intel DH67BL
- CPU
- i7-2600K
- Graphics
- HD 3000
- Mac
- Mobile Phone
My original injector I made from your guide and your help seem to work fine but after running your USBInjectAll I realized that I did not have the right number of ports, I had four for EH01 and three for EH02. USBInjectALL shows 8 for EH01 and 6 for EH02. I made the changes to my injector and everything seems fine.
8-ports on EHCI#1 and 6 on EHCI#2 is what is supported by the chipset. But typically they are not all used. Most systems use a rate matching hub (RMH) on port #1 of each and all devices connect there.
The idea to use USBInjectAll to determine which ports are actually used (monitor in ioreg while you connect things to all ports). Ports that are not used, can be eliminated in your port injector.
If I leave Connector type 2 all seems fine. If I change everything to 255 all USB ports still work but Built in Webcam and BT no longer are available. I changed everything back to connector type 2. I don't know which ones should be 2, 0 or 255. Obviously 3 is not a choice since there are no USB3 ports. Would I find that out in Ioreg?
The connector type can be determined by looking at _UHC (second item in the return package) in DSDT. Since port #1 is typically RMH, it will almost always be 255 (proprietary).
I am a bit confused with IOACPIplane view. Your example shows your Webcam under one of the ports. Neither my Webcam nor BT show under them at all with your kext or mine.
That part is system specific.. It all depends on what the DSDT author decided to do.
Also I see USB under IOACPIPlane and not sure if any information can be used from them?
It is useful to know which ports return non-zero from _STA.
Was I correct in using the same number of ports that USBInjectAll showed in IOreg or was I support to physically make connections to see which number of total ports are needed. Maybe I Have too many now? I will go over your readme again,I think I have misread something.
USBInjectAll will always inject the same for a given chipset. But from there you determine which ones are actually needed.
You posted a couple threads up regarding sleep/wake issues have to go over that because It starts to sleep and just never will sleep and monitor stays black.
Sounds like "instant wake". It is covered in the ACPI patching guide.
Ok so I only need for EH01 four ports. There are 4 physical ports and each shows up in ioreg, with different numbering but they are 1 through 4. I removed ports 5 through 8. For EH02 this is used only for BT and Internal WebCam both USB2. So I only have port 1 and 2 for them.
Your result is fairly typical. There are many more ports available from the chipset than are actually used.
USB connector shows 0xff for port 1 both for EH01 and EH01 and the rest shows 0. So I changed the first port to 255 and the rest 0 for EH01 but for EH02. I had to insert 2 for EH02 ports 1 and 2 because internal USB2 BT and Webcam do not show up if I use either 0 or 255 even though that is what Ioreg shows with your kext for EH02.
Interesting... According to spec, built-in devices would normally be 255. According to ACPI spec, 2 means "Express Card".