Jump to content

Master Chief's P5K PRO ACPI Warfare


VegasKarma
 Share

908 posts in this topic

Recommended Posts

Master Chief,

Thanks once again for the good lessons in ACPI. :)

I know that the P5k Pro does not have, however my P5E WS Pro is very similarly.

It has same ICH chipset and very similar DSDT.

Your improvements in DSDT work very well, also with Apple HID keyboard :)

But a small problem gives ' s still. Sleep works very well up to the following.

After the Sleep no restart is possible, the system hangs.

 

I found that in the Kernel log.

08.10.09 09:28:52	mDNSResponder[28]	Note: RegisterInterface: Frequent transitions for interface vmnet1 (192.168.55.1); network traffic reduction measures in effect
08.10.09 09:28:53	kernel	systemShutdown true
08.10.09 09:28:53	shutdown[161]	reboot by root: 
08.10.09 09:28:53	shutdown[161]	SHUTDOWN_TIME: 1254986933 546669
08.10.09 09:28:53	SystemStarter[22]	BRESINKx86Monitoring (163) did not complete successfully
08.10.09 09:28:53	SystemStarter[22]	The following StartupItems failed to stop properly:
08.10.09 09:28:53	SystemStarter[22]	/Library/StartupItems/BRESINKx86Monitoring
08.10.09 09:28:53	SystemStarter[22]	 - execution of Startup script failed
08.10.09 09:28:53	mDNSResponder[28]	mDNSResponder mDNSResponder-212.1 (Jul 24 2009 22:34:12) stopping
08.10.09 09:28:53	SecurityAgent[149]	CGSShutdownServerConnections: Detaching application from window server
08.10.09 09:28:53	WindowServer[131]	hidd died. Reestablishing connection.
08.10.09 09:28:54	SecurityAgent[149]	MIG: server died: CGSReleaseShmem : Cannot release shared memory
08.10.09 09:28:54	SecurityAgent[149]	kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.
08.10.09 09:28:54	SecurityAgent[149]	CGSDisplayServerShutdown: Detaching display subsystem from window server
08.10.09 09:28:54	SecurityAgent[149]	kCGErrorRangeCheck: On-demand launch of the Window Server is allowed for root user only.
08.10.09 09:28:54	com.apple.SecurityServer[25]	Session 0x52327d dead

 

Do you have an idea?

Thanks for your time and work.

 

parcival

Link to comment
Share on other sites

DSDT V2.5 will be released today with at least one, but possibly two improvements. The first one is the Embedded Controller EC and the second one is a still rather new/experimental device called FWHD – to support the Intel 82802AB/82802AC Firmware Hub.

 

The first addition makes AppleACPIEC.kext load and initialize properly on our board. Pretty obvious looking at the name, but I also spotted two others with kextstat, being AppleUSBMergeNub.kext and AppleHIDKeyboard.kext. And looking at my saved dumps. Nope. I did not had these after the inclusion of SMBUS. Cool.

 

Note: The latter two kexts might only load for people with Apple Keyboards. Just haven't checked it... yet!

 

@parcival: I don't know. No problem here. Please attach your IORegistry Explorer dump (Xcode) and I'll check it... but only because I don't want people to get the impression that something isn't working!

Link to comment
Share on other sites

@parcival: I don't know. No problem here. Please attach your IORegistry Explorer dump (Xcode) and I'll check it... but only because I don't want people to get the impression that something isn't working!

Here working fine too..

 

you succeed with your dvd unit :) congratulations. mine is still making those look ups but it doesn't prevent system going into sleep. more info on "Sleep after idle period"

 

Still have to eliminate those irq to get proper sound. Not a big deal but what makes the difference?

 

salu2

Link to comment
Share on other sites

OsXsO, do you have a working DSDT patched for c states on your Q6600? Would you mind attaching it, or if you plan on patching in Master Chief's 2.5 fixes posting it after you do that? Thanks

 

 

Acctually i only had to change the pss table and few lines according to my original dsdt info about cpu in those dsdt from Master Chief. He already add the c state values of a macpro 3,1.

 

