Piker-Alpha / ssdtPRGen.sh

Script to generate a SSDT for Power Management
713 stars 156 forks source link

i3-3217U Ivy on Yosemite 10.10.2 - X86PlatformShim::start - Failed to send stepper (working well otherwise) #122

Open harrykipper opened 9 years ago

harrykipper commented 9 years ago

Hello, I have been trying for a while to get a good ssdt with your brilliant script. I managed to get 11 P-States (8-18) using vanilla AICPUPM (I patched my bios). The problem is that the processor will NEVER scale below (10), or 1200Mhz.

Then I tried many combinations with -xcpm enabled, AICPUPMI was always showing some sort of error, but I would always get all the P-States working and the processor would always scale nicely, as reported by HWMonitor and IntelPowerGadget.

I got the best outcome so far with ./ssdtPRGen.sh -f 1800 -lfm 800 -b Mac-2E6FAB96566FE58C -c 1 -d 0 -l 4 -m MacBookAir5,2 -p i3-3217U -t 17 -x 1 -w 0

which gives these entries in system.log:

Mar 2 16:32:37 Annas-MacBook-Pro kernel[0]: X86PlatformShim::sendPStates - Success! Mar 2 16:32:37 Annas-MacBook-Pro kernel[0]: X86PlatformShim::sendPStates - Success! Mar 2 16:32:37 Annas-MacBook-Pro kernel[0]: X86PlatformShim::start - Failed to send stepper

The generated ssdt is pasted below, here is the output from AICPUPMI. I know that -xcpm should probably not be used with IvyBridge, but it gives me the best results, if only I could get rid of the error...

Mar 2 16:32:36 localhost kernel[0]: AICPUPMI: CPU Low Frequency Mode.............: 800 MHz Mar 2 16:32:36 localhost kernel[0]: AICPUPMI: CPU Maximum non-Turbo Frequency....: 1800 MHz Mar 2 16:32:36 localhost kernel[0]: AICPUPMI: CPU Maximum Turbo Frequency........: 1800 MHz Mar 2 16:32:36 localhost kernel[0]: AICPUPMI: IGPU Current Frequency.............: 350 MHz Mar 2 16:32:36 localhost kernel[0]: AICPUPMI: IGPU Minimum Frequency.............: 350 MHz Mar 2 16:32:36 localhost kernel[0]: AICPUPMI: IGPU Maximum Non-Turbo Frequency...: 350 MHz Mar 2 16:32:36 localhost kernel[0]: AICPUPMI: IGPU Maximum Turbo Frequency.......: 1050 MHz Mar 2 16:32:36 localhost kernel[0]: AICPUPMI: IGPU Maximum limit.................: No Limit Mar 2 16:32:36 localhost kernel[0]: AICPUPMI: CPU P-States [ (8) 17 18 ] iGPU P-States [ (7) ] Mar 2 16:32:36 localhost kernel[0]: AICPUPMI: CPU C3-Cores [ 0 1 2 3 ] Mar 2 16:32:36 localhost kernel[0]: AICPUPMI: CPU C7-Cores [ 0 1 2 3 ] Mar 2 16:32:36 localhost kernel[0]: AICPUPMI: CPU P-States [ 8 (13) 17 18 ] iGPU P-States [ (7) ] Mar 2 16:32:41 Annas-MacBook-Pro kernel[0]: AICPUPMI: CPU P-States [ 8 13 16 17 (18) ] iGPU P-States [ (7) ] Mar 2 16:32:41 Annas-MacBook-Pro kernel[0]: AICPUPMI: CPU P-States [ 8 (13) 14 16 17 18 ] iGPU P-States [ (7) ] Mar 2 16:32:42 Annas-MacBook-Pro kernel[0]: AICPUPMI: CPU P-States [ (8) 13 14 15 16 17 18 ] iGPU P-States [ (7) ] Mar 2 16:32:44 Annas-MacBook-Pro kernel[0]: AICPUPMI: CPU P-States [ (8) 12 13 14 15 16 17 18 ] iGPU P-States [ (7) ] Mar 2 16:32:47 Annas-MacBook-Pro kernel[0]: AICPUPMI: CPU P-States [ (8) 9 12 13 14 15 16 17 18 ] iGPU P-States [ (7) ] Mar 2 16:32:50 Annas-MacBook-Pro kernel[0]: AICPUPMI: CPU P-States [ (8) 9 11 12 13 14 15 16 17 18 ] iGPU P-States [ (7) ] Mar 2 16:33:06 Annas-MacBook-Pro kernel[0]: AICPUPMI: CPU C6-Cores [ 0 1 2 3 ] Mar 2 16:33:08 Annas-MacBook-Pro kernel[0]: AICPUPMI: CPU P-States [ 8 9 11 12 13 14 15 16 17 (18) ] iGPU P-States [ 7 (9) ] Mar 2 16:33:18 Annas-MacBook-Pro kernel[0]: AICPUPMI: CPU P-States [ (8) 9 10 11 12 13 14 15 16 17 18 ] iGPU P-States [ (7) 9 ]

