Jump to content

DSDT fixes for Gigabyte boards


iSoprano
 Share

1,909 posts in this topic

Recommended Posts

My temps are really cool, (tested on both Windows and OSX (CPU-i)) I idle at around 30-32C and on load I'm at around 42-45C. Way below max thermal spec.

 

I'll try reggie_se next time I reboot, I boot into 64-bit by default.

 

Will try CPUTest. So those numbers I posted earlier couldn't be causing my problem?

 

edit: ran cputest for about 10mins, went through 160 tests, 0 failed, and temps never went above 50C, definitely not a cooling problem

Link to comment
Share on other sites

As per kdawg ... post 1240 qui !

 

But that only defines C1 .. ?! not C1E at 2 possible power states 12W and 16W

 

D

 

That defines C1E, C1 doesn't need definition, every Intel cpu since 486 supports it anyway. Look again, your cpu has 12 W option supported, there is no number 13 in notes for your cpu. Only Core Quad that uses 16 W option is QX9650.

 

 

 

 

My temps are really cool, (tested on both Windows and OSX (CPU-i)) I idle at around 30-32C and on load I'm at around 42-45C. Way below max thermal spec.

 

I'll try reggie_se next time I reboot, I boot into 64-bit by default.

 

Will try CPUTest. So those numbers I posted earlier couldn't be causing my problem?

 

edit: ran cputest for about 10mins, went through 160 tests, 0 failed, and temps never went above 50C, definitely not a cooling problem

 

It certainly doesn't do any harm to define those numbers in PSS, if that really cures your unstability problem then please do report it to others too.

Link to comment
Share on other sites

That defines C1E, C1 doesn't need definition, every Intel cpu since 486 supports it anyway. Look again, your cpu has 12 W option supported, there is no number 13 in notes for your cpu.

 

doh! and thanks.

D

Link to comment
Share on other sites

Well... I might as well try my hand at this SpeedStep mystery....

 

My build is a EX38-DS4 board with ICH9R and is running a Q6700 Quad overclocked at 3200 Mhz. Temps at idle are 50-52C and I'm sure the temps can be lower. I'm using "iSoprano's" #6 dsdt.aml with this Scope (_PR) data:

    Scope (_PR)
   {
       Processor (CPU0, 0x00, 0x00000410, 0x06)
       {
           Method (_PSS, 0, NotSerialized)
           {
               Return (Package (0x04)
               {
                   Package (0x06)
                   {
                       0x0D5C, 
                       0xFDE7, 
                       0x0A, 
                       0x0A, 
                       0x0926, 
                       Zero
                   }, 

                   Package (0x06)
                   {
                       0x0BE0, 
                       0xFDE8, 
                       0x0A, 
                       0x0A, 
                       0x0822, 
                       One
                   }, 

                   Package (0x06)
                   {
                       0x0A64, 
                       0xFDE7, 
                       0x0A, 
                       0x0A, 
                       0x071D, 
                       0x02
                   }, 

                   Package (0x06)
                   {
                       0x0A64, 
                       0xFDE7, 
                       0x0A, 
                       0x0A, 
                       0x071D, 
                       0x03
                   }
               })
           }

           Method (_CST, 0, NotSerialized)
           {
               Return (Package (0x03)
               {
                   0x02, 
                   Package (0x04)
                   {
                       ResourceTemplate ()
                       {
                           Register (FFixedHW, 
                               0x01,               // Bit Width
                               0x02,               // Bit Offset
                               0x0000000000000000, // Address
                               ,)
                       }, 

                       One, 
                       One, 
                       0x03E8
                   }, 

                   Package (0x04)
                   {
                       ResourceTemplate ()
                       {
                           Register (SystemIO, 
                               0x08,               // Bit Width
                               0x00,               // Bit Offset
                               0x0000000000000414, // Address
                               ,)
                       }, 

                       0x02, 
                       One, 
                       0x01F4
                   }
               })
           }
       }

       Processor (CPU1, 0x01, 0x00000410, 0x06) {}
       Processor (CPU2, 0x02, 0x00000410, 0x06) {}
       Processor (CPU3, 0x03, 0x00000410, 0x06) {}
   }

   Name (_S0, Package (0x04)
   {
       Zero, 
       Zero, 
       Zero, 
       Zero
   })
   Name (_S1, Package (0x04)
   {
       One, 
       Zero, 
       Zero, 
       Zero
   })
   Name (_S3, Package (0x04)
   {
       0x05, 
       Zero, 
       Zero, 
       Zero
   })
   Name (_S4, Package (0x04)
   {
       0x06, 
       Zero, 
       Zero, 
       Zero
   })
   Name (_S5, Package (0x04)
   {
       0x07, 
       Zero, 
       Zero, 
       Zero
   })