Processor (CPU1, 0x01, 0x00000810, 0x06)
       {
           OperationRegion (STBL, SystemMemory, 0xCFF8E0D0, 0x0190)
           Name (NCPU, 0x04)
           Name (TYPE, 0x80000000)
           Name (HNDL, 0x80000000)
           Name (CFGD, 0x01000007)
           Name (TBLD, 0x80)
           Method (_PDC, 1, NotSerialized)
           {
               CreateDWordField (Arg0, Zero, REVS)
               CreateDWordField (Arg0, 0x04, SIZE)
               Store (SizeOf (Arg0), Local0)
               Store (Subtract (Local0, 0x08), Local1)
               CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP)
               Name (STS0, Buffer (0x04)
               {
                   0x00, 0x00, 0x00, 0x00
               })
               Concatenate (STS0, TEMP, Local2)
               _OSC (Buffer (0x10)
                   {
                       /* 0000 */    0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 
                       /* 0008 */    0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
                   }, REVS, SIZE, Local2)
           }

           Method (_OSC, 4, NotSerialized)
           {
               CreateDWordField (Arg3, Zero, STS0)
               CreateDWordField (Arg3, 0x04, CAP0)
               CreateDWordField (Arg0, Zero, IID0)
               CreateDWordField (Arg0, 0x04, IID1)
               CreateDWordField (Arg0, 0x08, IID2)
               CreateDWordField (Arg0, 0x0C, IID3)
               Name (UID0, Buffer (0x10)
               {
                   /* 0000 */    0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 
                   /* 0008 */    0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
               })
               CreateDWordField (UID0, Zero, EID0)
               CreateDWordField (UID0, 0x04, EID1)
               CreateDWordField (UID0, 0x08, EID2)
               CreateDWordField (UID0, 0x0C, EID3)
               If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)), 
                   LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3)))))
               {
                   Store (0x06, Index (STS0, Zero))
                   Return (Arg3)
               }

               If (LNotEqual (Arg1, One))
               {
                   Store (0x0A, Index (STS0, Zero))
                   Return (Arg3)
               }

               Or (And (TYPE, 0x7FFFFFFF), CAP0, TYPE)
               If (And (CFGD, One))
               {
                   If (LAnd (LAnd (And (CFGD, 0x01000000), LEqual (And (TYPE, 
                       0x09), 0x09)), LNot (And (TBLD, One))))
                   {
                       Or (TBLD, One, TBLD)
                       Load (STBL, HNDL)
                   }
               }

               If (And (CFGD, 0xF0))
               {
                   If (LAnd (LAnd (And (CFGD, 0x01000000), And (TYPE, 0x18
                       )), LNot (And (TBLD, 0x02))))
                   {
                       Or (TBLD, 0x02, TBLD)
                   }
               }

               Return (Arg3)
           }

           Name (_PSS, Package (0x04)
           {
               Package (0x06)
               {
                   0x0E10, 
                   0xFB40, 
                   0x0A, 
                   0x0A, 
                   0x0928, 
                   0x0928
               }, 

               Package (0x06)
               {
                   0x0C80, 
                   0xDA00, 
                   0x0A, 
                   0x0A, 
                   0x0826, 
                   0x0826
               }, 

               Package (0x06)
               {
                   0x0AF0, 
                   0xB56A, 
                   0x0A, 
                   0x0A, 
                   0x0722, 
                   0x0722
               }, 

               Package (0x06)
               {
                   0x0960, 
                   0x9380, 
                   0x0A, 
                   0x0A, 
                   0x061E, 
                   0x061E
               }
           })
           Method (_CST, 0, NotSerialized)
           {
               If (LAnd (And (CFGD, 0x01000000), LNot (And (TYPE, 0x09
                   ))))
               {
                   Return (Package (0x02)
                   {
                       One, 
                       Package (0x04)
                       {
                           ResourceTemplate ()
                           {
                               Register (FFixedHW, 
                                   0x00,               // Bit Width
                                   0x00,               // Bit Offset
                                   0x0000000000000000, // Address
                                   ,)
                           }, 

                           One, 
                           0x9D, 
                           0x03E8
                       }
                   })
               }

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

                       One, 
                       One, 
                       0x03E8
                   }, 

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

                       0x02, 
                       One, 
                       0x01F4
                   }, 

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

                       0x03, 
                       0x11, 
                       0xFA
                   }
               })
           }
       }
   }

   Scope (_PR)
   {
       Processor (CPU2, 0x02, 0x00000810, 0x06)
       {
           OperationRegion (STBL, SystemMemory, 0xCFF8E260, 0x0143)
           Name (NCPU, 0x04)
           Name (TYPE, 0x80000000)
           Name (HNDL, 0x80000000)
           Name (CFGD, 0x01000007)
           Name (TBLD, 0x80)
           Method (_PDC, 1, NotSerialized)
           {
               CreateDWordField (Arg0, Zero, REVS)
               CreateDWordField (Arg0, 0x04, SIZE)
               Store (SizeOf (Arg0), Local0)
               Store (Subtract (Local0, 0x08), Local1)
               CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP)
               Name (STS1, Buffer (0x04)
               {
                   0x00, 0x00, 0x00, 0x00
               })
               Concatenate (STS1, TEMP, Local2)
               _OSC (Buffer (0x10)
                   {
                       /* 0000 */    0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 
                       /* 0008 */    0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
                   }, REVS, SIZE, Local2)
           }

           Method (_OSC, 4, NotSerialized)
           {
               CreateDWordField (Arg3, Zero, STS1)
               CreateDWordField (Arg3, 0x04, CAP1)
               CreateDWordField (Arg0, Zero, IID0)
               CreateDWordField (Arg0, 0x04, IID1)
               CreateDWordField (Arg0, 0x08, IID2)
               CreateDWordField (Arg0, 0x0C, IID3)
               Name (UID0, Buffer (0x10)
               {
                   /* 0000 */    0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 
                   /* 0008 */    0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
               })
               CreateDWordField (UID0, Zero, EID0)
               CreateDWordField (UID0, 0x04, EID1)
               CreateDWordField (UID0, 0x08, EID2)
               CreateDWordField (UID0, 0x0C, EID3)
               If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)), 
                   LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3)))))
               {
                   Store (0x06, Index (STS1, Zero))
                   Return (Arg3)
               }

               If (LNotEqual (Arg1, One))
               {
                   Store (0x0A, Index (STS1, Zero))
                   Return (Arg3)
               }

               Or (And (TYPE, 0x7FFFFFFF), CAP1, TYPE)
               If (And (CFGD, One))
               {
                   If (LAnd (LAnd (And (CFGD, 0x01000000), LEqual (And (TYPE, 
                       0x09), 0x09)), LNot (And (TBLD, One))))
                   {
                       Or (TBLD, One, TBLD)
                       Load (STBL, HNDL)
                   }
               }

               If (And (CFGD, 0xF0))
               {
                   If (LAnd (LAnd (And (CFGD, 0x01000000), And (TYPE, 0x18
                       )), LNot (And (TBLD, 0x02))))
                   {
                       Or (TBLD, 0x02, TBLD)
                   }
               }

               Return (Arg3)
           }

           Method (_CST, 0, NotSerialized)
           {
               Return (^^CPU1._CST ())
           }
       }
   }

   Scope (_PR)
   {
       Processor (CPU3, 0x03, 0x00000810, 0x06)
       {
           OperationRegion (STBL, SystemMemory, 0xCFF8E3B0, 0x0143)
           Name (NCPU, 0x04)
           Name (TYPE, 0x80000000)
           Name (HNDL, 0x80000000)
           Name (CFGD, 0x01000007)
           Name (TBLD, 0x80)
           Method (_PDC, 1, NotSerialized)
           {
               CreateDWordField (Arg0, Zero, REVS)
               CreateDWordField (Arg0, 0x04, SIZE)
               Store (SizeOf (Arg0), Local0)
               Store (Subtract (Local0, 0x08), Local1)
               CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP)
               Name (STS2, Buffer (0x04)
               {
                   0x00, 0x00, 0x00, 0x00
               })
               Concatenate (STS2, TEMP, Local2)
               _OSC (Buffer (0x10)
                   {
                       /* 0000 */    0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 
                       /* 0008 */    0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
                   }, REVS, SIZE, Local2)
           }

           Method (_OSC, 4, NotSerialized)
           {
               CreateDWordField (Arg3, Zero, STS2)
               CreateDWordField (Arg3, 0x04, CAP2)
               CreateDWordField (Arg0, Zero, IID0)
               CreateDWordField (Arg0, 0x04, IID1)
               CreateDWordField (Arg0, 0x08, IID2)
               CreateDWordField (Arg0, 0x0C, IID3)
               Name (UID0, Buffer (0x10)
               {
                   /* 0000 */    0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 
                   /* 0008 */    0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
               })
               CreateDWordField (UID0, Zero, EID0)
               CreateDWordField (UID0, 0x04, EID1)
               CreateDWordField (UID0, 0x08, EID2)
               CreateDWordField (UID0, 0x0C, EID3)
               If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)), 
                   LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3)))))
               {
                   Store (0x06, Index (STS2, Zero))
                   Return (Arg3)
               }

               If (LNotEqual (Arg1, One))
               {
                   Store (0x0A, Index (STS2, Zero))
                   Return (Arg3)
               }

               Or (And (TYPE, 0x7FFFFFFF), CAP2, TYPE)
               If (And (CFGD, One))
               {
                   If (LAnd (LAnd (And (CFGD, 0x01000000), LEqual (And (TYPE, 
                       0x09), 0x09)), LNot (And (TBLD, One))))
                   {
                       Or (TBLD, One, TBLD)
                       Load (STBL, HNDL)
                   }
               }

               If (And (CFGD, 0xF0))
               {
                   If (LAnd (LAnd (And (CFGD, 0x01000000), And (TYPE, 0x18
                       )), LNot (And (TBLD, 0x02))))
                   {
                       Or (TBLD, 0x02, TBLD)
                   }
               }

               Return (Arg3)
           }

           Method (_CST, 0, NotSerialized)
           {
               Return (^^CPU1._CST ())
           }
       }
   }

   Scope (_PR)
   {
       Processor (CPU4, 0x04, 0x00000810, 0x06)
       {
           OperationRegion (STBL, SystemMemory, 0xCFF8E500, 0x0143)
           Name (NCPU, 0x04)
           Name (TYPE, 0x80000000)
           Name (HNDL, 0x80000000)
           Name (CFGD, 0x01000007)
           Name (TBLD, 0x80)
           Method (_PDC, 1, NotSerialized)
           {
               CreateDWordField (Arg0, Zero, REVS)
               CreateDWordField (Arg0, 0x04, SIZE)
               Store (SizeOf (Arg0), Local0)
               Store (Subtract (Local0, 0x08), Local1)
               CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP)
               Name (STS3, Buffer (0x04)
               {
                   0x00, 0x00, 0x00, 0x00
               })
               Concatenate (STS3, TEMP, Local2)
               _OSC (Buffer (0x10)
                   {
                       /* 0000 */    0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 
                       /* 0008 */    0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
                   }, REVS, SIZE, Local2)
           }

           Method (_OSC, 4, NotSerialized)
           {
               CreateDWordField (Arg3, Zero, STS3)
               CreateDWordField (Arg3, 0x04, CAP3)
               CreateDWordField (Arg0, Zero, IID0)
               CreateDWordField (Arg0, 0x04, IID1)
               CreateDWordField (Arg0, 0x08, IID2)
               CreateDWordField (Arg0, 0x0C, IID3)
               Name (UID0, Buffer (0x10)
               {
                   /* 0000 */    0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 
                   /* 0008 */    0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
               })
               CreateDWordField (UID0, Zero, EID0)
               CreateDWordField (UID0, 0x04, EID1)
               CreateDWordField (UID0, 0x08, EID2)
               CreateDWordField (UID0, 0x0C, EID3)
               If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)), 
                   LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3)))))
               {
                   Store (0x06, Index (STS3, Zero))
                   Return (Arg3)
               }

               If (LNotEqual (Arg1, One))
               {
                   Store (0x0A, Index (STS3, Zero))
                   Return (Arg3)
               }

               Or (And (TYPE, 0x7FFFFFFF), CAP3, TYPE)
               If (And (CFGD, One))
               {
                   If (LAnd (LAnd (And (CFGD, 0x01000000), LEqual (And (TYPE, 
                       0x09), 0x09)), LNot (And (TBLD, One))))
                   {
                       Or (TBLD, One, TBLD)
                       Load (STBL, HNDL)
                   }
               }

               If (And (CFGD, 0xF0))
               {
                   If (LAnd (LAnd (And (CFGD, 0x01000000), And (TYPE, 0x18
                       )), LNot (And (TBLD, 0x02))))
                   {
                       Or (TBLD, 0x02, TBLD)
                   }
               }

               Return (Arg3)
           }

           Method (_CST, 0, NotSerialized)
           {
               Return (^^CPU1._CST ())
           }
       }
   }

 

