Contribute
Register

Revogirl SSDT generation script

Status
Not open for further replies.
Another option now you have an effective DSDT is that you can always play about comparing effectiveness of SSDTs and you could try the Revogirl one again and check the P-states on that using MSRdumper.

Please report back on what you find as I am interested to know the results having come this far......
 
If you had p-states before if I were you I would try and determine what went wrong and try to get them back....

However, I did have a look quickly at what you sent me. Table SSDT-4 looks like it has the P states in it that are native. I am not an expert but I did experiment and have attached a DSDT that includes the relevant statements from SSDT-4 and places them just after the Scope (_PR). You can try this if you want, at your own risk. No guarantees at all (!).

Rename the aml file attached simply as DSDT.aml and try it if you want. You should also use the boot flag DropSSDT Yes and do not have any SSDT.aml files in your extra folder. Who knows you may be lucky.
 

Attachments

  • dsdtTMBCK2nativepm.aml.zip
    14.3 KB · Views: 130
This is part of the code that was in SSDT-4 defining the p-states and is part of the bunch of code from there I copied into your DSDT:

Code:
Name (PSS, Package (0x12)
        {
            Package (0x06)
            {
                0x0CE4, 
                Zero, 
                0x0A, 
                0x0A, 
                0x21, 
                One
            }, 

            Package (0x06)
            {
                0x0C80, 
                Zero, 
                0x0A, 
                0x0A, 
                0x20, 
                0x02
            }, 

            Package (0x06)
            {
                0x0C1C, 
                Zero, 
                0x0A, 
                0x0A, 
                0x1F, 
                0x03
            }, 

            Package (0x06)
            {
                0x0BB8, 
                Zero, 
                0x0A, 
                0x0A, 
                0x1E, 
                0x04
            }, 

            Package (0x06)
            {
                0x0B54, 
                Zero, 
                0x0A, 
                0x0A, 
                0x1D, 
                0x05
            }, 

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

            Package (0x06)
            {
                0x0A8C, 
                Zero, 
                0x0A, 
                0x0A, 
                0x1B, 
                0x07
            }, 

            Package (0x06)
            {
                0x0A28, 
                Zero, 
                0x0A, 
                0x0A, 
                0x1A, 
                0x08
            }, 

            Package (0x06)
            {
                0x09C4, 
                Zero, 
                0x0A, 
                0x0A, 
                0x19, 
                0x09
            }, 

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

            Package (0x06)
            {
                0x08FC, 
                Zero, 
                0x0A, 
                0x0A, 
                0x17, 
                0x0B
            }, 

            Package (0x06)
            {
                0x0898, 
                Zero, 
                0x0A, 
                0x0A, 
                0x16, 
                0x0C
            }, 

            Package (0x06)
            {
                0x0834, 
                Zero, 
                0x0A, 
                0x0A, 
                0x15, 
                0x0D
            }, 

            Package (0x06)
            {
                0x07D0, 
                Zero, 
                0x0A, 
                0x0A, 
                0x14, 
                0x0E
            }, 

            Package (0x06)
            {
                0x076C, 
                Zero, 
                0x0A, 
                0x0A, 
                0x13, 
                0x0F
            }, 

            Package (0x06)
            {
                0x0708, 
                Zero, 
                0x0A, 
                0x0A, 
                0x12, 
                0x10
            }, 

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

            Package (0x06)
            {
                0x0640, 
                Zero, 
                0x0A, 
                0x0A, 
                0x10, 
                0x12
            }

You can see that it defines 18 p-states numbered from "one" to 0x12 (Hex for 18). The lowest p-state ("one") always equates to state 16 and so 0x12 equates to state 33.

How many it will use though will depend always on how the apple power management kext is set up. I don't have any knowledge about that at all.......but it will of course be biased towards saving power when appropriate so it is always going to be usual that you will see more use of the lower p-states.

Glad it works.
 
Minihack, I am hoping you can help. Does all of this assume that the user is running a patched AICPM? I have a Socket2011 system and am forced to use NullCPUPM because there is no patch for Socket2011 (or rather, the kernel does not support it). But I have been able to get some sort of speedstepping working - only two states, though. No matter what I do, I can only get my full speed (which happens to be an overclocked 4.3GHz) and an idle speed of 1.2GHz. MSRDumper verifies this - only two states are achieved.

By the way, I am running an MSI X79A-GD65(8D) mainboard with an i7-3820 (overclocked) processor.

I have a custom patched DSDT, as well as an SSDT that was originally generated by Revogirl's script. I had to change a few things - for example, the script generated processor calls to CPU0-CPU7, but my DSDT refers to the processors as CP00-CP07. So I fixed everything to match. Since I am using an SSDT.aml, DSDTse extraction produces exactly the same file, so it is being loaded.

I don't know what else to do to get more processor states. Are there BIOS options that should be enabled/disabled? Right now I have all power-related functions turned on. Can you help? Thanks,
 
I am stuck from the beginning. Type is TDP for processor? I have i5-2500k. What is TDP? I am only trying 4.1. Currently I am only getting x16 and x37 only with Mutlibeast SSDT and trying to create one for myself to see if this helps.
 
I am stuck from the beginning. Type is TDP for processor? I have i5-2500k. What is TDP? I am only trying 4.1. Currently I am only getting x16 and x37 only with Mutlibeast SSDT and trying to create one for myself to see if this helps.

Do you bother to read any of the linked Wikipedia pages or even the specifications of your processor?

http://lmgtfy.com/?q=what+is+tdp
 
I tried to google, but didn't get any further. I got i5-2500k.
 
I'm also having problems with the TDP thing. My CPU has a 77W TDP, but entering 77 causes an error in line 9

Code:
      Name (APSN, 0x0'$1')'

where $1 is the script's variable for TDP. It inserts -33 (which is 77-100... but 77 in hex is 0x4D... what is it trying to do?) so I end up with

Code:
  Name (APSN, 0x0-33)

which doesn't compile.

Also, it didn't look like it generated any of the frequency settings... does it need to have a stock SSDT somewhere to use as a template?

In general, it would be REALLY helpful if someone can provide a cached copy of Revogirl's (RIP) post on this tool. As such, we have no documentation (which is the frustrating par for the course with hackintoshing, but still...)
 
Minihack, I am hoping you can help. Does all of this assume that the user is running a patched AICPM? I have a Socket2011 system and am forced to use NullCPUPM because there is no patch for Socket2011 (or rather, the kernel does not support it). But I have been able to get some sort of speedstepping working - only two states, though. No matter what I do, I can only get my full speed (which happens to be an overclocked 4.3GHz) and an idle speed of 1.2GHz. MSRDumper verifies this - only two states are achieved.

By the way, I am running an MSI X79A-GD65(8D) mainboard with an i7-3820 (overclocked) processor.

I have a custom patched DSDT, as well as an SSDT that was originally generated by Revogirl's script. I had to change a few things - for example, the script generated processor calls to CPU0-CPU7, but my DSDT refers to the processors as CP00-CP07. So I fixed everything to match. Since I am using an SSDT.aml, DSDTse extraction produces exactly the same file, so it is being loaded.

I don't know what else to do to get more processor states. Are there BIOS options that should be enabled/disabled? Right now I have all power-related functions turned on. Can you help? Thanks,

Chiefsalami,
I don't read this thread very often. If you can pm me both your unpatched (native) DSDT as well as the patched one (it is essential to start from the native DSDT so we can eliminate the possibility that inappropriate patches have been used) and also use DSDTse to extract all your SSDT tables I'd be happy to take a look when I have some time. The key will be for you to be able to eliminate the use of the nullcpupm kext because until you do that afaik you will never be able to get any effective speedstepping in OSX.
Also, as we have no documentation from Revogirl it may be better to try the old fashioned way of patching your DSDT to see if we can to get the powermanagement going.

EDIT: Apologies, on socket 2011 I think you are probably stuck.....:(
 
Status
Not open for further replies.
Back
Top