/*

DefinitionBlock ("ssdt.aml", "SSDT", 1, "APPLE ", "CpuPm", 0x00015600) { External (PR.CPU0, DeviceObj) External (PR.CPU1, DeviceObj) External (PR.CPU2, DeviceObj) External (PR.CPU3, DeviceObj)

Scope (\_PR_.CPU0)
{
    Name (APLF, Zero)
    Name (APSN, Zero)
    Name (APSS, Package (0x0B)
    {
        /* High Frequency Modes (non-turbo) */
        Package (0x06) { 0x0708, 0x004268, 0x0A, 0x0A, 0x1200, 0x1200 },
        Package (0x06) { 0x06A4, 0x003E01, 0x0A, 0x0A, 0x1100, 0x1100 },
        Package (0x06) { 0x0640, 0x0039B1, 0x0A, 0x0A, 0x1000, 0x1000 },
        Package (0x06) { 0x05DC, 0x003577, 0x0A, 0x0A, 0x0F00, 0x0F00 },
        Package (0x06) { 0x0578, 0x003153, 0x0A, 0x0A, 0x0E00, 0x0E00 },
        Package (0x06) { 0x0514, 0x002D46, 0x0A, 0x0A, 0x0D00, 0x0D00 },
        Package (0x06) { 0x04B0, 0x00294D, 0x0A, 0x0A, 0x0C00, 0x0C00 },
        Package (0x06) { 0x044C, 0x00256A, 0x0A, 0x0A, 0x0B00, 0x0B00 },
        Package (0x06) { 0x03E8, 0x00219D, 0x0A, 0x0A, 0x0A00, 0x0A00 },
        Package (0x06) { 0x0384, 0x001DE4, 0x0A, 0x0A, 0x0900, 0x0900 },
        /* Low Frequency Mode */
        Package (0x06) { 0x0320, 0x001A41, 0x0A, 0x0A, 0x0800, 0x0800 }
    })

    Method (ACST, 0, NotSerialized)
    {
        /* Low Power Modes for CPU0 */
        Return (Package (0x06)
        {
            One,
            0x04,
            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (FFixedHW,
                        0x01,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        0x01,               // Access Size
                        )
                },
                One,
                Zero,
                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
            }
        })
    }

    Method (_DSM, 4, NotSerialized)
    {
        If (LEqual (Arg2, Zero))
        {
            Return (Buffer (One)
            {
                0x03
            })
        }

        Return (Package (0x02)
        {
            "plugin-type",
            One
        })
    }
}

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

    Method (ACST, 0, NotSerialized)
    {
        /* Low Power Modes for CPU1 */
        Return (Package (0x05)
        {
            One,
            0x03,
            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (FFixedHW,
                        0x01,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        0x01,               // Access Size
                        )
                },
                One,
                0x03E8,
                0x03E8
            },

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

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

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

    Method (ACST, 0, NotSerialized) { Return (\_PR_.CPU1.ACST ()) }
}

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

    Method (ACST, 0, NotSerialized) { Return (\_PR_.CPU1.ACST ()) }
}

}

harrykipper commented 9 years ago

I answer myself. Reading your blog I learned that IvyBridge doesn't use FrequencyVectors, therefore the error is to be expected. I tried adding the -xcpm_ignore_fv boot flag, but it's still there. However I shouldn't worry about it, I think..

Piker-Alpha commented 9 years ago

Is the error gone with -lfm 1200 ? Otherwise try -lfm 800 with -w[1/2/3]

harrykipper commented 9 years ago

I thought that the "failed to send stepper" error depended from IvyBridge not using FrequencyVectors. I tried -lfm 800 with -w[1/2/3], the error is always there. I didn't think of trying 1200 as the cpu is supposed to scale down to 800. I am now using "-xcpm" and "cstates" as boot flags and everything seems to work well. If I remember correctly from my previous tries: -lfm 800 -x 0 -w 1 ---> working, but frequency locked at 800 -lfm 800 -x 0 -w 2 ---> kernel panic -lfm 800 -x 0 -w 3 ---> working, but frequency never below 1200 -x 0 -w 3 ---> working, but frequency never below 1200 -lfm 800 -x 1 -w[1/2/3] ---> working, but "failed to send stepper" and "failed to send p-states" errors -lfm 800 -x 1 -w 0 ---> working, but "failed to send stepper" error

I will try 1200 and report back later

harrykipper commented 9 years ago

Right. With -lfm 1200 -x 1 -w 0 i get X86PlatformShim::start - Failed to send PStates X86PlatformShim::start - Failed to send stepper

with -lfm 800 -x 1 -w 0 it's X86PlatformShim::sendPStates - Success! X86PlatformShim::start - Failed to send stepper

Piker-Alpha commented 9 years ago

Clearly you need -lfm 800 and I had already fixed the LFM here https://github.com/Piker-Alpha/ssdtPRGen.sh/blob/Beta/Data/Ivy%20Bridge.cfg#L170 so that is fine. You no longer need to add the -lfm 800 arguments. Just running ssdtPRGen.sh should work now (without the -xcpm boot arguments). Can you confirm this?

harrykipper commented 9 years ago

So, without -xcpm boot flag i get the following: -x 0 -w 1: Kernel panic -x 0 -w 2: X86PlatformShim::sendPStates - Success! X86PlatformShim::sendPStates - Success! X86PlatformShim::sendStepper - Done! all the P-States from 800 to 1800 are there, but frequency is stuck at 800Mhz

-x 0 -w 3: Kernel panic Output:

{Override value: (-x) XCPM mode, now set to: 0!

Override value: (-w) Ivy Bridge workarounds, now set to: 3!

System information: Mac OS X 10.10.2 (14C109) Brandstring 'Intel(R) Core(TM) i3-3217U CPU @ 1.80GHz'

Scope (PR) {220 bytes} with ACPI Processor declarations found in the DSDT (ACPI 1.0 compliant) Generating ssdt.dsl for a 'MacBookAir5,2' with board-id [Mac-2E6FAB96566FE58C] Ivy Bridge Core i3-3217U processor [0x306A9] setup [0x0903] Processor matched! With a maximum TDP of 17 Watt, as specified by Intel Number logical CPU's: 4 (Core Frequency: 1800 MHz) Number of Turbo States: 0 Number of P-States: 11 (800-1800 MHz) Adjusting C-States for detected (mobile) processor Injected C-States for CPU0 (C1,C3,C6,C7) Injected C-States for CPU1 (C1,C2,C3) Warning: 'cpu-type' may be set improperly (0x0903 instead of 0x0703)

Intel ACPI Component Architecture ASL Optimizing Compiler version 20140926-64 [Nov 6 2014] Copyright (c) 2000 - 2014 Intel Corporation

Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 0 Optimizations}

