Contribute
Register

[solved] Need help on L440

Status
Not open for further replies.
I guess HP11 correlates to SSP1? (eg. together, they are a USB3 port).
And HP12/HP13/HP22 are USB2-only.
You should also consider disabling the EHCI controllers and putting everything on XHC.

Note:
PR11 and PR21 are configured via "EH01" "EH02"
HPxx ports are configured via "HUB1" and "HUB2".
XHC ports are configured by device-id, in your case: "8086_8c31".
You will see plenty of examples in my various github projects.
Like u mentioned in previous post i need to either static or hotpach
Since most of my work is static does it still mean that the EHCI disabling and directing ports to XHC should be done via DSDT Edit MaciAsl static patching or i can use the Port Injector as an adittional SSDT ?
if it is so,what is the code to disable EHCI Controllers on static patch method and to direct to XHCI.
i saw the lenovo y50 uses same 8 chipset series as mine,does that code part (8086;8xxx) work on my laptop aswell or i need to do a ioreg after disabling ehci to see which ports will be needed to be active on XHC and then customize as needed ?
 
Like u mentioned in previous post i need to either static or hotpach
Since most of my work is static does it still mean that the EHCI disabling and directing ports to XHC should be done via DSDT Edit MaciAsl static patching or i can use the Port Injector as an adittional SSDT ?

Additional SSDTs such as the SSDT we create to configure USBInjectAll.kext are not considered "patching".

i saw the lenovo y50 uses same 8 chipset series as mine,does that code part (8086;8xxx) work on my laptop aswell or i need to do a ioreg after disabling ehci to see which ports will be needed to be active on XHC and then customize as needed ?

Each laptop model will have a different USB port topology.
 
Ok...
To be honest the USB Port Fixing is the thing that i hated since El Capitan...It really requires the most work when it comes to Fixing issues.
i Managed to fix everything else so far without much trouble but these usb ports are really something else.Anyway>
So in order to move All Ports To XHC:
Is there a kernel flag to do so,so i can determine in IOreg where all the ports did move on XHC and check which ones should be active,then create the Injector,then disable EHCI Controllers.
or i should disable EHCI Controllers first so they move to XHCI... idk.
If u just can guide me to the first step,second,third on what to do next.