you have to change the pss because mine is OC@3.6

 

salu2

Link to comment
Share on other sites

oh ok thanks.

 

so (sorry I'm still a little behind on the whole DSDT patching thing) I've got my computer working like 95% right now. I'm using an old .aml file I had from my previous attempts to setup 10.6, so it has zero patches or anything like that; I'm using Digital DJ's patched cham., but it doesn't recognize my Core2Quad, even though it seems like it should. Video (EFI string), LAN (out-of-box) work; no audio and shutdown/restart are a little flaky. Would I be better off starting with the DSDT I have and patching it with all the fixes you guys have come up with, or starting with the latest one Master Chief posted and patching it for my CPU? Seems like the second option would be better.

Link to comment
Share on other sites

Status update: DSDT v2.5 will be released after dinner – everything works as planned, but I need to add some comments first :)

 

@parcival39: I haven't had the time to check everything but here's what I noticed at first glance:

 

1) You still need to patch some stuff.

2) Change Name (NCPU, 0x80) into Name (NCPU, 0x04) because this number represents the number of CPU cores. FYI: 0x80 is 128 cores LOL

3) Remove FDC (Floppy Disk Controller).

4) Remove SPR (Speaker).

5) Remove RMEM.

6) Change "power-button" into PWRB

7) Make sure you didn't overlooked something.

 