The resulting ssdt is: {/*

DefinitionBlock ("ssdt.aml", "SSDT", 1, "APPLE ", "CpuPm", 0x00015700) { External (PR.CPU0, DeviceObj) External (PR.CPU1, DeviceObj) External (PR.CPU2, DeviceObj) External (PR.CPU3, DeviceObj)

Scope (\_PR_.CPU0)
{
    Method (_INI, 0, NotSerialized)
    {
        Store ("ssdtPRGen version....: 15.7 / Mac OS X 10.10.2 (14C109)", Debug)
        Store ("target processor.....: i3-3217U", Debug)
        Store ("source processor.....: Intel(R) Core(TM) i3-3217U CPU @ 1.80GHz", Debug)
        Store ("baseFrequency........: 800", Debug)
        Store ("frequency............: 1800", Debug)
        Store ("busFrequency.........: 100", Debug)
        Store ("logicalCPUs..........: 4", Debug)
        Store ("maximum TDP..........: 17", Debug)
        Store ("packageLength........: 11", Debug)
        Store ("turboStates..........: 0", Debug)
        Store ("maxTurboFrequency....: 1800", Debug)
        Store ("IvyWorkArounds.......: 3", Debug)
        Store ("machdep.xcpm.mode....: 0", Debug)
    }

    Name (APLF, Zero)
    Name (APSN, One)
    Name (APSS, Package (0x0C)
    {
        /* Workaround for the Ivy Bridge PM 'bug' */
        Package (0x06) { 0x0709, 0x004268, 0x0A, 0x0A, 0x1300, 0x1300 },
        /* High Frequency Modes (non-turbo) */
        Package (0x06) { 0x0708, 0x004268, 0x0A, 0x0A, 0x1200, 0x1200 },
        Package (0x06) { 0x06A4, 0x003E01, 0x0A, 0x0A, 0x1100, 0x1100 },
        Package (0x06) { 0x0640, 0x0039B1, 0x0A, 0x0A, 0x1000, 0x1000 },
        Package (0x06) { 0x05DC, 0x003577, 0x0A, 0x0A, 0x0F00, 0x0F00 },
        Package (0x06) { 0x0578, 0x003153, 0x0A, 0x0A, 0x0E00, 0x0E00 },
        Package (0x06) { 0x0514, 0x002D46, 0x0A, 0x0A, 0x0D00, 0x0D00 },
        Package (0x06) { 0x04B0, 0x00294D, 0x0A, 0x0A, 0x0C00, 0x0C00 },
        Package (0x06) { 0x044C, 0x00256A, 0x0A, 0x0A, 0x0B00, 0x0B00 },
        Package (0x06) { 0x03E8, 0x00219D, 0x0A, 0x0A, 0x0A00, 0x0A00 },
        Package (0x06) { 0x0384, 0x001DE4, 0x0A, 0x0A, 0x0900, 0x0900 },
        /* Low Frequency Mode */
        Package (0x06) { 0x0320, 0x001A41, 0x0A, 0x0A, 0x0800, 0x0800 }
    })

    Method (ACST, 0, NotSerialized)
    {
        Store ("Method _PR_.CPU0.ACST Called", Debug)
        Store ("CPU0 C-States    : 29", Debug)

        /* Low Power Modes for CPU0 */
        Return (Package (0x06)
        {
            One,
            0x04,
            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (FFixedHW,
                        0x01,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        0x01,               // Access Size
                        )
                },
                One,
                Zero,
                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
            }
        })
    }

    Method (_DSM, 4, NotSerialized)
    {
        Store ("Method _PR_.CPU0._DSM Called", Debug)

        If (LEqual (Arg2, Zero))
        {
            Return (Buffer (One)
            {
                0x03
            })
        }

        Return (Package (0x02)
        {
            "plugin-type",
            One
        })
    }
}

Scope (\_PR_.CPU1)
{
    Method (APSS, 0, NotSerialized)
    {
        Store ("Method _PR_.CPU1.APSS Called", Debug)

        Return (\_PR_.CPU0.APSS)
    }

    Method (ACST, 0, NotSerialized)
    {
        Store ("Method _PR_.CPU1.ACST Called", Debug)
        Store ("CPU1 C-States    : 7", Debug)

        /* Low Power Modes for CPU1 */
        Return (Package (0x05)
        {
            One,
            0x03,
            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (FFixedHW,
                        0x01,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        0x01,               // Access Size
                        )
                },
                One,
                0x03E8,
                0x03E8
            },

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

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

Scope (\_PR_.CPU2)
{
    Method (APSS, 0, NotSerialized)
    {
        Store ("Method _PR_.CPU2.APSS Called", Debug)

        Return (\_PR_.CPU0.APSS)
    }

    Method (ACST, 0, NotSerialized) { Return (\_PR_.CPU1.ACST ()) }
}

Scope (\_PR_.CPU3)
{
    Method (APSS, 0, NotSerialized)
    {
        Store ("Method _PR_.CPU3.APSS Called", Debug)

        Return (\_PR_.CPU0.APSS)
    }

    Method (ACST, 0, NotSerialized) { Return (\_PR_.CPU1.ACST ()) }
}

} }

My best outcome is with -xcpm boot flag and -x 1 -w 0, where I get X86PlatformShim::sendPStates - Success! X86PlatformShim::start - Failed to send stepper

The generated ssdt is here --- http://pastebin.com/25BeRjRY

Could you point me to some resources on this error? Is it important? Everything seems to work fine despite it.

harrykipper commented 9 years ago

Interestingly, if I now generate with -x 0 -lfm 1200 -w 3 there is no kernel panic and everything works, except that obviously the frequency doesn't step below 1200

Piker-Alpha commented 9 years ago

You should always test changes without a pre-linked kernel/kernelcache because that can trigger panics, as you have noticed by now. Also. If everything works with -lfm 1200 (without errors) then 1200 is the minimum supported frequency. Apparently. This is also why I ask people to use AppleIntelInfo.kext (previously known as AppleCPUPowerManagementInfo.kext) to see what LFM should be.