This Scope (_PR) data is from the motherboard"s BIOS file:

    Scope (_PR)
   {
       Processor (CPU0, 0x00, 0x00000410, 0x06) {}
       Processor (CPU1, 0x01, 0x00000410, 0x06) {}
       Processor (CPU2, 0x02, 0x00000410, 0x06) {}
       Processor (CPU3, 0x03, 0x00000410, 0x06) {}
   }

   Name (_S0, Package (0x04)
   {
       Zero, 
       Zero, 
       Zero, 
       Zero
   })
   Name (_S1, Package (0x04)
   {
       One, 
       Zero, 
       Zero, 
       Zero
   })
   Name (_S3, Package (0x04)
   {
       0x05, 
       Zero, 
       Zero, 
       Zero
   })
   Name (_S4, Package (0x04)
   {
       0x06, 
       Zero, 
       Zero, 
       Zero
   })
   Name (_S5, Package (0x04)
   {
       0x07, 
       Zero, 
       Zero, 
       Zero
   })

 

So far all is working with iSoprano's #6 Scope (_PR) but is the Scope (_PR) Package data generic or is it tuned to a specific processor?

Would I be better off just using the plan Scope info from my BIOS as it worked well with my iPC Leopard build? I was able to overclock to 3.3 with Leopard, but had a kernel panic at 3.3 with Snow Leopard. Lowering to 3.2 cured the kernel panic. But more concerned with the CPU temps than getting a 10th more speed. Other than the high temps I'm just surprised everything is working so well.

 

Thanks!

Link to comment
Share on other sites

Well... I might as well try my hand at this SpeedStep mystery....

 

My build is a EX38-DS4 board with ICH9R and is running a Q6700 Quad overclocked at 3200 Mhz. Temps at idle are 50-52C and I'm sure the temps can be lower. I'm using "iSoprano's" #6 dsdt.aml with this Scope (_PR) data:

    Scope (_PR)
   {
       Processor (CPU0, 0x00, 0x00000410, 0x06)
       {
           Method (_PSS, 0, NotSerialized)
           {
               Return (Package (0x04)
               {
                   Package (0x06)
                   {
                       0x0D5C, 
                       0xFDE7, 
                       0x0A, 
                       0x0A, 
                       0x0926, 
                       Zero
                   }, 

                   Package (0x06)
                   {
                       0x0BE0, 
                       0xFDE8, 
                       0x0A, 
                       0x0A, 
                       0x0822, 
                       One
                   }, 

                   Package (0x06)
                   {
                       0x0A64, 
                       0xFDE7, 
                       0x0A, 
                       0x0A, 
                       0x071D, 
                       0x02
                   }, 

                   Package (0x06)
                   {
                       0x0A64, 
                       0xFDE7, 
                       0x0A, 
                       0x0A, 
                       0x071D, 
                       0x03
                   }
               })
           }

           Method (_CST, 0, NotSerialized)
           {
               Return (Package (0x03)
               {
                   0x02, 
                   Package (0x04)
                   {
                       ResourceTemplate ()
                       {
                           Register (FFixedHW, 
                               0x01,               // Bit Width
                               0x02,               // Bit Offset
                               0x0000000000000000, // Address
                               ,)
                       }, 

                       One, 
                       One, 
                       0x03E8
                   }, 

                   Package (0x04)
                   {
                       ResourceTemplate ()
                       {
                           Register (SystemIO, 
                               0x08,               // Bit Width
                               0x00,               // Bit Offset
                               0x0000000000000414, // Address
                               ,)
                       }, 

                       0x02, 
                       One, 
                       0x01F4
                   }
               })
           }
       }

       Processor (CPU1, 0x01, 0x00000410, 0x06) {}
       Processor (CPU2, 0x02, 0x00000410, 0x06) {}
       Processor (CPU3, 0x03, 0x00000410, 0x06) {}
   }

   Name (_S0, Package (0x04)
   {
       Zero, 
       Zero, 
       Zero, 
       Zero
   })
   Name (_S1, Package (0x04)
   {
       One, 
       Zero, 
       Zero, 
       Zero
   })
   Name (_S3, Package (0x04)
   {
       0x05, 
       Zero, 
       Zero, 
       Zero
   })
   Name (_S4, Package (0x04)
   {
       0x06, 
       Zero, 
       Zero, 
       Zero
   })
   Name (_S5, Package (0x04)
   {
       0x07, 
       Zero, 
       Zero, 
       Zero
   })