To anyone: If you don't have anything plugged into the serial port, then disable the port in the BIOS.

 

Done! DSDT V2.5 is now available. See attachments (also in post #3). Have fun!

 

@parcival39: Thanks to for the (virtual) pizza. I just finished my salami extra, but I skipped the beer for a Pepsi :)

DSDT_V2.5.zip

Link to comment
Share on other sites

Done! DSDT V2.5 is now available. See attachments (also in post #3). Have fun!

 

thx for the update... gonna try right now :P

 

 

oh ok thanks.

 

so (sorry I'm still a little behind on the whole DSDT patching thing) I've got my computer working like 95% right now. I'm using an old .aml file I had from my previous attempts to setup 10.6, so it has zero patches or anything like that; I'm using Digital DJ's patched cham., but it doesn't recognize my Core2Quad, even though it seems like it should. Video (EFI string), LAN (out-of-box) work; no audio and shutdown/restart are a little flaky. Would I be better off starting with the DSDT I have and patching it with all the fixes you guys have come up with, or starting with the latest one Master Chief posted and patching it for my CPU? Seems like the second option would be better.

 

if you wanna go directly to the latest one from Master Chief then u make sure to fix this lines with yours as they refer to your installed Ram and Cpu. Everywhere they apear :)

 

Mine looks like this

Processor (CPU1, 0x01, 0x00000810, 0x06)
       {
           OperationRegion (STBL, SystemMemory, 0xCFF8E0D0, [color="#ff8c00"]0x0190[/color])
           Name (NCPU, 0x04)
           Name (TYPE, 0x80000000)
           Name (HNDL, 0x80000000)
           Name (CFGD, [color="#f4a460"]0x01000007[/color])
           Name (TBLD, 0x80)

 

Master Chiefs like this

Processor (CPU1, 0x01, 0x00000810, 0x06)
       {
           OperationRegion (STBL, SystemMemory, 0xCFF8E0D0, [color="#ff8c00"]0x01D2[/color])
           Name (NCPU, 0x04)
           Name (TYPE, 0x80000000)
           Name (HNDL, 0x80000000)
           Name (CFGD, [color="#ffa500"]0x01000027[/color])
           Name (TBLD, 0x80)

 

and your pss table.... the rest seems to be "pretty save" and generic for our board but it isn't tested long time so have fun doing it :)

 

osx detects our cpu as unknow .. there is no mac with q6600 so the injector makes the q6600 seen as a quad core intel xeon in system profiler. this is usfull for some app wich doesn't install cause they think u don't have an intel processor. I didn't try the patched chameleon, but i tried the kext and it works.

 

You have all the kext you need in the first page. Shutdown and Restart with openhaltrestart needs some time to be fast. but by installing and trying you really pass fast this period :)

 

salu2

Link to comment
Share on other sites

thx for the update... gonna try right now :)

 

 

 

 

if you wanna go directly to the latest one from Master Chief then u make sure to fix this lines with yours as they refer to your installed Ram and Cpu. Everywhere they apear :)

 

