Jump to content

DSDT fixes for Gigabyte boards


iSoprano
 Share

1,909 posts in this topic

Recommended Posts

I don't know what you've done but I can't simulate it. Now I'm thinking it's the overclocking/speedstepping. I still have to post my BIOS settings. Do you feel like posting yours? I know it's a pain in the a$#%$#@. I'm running out of ideas. I might try and revering back to the original DSDT since I've basically stripped my rig down to the bare bones.

 

 

Here you are:

 

post-309087-1262009767_thumb.jpg

post-309087-1262009779_thumb.jpg

post-309087-1262009791_thumb.jpg

 

If your BIOS settings are the same, and you still don't get sleep, my guess would be the OC'ing. Maybe try it at stock speed and see what happens?

 

Also, I have found one problem with sleep, and I was wondering if anyone else who has auto sleep working has had the same problem? Or, can anyone spot something in my dsdt that might cause the issue?

 

The issue is, that roughly 1 out of 10 times, when my computer goes to sleep, it has actually shut down.

 

When I look in my log, it says "improper shutdown detected" after restarting, but I see no other errors or anything out of the ordinary. I have only seen this happen when I sleep by either pushing the power button for a click, or through idle sleep... I haven't specifically noticed it when having slept the computer by command-option F12, or via the Apple menu.

 

I need to figure this out, because my wife will be really pissed if she loses work because the computer shutdown before she saved her work...

Link to comment
Share on other sites

OK, made the move to Snow Leopard - fairly painless after DSDT mods and a bit of study. On my Gigabyte p35-DQ6 I need only fakesmc.kext and LegacyHDA.kext (ALC889a). I would like to fix the orange icons with a DSDT mod (as I think many would). With Leopard I would mod the plist of IOAHCIBlockStorage with the following code -

 

<key>Physical Interconnect</key>

<string>SATA</string>

<key>Physical Interconnect Location</key>

<string>Internal</string>

<key>Protocol Characteristics</key>

<dict>

<key>Physical Interconnect</key>

<string>SATA</string>

<key>Physical Interconnect Location</key>

<string>Internal</string>

</dict>

 

 

Inserted immediately after the IOAHCIDevice entry.

 

In Snow Leopard the value for "Physical Interconnect Location" is shown as Internal/External in IORegistryExplorer (attached image).

 

Does anyone have an idea of how to inject Dictionary items via DSDT? or even some thoughts on what to experiment with? Or would trying to set AHCI Port Hot Plug to false be easier/better?

 

Regards,

SMF

post-106904-1262019877_thumb.png

Link to comment
Share on other sites

working good here on G41m-ES2L Rev 1.0 ALC888B (aka ALC887) with dsdt and MBP5,1 smbios.plist but no CPU code yet (does anyone.. snackole? have the E6550 Pstates/Cstates non overclocked?.. my brain cant handle math lately :P but ill read it all .. 3 times if i have to) EDIT: i used snackole's _PR data and its working SWEET! (btw snackole u got a few issues in your dsdt. PX40 = LPCB and PX43= SBUS and your crash is possibly related to

0x04, // Length <---------------- The 0x04 value causes corruption in the bios in RTC .. in yours its right.. on 1 spot of 2)

anyways the error bellow is gone :) and idles at 32C on temp now

i have error:

Dec 28 11:15:13 localhost kernel[0]: ACPI_SMC_PlatformPlugin::pushCPU_CSTData - _CST evaluation failed
Dec 28 11:15:13 localhost kernel[0]: ACPI_SMC_PlatformPlugin::registerLPCDriver - WARNING - LPC device initialization failed: C-state power management not initialized
Dec 28 11:15:14 localhost kernel[0]: AppleIntelCPUPowerManagement: initialization complete
Dec 28 11:15:22 localhost kernel[0]: ACPI_SMC_PlatformPlugin::pushCPU_CSTData - _CST evaluation failed

