Contribute
Register

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

Can you also add the fake EC device if you need it,
to SSDT-UIAC.aml
Instead of creating a separate
SSDT-EC.aml?

Yes, of course.
In fact, if properly coded, all add-on SSDTs can be combined into a single SSDT.
 
Hi, Rehabman. Could you please a have a look of EC on my device? I am confused about whether my device has an Embedded Controller or not. I am using a fake EC now.

I can find "EC Version" on BIOS panel and some "H_EC" values in DSDT(Please have a look at screenshots below), but there isn't a whole EC method in DSDT(maybe I fail to find it).
Since you have said "If you have an Embedded Controller (most laptops, some desktops)", I think maybe an EC device exists in my laptop but the name of it is different from H_EC or EC0 or ECDV. I will put my troubleshooting and screenshots below. Thank for all your help, you really helped me a lot.
 

Attachments

  • ScreenShot1.jpg
    ScreenShot1.jpg
    240 KB · Views: 166
  • ScreenShot2.jpg
    ScreenShot2.jpg
    3.7 MB · Views: 163
  • Trouble Shooting.zip
    5.9 MB · Views: 116
Last edited:
Hi, Rehabman. Could you please a have a look of EC on my device? I am confused about whether my device has an Embedded Controller or not. I am using a fake EC now.

I can find "EC Version" on BIOS panel and some "H_EC" values in DSDT(Please have a look at screenshots below), but there isn't a whole EC method in DSDT(maybe I fail to find it).
Since you have said "If you have an Embedded Controller (most laptops, some desktops)", I think maybe an EC device exists in my laptop but the name of it is different from H_EC or EC0 or ECDV. I will put my troubleshooting and screenshots below. Thank for all your help, you really helped me a lot.

No EC in your ACPI set ("grep PNP0C09 *.dsl" turns up nothing).
 
For example:
Code:
[/COLOR][/FONT][/LEFT]
[FONT=Verdana][COLOR=rgb(19, 19, 19)]
[LEFT]DefinitionBlock ("", "SSDT", 2, "hack", "usb", 0)
{
//
// Override for USBInjectAll.kext
//
    Device(UIAC)
    {
        Name(_HID, "UIA00000")
        Name(RMCF, Package()
        {
            // USB Power Properties for Sierra (using USBInjectAll injection)
            "AppleBusPowerControllerUSB", Package()
            {
                // these values happen to be iMac14,2 values...[/COLOR][/FONT][/SIZE][/LEFT]
[SIZE=14px][FONT=Verdana][COLOR=rgb(19, 19, 19)][LEFT]                "kUSBSleepPortCurrentLimit", 2100,
                "kUSBSleepPowerSupply", 4700,
                "kUSBWakePortCurrentLimit", 2100,
                "kUSBWakePowerSupply", 4700,[/LEFT][/COLOR][/FONT][/SIZE]
[LEFT][SIZE=14px][FONT=Verdana][COLOR=rgb(19, 19, 19)]            },
            // XHC overrides (8086:9cb1, NUC5)
            "8086_9cb1", Package()
            {
// other UIAC.RMCF content follows (for custom port injection)
...
}
//EOF


Do i understand correctly when i think the next quote is repacing the bold text in this example just 10 lines up?
Sorry if it stupid to ask, but its power right, i dun wanna screw it up lol

And that is, when using MacBookPro14,3 smbios

"kUSBSleepPortCurrentLimit", 3000,
"kUSBWakePortCurrentLimit", 3000,
 
For example:
Code:
[/COLOR][/FONT][/LEFT][/COLOR][/FONT][/LEFT][/COLOR][/FONT][/LEFT]
[FONT=Verdana][COLOR=rgb(19, 19, 19)]
[LEFT][FONT=Verdana][COLOR=rgb(19, 19, 19)]
[LEFT][FONT=Verdana][COLOR=rgb(19, 19, 19)]
[LEFT]DefinitionBlock ("", "SSDT", 2, "hack", "usb", 0)
{
//
// Override for USBInjectAll.kext
//
    Device(UIAC)
    {
        Name(_HID, "UIA00000")
        Name(RMCF, Package()
        {
            // USB Power Properties for Sierra (using USBInjectAll injection)
            "AppleBusPowerControllerUSB", Package()
            {
                // these values happen to be iMac14,2 values...[/COLOR][/FONT][/SIZE][/LEFT]
[SIZE=14px][FONT=Verdana][COLOR=rgb(19, 19, 19)][LEFT]                "kUSBSleepPortCurrentLimit", 2100,
                "kUSBSleepPowerSupply", 4700,
                "kUSBWakePortCurrentLimit", 2100,
                "kUSBWakePowerSupply", 4700,[/LEFT][/COLOR][/FONT][/SIZE]
[LEFT][SIZE=14px][FONT=Verdana][COLOR=rgb(19, 19, 19)]            },
            // XHC overrides (8086:9cb1, NUC5)
            "8086_9cb1", Package()
            {
// other UIAC.RMCF content follows (for custom port injection)
...
}
//EOF





Do i understand correctly when i think the next quote is repacing the bold text in this example just 10 lines up?
Sorry if it stupid to ask, but its power right, i dun wanna screw it up lol

And that is, when using MacBookPro14,3 smbios


I don't understand your question. And it looks like you have some inappropriate content in the code you posted (forum markup is not valid in ACPI code).
 
Hi there, may I know how can I manually patch the EC in my DSDT & SSDTs? I used the clover hotpatch and the AppleBusPowerController shows up in IOREG, however when i connect my external hard disk, it still doesnt have enough power
 
Hi there, may I know how can I manually patch the EC in my DSDT & SSDTs? I used the clover hotpatch and the AppleBusPowerController shows up in IOREG, however when i connect my external hard disk, it still doesnt have enough power

No "Problem Reporting" files attached.
Read FAQ, "Problem Reporting" again. Carefully. Attach all requested files/output.
https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/
Use the gen_debug.sh tool mentioned in the FAQ, that way it is less likely you'll omit something.
 
RehabMan, having skimmed through this thread after you linked me here from the USBInjectAll thread, is there a source for a correct iMac18,3 USB power property injection to add to my SSDT-UIAC, as that is the SMBIOS definition I'm using? Or is the iMac17,1 one similar enough to use as a starting point?
 
Last edited:
RehabMan, having skimmed through this thread after you linked me here from the USBInjectAll thread, is there a source for a correct iMac18,3 USB power property injection to add to my SSDT-UIAC, as that is the SMBIOS definition I'm using? Or is the iMac17,1 one similar enough to use as a starting point?

You would need to find an iMac17,3 ioreg or ACPI set if you were curious about what values it uses.

Please note that iMac17,3 may be fictional (something you imagined?). everymac.com has no mention of it.
 
Back
Top