harrykipper commented 9 years ago

How do I boot with a non prelinked kernel? I use NoCahes in Clover, but nothing changes. As for the frequency, linux says that the minimum is 800. I did compile your AppleIntelInfo.kext, I have been using it, this is the output with -x1 -w 0

localhost kernel[0]: AICPUPMI: CPU Low Frequency Mode.............: 800 MHz Mar 7 00:31:51 localhost kernel[0]: AICPUPMI: CPU Maximum non-Turbo Frequency....: 1800 MHz Mar 7 00:31:51 localhost kernel[0]: AICPUPMI: CPU Maximum Turbo Frequency........: 1800 MHz Mar 7 00:31:51 localhost kernel[0]: AICPUPMI: IGPU Current Frequency.............: 350 MHz Mar 7 00:31:51 localhost kernel[0]: AICPUPMI: IGPU Minimum Frequency.............: 350 MHz Mar 7 00:31:51 localhost kernel[0]: AICPUPMI: IGPU Maximum Non-Turbo Frequency...: 350 MHz Mar 7 00:31:51 localhost kernel[0]: AICPUPMI: IGPU Maximum Turbo Frequency.......: 1050 MHz Mar 7 00:31:51 localhost kernel[0]: AICPUPMI: IGPU Maximum limit.................: No Limit Mar 7 00:31:51 localhost kernel[0]: AICPUPMI: CPU P-States [ (8) 17 18 ] iGPU P-States [ (7) ] Mar 7 00:31:51 localhost kernel[0]: AICPUPMI: CPU C3-Cores [ 0 1 2 3 ] Mar 7 00:31:51 localhost kernel[0]: AICPUPMI: CPU C6-Cores [ 2 3 ] Mar 7 00:31:51 localhost kernel[0]: AICPUPMI: CPU C7-Cores [ 0 1 2 3 ] Mar 7 00:31:51 localhost kernel[0]: AICPUPMI: CPU P-States [ (8) 13 17 18 ] iGPU P-States [ (7) ] Mar 7 00:32:12 Annas-MacBook-Pro kernel[0]: AICPUPMI: CPU P-States [ 8 (13) 16 17 18 ] iGPU P-States [ (7) ] Mar 7 00:32:13 Annas-MacBook-Pro kernel[0]: AICPUPMI: CPU P-States [ (8) 13 15 16 17 18 ] iGPU P-States [ (7) ] Mar 7 00:32:20 Annas-MacBook-Pro kernel[0]: AICPUPMI: CPU P-States [ (8) 13 14 15 16 17 18 ] iGPU P-States [ (7) ] Mar 7 00:32:20 Annas-MacBook-Pro kernel[0]: AICPUPMI: CPU P-States [ (8) 12 13 14 15 16 17 18 ] iGPU P-States [ (7) ] Mar 7 00:32:22 Annas-MacBook-Pro kernel[0]: AICPUPMI: CPU P-States [ (8) 11 12 13 14 15 16 17 18 ] iGPU P-States [ (7) ] Mar 7 00:32:24 Annas-MacBook-Pro kernel[0]: AICPUPMI: CPU C6-Cores [ 0 1 2 3 ] Mar 7 00:33:57 Annas-MacBook-Pro kernel[0]: AICPUPMI: CPU P-States [ (8) 10 11 12 13 14 15 16 17 18 ] iGPU P-States [ (7) ] Mar 7 00:33:59 Annas-MacBook-Pro kernel[0]: AICPUPMI: CPU P-States [ (8) 9 10 11 12 13 14 15 16 17 18 ] iGPU P-States [ (7) ] Mar 7 00:34:44 Annas-MacBook-Pro kernel[0]: AICPUPMI: CPU P-States [ 8 9 10 11 12 13 14 15 16 17 (18) ] iGPU P-States [ 7 (10) ]

and this is it with -x 0 -w 3 -ldm 1200

Mar 7 00:40:28 localhost kernel[0]: AICPUPMI: CPU Low Frequency Mode.............: 800 MHz Mar 7 00:40:28 localhost kernel[0]: AICPUPMI: CPU Maximum non-Turbo Frequency....: 1800 MHz Mar 7 00:40:28 localhost kernel[0]: AICPUPMI: CPU Maximum Turbo Frequency........: 1800 MHz Mar 7 00:40:28 localhost kernel[0]: AICPUPMI: IGPU Current Frequency.............: 350 MHz Mar 7 00:40:28 localhost kernel[0]: AICPUPMI: IGPU Minimum Frequency.............: 350 MHz Mar 7 00:40:28 localhost kernel[0]: AICPUPMI: IGPU Maximum Non-Turbo Frequency...: 350 MHz Mar 7 00:40:28 localhost kernel[0]: AICPUPMI: IGPU Maximum Turbo Frequency.......: 1050 MHz Mar 7 00:40:28 localhost kernel[0]: AICPUPMI: IGPU Maximum limit.................: No Limit Mar 7 00:40:28 localhost kernel[0]: AICPUPMI: CPU P-States [ (17) ] iGPU P-States [ (7) ] Mar 7 00:40:28 localhost kernel[0]: AICPUPMI: CPU C3-Cores [ 2 3 ] Mar 7 00:40:28 localhost kernel[0]: AICPUPMI: CPU C7-Cores [ 2 3 ] Mar 7 00:40:28 localhost kernel[0]: AICPUPMI: CPU P-States [ (8) 17 ] iGPU P-States [ (7) ] Mar 7 00:40:28 localhost kernel[0]: AICPUPMI: CPU P-States [ 8 16 (17) ] iGPU P-States [ (7) ] Mar 7 00:40:28 localhost kernel[0]: AICPUPMI: CPU P-States [ 8 15 16 (17) ] iGPU P-States [ (7) ] Mar 7 00:40:28 localhost kernel[0]: AICPUPMI: CPU P-States [ (8) 13 15 16 17 ] iGPU P-States [ (7) ] Mar 7 00:40:33 Annas-MacBook-Pro kernel[0]: AICPUPMI: CPU P-States [ 8 13 15 16 17 (18) ] iGPU P-States [ (7) ] Mar 7 00:40:33 Annas-MacBook-Pro kernel[0]: AICPUPMI: CPU C7-Cores [ 0 1 2 3 ] Mar 7 00:40:35 Annas-MacBook-Pro kernel[0]: AICPUPMI: CPU C3-Cores [ 1 2 3 ] Mar 7 00:40:35 Annas-MacBook-Pro kernel[0]: AICPUPMI: CPU C3-Cores [ 0 1 2 3 ] Mar 7 00:40:35 Annas-MacBook-Pro kernel[0]: AICPUPMI: CPU C6-Cores [ 0 1 ] Mar 7 00:40:36 Annas-MacBook-Pro kernel[0]: AICPUPMI: CPU P-States [ 8 (12) 13 15 16 17 18 ] iGPU P-States [ (7) ] Mar 7 00:40:46 Annas-MacBook-Pro kernel[0]: AICPUPMI: CPU P-States [ 8 12 13 15 16 17 (18) ] iGPU P-States [ 7 (10) ] Mar 7 00:40:46 Annas-MacBook-Pro kernel[0]: AICPUPMI: CPU C6-Cores [ 0 1 2 3 ] Mar 7 00:40:55 Annas-MacBook-Pro kernel[0]: AICPUPMI: CPU P-States [ 8 (12) 13 14 15 16 17 18 ] iGPU P-States [ (7) 10 ] Mar 7 00:40:59 Annas-MacBook-Pro kernel[0]: AICPUPMI: CPU P-States [ 8 11 (12) 13 14 15 16 17 18 ] iGPU P-States [ (7) 10 ]