btw im using ich-7m dev id hack for SBUS 0xDA, 0x27, 0x00, 0x00

			Device (SBUS)
		{
			Name (_ADR, 0x001F0003)
			Method (_DSM, 4, NotSerialized)
			{
				Store (Package (0x04)
					{
						"name", 
						"pci8086,27da", 
						"device-id", 
						Buffer (0x04)
						{
							0xDA, 0x27, 0x00, 0x00
						}
					}, Local0)
				MCDP (Arg2, RefOf (Local0))
				Return (Local0)
			}

and for LPCB 0xB9, 0x27, 0x00, 0x00 mine is B8 .. closest match!

			Device (LPCB)
		{
			Name (_ADR, 0x001F0000)
			Method (_DSM, 4, NotSerialized)
			{
				Store (Package (0x02)
					{
						"device-id", 
						Buffer (0x04)
						{
							0xB9, 0x27, 0x00, 0x00
						}
					}, Local0)
				MCDP (Arg2, RefOf (Local0))
				Return (Local0)
			}

 

heres the DSDT without CPU code.

 

im too burnt out on the past 3 days installing xp, win7, ubuntu, OsX 10.5.x

 

the only thing i see funny is in ioregistryexplorer is the

00:00.0 Host bridge [0600]: Intel Corporation Eaglelake DRAM Controller [8086:2e30] (rev 03) is listed by itself as

device-id <"0.">

IOName pci8086,2e30 is that normal?

closest match i found to macbook is

00:00.0 Host bridge [0600]: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub [8086:27a0] (rev 03)

found this info at gentoo wiki for MacbookPro LSPCi

Link to comment
Share on other sites

@kdawg hi,

I'm using your generic scope PR for Vanilla Speedstep. Q6600 has 4-pstates.

 

	 FID   VID
0	09	28
1	08	28
2	07	28
3	06	28

 

This is the scope PR:

 

   Scope (_PR)
   {
       Name (PSS, Package (0x04)
       {
           Package (0x06) { Zero, Zero, 10, 10, 0x00000928, Zero },
           Package (0x06) { Zero, Zero, 10, 10, 0x00000828, One },
           Package (0x06) { Zero, Zero, 10, 10, 0x00000728, 2 },
           Package (0x06) { Zero, Zero, 10, 10, 0x00000628, 3 }
       })
       Name (PSD, Package (0x05)
       {
           0x05,Zero,Zero,0xFC,0x04
       })
       Name (CST, Package (0x04)
       {
           0x03,
           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}
       })
       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)
       }
   }

 

Sometimes I get a kernel panic at boot (this kernel panic happens often, but not all the time):

http://dl.dropbox.com/u/1924024/kpanic.jpg

 

Any idea how can I solve this problem? I would be grateful for any help! Thanks!

Link to comment
Share on other sites

Can you be more specific?

I think, these are the p-states:

 

Package (0x06) { Zero, Zero, 10, 10, 0x00000928, Zero },
Package (0x06) { Zero, Zero, 10, 10, 0x00000828, One },
Package (0x06) { Zero, Zero, 10, 10, 0x00000728, 2 },
Package (0x06) { Zero, Zero, 10, 10, 0x00000628, 3 }

 

I don't know what is C1E. I have used pstatechanger to obtain the FID / VID values.

Yes. I have VoodooMonitor.kext in /S/L/E.

Link to comment
Share on other sites

The Q6600 only has one C-State, and it is the C1E C-State. You have 3 C-States in your code, so 2 of them are unnecessary. You should only have one FFixedHW, and not the SystemIOs...

 

Also, I'm pretty sure you should not have the same VID for all your P-States.

 

RE: the KPs at boot... I was having the "You must Restart your computer..." KPs a second or two into the Apple boot screen... not every time, but intermittently. I finally traced it to VoodooMonitor, and after removing the kext form E/E, I do not have them anymore. I don't see the same error in your screenshoot, but you might give that a try.

Link to comment
Share on other sites

Thank you for your help, mate!

Is this the correct modification?

 

Name (CST, Package (0x02)
	{
		0x01,
		Package (0x04){ResourceTemplate (){Register (FFixedHW,0x01,0x02,0x0000000000000000,0x00,)},One,One,0x03E8},
	})

 

I checked your DSDT... I changed:

A. Package(0x03) to ->(0x02)

B. 0x03 to 0x01

 

You have different values in FFixedHW. Are the values CPU specific?

 

Package (0x04) {ResourceTemplate () {Register (FFixedHW, 1, 2, 0x000, 0x01,)},1,0x01,0x0384}

 

You're right, I have the same p-states like you!

 

	  FID	VID
0	09	  28
1	08	  24
2	07	  20
3	06	  1B

Link to comment
Share on other sites

Thank you for your help, mate!

Is this the correct modification?

 

Name (CST, Package (0x02)
		   {
			   0x01,
			   Package (0x04){ResourceTemplate (){Register (FFixedHW,0x01,0x02,0x0000000000000000,0x00,)},One,One,0x03E8},
		   })

 

I checked your DSDT... I changed:

A. Package(0x03) to ->(0x02)

B. 0x03 to 0x01

 

Correct.

 

You have different values in FFixedHW. Are the values CPU specific?

 

Package (0x04) {ResourceTemplate () {Register (FFixedHW, 1, 2, 0x000, 0x01,)},1,0x01,0x0384}

 

Board specific I believe I got mine from the Cpu0Cst_SSDT.aml from the ACPI dumps I did under Debian GNU/Linux.

 

You're right, I have the same p-states like you!

 

	  FID	VID
   0	09	  28
   1	08	  24
   2	07	  20
   3	06	  1B

 

You should use them in your Scope (_PR) then here is mine for you to compare too.

 

	   Scope (_PR)
   {
	   Name (PSS, Package (0x04)
	   {
			   Package (0x06) { 3150, Zero, 10, 10, 0x91F, Zero }, // Q6600 4 steps
			   Package (0x06) { 2800, Zero, 10, 10, 0x81D, One },
			   Package (0x06) { 2450, Zero, 10, 10, 0x71A, 0x02 },
			   Package (0x06) { 2100, Zero, 10, 10, 0x617, 0x03 },
	   })

	   Name (PSD, Package (0x05)
	   {
		   0x05,Zero,Zero,0xFC,0x04 // The last value should equal the number of CPU
	   })
	   Name (CST, Package (0x02) // 1 cstate
	   {
		   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)
	   }
   } // end Scope(_PR)

Link to comment
Share on other sites

3150, 2800, 2450, and 2100 are cosmetic in p-states ? I have zero at each of them.

 

Board specific I believe I got mine from the Cpu0Cst_SSDT.aml from the ACPI dumps I did under Debian GNU/Linux.

Thanks, mate.. I'm thinking how can I get these values.. I have Ubuntu, but I don't know the terminal commands ;)

Link to comment
Share on other sites

3150, 2800, 2450, and 2100 are cosmetic in p-states ? I have zero at each of them.

 

 

Thanks, mate.. I'm thinking how can I get these values.. I have Ubuntu, but I don't know the terminal commands ;)

 

This should really be in the Vanilla Speedstep now that I see which I am replying in you can get the needed commands in post 34 in that thread.

 

http://www.insanelymac.com/forum/index.php...20&start=20

Link to comment
Share on other sites

@All:

 

1) What happens when you move the code inside Scope (_PR) {...} into Scope (_SB) {...} and remove the former?

 

2) What is the value of CSTInfo on your board? Is that 0x1240105 or something else?

 

1. No changes, everything works exactly the same

 

2. Value is 0x1240105

Link to comment
Share on other sites

3150, 2800, 2450, and 2100 are cosmetic in p-states ? I have zero at each of them.

 

 

Thanks, mate.. I'm thinking how can I get these values.. I have Ubuntu, but I don't know the terminal commands ;)

 

Should have answered the first question last time as well those are the values in mhz that the CPU is running at in my overclock of the machine zero is fine if you want works that way in my test machine with its overclock still working with zero there.

Link to comment
Share on other sites

1. No changes, everything works exactly the same

 

2. Value is 0x1240105

 

Just what I thought. Thank you for this confirmation!

 

BTW this is what the ACPI specification has to say about it:

 

"ACPI 1.0 Processor Namespace. ACPI 1.0 requires all Processor objects to be defined under this namespace. ACPI allows Processor object definitions under the \_SB namespace. Platforms may maintain the \_PR namespace for compatibility with ACPI 1.0 operating systems. An ACPI-compatible namespace may define Processor objects in either the \_SB or \_PR scope but not both.".

 

And thus I removed it. So long _PR...

Link to comment
Share on other sites

Another little improvement for pc_efi 10.5

 

PC_EFI 10.5 + restartfix 2.1 + ecdt override (based on the AnV work, should add "boot-ec" to your ioreg, it maybe interesting, especially on laptops) =>

 

note:

for ecdt override, just place ecdt.aml and the boot file on your root partition

 

dev note: the coding style is a little different and the code may be stripped, but i don't care , 'cause it work, i prefer let netkas or the chameleon team do the dirty work :)

Link to comment
Share on other sites

I have this code in DSDT:

 

       Device (PWRB) // <--power button fix
       {
           Name (_CID, EisaId ("PNP0C0C"))
           Name (_UID, 0xAA)
           Name (_STA, 0x0B)
       }

 

I press the power button, but nothing happens. Any idea how can I solve this problem ?

 