This Scope (_PR) data is from the motherboard"s BIOS file:

    Scope (_PR)
   {
       Processor (CPU0, 0x00, 0x00000410, 0x06) {}
       Processor (CPU1, 0x01, 0x00000410, 0x06) {}
       Processor (CPU2, 0x02, 0x00000410, 0x06) {}
       Processor (CPU3, 0x03, 0x00000410, 0x06) {}
   }

   Name (_S0, Package (0x04)
   {
       Zero, 
       Zero, 
       Zero, 
       Zero
   })
   Name (_S1, Package (0x04)
   {
       One, 
       Zero, 
       Zero, 
       Zero
   })
   Name (_S3, Package (0x04)
   {
       0x05, 
       Zero, 
       Zero, 
       Zero
   })
   Name (_S4, Package (0x04)
   {
       0x06, 
       Zero, 
       Zero, 
       Zero
   })
   Name (_S5, Package (0x04)
   {
       0x07, 
       Zero, 
       Zero, 
       Zero
   })

 

So far all is working with iSoprano's #6 Scope (_PR) but is the Scope (_PR) Package data generic or is it tuned to a specific processor?

Would I be better off just using the plan Scope info from my BIOS as it worked well with my iPC Leopard build? I was able to overclock to 3.3 with Leopard, but had a kernel panic at 3.3 with Snow Leopard. Lowering to 3.2 cured the kernel panic. But more concerned with the CPU temps than getting a 10th more speed. Other than the high temps I'm just surprised everything is working so well.

 

Thanks!

 

Your cpu only supports C1E, there is no point to have C2 definition in CST.

Link to comment
Share on other sites

In that case you should define your CST like this:

		Method (CST, 0, NotSerialized)
	{
		Return (Package (0x02)
		{
			0x1, 
			Package (0x4){ResourceTemplate (){Register (FFixedHW,0x01,0x02,0x00,,)},One,One,0x3E8} 
		})
	}

 

What datasheet are you referring to ?

 

/edit

 

Ok, found the sheet. You should use this CST table, you only have C1E

This is precisely what I'm using now. Works great.

    Scope (_PR) {
       Name (PSS, Package (0x03) {
           Package (0x06) { Zero, Zero, 10, 10, 0x00000822, Zero },
           Package (0x06) { Zero, Zero, 10, 10, 0x0000071E, One },
           Package (0x06) { Zero, Zero, 10, 10, 0x0000061A, 2 }
       })
       Name (PSD, Package (0x05) {
           0x05,Zero,Zero,0xFC,0x04
       })
       Name (CST, Package (0x02) {
           One,
           Package (0x04){ResourceTemplate (){Register (FFixedHW,0x01,0x02,0x0000000000000000,0x00,)},One,One,0x03E8}, 
       })
       Processor (CPU0, 0x00, 0x00000410, 0x06){
           Alias (PSS, _PSS)
           Alias (PSD, _PSD)
           Alias (CST, _CST)
       }
       Processor (CPU1, 0x01, 0x00000410, 0x06){
           Alias (PSS, _PSS)
           Alias (PSD, _PSD)
           Alias (CST, _CST)
       }
       Processor (CPU2, 0x02, 0x00000410, 0x06){
           Alias (PSS, _PSS)
           Alias (PSD, _PSD)
           Alias (CST, _CST)
       }
       Processor (CPU3, 0x03, 0x00000410, 0x06){
           Alias (PSS, _PSS)
           Alias (PSD, _PSD)
           Alias (CST, _CST)
       }
   }