It`s also time to sleep i guess,ill continue tomorrow and hopefully be able to fix them tomorrow with your help.

Thanks for spending all this time for today,have a good night/day.
 
Ok...
To be honest the USB Port Fixing is the thing that i hated since El Capitan...It really requires the most work when it comes to Fixing issues.

Actually, it is not that difficult.

i Managed to fix everything else so far without much trouble but these usb ports are really something else.Anyway>
So in order to move All Ports To XHC:
Is there a kernel flag to do so,so i can determine in IOreg where all the ports did move on XHC and check which ones should be active,then create the Injector,then disable EHCI Controllers.

Your BIOS may have an option. For most BIOS implementations, if you set XHCI mode to "Enabled", it disables the EHCI controllers.

or i should disable EHCI Controllers first so they move to XHCI... idk.

You must decide first what you're going to do regarding EHCI... because it affects which ports you're going to put into your SSDT for USBInjectAll.kext.

If u just can guide me to the first step,second,third on what to do next.

Read, read, read.
 
Your BIOS may have an option. For most BIOS implementations, if you set XHCI mode to "Enabled", it disables the EHCI controllers.
Well this now reduced the difficulty from 10 to 4.
If im not mistaken i can even disable ports from Bios now since i unlocked Advanced Menu... Will analyze after i get back home.
But should i dump and patch ACPI once again after i change these settings (set XHCI Enabled) or not ?

So i assume after i set XHCI Enabled these are the steps that i should take:
I should open IOreg and plug/unplug usb2.0 and a usb3.0 to analyze ports that needs to be active on XHC
After i analyze the ports start editing the SSDT template with 8086:8***
And set ports that needs to be active as connector type "3" and internal devices (Bluetooth,Camera) as "255"
And set the uneeded ports as "0".
And then disable EHCI Controllers (if it is needed since we make Enabled on XHCI on bios ?).
 
Well this now reduced the difficulty from 10 to 4.
If im not mistaken i can even disable ports from Bios now since i unlocked Advanced Menu... Will analyze after i get back home.
But should i dump and patch ACPI once again after i change these settings (set XHCI Enabled) or not ?

It is generally a good idea to re-extract/re-patch ACPI after any BIOS change, hardware change, or BIOS upgrade.

So i assume after i set XHCI Enabled these are the steps that i should take:
I should open IOreg and plug/unplug usb2.0 and a usb3.0 to analyze ports that needs to be active on XHC

Yes, you should notice that all changes in ioreg as you plug devices in happen on XHC.
EH01/EH02 will remain unused.

After i analyze the ports start editing the SSDT template with 8086:8***

Use the actual device-id (look at device-id under XHC in ioreg).

And set ports that needs to be active as connector type "3" and internal devices (Bluetooth,Camera) as "255"
And set the uneeded ports as "0".

Unneeded ports are simply excluded from the SSDT (eg. not injected).
USB2 ports use UsbConnector=0.

And then disable EHCI Controllers (if it is needed since we make Enabled on XHCI on bios ?).

XHCI "Enabled" means use only XHCI, disable EHCI.
You would need special code in the SSDT only if your BIOS does not have the option, or it doesn't work.
 
XHCI "Enabled" means use only XHCI, disable EHCI.
You would need special code in the SSDT only if your BIOS does not have the option, or it doesn't work.
Im so lucky to see that i have the Option but it has the : Enabled,disabled,auto and Smart Auto Option
What i seen below XHCI is that i have the option to Disable EHC1 and EHC2 on bios.
But when i disable the EHC1 & EHC2 Controllers none of the other usb ports work except the 3.0
Could it be the PCIID_XhciMux kext or Usbinjectall or something else ?
 
Im so lucky to see that i have the Option but it has the : Enabled,disabled,auto and Smart Auto Option

Those options are typical.

What i seen below XHCI is that i have the option to Disable EHC1 and EHC2 on bios.

OK.

But when i disable the EHC1 & EHC2 Controllers none of the other usb ports work except the 3.0

Probably because you forgot to remove FakePCIID_XHCIMux.kext.

Using FakePCIID_XHCIMux.kext with the EHCI controllers disabled is nonsense. By default, FakePCIID_XHCIMux will cause all USB2 on XHC to be routed to EHCI, but with EHCI disabled, those USB2 pins will be nonfunctional due to the controller they are routed to being disabled.
 
Probably because you forgot to remove FakePCIID_XHCIMux.kext.
Yes that was the problem.

i Checked IOreg and the ports and these are the ones that needs to be active:
HS01,HS02,HS03,HS06,HS11(bluetooth),HS12(camera),SSP1.

And my Patch should look something like this:

Code:
"8086_8xxx", Package()
            {
                "port-count", Buffer() { 15, 0, 0, 0 },
                "ports", Package()
                {
                    "HS01", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 1, 0, 0, 0 },
                    },
                    "HS02", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 2, 0, 0, 0 },
                    },
                    "HS03", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 3, 0, 0, 0 },
                    },
                    "HS06", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 6, 0, 0, 0 },
                    },
                    "HS11", Package()
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 11, 0, 0, 0 },
                    },
                    "HS12", Package()
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 12, 0, 0, 0 },
                    },
                    //HS15 is phantom port (port address 15 not used)
                    "SSP1", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 16, 0, 0, 0 },
                    },
                },
            },

Attached u find the new IOreg with XHC
 

Attachments

  • Besnik’s MacBook Pro.ioreg
    5.3 MB · Views: 130
Yes that was the problem.

i Checked IOreg and the ports and these are the ones that needs to be active:
HS01,HS02,HS03,HS06,HS11(bluetooth),HS12(camera),SSP1.

And my Patch should look something like this:

Code:
"8086_8xxx", Package()
            {
                "port-count", Buffer() { 15, 0, 0, 0 },
                "ports", Package()
                {
                    "HS01", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 1, 0, 0, 0 },
                    },
                    "HS02", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 2, 0, 0, 0 },
                    },
                    "HS03", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 3, 0, 0, 0 },
                    },
                    "HS06", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 6, 0, 0, 0 },
                    },
                    "HS11", Package()
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 11, 0, 0, 0 },
                    },
                    "HS12", Package()
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 12, 0, 0, 0 },
                    },
                    //HS15 is phantom port (port address 15 not used)
                    "SSP1", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 16, 0, 0, 0 },
                    },
                },
            },

Attached u find the new IOreg with XHC

The 8xxx should be your actual device-id of the XHC controller.
 
Status
Not open for further replies.
Back
Top