You probably know already but to enable the power button functionality you need to go to energy saver under options there should be an option to tick which says something like "allowing the power button to sleep". The only extra functionality this gives you along with the CID edit is that the power button can sleep and wake the computer. If it should do anything more I am unaware of it.

 

FWIW, on a MBP, pressing the Power Button brings up the Sleep/Restart/Power/etc dialog.

Noted, thanks.

Link to comment
Share on other sites

        Name (_PSS, Package (0x07)
       {
          // [color="#FF0000"]*10 Pstate (=Pstate 0)removed[/color] ,
         // because [b]*10[/b] with 333 Mhz =[b]3333 MHz would Kernel Panic[/b] my 2666 CPU 
         // (OC 266>333 FSB with multi *10 > [b]*9[/b] )  

          Package (0x06)  // [b]*9[/b] = 2999 Mhz at 333 FSB ([b]OC from 266 Mhz[/b])
           {
               0x0BB5, 
               0x00013A97, 
               0x0A, 
               0x0A, 
               0x0922, 
               0x0922
           }, 


      Package (0x06)
           {
               0x0B0E, // 8,5 2830 MHz
               0xFF41, 
               0x0A, 
               0x0A, 
               0x4821, 
               0x4821
           },


           Package (0x06)
           {
               0x0A68, 
               0x00010A18, 
               0x0A, 
               0x0A, 
               0x081E, 
               0x081E
           }, 


         Package (0x06)
           {
               0x09C1, // 7,5 2497 MHz
               0xEE41, 
               0x0A, 
               0x0A, 
               0x471C, 
               0x471C
           },


           Package (0x06)
           {
               0x091B, 
               0xDCFB, 
               0x0A, 
               0x0A, 
               0x071A, 
               0x071A
           }, 


           Package (0x06) // 6,5
           {
               0x0874, 
               0xCC41, 
               0x0A, 
               0x0A, 
               0x4618, 
               0x4618
           },


           Package (0x06)
           {
               0x07CE, 
               0xB341, 
               0x0A, 
               0x0A, 
               0x0616, 
               0x0616
           }
       })

Hint: Normally making Pstates is no problem.

Users, like me, C2D 2666MHZ OC to 3000 Mhz (9* 333 MHz insted of 10* 266 MHz) which OC the system by higher FSB MHz and lowered Multi (*10 for my CPU normally to *9) can run in Kernel panic if they not limit Pstates to that *9 (=max) also in PSS!

Using Voodopower based .kext must avoid that by disabling highest Pstate to 1. Without that voodoopower will use *10 as Pstate 0 even if you dont have set *10 in PSS_ pstates. So voodoopower didnt look at PSS normally it has his own AI to get the Pstates which normally works good - but not on OC systems!

Orig. vanilla powermanagement systems with PSS PStates or Voodoopower based .kext with ACPI=yes (Option inplist) didnt have that problem , they takes the PSS_ pstates (*9) and didnt use the *10 like vodoopower without limited Pstate in his plist Options.

But also vanilla system PSS Pstates must limit pstates by not listing highest multi in PSS on OC systems setting multi down (in BIOS) to OC with higher FSB !

Link to comment
Share on other sites

Another little improvement for pc_efi 10.5

 

PC_EFI 10.5 + restartfix 2.1 + ecdt override (based on the AnV work, should add "boot-ec" to your ioreg, it maybe interesting, especially on laptops) =>

 

note:

for ecdt override, just place ecdt.aml and the boot file on your root partition

 

dev note: the coding style is a little different and the code may be stripped, but i don't care , 'cause it work, i prefer let netkas or the chameleon team do the dirty work :D

I have already ECDT in my lappie ioreg...but boot-ec is missing

Anyway is a good update, and also IMHO FADT override should be kept, and restart fix done automate.

Link to comment
Share on other sites

Another little improvement for pc_efi 10.5

 

PC_EFI 10.5 + restartfix 2.1 + ecdt override (based on the AnV work, should add "boot-ec" to your ioreg, it maybe interesting, especially on laptops) =>

 

note:

for ecdt override, just place ecdt.aml and the boot file on your root partition

 

dev note: the coding style is a little different and the code may be stripped, but i don't care , 'cause it work, i prefer let netkas or the chameleon team do the dirty work :(

 

"RealtekR1000.kext (DSDT (RealtekR1000.kext not needed anymore with snow))"

 

Can you please share this dsdt fix?

Link to comment
Share on other sites

 Share

×
×
  • Create New...