Link to comment
Share on other sites

This is precisely what I'm using now. Works great.

    Scope (_PR) {
       Name (PSS, Package (0x03) {
           Package (0x06) { Zero, Zero, 10, 10, 0x00000822, Zero },
           Package (0x06) { Zero, Zero, 10, 10, 0x0000071E, One },
           Package (0x06) { Zero, Zero, 10, 10, 0x0000061A, 2 }
       })
       Name (PSD, Package (0x05) {
           0x05,Zero,Zero,0xFC,0x04
       })
       Name (CST, Package (0x02) {
           One,
           Package (0x04){ResourceTemplate (){Register (FFixedHW,0x01,0x02,0x0000000000000000,0x00,)},One,One,0x03E8}, 
       })
       Processor (CPU0, 0x00, 0x00000410, 0x06){
           Alias (PSS, _PSS)
           Alias (PSD, _PSD)
           Alias (CST, _CST)
       }
       Processor (CPU1, 0x01, 0x00000410, 0x06){
           Alias (PSS, _PSS)
           Alias (PSD, _PSD)
           Alias (CST, _CST)
       }
       Processor (CPU2, 0x02, 0x00000410, 0x06){
           Alias (PSS, _PSS)
           Alias (PSD, _PSD)
           Alias (CST, _CST)
       }
       Processor (CPU3, 0x03, 0x00000410, 0x06){
           Alias (PSS, _PSS)
           Alias (PSD, _PSD)
           Alias (CST, _CST)
       }
   }

 

Same works for Johnny V also, with his own PSS table naturally.

Link to comment
Share on other sites

Running this : sudo setpci -s 0:1f.0 0xa6.b gives 10 as result ? That should be impossible since bit 4 is reserved, and default value is 0. But anyway, that means that your cpu is not going to C3 or C4. Try with my CST:

		Method (CST, 0, NotSerialized)
	{
		Return (Package (0x04)
		{
			0x3, 
			Package (0x4){ResourceTemplate (){Register (FFixedHW,0x01,0x02,0x000,0x0,)},One,One,0x3E8}, 
			Package (0x4){ResourceTemplate (){Register (FFixedHW,0x01,0x02,0x010,0x1,)},0x2,One,0x1F4}, 
			Package (0x4){ResourceTemplate (){Register (FFixedHW,0x01,0x02,0x030,0x3,)},0x4,0x39,0x064}, 
		})
	}

Link to comment
Share on other sites

Running this : sudo setpci -s 0:1f.0 0xa6.b gives 10 as result ? That should be impossible since bit 4 is reserved, and default value is 0. But anyway, that means that your cpu is not going to C3 or C4. Try with my CST:

		Method (CST, 0, NotSerialized)
	{
		Return (Package (0x04)
		{
			0x3, 
			Package (0x4){ResourceTemplate (){Register (FFixedHW,0x01,0x02,0x000,0x0,)},One,One,0x3E8}, 
			Package (0x4){ResourceTemplate (){Register (FFixedHW,0x01,0x02,0x010,0x1,)},0x2,One,0x1F4}, 
			Package (0x4){ResourceTemplate (){Register (FFixedHW,0x01,0x02,0x030,0x3,)},0x4,0x39,0x064}, 
		})
	}

 

I goofed up,

 