Mine looks like this

Processor (CPU1, 0x01, 0x00000810, 0x06)
       {
           OperationRegion (STBL, SystemMemory, 0xCFF8E0D0, [color="#ff8c00"]0x0190[/color])
           Name (NCPU, 0x04)
           Name (TYPE, 0x80000000)
           Name (HNDL, 0x80000000)
           Name (CFGD, [color="#f4a460"]0x01000007[/color])
           Name (TBLD, 0x80)

 

Master Chiefs like this

Processor (CPU1, 0x01, 0x00000810, 0x06)
       {
           OperationRegion (STBL, SystemMemory, 0xCFF8E0D0, [color="#ff8c00"]0x01D2[/color])
           Name (NCPU, 0x04)
           Name (TYPE, 0x80000000)
           Name (HNDL, 0x80000000)
           Name (CFGD, [color="#ffa500"]0x01000027[/color])
           Name (TBLD, 0x80)

 

and your pss table.... the rest seems to be "pretty save" and generic for our board but it isn't tested long time so have fun doing it :)

 

osx detects our cpu as unknow .. there is no mac with q6600 so the injector makes the q6600 seen as a quad core intel xeon in system profiler. this is usfull for some app wich doesn't install cause they think u don't have an intel processor. I didn't try the patched chameleon, but i tried the kext and it works.

 

You have all the kext you need in the first page. Shutdown and Restart with openhaltrestart needs some time to be fast. but by installing and trying you really pass fast this period :)

 

salu2

 

thanks for all the info! gonna get to work on the DSDT as soon as I settle on a OC speed. Shutdown has started to work much better, so one more thing crossed off the list

Link to comment
Share on other sites

Holy sweet something. My hack now also sleeps after an idle period, and yes with my TSSTcorp drive!!!

 

Note: The magic will be revealed in DSDT V2.6

 

More proof that reading the "Intel I/O Controller Hub 9 (ICH9) Family" pays off. Too bad that only so little people here are willing to work really hard and share their findings. Not to mention the few here on this forum who behave in such an offensively, condescending manner toward other forum members. I call bad ego. And yes I am still waiting for your apology FormelyKnownAs

Link to comment
Share on other sites

Holy sweet something. My hack now also sleeps after an idle period, and yes with my TSSTcorp drive!!!

 

nice! congrats

 

also, last question for the day, should MC's DSDT (patched for my CPU/RAM) work if I just take out the _PSS section? The DSDT I'm using right now does not have the table and it works fine (well, it boots at least). When I do take out _PSS I get this during boot:

 

IOAPIC: Version 0x20 Vectors 64:87

 

and then it just hangs, no real KP or anything

Link to comment
Share on other sites

is there a way to get the PSS table values without an acpidump in linux? It seems like I need the values from that to put into the calculator to get _PSS entries, but maybe I'm missing something

 

Read first page again and again... you have lot's of question which are already answered.

 

salu2

Link to comment
Share on other sites

hey jefe

 

would it be possible to add your "virgin dsdt" without patches? i would like to compare them with mine using filemerge from Dev Tools.

 

salu2

Sure. Let me find one for you.... okay. See attachments for a blank one from BIOS V1303 Have fun.

 

p.s. I checked the file and found my old HDEF section in it so I've extracted a new one from the original BIOS – use: iasl -d DSDT-BIOS-V1303.dat to decompile it.

DSDT_BIOS_V1303.dat.zip

Link to comment
Share on other sites

Sure. Let me find one for you.... okay. See attachments for a blank one from BIOS V1303 Have fun.

 

p.s. I checked the file and found my old HDEF section in it so I've extracted a new one from the original BIOS – use: iasl -d DSDT-BIOS-V1303.dat to decompile it.

 

Thx

 

so the only difference between my config and yours is this line

OperationRegion (STBL, SystemMemory, [color="#FFA500"]0xCFF8E2B0, 0x0143[/color])

 

which i think everybody should check and modify before using others dsdt.dsl

 

something i found which i don't really know if it's wanted from your side is the following entry

 

your untouched dsdt.dsl

 

OperationRegion (STBL, SystemMemory, 0xCFF8E2B0, 0x0143)
           Name (NCPU, 0x04)
           Name (TYPE, 0x80000000)
           Name (HNDL, 0x80000000)
           [color="#2E8B57"]Name (CFGD, 0x01000007)[/color]
           Name (TBLD, 0x80)

 

your patched version v2.5

 

OperationRegion (STBL, SystemMemory, 0xCFF8E2B0, 0x0143)
           Name (NCPU, 0x04)
           Name (TYPE, 0x80000000)
           Name (HNDL, 0x80000000)
           [color="#FF0000"]Name (CFGD, 0x01000027)[/color]
           Name (TBLD, 0x80)

 

looking forward to your next version :)

 

