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

Discussion in 'High Sierra Laptop Support' started by RehabMan, May 17, 2017.

  1. RehabMan

    RehabMan Moderator

    Joined:
    May 3, 2012
    Messages:
    162,172
    Mobo:
    Intel DH67BL
    CPU:
    Core i7-2600K
    Graphics:
    Intel HD 3000
    Mac:
    MacBook Air
    Mobile Phone:
    iOS
    May 17, 2017 at 5:02 PM #1
    RehabMan

    RehabMan Moderator

    Joined:
    May 3, 2012
    Messages:
    162,172
    Mobo:
    Intel DH67BL
    CPU:
    Core i7-2600K
    Graphics:
    Intel HD 3000
    Mac:
    MacBook Air
    Mobile Phone:
    iOS
    Summary

    It appears that Sierra has changed how USB power properties are set. In prior versions, we have injected AAPL,current-available, AAPL,current-extra, AAPL,current-extra-in-sleep, and AAPL,max-port-current-in-sleep directly on the XHC/EHCI ACPI objects. In Sierra, these appear to be replaced by new properties that are injected on the AppleBusPowerControllerUSB object in ioreg.

    Let's take a look at the changes required...


    Tracing the evidence

    Some of these changes were noticed during development of USBInjectAll.kext... And I had remembered about some "kUSB*" properties that looked interesting in one of the USB kext Info.plist files. A simple grep search can reveal where we might look:

    Code (Text):

    SPEEDY-NUC:nuc.git rehabman$ grep -l kUSB.* -R /System/Library/Extensions/IOUSBHostFamily.kext
    /System/Library/Extensions/IOUSBHostFamily.kext/Contents/Info.plist
    /System/Library/Extensions/IOUSBHostFamily.kext/Contents/MacOS/IOUSBHostFamily
    /System/Library/Extensions/IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBEHCI.kext/Contents/MacOS/AppleUSBEHCI
    /System/Library/Extensions/IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBEHCIPCI.kext/Contents/Info.plist
    /System/Library/Extensions/IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBEHCIPCI.kext/Contents/MacOS/AppleUSBEHCIPCI
    /System/Library/Extensions/IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBHostCompositeDevice.kext/Contents/MacOS/AppleUSBHostCompositeDevice
    /System/Library/Extensions/IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBHostMergeProperties.kext/Contents/Info.plist
    /System/Library/Extensions/IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBHub.kext/Contents/Info.plist
    /System/Library/Extensions/IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBHub.kext/Contents/MacOS/AppleUSBHub
    /System/Library/Extensions/IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBOHCIPCI.kext/Contents/MacOS/AppleUSBOHCIPCI
    /System/Library/Extensions/IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBUHCI.kext/Contents/MacOS/AppleUSBUHCI
    /System/Library/Extensions/IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBUHCIPCI.kext/Contents/MacOS/AppleUSBUHCIPCI
    /System/Library/Extensions/IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBXHCI.kext/Contents/MacOS/AppleUSBXHCI
    /System/Library/Extensions/IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBXHCIPCI.kext/Contents/Info.plist
    /System/Library/Extensions/IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBXHCIPCI.kext/Contents/MacOS/AppleUSBXHCIPCI
    /System/Library/Extensions/IOUSBHostFamily.kext/Contents/PlugIns/IOUSBHostHIDDevice.kext/Contents/MacOS/IOUSBHostHIDDevice
     
    So... it looks like /System/Library/Extensions/IOUSBHostFamily.kext/Contents/Info.plist is a good place to start.

    And look what we find:
    Screen Shot 2017-05-17 at 8.15.56 AM.png

    As you can see there are various properties (kUSBSleepPortCurrentLimit, kUSBSleepPowerSupply, kUSBWakePortCurrentLimit, kUSBWakePowerSupply), which are being injected to provider AppleBusPOwerControllerUSB via an AppleUSBHostMergeProperties injector.

    But I checked my own ioreg and AppleBusPowerControllerUSB was not loaded anywhere. So now the question is what causes it to load... Another simple grep search will tell us:

    Code (Text):

    SPEEDY-NUC:nuc.git rehabman$ grep -l AppleBusPowerControllerUSB -R /System/Library/Extensions
    /System/Library/Extensions/AppleBusPowerController.kext/Contents/Info.plist
    /System/Library/Extensions/AppleBusPowerController.kext/Contents/MacOS/AppleBusPowerController
    /System/Library/Extensions/IOUSBHostFamily.kext/Contents/Info.plist
     
    And now, looking at AppleBusPowerController.kext's Info.plist:
    Screen Shot 2017-05-17 at 8.19.52 AM.png

    We can see that it matches on an ACPI device named 'EC'. Some PCs use EC for the Embedded Controller, but most use EC0 or H_EC.
    With that knowledge, we can simply rename H_EC->EC, or EC0->EC, and then AppleBusPowerControllerUSB will load, as will the related injections for each supported SMBIOS in IOUSBHostFamily.kext/Contents/Info.plist.

    Now, if you look carefully at the IOUSBHostFamily Info.plist, you find that newer SMBIOS are missing. Such as MacBookPro9,1, iMac17,1, and MacBookPro13,x. These models must use a different method for USB power property injection.

    Disassembly of AppleBusPowerController reveals that it is looking in IOACPIPlane for an object named 'USBX'. It then appears to extract the necessary data from device-properties. If we look at the ioreg for an iMac17,1, we find this:
    Screen Shot 2017-05-17 at 8.34.14 AM.png

    And there are our power properties again...

    Looking at DSDT.aml for the iMac17,1, we find the source for USBX:
    Code (Text):

        Scope (_SB)
        {
    ...
            Device (USBX)
            {
                Name (_ADR, Zero)  // _ADR: Address
                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                {
                    Store (Package (0x08)
                        {
                            "kUSBSleepPowerSupply",
                            0x13EC,
                            "kUSBSleepPortCurrentLimit",
                            0x0834,
                            "kUSBWakePowerSupply",
                            0x13EC,
                            "kUSBWakePortCurrentLimit",
                            0x0834
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }
     
    So, no surprise there... standard _DSM injection of the four USB power properties.

    Summary:
    - if the PC has an EC, name it 'EC' and AppleBusPowerControllerUSB will load.
    - if the SMBIOS matches one of the "legacy SMBIOS" in IOUSBHostFamily.kext/Contents/Info.plist, power properties for that Mac model will be injected (they may or may not be appropriate for your hardware)
    - if the SMBIOS is not present in IOUSBHostFamily.kext/Contents/Info.plist, power properties are determined by the USBX device in ACPI via normal _DSM property injection


    Insuring AppleBusPowerControllerUSB loads

    If you have an Embedded Controller (most laptops, some desktops), you can simply make sure the ACPI device is named EC. This is easily accomplished with a ACPI hotpatch in config.plist. I have added both the common renames into all the laptop guide plists.

    Here is what they look like:
    Screen Shot 2017-05-17 at 8.41.21 AM.png

    Note: If you are using static patched SSDTs (that is, patched OEM SSDTs in ACPI/patched), you must make sure the EC rename is accomplished in each of those files manually. Clover config.plist/ACPI/DSDT/Patches applies only to DSDT.aml in ACPI/patched, and OEM DSDT and SSDTs loaded from BIOS... not to SSDTs in ACPI/patched.

    Note: If your computer has an ECDT in ACPI, you should not rename anything along the EC path, including the EC itself. Use a "Fake EC" instead as described below. You can check if you have ECDT by extracting ACPI with Clover (F4) and checking for ECDT.aml in EFI/Clover/ACPI/origin.

    If you don't have an embedded controller, you can add a "fake" one with the following SSDT-EC.dsl (compile to AML):
    Code (Text):

    // Inject Fake EC device
    DefinitionBlock("", "SSDT", 2, "hack", "EC", 0)
    {
        Device(_SB.EC)
        {
            Name(_HID, "EC000000")
        }
    }
    //EOF
     
    Note: You may find you have an EC in your DSDT: Device with "Name (_HID, EisaId ("PNP0C09"))", even if it is not active.

    For example, this is on my NUC6i7KYK:
    Code (Text):

        Scope (_SB.PCI0.LPCB)
        {
            Device (H_EC)
            {
                Name (_HID, EisaId ("PNP0C09"))  // _HID: Hardware ID
                Name (_UID, One)  // _UID: Unique ID
                Method (_STA, 0, NotSerialized)  // _STA: Status
                {
                    Store (0x03, ^^^IGPU.CLID)
                    Return (Zero)
                }
    ...
     
    As you can see, it is returning zero from _STA. Which according to the ACPI spec is "not present". It means this H_EC device is effectively ignored. You will notice that it doesn't show in ioreg, IOService plane.

    DO NOT be tempted to activate the EC device by changing the return value of _STA. The reason it is returning zero here is because the computer DOES NOT HAVE an EC. In this case, you should add a "fake" EC as mentioned above.


    An SSDT to inject the USBX device

    For SMBIOS that are not already covered in IOUSBHostFamily.kext/Contents/Info.plist, you will need to inject the USBX device in order to provide the power properties for AppleBusPowerControllerUSB.

    Here is an example SSDT-USBX.dsl:
    Code (Text):

    // USB power properties via USBX device
    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 iMac17,1
                    "kUSBSleepPortCurrentLimit", 2100,
                    "kUSBSleepPowerSupply", 5100,
                    "kUSBWakePortCurrentLimit", 2100,
                    "kUSBWakePowerSupply", 5100,
                })
            }
        }
    }
    //EOF
     
    You might think that you could also override the values provided by IOUSBHostFamily.kext/Contents/Info.plist in the case a supported SMBIOS is being used. But unfortunately, that is not the case... the values in IOUSBHostFamily.kext/Contents/Info.plist override those that are provided by USBX.

    Also, if you already have an SSDT-UIAC.aml (as you should), it probably makes sense to simply add the _SB.USBX device to that SSDT instead of creating a new one.


    Overriding the IOUSBHostFamily.kext/Contents/Info.plist

    Although you could patch this kext Info.plist to provide different properties for any supported SMBIOS, it is desirable to do so without patching since patching would need to be redone after any update that provided a new copy of the file.

    I have added support in USBInjectAll.kext to inject these properties. And, at least in my testing, the properties injected by USBInjectAll.kext are succesful in overriding those from IOUSBHostFamily.kext.

    To specify power property overrides via USBInjectAll.kext, you must provide an "AppleBusPowerControllerUSB" in your UIAC.RMCF.

    For example:
    Code (Text):

    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...
                    "kUSBSleepPortCurrentLimit", 2100,
                    "kUSBSleepPowerSupply", 4700,
                    "kUSBWakePortCurrentLimit", 2100,
                    "kUSBWakePowerSupply", 4700,
                },
                // XHC overrides (8086:9cb1, NUC5)
                "8086_9cb1", Package()
                {
    // other UIAC.RMCF content follows (for custom port injection)
    ...
    }
    //EOF
     
    This feature is newly added in v0.6.0 of USBInjectAll.kext, so don't expect it to work in older versions.


    Problem Reporting

    Read FAQ, "Problem Reporting"
    https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/
     
    Last edited: Sep 6, 2017
  2. ben9923

    ben9923

    Joined:
    Apr 21, 2016
    Messages:
    700
    Mobo:
    ASUS X556UA (Clover)
    CPU:
    i5-6200U
    Graphics:
    Intel HD 520, 15.6" 1366x768
    Mobile Phone:
    iOS
    May 17, 2017 at 6:40 PM #2
    ben9923

    ben9923

    Joined:
    Apr 21, 2016
    Messages:
    700
    Mobo:
    ASUS X556UA (Clover)
    CPU:
    i5-6200U
    Graphics:
    Intel HD 520, 15.6" 1366x768
    Mobile Phone:
    iOS
    Great and detailed guide as always RehabMan!

    Could you explain why those changes are needed? as the custom SSDT-UIAC.aml + USBInjectAll.kext were doing a great job (I think).


    So for my Skylake Machine, I chose the MacBookPro13,2 SMBIOS which isn't supported by IOUSBHostFamily.ket/Contents/Info.plist.

    Following the guide, I should've:
    1. Used an EC0->EC DSDT 'hotpatch'
    2. Add an SSDT-USBX.aml to ACPI/patched
    3. Optional - Add to SortedOrder in my case. Didn't move to the 'hotpatch' method yet

    (I am still with macOS 10.12.3, I have a big 8086 Assembly project and I don't want to get into trouble until I finish it. Have a look at GitHub :p )

    Problem Reporting files are attached, hope I did it well and maybe this feedback can also help you :)

    Terminal outputs:
    Code (Text):
    Bens-MacBook-Pro:RehabMan benraz$ kextstat|grep -y acpiplat
       13    2 0xffffff7f82910000 0x66000    0x66000    com.apple.driver.AppleACPIPlatform (5.0) 867C81BE-EA01-3A65-89F4-06D78E6514CA <12 11 7 6 5 4 3 1>
    Bens-MacBook-Pro:RehabMan benraz$ kextstat|grep -y appleintelcpu
    Bens-MacBook-Pro:RehabMan benraz$ kextstat|grep -y applelpc
       90    0 0xffffff7f820e6000 0x3000     0x3000     com.apple.driver.AppleLPC (3.1) F51595F0-F9B1-3B85-A1C3-F984DAD4107E <88 12 5 4 3>
    Bens-MacBook-Pro:RehabMan benraz$ kextstat|grep -y applehda
      103    1 0xffffff7f825d1000 0x1d000    0x1d000    com.apple.driver.AppleHDAController (278.56) CFB0D0AE-F09A-3660-8F95-7A02FD5FBF07 <102 101 75 12 7 6 5 4 3 1>
      123    0 0xffffff7f82753000 0xb4000    0xb4000    com.apple.driver.AppleHDA (278.56) A4EB06C9-A40A-39EF-9C4A-D7F23DB9A2F9 <122 103 102 101 80 75 6 5 4 3 1>



    Bens-MacBook-Pro:~ benraz$ sudo touch /System/Library/Extensions && sudo kextcache -u /

    Password:

    kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext VoodooPS2Trackpad.kext

    kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext VoodooPS2Mouse.kext

    kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext VoodooPS2Keyboard.kext

    kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext VoodooPS2Controller.kext

    kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext VoodooI2C.kext

    kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext USBInjectAll.kext

    kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext SATA-100-series-unsupported.kext

    kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext RealtekRTL8111.kext

    kext-dev-mode allowing invalid signature -67054 0xFFFFFFFFFFFEFA12 for kext X86PlatformPlugin.kext

    kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext IntelBacklight.kext

    kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext FakeSMC.kext

    kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext CodecCommander.kext

    kext-dev-mode allowing invalid signature -67013 0xFFFFFFFFFFFEFA3B for kext AppleMobileDevice.kext

    AppleHPM.kext - dependency 'com.apple.driver.AppleIntelLpssI2CController' not found.

    AppleHPM.kext is missing dependencies (including anyway; dependencies may be available from elsewhere)

    kext-dev-mode allowing invalid signature -67030 0xFFFFFFFFFFFEFA2A for kext AppleHDAHardwareConfigDriver.kext

    kext-dev-mode allowing invalid signature -67061 0xFFFFFFFFFFFEFA0B for kext AppleHDA.kext

    kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext ACPIBatteryManager.kext

    AppleHPM.kext - dependency 'com.apple.driver.AppleIntelLpssI2CController' not found.

    AppleHPM.kext - dependency 'com.apple.driver.AppleIntelLpssI2CController' not found.

    Prelink failed for com.apple.driver.AppleHPM; omitting from prelinked kernel.

    KernelCache ID: B7795F058969EF7C9912C7AA158BD32F

    symlink("/System/Library/PrelinkedKernels/prelinkedkernel", "/System/Library/Caches/com.apple.kext.caches/Startup/kernelcache") failed 17 (File exists) <createPrelinkedKernel 2795>

    Bens-MacBook-Pro:~ benraz$
     
    BTW, you may want to add 'SSDT-USBX.aml' to your commented-out SortedOrder in your config.plist files :)
     

    Attached Files:

  3. RehabMan

    RehabMan Moderator

    Joined:
    May 3, 2012
    Messages:
    162,172
    Mobo:
    Intel DH67BL
    CPU:
    Core i7-2600K
    Graphics:
    Intel HD 3000
    Mac:
    MacBook Air
    Mobile Phone:
    iOS
    May 17, 2017 at 6:45 PM #3
    RehabMan

    RehabMan Moderator

    Joined:
    May 3, 2012
    Messages:
    162,172
    Mobo:
    Intel DH67BL
    CPU:
    Core i7-2600K
    Graphics:
    Intel HD 3000
    Mac:
    MacBook Air
    Mobile Phone:
    iOS
    They each address different issues.
    This one addresses power property injection.

    Yes... looks as expected. You have successfully injected 2100/5100 as you can see in ioreg...

    For most people, I would probably suggest adding it to your SSDT-UAIC.aml instead of a separate SSDT...
    And I'm really trying to phase out SortedOrder (eg. hotpatch for renames, DropOem=false, no SortedOrder)
     
  4. VioletDragon

    VioletDragon

    Joined:
    Jun 9, 2013
    Messages:
    11,006
    Mobo:
    GA-H77N-WIFI
    CPU:
    Core i7-3770
    Graphics:
    Intel HD 4000
    Mac:
    MacBook, Mac mini
    Mobile Phone:
    Android, iOS
    May 17, 2017 at 6:45 PM #4
    VioletDragon

    VioletDragon

    Joined:
    Jun 9, 2013
    Messages:
    11,006
    Mobo:
    GA-H77N-WIFI
    CPU:
    Core i7-3770
    Graphics:
    Intel HD 4000
    Mac:
    MacBook, Mac mini
    Mobile Phone:
    Android, iOS
    Hey. Great Guide mate :thumbup:. Now heres a question. What about SSDT-XHC? Can we leave that in place and add? Ive also noticed in my Native Extracted DSDT and in Patchmatic i don't have a entry for H_EC or EC0.

    Code (Text):
    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...
                    "kUSBSleepPortCurrentLimit", 2100,
                    "kUSBSleepPowerSupply", 4700,
                    "kUSBWakePortCurrentLimit", 2100,
                    "kUSBWakePowerSupply", 4700,
                },
                // XHC overrides (8086:9cb1, NUC5)
                "8086_9cb1", Package()
                {
    // other UIAC.RMCF content follows (for custom port injection)
    ...
    }
    //EOF
     
  5. RehabMan

    RehabMan Moderator

    Joined:
    May 3, 2012
    Messages:
    162,172
    Mobo:
    Intel DH67BL
    CPU:
    Core i7-2600K
    Graphics:
    Intel HD 3000
    Mac:
    MacBook Air
    Mobile Phone:
    iOS
    May 17, 2017 at 6:47 PM #5
    RehabMan

    RehabMan Moderator

    Joined:
    May 3, 2012
    Messages:
    162,172
    Mobo:
    Intel DH67BL
    CPU:
    Core i7-2600K
    Graphics:
    Intel HD 3000
    Mac:
    MacBook Air
    Mobile Phone:
    iOS
    You can leave the other AAPL, property injects still there for the case you're booting 10.11 or older...

    If it is a desktop, you may not have an EC (even some laptops don't have an EC).
    That scenario is covered in post #1.
     
    VioletDragon likes this.
  6. VioletDragon

    VioletDragon

    Joined:
    Jun 9, 2013
    Messages:
    11,006
    Mobo:
    GA-H77N-WIFI
    CPU:
    Core i7-3770
    Graphics:
    Intel HD 4000
    Mac:
    MacBook, Mac mini
    Mobile Phone:
    Android, iOS
    May 17, 2017 at 6:50 PM #6
    VioletDragon

    VioletDragon

    Joined:
    Jun 9, 2013
    Messages:
    11,006
    Mobo:
    GA-H77N-WIFI
    CPU:
    Core i7-3770
    Graphics:
    Intel HD 4000
    Mac:
    MacBook, Mac mini
    Mobile Phone:
    Android, iOS
    Cheers mate. Im going to take a look into this with iMac 13,2 see what the outcome is. Seems to be easy enough for EC as you mentioned create a Fake SSDT for EC.
     
    Last edited: May 17, 2017
  7. ben9923

    ben9923

    Joined:
    Apr 21, 2016
    Messages:
    700
    Mobo:
    ASUS X556UA (Clover)
    CPU:
    i5-6200U
    Graphics:
    Intel HD 520, 15.6" 1366x768
    Mobile Phone:
    iOS
    May 17, 2017 at 6:56 PM #7
    ben9923

    ben9923

    Joined:
    Apr 21, 2016
    Messages:
    700
    Mobo:
    ASUS X556UA (Clover)
    CPU:
    i5-6200U
    Graphics:
    Intel HD 520, 15.6" 1366x768
    Mobile Phone:
    iOS
    That's great, thank you! :)

    Will be moved to SSDT-UIAC.

    Understood, the advantages it has over static patching are a big difference.
    I wish I had time to do so now (together with an update to 10.12.5), but I have that big project and I need a fully functional laptop, and I don't have that much time - this change was very quick but an upgrade/move to hotpatch would take much more time (link for my 8086 project in post #2, have a look :p )
     
  8. RehabMan

    RehabMan Moderator

    Joined:
    May 3, 2012
    Messages:
    162,172
    Mobo:
    Intel DH67BL
    CPU:
    Core i7-2600K
    Graphics:
    Intel HD 3000
    Mac:
    MacBook Air
    Mobile Phone:
    iOS
    May 17, 2017 at 7:05 PM #8
    RehabMan

    RehabMan Moderator

    Joined:
    May 3, 2012
    Messages:
    162,172
    Mobo:
    Intel DH67BL
    CPU:
    Core i7-2600K
    Graphics:
    Intel HD 3000
    Mac:
    MacBook Air
    Mobile Phone:
    iOS
    Neat!
     
    ben9923 likes this.
  9. VioletDragon

    VioletDragon

    Joined:
    Jun 9, 2013
    Messages:
    11,006
    Mobo:
    GA-H77N-WIFI
    CPU:
    Core i7-3770
    Graphics:
    Intel HD 4000
    Mac:
    MacBook, Mac mini
    Mobile Phone:
    Android, iOS
    May 17, 2017 at 7:53 PM #9
    VioletDragon

    VioletDragon

    Joined:
    Jun 9, 2013
    Messages:
    11,006
    Mobo:
    GA-H77N-WIFI
    CPU:
    Core i7-3770
    Graphics:
    Intel HD 4000
    Mac:
    MacBook, Mac mini
    Mobile Phone:
    Android, iOS
    Just a thumbs up here are the Values for iMac 13,2 from IOUSBHostFamily.kext.

    Code (Text):
    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
     
  10. VioletDragon

    VioletDragon

    Joined:
    Jun 9, 2013
    Messages:
    11,006
    Mobo:
    GA-H77N-WIFI
    CPU:
    Core i7-3770
    Graphics:
    Intel HD 4000
    Mac:
    MacBook, Mac mini
    Mobile Phone:
    Android, iOS
    May 17, 2017 at 8:10 PM #10
    VioletDragon

    VioletDragon

    Joined:
    Jun 9, 2013
    Messages:
    11,006
    Mobo:
    GA-H77N-WIFI
    CPU:
    Core i7-3770
    Graphics:
    Intel HD 4000
    Mac:
    MacBook, Mac mini
    Mobile Phone:
    Android, iOS
    Im trying to create a New SSDT-UIAC. Could you take a look at my ioreg because I'm not sure if I need to leave PR01, PR12 on EH01 and EH02. What do you think?
     

    Attached Files:

Share This Page