Jump to content

DSDT - Vanilla Speedstep - Generic Scope (_PR)


FKA
 Share

1,949 posts in this topic

Recommended Posts

I do have all P-states working on OS X, and cores are working independently. It's just that most of the times it's only the lowest and highest steps that are used.

 

 

Why is it all the screenshots I see of VoodooMonitor show all cores reflecting the same frequency, multiplier & voltage? I think I have yet to see one showing independent operation of each core.

 

@ FormerlyKnownAs

 

Have you tried using the C-States from a Q9550? Seems they must be closely related to the Q9450. mm67 has a Q9550.

Link to comment
Share on other sites

@ FormerlyKnownAs

 

Have you tried using the C-States from a Q9550? Seems they must be closely related to the Q9450. mm67 has a Q9550.

 

Hi kdawg

 

I' using the same code mm67 has posted in #580

except I dont have the externat PDC's

 

External (PDC0)

External (PDC1)

External (PDC2)

External (PDC3)

 

To be honest I've had the same results with all methods. mm67's latest code is good and tidy!

 

D.

Link to comment
Share on other sites

Hi to all and sorry for my english, the question: it's possible to use the native vanilla speed stepping on my hardware?

I have two asus p5q deluxe and two processors: q9300 and q9550. what can i do for this? (now i 'm using the voodoopstate.kext and his working well)

Thanks for the possible answers..

 

Ciao

Link to comment
Share on other sites

Ok with help from MM67, the lpc got loaded and aslo put cpu info from stell in the dsdt

no more error regarding Sms platform plugin CST, temps are down and sleep is still working

of course no speedstep at this point (i need to read more on this part)

 

Thnx for the help

 

T

 

Try like this, notice that the PSS method is commented out, you have to fill in your own values if you want to use P-states.

DSDT.dsl.thijmus4.dsl.zip

Link to comment
Share on other sites

Try like this, notice that the PSS method is commented out, you have to fill in your own values if you want to use P-states.

DSDT.dsl.thijmus4.dsl.zip

 

thnx, i'm still reading at this point

when i take the info from the p-states calc i get this

 

Package (0x06) { 2664, 55608, 10, 10, 0x81D, 0x81D },

Package (0x06) { 2331, 46180, 10, 10, 0x71A, 0x71A },

Package (0x06) { 1998, 37461, 10, 10, 0x616, 0x616 }

 

T.

Link to comment
Share on other sites

This is what I use right now.

dsdt.dsl.zip

 

You don't have CPU1-3 associated with your P-States?

 

Hi kdawg

 

I' using the same code mm67 has posted in #580

except I dont have the externat PDC's

 

External (PDC0)

External (PDC1)

External (PDC2)

External (PDC3)

 

To be honest I've had the same results with all methods. mm67's latest code is good and tidy!

 

D.

 

I don't see any reference to P-States for CPU1-3. Is this working for you guys?

Link to comment
Share on other sites

You don't have CPU1-3 associated with your P-States?

 

 

 

I don't see any reference to P-States for CPU1-3. Is this working for you guys?

 

It works just fine - each core appears to act independantly also.

Link to comment
Share on other sites

thnx, i'm still reading at this point

when i take the info from the p-states calc i get this

 

Package (0x06) { 2664, 55608, 10, 10, 0x81D, 0x81D },

Package (0x06) { 2331, 46180, 10, 10, 0x71A, 0x71A },

Package (0x06) { 1998, 37461, 10, 10, 0x616, 0x616 }

 

T.

 

Ok got it!

 

Thanks MM67

 

T

 

edit; only error no more sleep

DSDT.dsl.thijmus5.zip

Link to comment
Share on other sites

Ok got it!

 

Thanks MM67

 

T

 

Seems to be right, but not working yet. You still have PSS commented out, remove /* and */.

 

/edit

You have removed NullCpuPowerManagement and SleepEnabler kexts, and set model as MacPro 3,1 in smbios.plist ?

Link to comment
Share on other sites

Seems to be right, but not working yet. You still have PSS commented out, remove /* and */.

 

/edit

You have removed NullCpuPowerManagement and SleepEnabler kexts, and set model as MacPro 3,1 in smbios.plist ?

 

yes you are right, still something wrong (p-states are gone in cpu-i)

i'm not using NullCpuPowerManagement and SleepEnabler kexts, no need because temps where already below 45c (now 36c) and sleep worked with this dsdt

yes, model is set to macpro 3,1

 

T

 

edit; removed /* and */. , no change (p-states are back in cpu-i)

DSDT.dsl.thijmus6.zip

Link to comment
Share on other sites

yes you are right, still something wrong (p-states are gone in cpu-i)

i'm not using NullCpuPowerManagement and SleepEnabler kexts, no need because temps where already below 45c (now 36c) and sleep worked with this dsdt

yes, model is set to macpro 3,1

 

T

 

edit; removed /* and */. , no change

 

Just a little bug in there :(

You have this:

 

	Method (_PSS, 0, NotSerialized)
	{
		Return (Package(0x06)
		{
			Package (0x06) { 2664, 55608, 10, 10, 0x81D, 0x81D },
			Package (0x06) { 2331, 46180, 10, 10, 0x71A, 0x71A },
			Package (0x06) { 1998, 37461, 10, 10, 0x616, 0x616 }
		})
	}

 

which means that you have a PSS table with 6 steps, you should have it like this because you only have 3 steps:

 

	Method (_PSS, 0, NotSerialized)
	{
		Return (Package(0x03)
		{
			Package (0x06) { 2664, 55608, 10, 10, 0x81D, 0x81D },
			Package (0x06) { 2331, 46180, 10, 10, 0x71A, 0x71A },
			Package (0x06) { 1998, 37461, 10, 10, 0x616, 0x616 }
		})
	}

Link to comment
Share on other sites

Just a little bug in there :(

You have this:

 

	Method (_PSS, 0, NotSerialized)
	{
		Return (Package(0x06)
		{
			Package (0x06) { 2664, 55608, 10, 10, 0x81D, 0x81D },
			Package (0x06) { 2331, 46180, 10, 10, 0x71A, 0x71A },
			Package (0x06) { 1998, 37461, 10, 10, 0x616, 0x616 }
		})
	}

 

which means that you have a PSS table with 6 steps, you should have it like this because you only have 3 steps:

 

	Method (_PSS, 0, NotSerialized)
	{
		Return (Package(0x03)
		{
			Package (0x06) { 2664, 55608, 10, 10, 0x81D, 0x81D },
			Package (0x06) { 2331, 46180, 10, 10, 0x71A, 0x71A },
			Package (0x06) { 1998, 37461, 10, 10, 0x616, 0x616 }
		})
	}

 

AH, i see

 

T.

 

edit; ok got that changed, somehow sleep isn't working yet

sleep works partially, pwr led stay's on, when pressed. system sleeps and wakes normal

Link to comment
Share on other sites

AH, i see

 

T.

 

edit; ok got that changed, somehow sleep isn't working yet

sleep works partially, pwr led stay's on, when pressed. system sleeps and wakes normal

 

I can see that your usb devices are messed up, that may prevent sleep from working.

Link to comment
Share on other sites

I can see that your usb devices are messed up, that may prevent sleep from working.

 

OK! well yes i'm not that good with dsdt. i was really happy that i got sleep working without usb errors

btw made a error with the p-states tables :D , i corrected the fault but no sleep so far

 

Package (0x06) { 2664, 62559, 10, 10, 0x81D, 0x81D },

Package (0x06) { 2331, 51953, 10, 10, 0x71A, 0x71A },

Package (0x06) { 1998, 42143, 10, 10, 0x616, 0x616 }

 

T.

Link to comment
Share on other sites

OK! well yes i'm not that good with dsdt. i was really happy that i got sleep working without usb errors

btw made a error with the p-states tables :D , i corrected the fault but no sleep so far

 

Package (0x06) { 2664, 62559, 10, 10, 0x81D, 0x81D },

Package (0x06) { 2331, 51953, 10, 10, 0x71A, 0x71A },

Package (0x06) { 1998, 42143, 10, 10, 0x616, 0x616 }

 

T.

You have usb2 setup like this:

            Device (USB2)
           {
               Name (_ADR, 0x001D0002)
               Method (_S3D, 0, NotSerialized)
               {
                   If (LEqual (OSFL, 0x02))
                   {
                       Return (0x02)
                   }

                   Return (0x03)
               }

               Name (_PRW, Package (0x02)
               {
                   0x0C, 
                   0x03
               })
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x04)
                       {
                           "AAPL,clock-id", 
                           Buffer (One)
                           {
                               0x02
                           }, 

                           "device_type", 
                           Buffer (0x05)
                           {
                               "EHCI"
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

 

Should be :

            Device (USB2)
           {
               Name (_ADR, 0x001D0002)
               Method (_S3D, 0, NotSerialized)
               {
                   If (LEqual (OSFL, 0x02))
                   {
                       Return (0x02)
                   }

                   Return (0x03)
               }

               Name (_PRW, Package (0x02)
               {
                   0x0C, 
                   0x03
               })
           }

Link to comment
Share on other sites

Should be :

            Device (USB2)
           {
               Name (_ADR, 0x001D0002)
               Method (_S3D, 0, NotSerialized)
               {
                   If (LEqual (OSFL, 0x02))
                   {
                       Return (0x02)
                   }

                   Return (0x03)
               }

               Name (_PRW, Package (0x02)
               {
                   0x0C, 
                   0x03
               })
           }

 

man, you're fast....:D

got it changed same result

gone revert back to old dsdt to see if sleep works

 

T.

 

edit; with the old dsdt sleep is working

Link to comment
Share on other sites

Noob Question.

 

I have just extracted my SSDT CPUCST tables from Linux (which I have attached) and can I ask what the following CFGD in the IF statements correspond to? or how do I determine which parts to use.. Now, each CST table look the same to me, So I am just concentrating on CPU0CST.

 

Do I use the info from

If (And (CFGD, 0x80))

......

 

or do I use the info from

If (And (CFGD, 0x40))

.....

 

or do I use the info from

If (And (CFGD, 0x20))

......

 

 

This is my existing code and was looking to see if it needs changing based on my new extracted CPUCST tables.

Scope (_PR)
   {
       Processor (CPU0, 0x00, 0x00000410, 0x06) {}
       Processor (CPU1, 0x01, 0x00000410, 0x06) {}
   }

   Scope (_PR.CPU0)
   {
    Method (_PSS, 0, NotSerialized)
	{
		Return (Package(0x05)
		{
			Package (0x06) { 2660, 0, 10, 10, 0x0A1D, 0 },
			Package (0x06) { 2394, 0, 10, 10, 0x091C, 1 },
			Package (0x06) { 2128, 0, 10, 10, 0x081C, 2 },
			Package (0x06) { 1862, 0, 10, 10, 0x071B, 3 },
			Package (0x06) { 1596, 0, 10, 10, 0x61B8, 4 }
		})
	}
       Method (_CST, 0, NotSerialized)
       {
		Return (Package (0x02)
		{
			One, 
			Package (0x04) {ResourceTemplate () {Register (FFixedHW, 0x1, 0x2, 0x0, 0x1,)},0x01,0x9D,0x3E8}
		})
       }
   }
   Scope (_PR.CPU1) 
   {
       Method (_CST, 0, NotSerialized)
       {
           Return (Package (0x04)
           {
               0x03, 
               Package (0x04) {ResourceTemplate () {Register (FFixedHW, 0x01, 0x02, 0x000, ,)},0x01,0x00,0x3E8}, 
               Package (0x04) {ResourceTemplate () {Register (FFixedHW, 0x08, 0x00, 0x414, ,)},0x02,0x01,0x1F4}, 
               Package (0x04) {ResourceTemplate () {Register (FFixedHW, 0x08, 0x00, 0x415, ,)},0x03,0x55,0x0FA} 
           })
       }
   }

CSTATES.zip

Link to comment
Share on other sites

Noob Question.

 

I have just extracted my SSDT CPUCST tables from Linux and can I ask what the following CFGD in the IF statements correspond to? or how do I determine which parts to use? Now, each CST table look the same to me, So I am just concentrating on CPU0CST.

 

If (And (CFGD, 0x80))

......

If (And (CFGD, 0x40))

.....

If (And (CFGD, 0x20))

......

 

and what's the understanding of translating it in to my SCOPE(_PR)'s _CST Methods?

This is my existing code and was looking to see if it needs changing based on my new extracted CPUCST tables.

Scope (_PR)
   {
       Processor (CPU0, 0x00, 0x00000410, 0x06) {}
       Processor (CPU1, 0x01, 0x00000410, 0x06) {}
   }

   Scope (_PR.CPU0)
   {
    Method (_PSS, 0, NotSerialized)
	{
		Return (Package(0x05)
		{
			Package (0x06) { 2660, 0, 10, 10, 0x0A1D, 0 },
			Package (0x06) { 2394, 0, 10, 10, 0x091C, 1 },
			Package (0x06) { 2128, 0, 10, 10, 0x081C, 2 },
			Package (0x06) { 1862, 0, 10, 10, 0x071B, 3 },
			Package (0x06) { 1596, 0, 10, 10, 0x61B8, 4 }
		})
	}
       Method (_CST, 0, NotSerialized)
       {
		Return (Package (0x02)
		{
			One, 
			Package (0x04) {ResourceTemplate () {Register (FFixedHW, 0x1, 0x2, 0x0, 0x1,)},0x01,0x9D,0x3E8}
		})
       }
   }
   Scope (_PR.CPU1) 
   {
       Method (_CST, 0, NotSerialized)
       {
           Return (Package (0x04)
           {
               0x03, 
               Package (0x04) {ResourceTemplate () {Register (FFixedHW, 0x01, 0x02, 0x000, ,)},0x01,0x00,0x3E8}, 
               Package (0x04) {ResourceTemplate () {Register (FFixedHW, 0x08, 0x00, 0x414, ,)},0x02,0x01,0x1F4}, 
               Package (0x04) {ResourceTemplate () {Register (FFixedHW, 0x08, 0x00, 0x415, ,)},0x03,0x55,0x0FA} 
           })
       }
   }

 

Hi blackosx

 

I've found it doesn't matter which cst tables I use ... MP3,1 .. my own ... etc .they all give the same result.

 

The code your using should work just fine.

 

D.

Link to comment
Share on other sites

 Share

×
×
  • Create New...