10 was on my imac :(

I've ammended my post.

Link to comment
Share on other sites

Running this : sudo setpci -s 0:1f.0 0xa6.b gives 10 as result ? That should be impossible since bit 4 is reserved, and default value is 0. But anyway, that means that your cpu is not going to C3 or C4. Try with my CST:

		Method (CST, 0, NotSerialized)
	{
		Return (Package (0x04)
		{
			0x3, 
			Package (0x4){ResourceTemplate (){Register (FFixedHW,0x01,0x02,0x000,0x0,)},One,One,0x3E8}, 
			Package (0x4){ResourceTemplate (){Register (FFixedHW,0x01,0x02,0x010,0x1,)},0x2,One,0x1F4}, 
			Package (0x4){ResourceTemplate (){Register (FFixedHW,0x01,0x02,0x030,0x3,)},0x4,0x39,0x064}, 
		})
	}

 

So you've dropped the IO addresses in favour of the FFixedHW addresses?

Are you testing the effect of this on voltage switching or do you have another reason?

Original CPU0cst table contains all zero's for FFixedHW values, where did you get those values from?

 

Just trying to put it all together......... I understand what you've done with the other values just the FFixedHW?

 

my current:

		Name (CST, Package (0x04)
	 {
		 0x03,   //<--number of C-States C1,C2,C3
		 Package (0x04){ResourceTemplate (){Register (FFixedHW,0x01,0x02,0x0000000000000000,0x00,)},One,One,0x03E8}, 
		 Package (0x04){ResourceTemplate (){Register (SystemIO,0x08,0x00,0x0000000000000414,	,)},0x02,One,0x01F4}, 
		 Package (0x04){ResourceTemplate (){Register (SystemIO,0x08,0x00,0x0000000000000415,	,)},0x03,0x55,0xFA}

 

Ok, now it makes more sense :( Still, no C3 or C4.

 

I suspected as much....

 

What is my target value then? 80? (Q9550)

 

And what is your cstinfo value?

Link to comment
Share on other sites

So you've dropped the IO addresses in favour of the FFixedHW addresses?

Are you testing the effect of this on voltage switching or do you have another reason?

Original CPU0cst table contains all zero's for FFixedHW values, where did you get those values from?

 

Just trying to put it all together......... I understand what you've done with the other values just the FFixedHW?

 

my current:

		Name (CST, Package (0x04)
	 {
		 0x03,   //<--number of C-States C1,C2,C3
		 Package (0x04){ResourceTemplate (){Register (FFixedHW,0x01,0x02,0x0000000000000000,0x00,)},One,One,0x03E8}, 
		 Package (0x04){ResourceTemplate (){Register (SystemIO,0x08,0x00,0x0000000000000414,	,)},0x02,One,0x01F4}, 
		 Package (0x04){ResourceTemplate (){Register (SystemIO,0x08,0x00,0x0000000000000415,	,)},0x03,0x55,0xFA}

 

I borrowed this CST table from my MSI board, I couldn't find any way to make C-states work with SystemIO addressing.

 

You will probably get 85 when C-states work, main thing is that bit 7 of that register is set. You can use Calculator to check which bits are set, like this:

post-375259-1262470912_thumb.png

Link to comment
Share on other sites

I have been enjoying the new year so this might be a bit late... but for reference,

 

Anyone here using -pci1 in com.apple.Boot.plist or using rekursors PCI root port patch?

 

If yes; what do you get when you enter: sudo reggie_se -D PhysAddr -r -a 0xe0000000 -B 32

. 4.7.2 (263)

Memory Address - 0x00000000e0000000 (local)

Address 0xe0000000 0x55ffffff |0 1 0 1|0 1 0 1|1 1 1 1|1 1 1 1|1 1 1 1|1 1 1 1|1 1 1 1|1 1 1 1|

 

and my MCFG is here

/*
* Intel ACPI Component Architecture
* AML Disassembler version 20091214
*
* Disassembly of /Users/blackosx/Desktop/for mc/ACPI/MCFG.aml, Sat Jan  2 22:20:29 2010
*
* ACPI Data Table [MCFG]
*
* Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
*/

[000h 0000  4]                    Signature : "MCFG"    /* Memory Mapped Configuration table */
[004h 0004  4]                 Table Length : 0000003C
[008h 0008  1]                     Revision : 01
[009h 0009  1]                     Checksum : E0
[00Ah 0010  6]                       Oem ID : "GBT   "
[010h 0016  8]                 Oem Table ID : "GBTUACPI"
[018h 0024  4]                 Oem Revision : 42302E31
[01Ch 0028  4]              Asl Compiler ID : "GBTU"
[020h 0032  4]        Asl Compiler Revision : 01010101

[024h 0036  8]                     Reserved : 0000000000000000

[02Ch 0044  8]                 Base Address : 00000000F4000000
[034h 0052  2]         Segment Group Number : 0000
[036h 0054  1]             Start Bus Number : 00
[037h 0055  1]               End Bus Number : 3F
[038h 0056  4]                     Reserved : 00000000

Raw Table Data

 0000: 4D 43 46 47 3C 00 00 00 01 E0 47 42 54 20 20 20  MCFG<.....GBT   
 0010: 47 42 54 55 41 43 50 49 31 2E 30 42 47 42 54 55  GBTUACPI1.0BGBTU
 0020: 01 01 01 01 00 00 00 00 00 00 00 00 00 00 00 F4  ................
 0030: 00 00 00 00 00 00 00 3F 00 00 00 00              .......?....

Link to comment
Share on other sites

This is a followup on my trek to find out why my machine wasn't sleeping. Everything was fine as far as DSDT, BIOS etc. I went and did a fresh install and it sleeps just fine, Windows 7 Was sleeping fine as well. But, I wanted to find out why my old install wasn't sleeping. The answer is iStat menus. Using the uninstaller that came with the program didn't fully remove everything. I realized this when looking through the logs. I kept getting error messages looking for unavailable resources. So I reinstalled iStat then uninstalled again and BAM! Auto-sleep works again. This on top of Dropbox that also doesn't allow sleep. It had nothing to do with any of the networking kexts as I thought previously. All the standard kexts and DSDT patches all work fine.

 

As I reinstall everything one at at time and see how it effect sleep I'll report back. But for those who want auto-sleep iStat menus and Dropbox seem to be out.

Link to comment
Share on other sites

This is a followup on my trek to find out why my machine wasn't sleeping. Everything was fine as far as DSDT, BIOS etc. I went and did a fresh install and it sleeps just fine, Windows 7 Was sleeping fine as well. But, I wanted to find out why my old install wasn't sleeping. The answer is iStat menus. Using the uninstaller that came with the program didn't fully remove everything. I realized this when looking through the logs. I kept getting error messages looking for unavailable resources. So I reinstalled iStat then uninstalled again and BAM! Auto-sleep works again. This on top of Dropbox that also doesn't allow sleep. It had nothing to do with any of the networking kexts as I thought previously. All the standard kexts and DSDT patches all work fine.

 

As I reinstall everything one at at time and see how it effect sleep I'll report back. But for those who want auto-sleep iStat menus and Dropbox seem to be out.

 

No problems with Dropbox and iStat for me, auto-sleep works fine with those as long as I don't have that damn Samsung DVD connected

Link to comment
Share on other sites

You will probably get 85 when C-states work, main thing is that bit 7 of that register is set. You can use Calculator to check which bits are set

 

OK, tried with this:

	Scope (_PR)
{
	Name (PSS, Package (0x06)   // <--- Number of P-States as counted below
	{
		Package (0x06) { 2831, 95000, 10, 10, 0x4820, Zero },
		Package (0x06) { 2664, 86000, 10, 10, 0x081E, One },
		Package (0x06) { 2498, 78000, 10, 10, 0x471C, 0x02 },	   // <--Currently testing with values 3-1-10
		Package (0x06) { 2331, 70000, 10, 10, 0x071A, 0x03 },
		Package (0x06) { 2165, 62000, 10, 10, 0x4618, 0x04 },
		Package (0x06) { 1998, 55000, 10, 10, 0x0616, 0x05 }
	})

	Name (PSD, Package (0x05)
	{0x05,Zero,Zero,0xFC,0x04})

	Name (CST, Package (0x04)
	{
		0x03,   //<--number of C-States C1,C2,C3
		Package (0x04){ResourceTemplate (){Register (FFixedHW,0x01,0x02,0x000,0x0,)},One,One,0x03E8}, 
		Package (0x04){ResourceTemplate (){Register (FFixedHW,0x01,0x02,0x010,0x1,)},0x02,One,0x01F4}, 
		Package (0x04){ResourceTemplate (){Register (FFixedHW,0x01,0x02,0x030,0x3,)},0x04,0x39,0x064}
	})												  

	Processor (CPU0, 0x00, 0x00000410, 0x06)
	{
		Alias (PSS, _PSS)
		Alias (PSD, _PSD)
		Alias (CST, _CST)
	}

	Processor (CPU1, 0x01, 0x00000410, 0x06)
	{
		Alias (PSS, _PSS)
		Alias (PSD, _PSD)
		Alias (CST, _CST)
	}

	Processor (CPU2, 0x02, 0x00000410, 0x06)
	{
		Alias (PSS, _PSS)
		Alias (PSD, _PSD)
		Alias (CST, _CST)
	}

	Processor (CPU3, 0x03, 0x00000410, 0x06)
	{
		Alias (PSS, _PSS)
		Alias (PSD, _PSD)
		Alias (CST, _CST)
	}
}									 // End of Scope (_PR)

Setpci still returns 05

Link to comment
Share on other sites

OK, tried with this:

	Scope (_PR)
{
	Name (PSS, Package (0x06)   // <--- Number of P-States as counted below
	{
		Package (0x06) { 2831, 95000, 10, 10, 0x4820, Zero },
		Package (0x06) { 2664, 86000, 10, 10, 0x081E, One },
		Package (0x06) { 2498, 78000, 10, 10, 0x471C, 0x02 },	   // <--Currently testing with values 3-1-10
		Package (0x06) { 2331, 70000, 10, 10, 0x071A, 0x03 },
		Package (0x06) { 2165, 62000, 10, 10, 0x4618, 0x04 },
		Package (0x06) { 1998, 55000, 10, 10, 0x0616, 0x05 }
	})

	Name (PSD, Package (0x05)
	{0x05,Zero,Zero,0xFC,0x04})

	Name (CST, Package (0x04)
	{
		0x03,   //<--number of C-States C1,C2,C3
		Package (0x04){ResourceTemplate (){Register (FFixedHW,0x01,0x02,0x000,0x0,)},One,One,0x03E8}, 
		Package (0x04){ResourceTemplate (){Register (FFixedHW,0x01,0x02,0x010,0x1,)},0x02,One,0x01F4}, 
		Package (0x04){ResourceTemplate (){Register (FFixedHW,0x01,0x02,0x030,0x3,)},0x04,0x39,0x064}
	})												  

	Processor (CPU0, 0x00, 0x00000410, 0x06)
	{
		Alias (PSS, _PSS)
		Alias (PSD, _PSD)
		Alias (CST, _CST)
	}

	Processor (CPU1, 0x01, 0x00000410, 0x06)
	{
		Alias (PSS, _PSS)
		Alias (PSD, _PSD)
		Alias (CST, _CST)
	}

	Processor (CPU2, 0x02, 0x00000410, 0x06)
	{
		Alias (PSS, _PSS)
		Alias (PSD, _PSD)
		Alias (CST, _CST)
	}

	Processor (CPU3, 0x03, 0x00000410, 0x06)
	{
		Alias (PSS, _PSS)
		Alias (PSD, _PSD)
		Alias (CST, _CST)
	}
}									 // End of Scope (_PR)

Setpci still returns 05

 

And your cpu is E0 revision, not C1 ? Those support only C1E. You can also verify that C4 works at all by booting into Linux with C4 enabled and disabled from bios. Run that same setpci command and see if result changes with different bios settings, for me it does.

Link to comment
Share on other sites

Running this : sudo setpci -s 0:1f.0 0xa6.b gives 10 as result ? That should be impossible since bit 4 is reserved, and default value is 0. But anyway, that means that your cpu is not going to C3 or C4. Try with my CST:

		Method (CST, 0, NotSerialized)
	{
		Return (Package (0x04)
		{
			0x3, 
			Package (0x4){ResourceTemplate (){Register (FFixedHW,0x01,0x02,0x000,0x0,)},One,One,0x3E8}, 
			Package (0x4){ResourceTemplate (){Register (FFixedHW,0x01,0x02,0x010,0x1,)},0x2,One,0x1F4}, 
			Package (0x4){ResourceTemplate (){Register (FFixedHW,0x01,0x02,0x030,0x3,)},0x4,0x39,0x064}, 
		})
	}

For CST, I had been using

0x03, 
           Package (0x04) {ResourceTemplate () {Register (FFixedHW, 1, 2, 0x000,,)},0x01,0x01,0x03E8},
           Package (0x04) {ResourceTemplate () {Register (SystemIO, 8, 0, 0x414,,)},0x02,0x01,0x01F4},
           Package (0x04) {ResourceTemplate () {Register (SystemIO, 8, 0, 0x415,,)},0x03,0x55,0xFA} 

 

and running the setpci -s 0:1f.0 0xa6.b command returned 00

but with your CST code above, the setpci command now returns 80 which I believe shows the CPU enters C4?

Link to comment
Share on other sites

For CST, I had been using

0x03, 
           Package (0x04) {ResourceTemplate () {Register (FFixedHW, 1, 2, 0x000,,)},0x01,0x01,0x03E8},
           Package (0x04) {ResourceTemplate () {Register (SystemIO, 8, 0, 0x414,,)},0x02,0x01,0x01F4},
           Package (0x04) {ResourceTemplate () {Register (SystemIO, 8, 0, 0x415,,)},0x03,0x55,0xFA} 

 

and running the setpci -s 0:1f.0 0xa6.b command returned 00

but with your CST code above, the setpci command now returns 80.

 

Meaning that you now have working C-states, congratulations.

Link to comment
Share on other sites

No problems with Dropbox and iStat for me, auto-sleep works fine with those as long as I don't have that damn Samsung DVD connected
Do you think it could even remotely be related to the fact you have a Q9550 that supports more C states than mine? If I had hair I'd have pulled it all out by now. Now I need to know why they work for you but not me. What's your DSDT look like these days? What bootloader? Are you using any bootloader device enablers? Which non-vanilla kexts are you using?

 

As soon as I install either of those apps on the virgin fresh install I loose sleep.

Link to comment
Share on other sites

Do you think it could even remotely be related to the fact you have a Q9550 that supports more C states than mine? If I had hair I'd have pulled it all out by now. Now I need to know why they work for you but not me. What's your DSDT look like these days? What bootloader? Are you using any bootloader device enablers? Which non-vanilla kexts are you using?

 

As soon as I install either of those apps on the virgin fresh install I loose sleep.

 

Our dsdt's are pretty much the same, I use that modified Chameleon from this thread, compiled by ThiagoM. In Extra/Extensions folder I have only fakesmc and IOAHCIBlockStorageInjector. And I use both GraphicsEnabler and EthernetBuiltIn options

Link to comment
Share on other sites

Same works for Johnny V also, with his own PSS table naturally.

 

OK Update:

 

I followed blackosx's P-States guide here:

 

http://www.insanelymac.com/forum/index.php...t&p=1334977

 

And as suggested removed NullCPUPowerManagement.kext and SleepEnabler.kext from /E/E and restarted. On reboot temps were 10 degrees hotter at idle around 62C. Launched VoodoMoniotor and noticed in the status tab that the Frequency and Multiplier were not changing and pegged at 3200 MHz x 10. ( my board has the Dynamic Energy Saver feature )

 

I re-installed the NullCPUPowerManagement.kext and SleepEnabler.kext and rebooted and temps are where they were before I started the P-States dance. VoodooMonitor now shows variable Frequency and Multiplier values.

 

Not sure what I've accomplished... LOL!?

Link to comment
Share on other sites

 Share

×
×
  • Create New...