ML: Native Ivy Bridge CPU and GPU Power Management

Discussion in 'Mountain Lion Desktop Support' started by toleda, Jan 4, 2013.

  1. RehabMan

    RehabMan Moderator

    Joined:
    May 3, 2012
    Messages:
    164,915
    Mobo:
    Intel DH67BL
    CPU:
    Core i7-2600K
    Graphics:
    Intel HD 3000
    Mac:
    MacBook Air
    Mobile Phone:
    iOS
    Jul 28, 2015 at 4:31 AM #901
    RehabMan

    RehabMan Moderator

    Joined:
    May 3, 2012
    Messages:
    164,915
    Mobo:
    Intel DH67BL
    CPU:
    Core i7-2600K
    Graphics:
    Intel HD 3000
    Mac:
    MacBook Air
    Mobile Phone:
    iOS
    The script content is in SSDT-1.aml. According to your bootlog, Ozmosis is not loading it. I don't know if you have an additional SSDT that is SSDT.aml (maybe an OEM SSDT?)?

    That's between you and Ozmosis. I have no experience iwth Ozmosis and plans to look into it.

    Your DSDT also has a bunch of stuff that duplicates SSDT-1.aml content.

    Code (Text):

         Scope (_PR)
        {
            Scope (CPU0)
            {
                Method (APSN, 0, NotSerialized)
                {
                    Return (0x04)
                }

                Method (APLF, 0, NotSerialized)
                {
                    Return (0x04)
                }

                Method (APSS, 0, NotSerialized)
                {
                    Return (Package (0x23)
                    {
                        Package (0x06)
                        {
                            0x1068,
                            Zero,
                            0x0A,
                            0x0A,
                            0x2A00,
                            0x2A00
                        },

                        Package (0x06)
                        {
                            0x1004,
                            Zero,
                            0x0A,
                            0x0A,
                            0x2900,
                            0x2900
                        },

                        Package (0x06)
                        {
                            0x0FA0,
                            Zero,
                            0x0A,
                            0x0A,
                            0x2800,
                            0x2800
                        },

                        Package (0x06)
                        {
                            0x0F3C,
                            Zero,
                            0x0A,
                            0x0A,
                            0x2700,
                            0x2700
                        },

                        Package (0x06)
                        {
                            0x0ED8,
                            Zero,
                            0x0A,
                            0x0A,
                            0x2600,
                            0x2600
                        },

                        Package (0x06)
                        {
                            0x0E74,
                            Zero,
                            0x0A,
                            0x0A,
                            0x2500,
                            0x2500
                        },

                        Package (0x06)
                        {
                            0x0E10,
                            Zero,
                            0x0A,
                            0x0A,
                            0x2400,
                            0x2400
                        },

                        Package (0x06)
                        {
                            0x0DAC,
                            Zero,
                            0x0A,
                            0x0A,
                            0x2300,
                            0x2300
                        },

                        Package (0x06)
                        {
                            0x0D48,
                            Zero,
                            0x0A,
                            0x0A,
                            0x2200,
                            0x2200
                        },

                        Package (0x06)
                        {
                            0x0CE4,
                            Zero,
                            0x0A,
                            0x0A,
                            0x2100,
                            0x2100
                        },

                        Package (0x06)
                        {
                            0x0C80,
                            Zero,
                            0x0A,
                            0x0A,
                            0x2000,
                            0x2000
                        },

                        Package (0x06)
                        {
                            0x0C1C,
                            Zero,
                            0x0A,
                            0x0A,
                            0x1F00,
                            0x1F00
                        },

                        Package (0x06)
                        {
                            0x0BB8,
                            Zero,
                            0x0A,
                            0x0A,
                            0x1E00,
                            0x1E00
                        },

                        Package (0x06)
                        {
                            0x0B54,
                            Zero,
                            0x0A,
                            0x0A,
                            0x1D00,
                            0x1D00
                        },

                        Package (0x06)
                        {
                            0x0AF0,
                            Zero,
                            0x0A,
                            0x0A,
                            0x1C00,
                            0x1C00
                        },

                        Package (0x06)
                        {
                            0x0A8C,
                            Zero,
                            0x0A,
                            0x0A,
                            0x1B00,
                            0x1B00
                        },

                        Package (0x06)
                        {
                            0x0A28,
                            Zero,
                            0x0A,
                            0x0A,
                            0x1A00,
                            0x1A00
                        },

                        Package (0x06)
                        {
                            0x09C4,
                            Zero,
                            0x0A,
                            0x0A,
                            0x1900,
                            0x1900
                        },

                        Package (0x06)
                        {
                            0x0960,
                            Zero,
                            0x0A,
                            0x0A,
                            0x1800,
                            0x1800
                        },

                        Package (0x06)
                        {
                            0x08FC,
                            Zero,
                            0x0A,
                            0x0A,
                            0x1700,
                            0x1700
                        },

                        Package (0x06)
                        {
                            0x0898,
                            Zero,
                            0x0A,
                            0x0A,
                            0x1600,
                            0x1600
                        },

                        Package (0x06)
                        {
                            0x0834,
                            Zero,
                            0x0A,
                            0x0A,
                            0x1500,
                            0x1500
                        },

                        Package (0x06)
                        {
                            0x07D0,
                            Zero,
                            0x0A,
                            0x0A,
                            0x1400,
                            0x1400
                        },

                        Package (0x06)
                        {
                            0x076C,
                            Zero,
                            0x0A,
                            0x0A,
                            0x1300,
                            0x1300
                        },

                        Package (0x06)
                        {
                            0x0708,
                            Zero,
                            0x0A,
                            0x0A,
                            0x1200,
                            0x1200
                        },

                        Package (0x06)
                        {
                            0x06A4,
                            Zero,
                            0x0A,
                            0x0A,
                            0x1100,
                            0x1100
                        },

                        Package (0x06)
                        {
                            0x0640,
                            Zero,
                            0x0A,
                            0x0A,
                            0x1000,
                            0x1000
                        },

                        Package (0x06)
                        {
                            0x05DC,
                            Zero,
                            0x0A,
                            0x0A,
                            0x0F00,
                            0x0F00
                        },

                        Package (0x06)
                        {
                            0x0578,
                            Zero,
                            0x0A,
                            0x0A,
                            0x0E00,
                            0x0E00
                        },

                        Package (0x06)
                        {
                            0x0514,
                            Zero,
                            0x0A,
                            0x0A,
                            0x0D00,
                            0x0D00
                        },

                        Package (0x06)
                        {
                            0x04B0,
                            Zero,
                            0x0A,
                            0x0A,
                            0x0C00,
                            0x0C00
                        },

                        Package (0x06)
                        {
                            0x044C,
                            Zero,
                            0x0A,
                            0x0A,
                            0x0B00,
                            0x0B00
                        },

                        Package (0x06)
                        {
                            0x03E8,
                            Zero,
                            0x0A,
                            0x0A,
                            0x0A00,
                            0x0A00
                        },

                        Package (0x06)
                        {
                            0x0384,
                            Zero,
                            0x0A,
                            0x0A,
                            0x0900,
                            0x0900
                        },

                        Package (0x06)
                        {
                            0x0320,
                            Zero,
                            0x0A,
                            0x0A,
                            0x0800,
                            0x0800
                        }
                    })
                }

                Method (ACST, 0, NotSerialized)
                {
                    Return (Package (0x06)
                    {
                        One,
                        0x04,
                        Package (0x04)
                        {
                            ResourceTemplate ()
                            {
                                Register (FFixedHW,
                                    0x01,               // Bit Width
                                    0x02,               // Bit Offset
                                    0x0000000000000000, // Address
                                    0x01,               // Access Size
                                    )
                            },

                            One,
                            0x03,
                            0x03E8
                        },

                        Package (0x04)
                        {
                            ResourceTemplate ()
                            {
                                Register (FFixedHW,
                                    0x01,               // Bit Width
                                    0x02,               // Bit Offset
                                    0x0000000000000010, // Address
                                    0x03,               // Access Size
                                    )
                            },

                            0x03,
                            0xCD,
                            0x01F4
                        },

                        Package (0x04)
                        {
                            ResourceTemplate ()
                            {
                                Register (FFixedHW,
                                    0x01,               // Bit Width
                                    0x02,               // Bit Offset
                                    0x0000000000000020, // Address
                                    0x03,               // Access Size
                                    )
                            },

                            0x06,
                            0xF5,
                            0x015E
                        },

                        Package (0x04)
                        {
                            ResourceTemplate ()
                            {
                                Register (FFixedHW,
                                    0x01,               // Bit Width
                                    0x02,               // Bit Offset
                                    0x0000000000000030, // Address
                                    0x03,               // Access Size
                                    )
                            },

                            0x07,
                            0xF5,
                            0xC8
                        }
                    })
                }
            }

            Scope (CPU1)
            {
                Method (APSS, 0, NotSerialized)
                {
                    Return (^^CPU0.APSS ())
                }

                Method (ACST, 0, NotSerialized)
                {
                    Return (^^CPU0.ACST ())
                }
            }

            Scope (CPU2)
            {
                Method (APSS, 0, NotSerialized)
                {
                    Return (^^CPU0.APSS ())
                }

                Method (ACST, 0, NotSerialized)
                {
                    Return (^^CPU0.ACST ())
                }
            }

            Scope (CPU3)
            {
                Method (APSS, 0, NotSerialized)
                {
                    Return (^^CPU0.APSS ())
                }

                Method (ACST, 0, NotSerialized)
                {
                    Return (^^CPU0.ACST ())
                }
            }

            Scope (CPU4)
            {
                Method (APSS, 0, NotSerialized)
                {
                    Return (^^CPU0.APSS ())
                }

                Method (ACST, 0, NotSerialized)
                {
                    Return (^^CPU0.ACST ())
                }
            }

            Scope (CPU5)
            {
                Method (APSS, 0, NotSerialized)
                {
                    Return (^^CPU0.APSS ())
                }

                Method (ACST, 0, NotSerialized)
                {
                    Return (^^CPU0.ACST ())
                }
            }

            Scope (CPU6)
            {
                Method (APSS, 0, NotSerialized)
                {
                    Return (^^CPU0.APSS ())
                }

                Method (ACST, 0, NotSerialized)
                {
                    Return (^^CPU0.ACST ())
                }
            }

            Scope (CPU7)
            {
                Method (APSS, 0, NotSerialized)
                {
                    Return (^^CPU0.APSS ())
                }

                Method (ACST, 0, NotSerialized)
                {
                    Return (^^CPU0.ACST ())
                }
            }
        }
     
    This poses a problem for the content in SSDT-1.aml as the entire SSDT will likely be ignored by OS X.

    A good way to detect that there are serious issues with the ACPI config is to attempt disassembly:
    Code (Text):

    Speedy-OSX:For_RehabMan RehabMan$ iasl -da -dl *.aml

    Intel ACPI Component Architecture
    ASL+ Optimizing Compiler version 20150410-64
    Copyright (c) 2000 - 2015 Intel Corporation

    Reading ACPI table from file   DSDT.aml - Length 00029987 (0x007523)
    ACPI: DSDT 0x0000000000000000 007523 (v02 ALASKA A M I    00000012 INTL 20140724)
    Acpi table [DSDT] successfully installed and loaded
    Reading ACPI table from file   SSDT.aml - Length 00000877 (0x00036D)
    ...
    Reading ACPI table from file SSDT-1.aml - Length 00001795 (0x000703)
    ...
    [B]ACPI Error: [APSN] Namespace lookup failure, AE_ALREADY_EXISTS (20150410/dswload-451)[/B]
    ACPI Exception: AE_ALREADY_EXISTS, During name lookup/catalog (20150410/psobject-305)
     
    If you can't disassemble the injected files as a group (iasl -da), then you're likely to have issues with OS X as well.
     
  2. Kazbah

    Kazbah

    Joined:
    May 31, 2013
    Messages:
    375
    Mobo:
    Z77MX
    CPU:
    i5-3570K
    Graphics:
    MSI GTX 970 Gaming 4G
    Mac:
    iMac, MacBook Pro
    Jul 28, 2015 at 2:13 PM #902
    Kazbah

    Kazbah

    Joined:
    May 31, 2013
    Messages:
    375
    Mobo:
    Z77MX
    CPU:
    i5-3570K
    Graphics:
    MSI GTX 970 Gaming 4G
    Mac:
    iMac, MacBook Pro
    This is becoming interesting ...

    I placed a file called SSDT.aml in /Efi/Oz/Acpi/Load. Oz finds it and injects it but when we extract it with patchmatic it comes out as SSDT-1.aml ...

    From what i have seen so far , OZ doesn't care what the file is named as long as it end with .aml.

    If i would remove my own SSDT, reboot and run patchmatic -extract I guess we would get whatever is provided by the firmware, right ?
     
  3. RehabMan

    RehabMan Moderator

    Joined:
    May 3, 2012
    Messages:
    164,915
    Mobo:
    Intel DH67BL
    CPU:
    Core i7-2600K
    Graphics:
    Intel HD 3000
    Mac:
    MacBook Air
    Mobile Phone:
    iOS
    Jul 28, 2015 at 3:38 PM #903
    RehabMan

    RehabMan Moderator

    Joined:
    May 3, 2012
    Messages:
    164,915
    Mobo:
    Intel DH67BL
    CPU:
    Core i7-2600K
    Graphics:
    Intel HD 3000
    Mac:
    MacBook Air
    Mobile Phone:
    iOS
    Your system is obviously loading an OEM SSDT, which becomes SSDT.aml "in front of" SSDT-1.aml.

    As I already detailed for you, your problem is in the DSDT you or Ozmosis is providing. No possibility to make the generated SSDT work with that DSDT.
     
  4. Kazbah

    Kazbah

    Joined:
    May 31, 2013
    Messages:
    375
    Mobo:
    Z77MX
    CPU:
    i5-3570K
    Graphics:
    MSI GTX 970 Gaming 4G
    Mac:
    iMac, MacBook Pro
    Jul 28, 2015 at 4:16 PM #904
    Kazbah

    Kazbah

    Joined:
    May 31, 2013
    Messages:
    375
    Mobo:
    Z77MX
    CPU:
    i5-3570K
    Graphics:
    MSI GTX 970 Gaming 4G
    Mac:
    iMac, MacBook Pro
    I am not providing a DSDT so whatever is there comes from the firmware...

    I will do some more research/digging (actually research where i can research this some more) on how Oz works ...

    Thanks for your time it is very appreciated
     
  5. Kazbah

    Kazbah

    Joined:
    May 31, 2013
    Messages:
    375
    Mobo:
    Z77MX
    CPU:
    i5-3570K
    Graphics:
    MSI GTX 970 Gaming 4G
    Mac:
    iMac, MacBook Pro
    Jul 28, 2015 at 9:02 PM #905
    Kazbah

    Kazbah

    Joined:
    May 31, 2013
    Messages:
    375
    Mobo:
    Z77MX
    CPU:
    i5-3570K
    Graphics:
    MSI GTX 970 Gaming 4G
    Mac:
    iMac, MacBook Pro
    Just one thing I still don't get ...

    If there is a DSDT & SSDT provided by firmware and I have a Ivy Bridge CPU why isn't OS X not loading X86PlatformPlugin ???
     
  6. RehabMan

    RehabMan Moderator

    Joined:
    May 3, 2012
    Messages:
    164,915
    Mobo:
    Intel DH67BL
    CPU:
    Core i7-2600K
    Graphics:
    Intel HD 3000
    Mac:
    MacBook Air
    Mobile Phone:
    iOS
    Jul 29, 2015 at 12:36 AM #906
    RehabMan

    RehabMan Moderator

    Joined:
    May 3, 2012
    Messages:
    164,915
    Mobo:
    Intel DH67BL
    CPU:
    Core i7-2600K
    Graphics:
    Intel HD 3000
    Mac:
    MacBook Air
    Mobile Phone:
    iOS
    Your bootloader is probalby doing strange things to your DSDT.

    There is always a DSDT in play, whether you're providing a patched DSDT or bootloader is providing (potentially patched) DSDT.
     
  7. RehabMan

    RehabMan Moderator

    Joined:
    May 3, 2012
    Messages:
    164,915
    Mobo:
    Intel DH67BL
    CPU:
    Core i7-2600K
    Graphics:
    Intel HD 3000
    Mac:
    MacBook Air
    Mobile Phone:
    iOS
    Jul 29, 2015 at 12:37 AM #907
    RehabMan

    RehabMan Moderator

    Joined:
    May 3, 2012
    Messages:
    164,915
    Mobo:
    Intel DH67BL
    CPU:
    Core i7-2600K
    Graphics:
    Intel HD 3000
    Mac:
    MacBook Air
    Mobile Phone:
    iOS
    DSDT/SSDT injection is controlled by the bootloader.

    X86PlatformPlugin is not loading because OS X is ignoring your SSDT with "plugin-type" injection because of the issues I already highlighted with your DSDT.
     
  8. EnzoFX

    EnzoFX

    Joined:
    Feb 19, 2010
    Messages:
    41
    Jul 30, 2015 at 8:18 AM #908
    EnzoFX

    EnzoFX

    Joined:
    Feb 19, 2010
    Messages:
    41
    Stupid question, but is this still working?

    I run the app and all I get is an alias in my desktop and another in my user folder. Both of which do nothing and it prompts me to fix the alias... I'm clearly missing something here. The commands are nonexistant in terminal.
     
  9. toleda

    toleda Moderator

    Joined:
    May 20, 2010
    Messages:
    21,196
    Mobo:
    Asus Maximus VII Impact
    CPU:
    Core i7-4770K
    Graphics:
    HD7750 + HD4600
    Mac:
    iMac, MacBook Pro, Mac mini
    Classic Mac:
    512K, LC, Power Mac
    Mobile Phone:
    iOS
    Jul 31, 2015 at 7:18 PM #909
    toleda

    toleda Moderator

    Joined:
    May 20, 2010
    Messages:
    21,196
    Mobo:
    Asus Maximus VII Impact
    CPU:
    Core i7-4770K
    Graphics:
    HD7750 + HD4600
    Mac:
    iMac, MacBook Pro, Mac mini
    Classic Mac:
    512K, LC, Power Mac
    Mobile Phone:
    iOS
  10. Kazbah

    Kazbah

    Joined:
    May 31, 2013
    Messages:
    375
    Mobo:
    Z77MX
    CPU:
    i5-3570K
    Graphics:
    MSI GTX 970 Gaming 4G
    Mac:
    iMac, MacBook Pro
    Aug 7, 2015 at 8:44 PM #910
    Kazbah

    Kazbah

    Joined:
    May 31, 2013
    Messages:
    375
    Mobo:
    Z77MX
    CPU:
    i5-3570K
    Graphics:
    MSI GTX 970 Gaming 4G
    Mac:
    iMac, MacBook Pro
    I have finally fixed it. Actually don't need SSDT generated by Piker's script, all that is needed is to open System SSDT with MaciASL and insert the "plugin-type" injection. Save to /Efi/Oz/Acpi/Load and reboot.
     

Share This Page