salu2

Link to comment
Share on other sites

@parcival39: I haven't had the time to check everything but here's what I noticed at first glance:

 

1) You still need to patch some stuff.

2) Change Name (NCPU, 0x80) into Name (NCPU, 0x04) because this number represents the number of CPU cores. FYI: 0x80 is 128 cores LOL

3) Remove FDC (Floppy Disk Controller).

4) Remove SPR (Speaker).

5) Remove RMEM.

6) Change "power-button" into PWRB

7) Make sure you didn't overlooked something.

 

To anyone: If you don't have anything plugged into the serial port, then disable the port in the BIOS.

 

@parcival39: Thanks to for the (virtual) pizza. I just finished my salami extra, but I skipped the beer for a Pepsi :)

 

:) Master Chief, everything perfectly owing to your assistance.

Should we meet sometimes in the real life, i give to a drink.

 

to point 2) -> why not, mine privately cluster :)

point 3,4 and 5 done

point 6) i have this in the DSDT

and point 7) i think 3Ghz for an Q6700 is OK. Good cooling is everything.

 

@to all

Can someone explain these parameters to me?

 

Processor (CPU1, 0x01, 0x00000810, 0x06)
       {
           OperationRegion (STBL, SystemMemory, 0xFFFF0000, 0xFFFF)
           Name (NCPU, 0x04) // Number of Cores
           Name (TYPE, 0x80000000)
           Name (HNDL, 0x80000000)
           Name (CFGD, 0x01000007)
           Name (TBLD, 0x80)

 

which parameters are that?

How does one calculate those?

What does one have to wrote for a Q6700 with 8GB RAM?

How do i announce OSX my CPU? (DSDT ?, kext?)

 

Thanks for your assistance

 

parcival

Link to comment
Share on other sites

something i found which i don't really know if it's wanted from your side is the following entry

 

your clean dsdt.dsl

 

OperationRegion (STBL, SystemMemory, 0xCFF8E2B0, 0x0143)
           Name (NCPU, 0x04)
           Name (TYPE, 0x80000000)
           Name (HNDL, 0x80000000)
           [color="#2E8B57"]Name (CFGD, 0x01000007)[/color]
           Name (TBLD, 0x80)

 

your patched version v2.5

 

OperationRegion (STBL, SystemMemory, 0xCFF8E2B0, 0x0143)
           Name (NCPU, 0x04)
           Name (TYPE, 0x80000000)
           Name (HNDL, 0x80000000)
           [color="#FF0000"]Name (CFGD, 0x01000027)[/color]
           Name (TBLD, 0x80)

 

looking forward to your next version ;)

 