Piker-Alpha commented 9 years ago

Use -f (boot argument) to skip caches and pre-linked kernel loading, and I wasn't saying that you should use -lfm 1200 because we already know that you need 800. Which is also why I changed the data. Your only mission is to get rid of the errors with -p 3217U -x 0 -w 3 (or whatever works for your setup).

Also check for the unknown platform error in /var/log/system.log because that can have a bad influence as well on power management. And if 800 MHz isn't reached then that is with a reason – though not necessarily a bad one since i3 processors are anything for powerful.

harrykipper commented 9 years ago

I failed my mission, Pike. I can only get it to work with -lfm 1200 or with xcpm. According to DPCIManager I get 4 p-states active in either case: 12-13-16-18 when using AICPM 8-13-15-18 when using xcpm. I am inclined to keep going with xcpm, as I want to be able to use the lower p-states. I don't have any other errors in the logs, only the one 'X86PlatformShim::start - Failed to send stepper' the meaning of which I ignore... :-)

NicolasKheirallah commented 9 years ago

Same result here with an I5-3317U with lfm-1200 i get P States: 12, 13, 15, 24 with LFM 800 I get kernel panic with LFM 792 I get some more pstates but I get an error X86PlatformPlugin::getCPUPStates - acpiPSArrayObj is not an valid OSArray

Pstates are on 792 : 8, 19, 21, 24

LFM 900 gives Pstate : 9 ,13, 15, 16, 17, 18, 19, 21, 24 Im using -x 0 -w 3

harrykipper commented 9 years ago

-x0 -w 3 -lfm 900 works for me. The script output is slightly different (there is "1 optimization"). No error using AICPM (no -xcpm) and P-States 9,13,16,18. There must be a way to reach p-state 8....

Override value: (-p) processor model, now using: i3-3217U! Override value: (-lfm) low frequency mode, now using: 900! Override value: (-x) XCPM mode, now set to: 0! Override value: (-w) Ivy Bridge workarounds, now set to: 3!

System information: Mac OS X 10.10.2 (14C109) Brandstring 'Intel(R) Core(TM) i3-3217U CPU @ 1.80GHz'

Scope (PR) {220 bytes} with ACPI Processor declarations found in the DSDT (ACPI 1.0 compliant) Generating ssdt.dsl for a 'MacBookAir5,2' with board-id [Mac-2E6FAB96566FE58C] Ivy Bridge Core i3-3217U processor [0x306A9] setup [0x0903] Processor matched! With a maximum TDP of 17 Watt, as specified by Intel Number logical CPU's: 4 (Core Frequency: 1800 MHz) Number of Turbo States: 0 Number of P-States: 10 (900-1800 MHz) Adjusting C-States for detected (mobile) processor Injected C-States for CPU0 (C1,C3,C6,C7) Injected C-States for CPU1 (C1,C2,C3) Warning: 'cpu-type' may be set improperly (0x0903 instead of 0x0703)

Intel ACPI Component Architecture ASL Optimizing Compiler version 20140926-64 [Nov 6 2014] Copyright (c) 2000 - 2014 Intel Corporation

ASL Input: /Users/annalee/Library/ssdtPRGen/ssdt.dsl - 256 lines, 7309 bytes, 48 keywords AML Output: /Users/annalee/Library/ssdtPRGen/ssdt.aml - 1454 bytes, 16 named objects, 32 executable opcodes

Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 1 Optimizations

This is the resulting ssdt

