Contribute
Register

[Guide] USB power property injection for Sierra (and later)

No idea what you're referring to or asking...
The two "scenarios" above have essentially the same USBX code (slightly different values, but...)


Look at the two ioreg screenshots. There are more properties displayed in the 2nd screenshot is that just a cosmetic thing or do I need to make sure when USBX is injected all the properties in the second screenshot are displayed? I realize the ssdt code are the same so I cannot understand why they display different properties?
 
Look at the two ioreg screenshots. There are more properties displayed in the 2nd screenshot is that just a cosmetic thing

The screen shots represent completely different filtering in IORegistryExplorer.
First shot is filtered by a search term 'usb'.
Second shot is unfiltered.
 
The screen shots represent completely different filtering in IORegistryExplorer.
First shot is filtered by a search term 'usb'.
Second shot is unfiltered.

I made the mistake of filtering but when viewed without the filter I have the exact same results!! USBX is listed as USBX and not USBX@0 for one and the properties are lacking?

The only difference in the two SSDT injections are, one has a definition block while the other does not if that has anything to do with it.

DefinitionBlock ("", "SSDT", 2, "hack", "USBX", 0x00000000)
 
I made the mistake of filtering but when viewed without the filter I have the exact same results!! USBX is listed as USBX and not USBX@0 for one and the properties are lacking?

The only difference in the two SSDT injections are, one has a definition block while the other does not if that has anything to do with it.

DefinitionBlock ("", "SSDT", 2, "hack", "USBX", 0x00000000)

SSDT without a DefinitionBlock is not valid.
In fact, it does not compile.
If you have a question regarding two different configurations, you need to provide "Problem Reporting" files for both.
 
SSDT without a DefinitionBlock is not valid.
In fact, it does not compile.
If you have a question regarding two different configurations, you need to provide "Problem Reporting" files for both.

I read over Post # 1 again and you mention that the SSDT-USBX can just be inserted into your SSDT-UIAC and that took care of the issue, now see 6 values for device properties in Ioreg, sorry about that confusion. My USBX device code was in my main SSDT.aml file with my other devices so I removed the USBX device from there, I am guessing having it there does not work properly. I attached my original SSDT with the USBX device code inside it, and I still cannot understand why the USBX code in this SSDT only reports 4 values for device properties instead of 6?
 

Attachments

  • SSDT.aml.zip
    2.2 KB · Views: 71
I read over Post # 1 again and you mention that the SSDT-USBX can just be inserted into your SSDT-UIAC and that took care of the issue, now see 6 values for device properties in Ioreg, sorry about that confusion. My USBX device code was in my main SSDT.aml file with my other devices so I removed the USBX device from there, I am guessing having it there does not work properly. I attached my original SSDT with the USBX device code inside it, and I still cannot understand why the USBX code in this SSDT only reports 4 values for device properties instead of 6?

As written previously...
If you have a question regarding two different configurations, you need to provide "Problem Reporting" files for both.
 
Can someone provide me the correct values for kUSBSleepPowerSupply, kUSBSleepPortCurrentLimit, kUSBWakePowerSupply and kUSBWakePortCurrentLimit for SMBIOS 13.1 and 13.3? Currently I use the values from iMac 17.1 but I don't if this makes problems or not. Thanks.
 
As written previously...

Well I have no idea but now with the problem files USBX@0 shows all 6 values. There is nothing I can do to show the 4 values any longer in Ioreg. I did take screen shots of verbs boot and I can see initially there had to be some problem with the SSDT.aml file because of the many errors that printed during boot. I don't know how this got resolved but now its down to 4 ACPI errors referring to ECOR. There are no verbose errors if I use the files that report 6 values for USBX@0. Files atatched and two verbose error screenshots.
 

Attachments

  • Only 4 Device Values showing.zip
    644.9 KB · Views: 62
  • All 6 Device Values showing.zip
    652 KB · Views: 80
  • many ACPI Errors.jpg
    many ACPI Errors.jpg
    466.1 KB · Views: 97
  • ECOR Error.jpg
    ECOR Error.jpg
    470.6 KB · Views: 86
Can someone provide me the correct values for kUSBSleepPowerSupply, kUSBSleepPortCurrentLimit, kUSBWakePowerSupply and kUSBWakePortCurrentLimit for SMBIOS 13.1 and 13.3? Currently I use the values from iMac 17.1 but I don't if this makes problems or not. Thanks.

The stock kUSBValues works fine on Series 7.

Code:
DefinitionBlock("", "SSDT", 2, "hack", "USBX", 0)
{
    Device(_SB.USBX)
    {
        Name(_ADR, 0)
        Method (_DSM, 4)
        {
            If (!Arg2) { Return (Buffer() { 0x03 } ) }
            Return (Package()
            {
                // these values from iMac13,2
                "kUSBSleepPortCurrentLimit", 2100,
                "kUSBSleepPowerSupply", 4700,
                "kUSBWakePortCurrentLimit", 2100,
                "kUSBWakePowerSupply", 4700,
            })
        }
    }
}
//EOF
 
Can someone provide me the correct values for kUSBSleepPowerSupply, kUSBSleepPortCurrentLimit, kUSBWakePowerSupply and kUSBWakePortCurrentLimit for SMBIOS 13.1 and 13.3? Currently I use the values from iMac 17.1 but I don't if this makes problems or not. Thanks.

You would need an ioreg or ACPI dump from MacBookPro13,3 or MacBookPro13,1.
 
Back
Top