salu2

 

the same goes for me, i double checked it and i have 0x01000007

all the other part of the cpus is the same like chief's

MasterChief after 2.3 of your dsl (what did u add there?) system boots with lag in the mouse, system is unstable like it;'s loading something etc

i would like to test smbus method etc, but something is wrong

our cpu part of dsl is almost the same, i tried even replacing yours with mine, but the lag is still there, so the problem is not because of the cpu

do u have any clue? (maybe the apple keyboard?or some other device u have added?)

your mobo is the same like me, not such a big difference.

can u tell me also what kexts do u load on boot?

maybe the problem is there

 

one last thing:

i have the

<key>DropSSDT</key>

<string>y</string>

in my boot.plist

do i still need it or not?

Link to comment
Share on other sites

Here's a quick – before diner – description of what this block actually means:

OperationRegion (STBL, SystemMemory, 0xCFF8E2B0, 0x0143)
Name (NCPU, 0x04)
Name (TYPE, 0x80000000)
Name (HNDL, 0x80000000)
Name (CFGD, 0x01000027)
Name (TBLD, 0x80)

This creates an OperationRegion called STBL in SystemMemory starting at address 0xCFF8E2B0 with a length of 0x0143 bytes.

 

NCPU represents the number of CPU Cores.

 

TYPE will be initialized with the OSPM/CPU Capabilities like so:

Or (And (TYPE, 0x7FFFFFFF), CAP0, TYPE)

HNDL is a Handle, which can be used to unload STBL (which we don't of course) and here's the use of it:

Load (STBL, HNDL)

CFGD is the ConFiGuration Definition. Here's a handy table (by Intel) which you can print:

 

CFGD.png

 

And when your system starts lagging due to a higher value in my DSDT – which basically means that the C-States are starting to work, but you need to remove a few IRQ's to solve this issues.

 

TBLD is used to prevent re-loading of IST/CST tables like so – note the use of: LNot (And (TBLD, One)):

If (LAnd (LAnd (And (CFGD, 0x01000000), LEqual (And (TYPE, 
					0x09), 0x09)), LNot (And (TBLD, One))))

And gets initialized like this (in two different sections for each Processor block):

Or (TBLD, One, TBLD)
Or (TBLD, 0x02, TBLD)

 

I hope that this answers your questions guys (OsXsO, parcival39 and spanakorizo). Oh, and about DropSSDT... there should be no need to drop SSDT (Secondary DSDT) tables when you don't override them. Just give it a go without it – remember this: I am using a derivative version of Chameleon not V2 RCx.

Link to comment
Share on other sites

To anyone looking for my TSSTcorp sleep solution... make sure your DVD player/burner is connected to SATA 3 (black) because that's where my DSDT V2.6 will look for it. And to be sure, here's the official port layout for our board:

 

P5KPROSATAports.png

 

And for people with other motherboards, make sure it is connected to the third SATA port (wherever that is located on your motherboard). My TSSTcorp sleep solution however will only work for people who have issues with hardware, like the broken TSSTcorp DVD drives. It won't fix any other sleep issues!

 

Checklist:

1) Inserting a CD/DVD makes auto sleep work (be it slow).

2) Disconnecting the drive from the motherboard makes auto sleep work.

 

If, and only if both of the above workarounds work for you, then it might work. Everything else is considered magic for now.

 

How does it work?

The drive has for power states being: ON, PARTIAL, SLUMBER and OFF. Guess what... I put the drive in the OFF state. Et Viola! Yup. It's that easy.

 

Let's have a look at the new code under the SATA Device:

               // Newly added: MAP - Address Map Register (ICH9R-3169722.pdf / 14.1.30 / page 556).
               OperationRegion (MAP, PCI_Config, 0x90, One)
               Field (MAP, ByteAcc, NoLock, Preserve)
               {
                   MV,    2,
                     ,    3,
                   SC,    1,
                   SMS,   2
               }

               // Newly added: PCS - Port Control and Status Register (ICH9R-3169722.pdf / 14.1.31 / page 556).
               OperationRegion (PCS, PCI_Config, 0x92, 0x02)
               Field (PCS, ByteAcc, NoLock, Preserve)
               {
                   P0E,   1,
                   P1E,   1,
                   P2E,   1,
                   P3E,   1,
                   P4E,   1,
                   P5E,   1,
                      ,   2,
                   P0P,   1,
                   P1P,   1,
                   P2P,   1,
                   P3P,   1,
                   P4P,   1,
                   P5P,   1,
                      ,   1,
                   ORM,   1
               }