/*

DefinitionBlock ("ssdt.aml", "SSDT", 1, "APPLE ", "CpuPm", 0x00015700) { External (PR.CPU0, DeviceObj) External (PR.CPU1, DeviceObj) External (PR.CPU2, DeviceObj) External (PR.CPU3, DeviceObj)

Scope (\_PR_.CPU0)
{
    Method (_INI, 0, NotSerialized)
    {
        Store ("ssdtPRGen version....: 15.7 / Mac OS X 10.10.2 (14C109)", Debug)
        Store ("target processor.....: i3-3217U", Debug)
        Store ("source processor.....: Intel(R) Core(TM) i3-3217U CPU @ 1.80GHz", Debug)
        Store ("baseFrequency........: 900", Debug)
        Store ("frequency............: 1800", Debug)
        Store ("busFrequency.........: 100", Debug)
        Store ("logicalCPUs..........: 4", Debug)
        Store ("maximum TDP..........: 17", Debug)
        Store ("packageLength........: 10", Debug)
        Store ("turboStates..........: 0", Debug)
        Store ("maxTurboFrequency....: 1800", Debug)
        Store ("IvyWorkArounds.......: 3", Debug)
        Store ("machdep.xcpm.mode....: 0", Debug)
    }

    Name (APLF, 0x01)
    Name (APSN, One)
    Name (APSS, Package (0x0C)
    {
        /* Workaround for the Ivy Bridge PM 'bug' */
        Package (0x06) { 0x0709, 0x004268, 0x0A, 0x0A, 0x1300, 0x1300 },
        /* High Frequency Modes (non-turbo) */
        Package (0x06) { 0x0708, 0x004268, 0x0A, 0x0A, 0x1200, 0x1200 },
        Package (0x06) { 0x06A4, 0x003E01, 0x0A, 0x0A, 0x1100, 0x1100 },
        Package (0x06) { 0x0640, 0x0039B1, 0x0A, 0x0A, 0x1000, 0x1000 },
        Package (0x06) { 0x05DC, 0x003577, 0x0A, 0x0A, 0x0F00, 0x0F00 },
        Package (0x06) { 0x0578, 0x003153, 0x0A, 0x0A, 0x0E00, 0x0E00 },
        Package (0x06) { 0x0514, 0x002D46, 0x0A, 0x0A, 0x0D00, 0x0D00 },
        Package (0x06) { 0x04B0, 0x00294D, 0x0A, 0x0A, 0x0C00, 0x0C00 },
        Package (0x06) { 0x044C, 0x00256A, 0x0A, 0x0A, 0x0B00, 0x0B00 },
        Package (0x06) { 0x03E8, 0x00219D, 0x0A, 0x0A, 0x0A00, 0x0A00 },
        /* Low Frequency Mode */
        Package (0x06) { 0x0384, 0x001DE4, 0x0A, 0x0A, 0x0900, 0x0900 },
        Package (0x06) { 0x0320,     Zero, 0x0A, 0x0A, 0x0800, 0x0800 }
    })

    Method (ACST, 0, NotSerialized)
    {
        Store ("Method _PR_.CPU0.ACST Called", Debug)
        Store ("CPU0 C-States    : 29", Debug)

        /* Low Power Modes for CPU0 */
        Return (Package (0x06)
        {
            One,
            0x04,
            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (FFixedHW,
                        0x01,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        0x01,               // Access Size
                        )
                },
                One,
                Zero,
                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
            }
        })
    }

    Method (_DSM, 4, NotSerialized)
    {
        Store ("Method _PR_.CPU0._DSM Called", Debug)

        If (LEqual (Arg2, Zero))
        {
            Return (Buffer (One)
            {
                0x03
            })
        }

        Return (Package (0x02)
        {
            "plugin-type",
            One
        })
    }
}

