Contribute
Register

ML: Native Ivy Bridge CPU and GPU Power Management

RehabMan

Moderator
Joined
May 3, 2012
Messages
192,090
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
The whole zip file is the Rehabman directory into which I copied output from IOReg..

SSDT.aml genrated from the script was copied where Ozmosis needs it ... I do not know if there is anything to do with the other files generated by the script .. I've looked at the script and if this be Clover would only copy SSDT.aml to the /Extra folder
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:
     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:
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.
 
Joined
May 31, 2013
Messages
372
Motherboard
Z77MX
CPU
i5-3570K
Graphics
MSI GTX 970 Gaming 4G
Mac
iMac, MacBook Pro
Classic Mac
Mobile Phone
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 ?
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
192,090
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
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 ...
Your system is obviously loading an OEM SSDT, which becomes SSDT.aml "in front of" SSDT-1.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 ?
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.
 
Joined
May 31, 2013
Messages
372
Motherboard
Z77MX
CPU
i5-3570K
Graphics
MSI GTX 970 Gaming 4G
Mac
iMac, MacBook Pro
Classic Mac
Mobile Phone
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
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
192,090
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
I am not providing a DSDT so whatever is there comes from the firmware...
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.
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
192,090
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
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 ???
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.
 
Joined
Feb 19, 2010
Messages
40
Mac
Classic Mac
Mobile Phone
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.
 

toleda

Moderator
Joined
May 20, 2010
Messages
24,103
Motherboard
Asus Maximus VII Impact
CPU
Core i7-4770K
Graphics
RX 560 + HD4600
Mac
iMac, MacBook Pro, Mac mini
Classic Mac
512K, LC, Power Mac
Mobile Phone
iOS
Joined
May 31, 2013
Messages
372
Motherboard
Z77MX
CPU
i5-3570K
Graphics
MSI GTX 970 Gaming 4G
Mac
iMac, MacBook Pro
Classic Mac
Mobile Phone
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.
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.
 
Top