Note the included references to the used documentation (thanks to Intel). All code is mine, of course, but I could not have done it without this datasheet. And thus if you want to know what it does/is used for. Get this datasheet.

 

Now have a look at the callers:

	Method (_GTS, 1, NotSerialized) // Going To Sleep.
{
	Store (Zero, \_SB.PCI0.SATA.ORM)

	if (LEqual (\_SB.PCI0.SATA.P2E, One))
	{
		Store (Zero, \_SB.PCI0.SATA.P2E)
	}
}

_GTS (Going To Sleep) is a newly added Method and puts the DVD Drive/player into the OFF state. The _WAK Method is used the restore the drive into the ON state. Here's how:

		if (LEqual (\_SB.PCI0.SATA.P2E, Zero))
	{
		Store (One, \_SB.PCI0.SATA.P2E)
	}

 

And now up to making the actual ZIP file for you guys and gals!

Link to comment
Share on other sites

Hey Farski

 

I gonna answer this way as some other can get use of the pss values of q6600 as lots of people have it. It's really not hard to get the pss.

 

You sure read http://www.insanelymac.com/forum/index.php...t&p=1282183 and obviously this part

 

ATTENTION: If you use my DSDT.aml be sure to edit first pss with yours or tatan KP. You get pss instaling voodoopower.kext from superhai 32Bit and running P States Calculator from here DSDT - Vanilla Speedstep Once you have your p-state table, edit the dsdt.aml accordingly and remove voodoopower.kext./quote]

 

well anyway this here are pss for Q6600

 

this are the default ones at 2400 x 9 in Bios

Package (0x06) { 2403, 64320, 10, 10, 0x928, 0x928 },
   Package (0x06) { 2136, 55807, 10, 10, 0x826, 0x826 },
   Package (0x06) { 1869, 46442, 10, 10, 0x722, 0x722 },
   Package (0x06) { 1602, 37760, 10, 10, 0x61E, 0x61E }

 

 

3200Mhz with fsb 400 x 8 set in Bios

 

Package (0x06) { 3200, 55808, 10, 10, 0x826, 0x826 },
Package (0x06) { 2800, 46442, 10, 10, 0x722, 0x722 },
Package (0x06) { 2400, 37760, 10, 10, 0x61E, 0x61E }

 

there are only 3 pss as the multiplier 5x is blocked.

 

3600Mhz with fsb 400 x 9 set in Bios

 

Package (0x06) { 3600, 64320, 10, 10, 0x928, 0x928 },
   Package (0x06) { 3200, 55808, 10, 10, 0x826, 0x826 },
   Package (0x06) { 2800, 46442, 10, 10, 0x722, 0x722 },
   Package (0x06) { 2400, 37760, 10, 10, 0x61E, 0x61E }

 

OC can destroy your hardware and/or your work because unstable system. Don't ask me how to get this oc. there are plenty places over the net where it is described.

 

Getting pss with voodoopower.kext seems only to work with default multiplier 9x so give it a try with your settings.

 

salu2

 

-------------------------------------------------------------------------------------------------------------------------------------------

 

Hey chief

 

my dvd lg is ready to say hasta la vista look ups on sata port 3 :( edit: mmmmhhh i suspect that this will not work... but i will give it a try.

Link to comment
Share on other sites

Holy sweet something. My hack now also sleeps after an idle period, and yes with my TSSTcorp drive!!!

 

Note: The magic will be revealed in DSDT V2.6

 

More proof that reading the "Intel I/O Controller Hub 9 (ICH9) Family" pays off. Too bad that only so little people here are willing to work really hard and share their findings. Not to mention the few here on this forum who behave in such an offensively, condescending manner toward other forum members. I call bad ego. And yes I am still waiting for your apology FormelyKnownAs

 

I owe you no apology you fool!

 

you are very well read in ACPI - i grant you - we disagreed - get over it!

 

:(

Link to comment
Share on other sites

The latest update DSDT V2.6 is now available from post #3 – see attachments.

 

Note: It might take some time to get it to sleep, up to four minutes I'm told. A real fix is in the make because what I do now is a hack only (but one that actually works here).

 

I like to know how long it takes to enter auto sleep – up to four minutes here after screen blanking – use a (stop)watch to tell me how long it takes. Thanks.

 

Update: Auto sleep in DSDT V2.6 doesn't seem to work. Most of the code can stay as is, but I must have don't something stupid during my cleanups because I literally checked it 20 times before going out to the world. Me suck (: Work in progress so to speak :(

Link to comment
Share on other sites

Master Chief

Thanks for your good explanation.

 

Chief, question at the experts.

Is there a way in DSDT the CPU type (for example Xeon) to specify?

I do not get some programs installed, the cause unknown processor.

That would be super, because i would not like to change system files (vanilla system).

 

thx

 

parcival

Link to comment
Share on other sites

 Share

×
×
  • Create New...