Scope (\_PR_.CPU1)
{
    Method (APSS, 0, NotSerialized)
    {
        Store ("Method _PR_.CPU1.APSS Called", Debug)

        Return (\_PR_.CPU0.APSS)
    }

    Method (ACST, 0, NotSerialized)
    {
        Store ("Method _PR_.CPU1.ACST Called", Debug)
        Store ("CPU1 C-States    : 7", Debug)

        /* Low Power Modes for CPU1 */
        Return (Package (0x05)
        {
            One,
            0x03,
            Package (0x04)
            {
                ResourceTemplate ()
                {
                    Register (FFixedHW,
                        0x01,               // Bit Width
                        0x02,               // Bit Offset
                        0x0000000000000000, // Address
                        0x01,               // Access Size
                        )
                },
                One,
                0x03E8,
                0x03E8
            },

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

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

Scope (\_PR_.CPU2)
{
    Method (APSS, 0, NotSerialized)
    {
        Store ("Method _PR_.CPU2.APSS Called", Debug)

        Return (\_PR_.CPU0.APSS)
    }

    Method (ACST, 0, NotSerialized) { Return (\_PR_.CPU1.ACST ()) }
}

Scope (\_PR_.CPU3)
{
    Method (APSS, 0, NotSerialized)
    {
        Store ("Method _PR_.CPU3.APSS Called", Debug)

        Return (\_PR_.CPU0.APSS)
    }

    Method (ACST, 0, NotSerialized) { Return (\_PR_.CPU1.ACST ()) }
}

}

Piker-Alpha commented 9 years ago

Ok so -lfm 900 works for you with -x 3 then try ./ssdtPRGen.sh without -lfm (or use -lfm 800) and change -x 3 to -x 1 so that it drops the bottom P-State.

The "1 Optimizations" is caused by this

Name (APLF, 0x01)

Which should have been

Name (APLF, One)

Let me fix this right away (in the Beta).

NicolasKheirallah commented 9 years ago

Harry try lfm 792 as step 8 is at that freqency as I also got kernel panic at 800 but 792 worked

NicolasKheirallah commented 9 years ago

Pike when using -w1 I get stuck on the lowest frequency... :/

Piker-Alpha commented 9 years ago

Read this: https://github.com/Piker-Alpha/ssdtPRGen.sh/issues/124

NicolasKheirallah commented 9 years ago

sysctl -n hw.cpufrequency outputs 1696000000

Piker-Alpha commented 9 years ago

Perhaps this is the problem. Here's an example for a 3.3GHz processor. Check your values:

hw.busfrequency: 100000000
hw.busfrequency_min: 100000000
hw.busfrequency_max: 100000000
hw.tbfrequency: 1000000000
hw.busfrequency = 100000000
hw.tbfrequency = 1000000000

And these for the CPU frequency

hw.cpufrequency: 3300000000
hw.cpufrequency_min: 3300000000
hw.cpufrequency_max: 3300000000
hw.cpufrequency = 3300000000

They should all match. Anything else can be a boot loader (SMBIOS) or BIOS problem.

NicolasKheirallah commented 9 years ago

hw.busfrequency: 400000000 hw.busfrequency_min :400000000 hw.busfrequency_max 400000000 hw.tbfrequency: 1000000000

hw.cpufrequency: 1696000000 hw.cpufrequency_min: 1696000000 hw.cpufrequency_max: 1696000000 hw.cpufrequency = 1696000000

I'm using a laptop so there's no options for cpu in there and I'm using clover to patch MSR 0xE2 CPU is 1,7Ghz and turbo is at 2,4ghz

harrykipper commented 9 years ago

with -lfm 792 -x 0 -w 3 I get errors in system.log (http://pastebin.com/F7TFLbiK) and the frequency is stuck at 1800

-lfm 792 -x 0 -w 1 gives this error at compile: Name (APSS, Package (0x0C) Error 6062 - Initializer list longer than declared package length ^

-lfm 792 -x 0 -w 2 only has a remark Name (APSS, Package (0x0C) Remark 2063 - Initializer list shorter than declared package length ^

My frequencies are the same as amazingjoey's, except for cpufrequency, which is 1795000000

Plus, I must add that the bios settings of this machine (Lenovo U310) are amazingly dumbed down, there's absolutely nothing regarding the cpu or power saving accessible in the config. I have read somewhere that the bios can be "unlocked" to access an hidden page with more settings, but I have no idea...

Piker-Alpha commented 9 years ago

This is dead wrong

w.busfrequency:      400000000
hw.busfrequency_min : 400000000
hw.busfrequency_max   400000000

If you are using Clover then ask the developers how to solve this.

NicolasKheirallah commented 9 years ago

Yes I'm using latest Clover , Ill try to contact slice on the forum. :) Thanks for the help

Can you explain what I should say the bug is ?

harrykipper commented 9 years ago

It's definitely Clover. My frequencies are 400000000/1795000000 in CLover, but in Chameleon I have the following (the ssdt related errors are still there though)

hw.busfrequency: 100000000 hw.busfrequency_min :100000000 hw.busfrequency_max 100000000 hw.tbfrequency: 1000000000

hw.cpufrequency: 1800000000 hw.cpufrequency_min: 1800000000 hw.cpufrequency_max: 1800000000 hw.cpufrequency = 1800000000

Using Clover the y-axis of Intel Power Gadget Frequency diagram goes up to 7Ghz, making it very hard to read. It is normal in Chameleon. Guess this must be the reason

harrykipper commented 9 years ago

Ok, sorry if I am flooding the place.. This can be fixed in Clover specifying the frequencies with

<key>CPU</key>
        <dict>
                <key>BusSpeedkHz</key>
                <integer>100000</integer>
                <key>FrequencyMHz</key>
                <integer>1800</integer>
                <key>QPI</key>
                <integer>100</integer>
       </dict>

I get the expected values with this and Power Gadget is not crazy anymore

Piker-Alpha commented 9 years ago

ehm. Is everything working now? No more errors/weird behaviour?

NicolasKheirallah commented 9 years ago

My audio started too shutter and sound like exploded speakers after that fix :(

Piker-Alpha commented 9 years ago

Do you have that with Chameleon? I guess not. Sounds like another Clover issue.

harrykipper commented 9 years ago

I don't have issues with sound and the frequencies are ok now, but the weird behaviour is still there - consistent across Chameleon and Clover.

Piker-Alpha commented 9 years ago

Search for IOPPF: ... in /var/log/system.log What do you get?

Thing is. With XCPM you need 'FrequencyVectors' See also: https://github.com/Piker-Alpha/ssdtPRGen.sh/issues/103

harrykipper commented 9 years ago

I get XCPM mode when I am using Xcpm and AppleIntelCPUPowerManagement mode when I am not using it :-) My problem is that in AICPM mode I can't get to step 8, only 9, using -lfm 900, because with -lfm 800 (or -lfm 792) it's either kernel panics or weird behaviour (frequency stuck at 1800 or at 800, errors in system.log). In xcpm mode I get step 8 and everything seems to work normally, but I have the Failed to send stepper error.

As for the sound problems, I was mistaken. I have them when specifying busSpeedkHz 100000 in Clover, but I found that those can be solved playing around with the frequency. Now I am using

<key>BusSpeedkHz</key>
<integer>99690</integer>
<key>QPI</key>
<integer>100</integer>

and the cracking sound seems to be gone. The issue of weird default frequencies that we were getting before are described in the Clover wiki http://clover-wiki.zetam.org/Configuration/CPU#QPI

Piker-Alpha commented 9 years ago

Forget AppleIntelCPUPowerManagement That kext should normally not be loaded. Not with Ivy Bridge and later processors. And XCPM with Haswell processors require FrequencyVectors, but perhaps this is now also the case for Ivy Bridge processors with XCPM enabled.

In case you are still using MacBookAir5,2 with board-id Mac-2E6FAB96566FE58C then you could either run https://github.com/Piker-Alpha/freqVectorsEdit.sh after you changed line 71 in the script, or copy a plist with FrequencyVectors over Mac-2E6FAB96566FE58C.plist, after you made a backup of the original file, and then reboot to see if that solves it.

Let me know how that worked out.

harrykipper commented 9 years ago

I edited and ran the script. When prompted for which plist to use I picked either MacbookAir6,1 or MacbookAir6,2. The error was still there with both. Then I copied one of the same two over Mac-2E6FAB96566FE58C and the error was gone, but I only had p-states 8 and 18. :-/

Piker-Alpha commented 9 years ago

Ok so something clearly changed with Yosemite as now you need -lfm 800 -x 1 -w 0 with Ivy Bridge. Adding the boot flag -xcpm_ignore_fv may prevent the stepper error, but I no longer have an Ivy Bridge processor hand so could you please verify this for me? Thanks!

harrykipper commented 9 years ago

I tried -xcpm_ignore_fv already (read about it in your blog post), but it doesn't have an impact on the error.

NicolasKheirallah commented 9 years ago

try -lfm 800 -x 1 -w 0 with

-xcpm -f

BusSpeedkHz 10000 QPI 100

Seems too work , no errors or cracking sound and, P States: 8, 12, 14, 17, 20, 21, 24

or not...

11/03/15 20:56:58,000 kernel[0]: X86PlatformShim::sendPStates - Success! 11/03/15 20:56:58,000 kernel[0]: X86PlatformShim::sendPStates - Success! 11/03/15 20:56:58,000 kernel[0]: X86PlatformShim::sendPStates - Success! 11/03/15 20:56:58,000 kernel[0]: fGPUIdleIntervalMS = 0 11/03/15 20:56:58,000 kernel[0]: X86PlatformShim::sendPStates - Success! 11/03/15 20:56:58,000 kernel[0]: X86PlatformShim::start - Failed to send stepper

atleast GPU preformance is good now :) Should I ignore this error and continue ? seems like I get full performance now

harrykipper commented 9 years ago

I have been using -lfm 800 -x 1 -w 0 with -xcpm since the beginning. "Failed to send stepper" is why I am here :-) With BusSpeedkHz 100000 I have no sound at all :-/ but with 97800 or something everything seems fine.

Piker-Alpha commented 9 years ago

So the best thing to do is to replace the plist, or patch the plist with FrequencyVector data from some other model, and add -xcpm_ignore_fv as boot flag. Or simply ignore the error message.

NicolasKheirallah commented 9 years ago

-xcpm_ignore_fv Lockes me at 800Mhz with I've used the FrequencyVector.sh and added the Macbookair5,2 but doesnt seem too do something

I would rather learn how to fix it then ignoring it , but without xcpm flag and no workaround I get 8,16,26 in IGPU which I usually only get 8,16

harrykipper commented 9 years ago

Ok, maybe we made it :-)

I simply copied the FrequencyVectors portion over from the MacbookAir6,1 plist into the MacBookAir5,2 plist and deleted the ringFreqTables portion there. The rest stayed untouched. Rebuilt cache, restarted with -xcpm -xcpm_ignore_fv and "Failed to send stepper" is finally gone. Everything seems to work well as before, DPCI manager shows p-states 8-13-15-18 as expected (it's a humble i3). Powermetrics shows 4 C-States and 4 P-States being used.

Thank you very much Pike and Joey!

Piker-Alpha commented 9 years ago

Wouldn't it be easier to pick a different Mac model and board-id? Here's a list with supported data:

Plists with ringFreqTables:

Mac-031AEE4D24BFF0B1.plist / Macmini6,1
Mac-2E6FAB96566FE58C.plist / MacBookAir5,2
Mac-4B7AC7E43945597E.plist / MacBookPro9,1
Mac-66F35F19FE2A0D05.plist / MacBookAir5,1
Mac-6F01561E16C75D06.plist / MacBookPro9,2
Mac-7DF2A3B5E5D671ED.plist / (unknown)
Mac-AFD8A9D944EA4843.plist / MacBookPro10,2
Mac-C3EC7CD22292981F.plist / MacBookPro10,1
Mac-F65AE981FFA204ED.plist / Macmini6,2

Plists with FrequencyVectors:

Mac-031B6874CF7F642A.plist / iMac14,1
Mac-189A3D4F975D5FFC.plist / MacBookPro11,1
Mac-27ADBB7B4CEE8E61.plist / iMac14,2
Mac-2BD1B31983FE1663.plist / MacBookPro11,3
Mac-35C1E88140C3E6CF.plist / MacBookAir6,1
Mac-35C5E08120C7EEAF.plist / Macmini7,1
Mac-3CBD00234E554E41.plist / MacBookPro11,2
Mac-42FD25EABCABB274.plist / iMac15,1
Mac-77EB7D7DAF985301.plist / iMac14,3
Mac-7DF21CB3ED6977E5.plist / MacBookAir6,2
Mac-81E3E92DD6088272.plist / iMac14,4
Mac-FA842E06C61E91C5.plist / iMac15,1
harrykipper commented 9 years ago

I tried copying MacBookAir6,1 over MacBookAir5,2 but there were errors in system.log (can't remember which, sorry. I should have taken notes...). However, the two files are very different, isn't it better to use the system definition closer to our hardware?

Piker-Alpha commented 9 years ago

Normally yes, and this used to work:

./ssdtPRGen.sh -p i3-3217U -lfm 700 -w 0

without XCP (-xcpm -x 1) but if you can't use that anymore or are not happy with the results then using a different model/board-id is a good alternative.

harrykipper commented 9 years ago

Right. Ok. Sorry. I was dumb. When I replaced the Mac-XXXXXXXXXXXX.plist I didn't re-run the ssdtPRGen script. That's probably why I was getting errors..... Will try again tonight.

NicolasKheirallah commented 9 years ago

Accually Pike's method of choosing 6.1 instead worked out the best for me after running frequencySH and repairing cache/permissions

uninc commented 9 years ago

this thread has been helpful for me with i5-3317U cpu on samsung tablet 700t1c. it seems to be yosemite does run better on jivybridge with -xcpm mode.

when i use aicpupm I'm stuck at 800mhz despite all p-states being read successfully. ive tried all -w workarounds. it seems -w 0 is best on -xcpm with replacing freqVecors of MBA5,2 w those of MBA6,1 then deleting the freqringtable in the plist.

my issue is that turbo states are not loading. steps read are 8-17 & 26. tho step 26 is not used. I've gotten turbo states w GENERATE in Clover but it is not consistent.

any ideas of troubleshooting would be appreciated.