Jump to content

Master Chief's P5K PRO ACPI Warfare


VegasKarma
 Share

908 posts in this topic

Recommended Posts

Have try you the kexts here?

 

htnak's man, but is the one i'm using

 

from the download page:

Sleep issue

After sleep LAN doesn't start, an hard solution (workaround) could be, in Terminal:

sudo kextunload /System/Library/Extensions/AttansicL1eEthernet.kext/

sudo kextload /System/Library/Extensions/AttansicL1eEthernet.kext/

 

For now i've added:

				Notify (\_SB.PCI0.RP06.LAN0, 0x02)

 

tryed also 0x01 or 0x00 but nothing changed.

Link to comment
Share on other sites

A good way to check if my patch applies is to run this right after boot:

sudo setpci -s 0:0x1a.7 0x52.w

 

On Gigabyte boards result is 0002 when it should be C2C9. Only after first sleep that register gets a proper value.

 

 

Do you mean C2C9 or c9c2? c9c2 is what I'm getting without your patch after reboot and after sleep.

Link to comment
Share on other sites

You are welcome. Now try this. Add this for both EHCI and UHCI:
OperationRegion (PWRC, PCI_Config, 0x52, 0x2F)
Field (PWRC, ByteAcc, NoLock, Preserve)
{
        , 11,
   PMES, 5,
       [color="#ff0000"]Offset (0x2E),
   WRTA,   1[/color]
}

Hi Chief,

 

I try you modification :

            Device (EHCI)          
           {
               Name (_ADR, 0x001D0007)
               Name (_PRW, Package (0x02)
               {
                   0x0D, 
                   0x04
               })

	OperationRegion (PWRC, PCI_Config, 0x52, 0x2F)
	Field (PWRC, ByteAcc, NoLock, Preserve)
	{
			, 11,
        		PMES, 5,
			Offset (0x2E),
		WRTA, 1
	}				

               OperationRegion (RGRP, PCI_Config, 0x54, 0x12)	
               Field (RGRP, WordAcc, NoLock, Preserve)
               {
                       ,   15,
                   PMES,   1,					// Bit 15, PME Status, single bit.
                           Offset(0x10),			// 0x62 Ð Port Wake Capabilities Register 
                   URE2,   9
               }			

               Method (_PSW, 1, NotSerialized)                // Power State Wake 
               {
                   Multiply (0x01FF, Arg0, URE2)              // Set bit 0-8 based on Arg0 
               }

               Method (_DSM, 4, NotSerialized)                // Device Specific Method 
               {
                   Store (Package (0x04)
                   {
                           "AAPL,clock-id", 
                           Buffer (One)
                           {
                               0x01
                           }, 

                           "device_type", 
                           Buffer (0x05)
                           {
                               "EHCI"
                           }
                   }, Local0)
                   MCDP (Arg2, RefOf (Local0))
                   Return (Local0)
               }						
           }

 

But I have an error when I compile the code :

dsdt-3.3.dsl 1323: PMES, 1, // Bit 15, PME Status, single bit.

Error 4056 - ^ Name already exists in scope (PMES)

 

What should I modify

 

Barnum

Link to comment
Share on other sites

Hi Chief,

 

I try you modification :

see post # 632

But I have an error when I compile the code :

dsdt-3.3.dsl 1323: PMES, 1, // Bit 15, PME Status, single bit.

Error 4056 - ^ Name already exists in scope (PMES)

 

What should I modify

 

Barnum

There can only be one PMES and you apparently have two in the same scope – hence the error: "Name already exists in scope (PMES)". You either have to rename or remove one of them.

Link to comment
Share on other sites

with DSDT you just let your MacOS to "know" your hardware, as codec-id, pin-default, etc., but to let it sound you should feel up your AppleHDA.kext plug-ins with proper info.

like this (see attach) (based on kext from 10.6.0 but work in 10.6.2 also)

and in DSDT should be something like this:

 

Well, how do I have to modify DSDT to make ALC883 works on my P5kr?

Link to comment
Share on other sites

Well, how do I have to modify DSDT to make ALC883 works on my P5kr?

 

Check this topic: http://www.insanelymac.com/forum/index.php...t=0&start=0 is in italian but the audio patch is down the first topic with this title:

8 AUDIO INTEGRATO (FUNZIONA SU P5K, P5KC, P5KR E MOBO CON ALC883) con i seguenti kext in /Extra/Extensions

"Aggiunto dopo" is "Added after" in english you need also the Audio_kext.zip in /Extra/Extensions

 

It's based on the one used here for the p5k pro by MC

Link to comment
Share on other sites

But I have an error when I compile the code :

dsdt-3.3.dsl 1323: PMES, 1, // Bit 15, PME Status, single bit.

Error 4056 - ^ Name already exists in scope (PMES)

 

What should I modify

 

Barnum

 

I suggest that you first try what mm67 in post #625 has suggested to check if you need this patch anyway.

Link to comment
Share on other sites

Check this topic: http://www.insanelymac.com/forum/index.php...t=0&start=0 is in italian but the audio patch is down the first topic with this title:

8 AUDIO INTEGRATO (FUNZIONA SU P5K, P5KC, P5KR E MOBO CON ALC883) con i seguenti kext in /Extra/Extensions

"Aggiunto dopo" is "Added after" in english you need also the Audio_kext.zip in /Extra/Extensions

 

It's based on the one used here for the p5k pro by MC

 

No, it doesn't work. And I'm a bit amazed how it may work if there is empty PinConfigurations:

 

Buffer (Zero) {}

Link to comment
Share on other sites

Hi,

 

After some research in testing I'm still stuck with the problem that after some time (more than 15 minutes) my Hack wont wake up from sleep and that I can't wake it up with USB Keyboard or mouse (the fact that I'm using Apple USB Mouse/keyboard should be mentioned here).

 

For the wake up problem I've tried the following:

  • redirected my logs to another file to see what happens. In fact nothing. I'm not yet sure but it seems that computer does not even go into wake up state. It just behaves as it leaved sleep. The CPU vent is going on, the LED is not bliknking any more and I see some HDD activity. What really happens I do not yet know. Will play with the log settings.

  • waited for some time to see if it would recover from sleep

Somewhere I read that the problem could be related to Airport. I don not have any wireless devices in my box but saw in logs something for Airport.

 

For the USB Keyboard/Mouse wake up:

  • tried different USB ports

  • disabled USB legacy support in BIOS

  • tried with another keyboard

Does anybody has another idea what to check and where to look?

 

Can someone please explain me what are this bits for in EHCI/UHCI.

                   Name (_PRW, Package (0x02)                     
               {
                   [b]0x0D, 
                 0x03[/b]
               })

 

Is this saying that it is D3 state? If yes, how come that in MC's DSDT it is 0x0D and 0x04?

 

Thanks,

Link to comment
Share on other sites

...

Can someone please explain me what are this bits for in EHCI/UHCI.

					Name (_PRW, Package (0x02)					 
			{
				[b]0x0D, 
			  0x03[/b]
			})

Is this saying that it is D3 state? If yes, how come that in MC's DSDT it is 0x0D and 0x04?

 

Thanks,

The 0x03 here is the lowest supported sleep state. Not the actual state. Mine is set to S4 to support wake from hibernation.

 

p.s. You graphics card might still sleep. Try this: Switch off the monitor and then on again. Does this work for you? Now it is time to sleep (getting troubles to read/write).

Link to comment
Share on other sites

There can only be one PMES and you apparently have two in the same scope �" hence the error: "Name already exists in scope (PMES)". You either have to rename or remove one of them.

 

If I call ON CMES instead of PMES, there is non impact ?

Just to better understand my reading of dsdt :

 

there no difference between

				OperationRegion (PWRC, PCI_Config, 0x52, 0x2F)
			Field (PWRC, ByteAcc, NoLock, Preserve)
			{
					, 11,
				CMES, 5,
					Offset (0x2E),
				WRTA, 1
			}

 

and

 

				OperationRegion (PWRC, PCI_Config, 0x52, 0x2F)
			Field (PWRC, ByteAcc, NoLock, Preserve)
			{
					, 11,
				PMES, 5,
					Offset (0x2E),
				WRTA, 1
			}

 

PMES or CMES a only "data" that can be modify like this ?

Store (0x19, \_SB.PCI0.EHCI.CMES)

Store (0x19, \_SB.PCI0.EHCI.PMES)

 

Regards

Link to comment
Share on other sites

If I call ON CMES instead of PMES, there is non impact ?

Just to better understand my reading of dsdt :

 

there no difference between

				OperationRegion (PWRC, PCI_Config, 0x52, 0x2F)
			Field (PWRC, ByteAcc, NoLock, Preserve)
			{
					, 11,
				CMES, 5,
					Offset (0x2E),
				WRTA, 1
			}

 

and

 

				OperationRegion (PWRC, PCI_Config, 0x52, 0x2F)
			Field (PWRC, ByteAcc, NoLock, Preserve)
			{
					, 11,
				PMES, 5,
					Offset (0x2E),
				WRTA, 1
			}

 

PMES or CMES a only "data" that can be modify like this ?

Store (0x19, \_SB.PCI0.EHCI.CMES)

Store (0x19, \_SB.PCI0.EHCI.PMES)

 

Regards

 

That is only a name for variable, you can call it what ever you want to as long as you stick to acpispec naming rules.

Link to comment
Share on other sites

p.s. You graphics card might still sleep. Try this: Switch off the monitor and then on again. Does this work for you? Now it is time to sleep (getting troubles to read/write).

 

I'm now convinced that this is an error regarding to power, because when I try to wake up the box only CPU vent start, the LED is not blinking anymore and there is some disk activity. It is trying to get out of sleep but then hangs. How I know that? Tried to ping the box. No good. The Time Machine external USB backup disk do not powers on and obviously there is no picture.

 

I also found out now that it won't wake up after 10 minutes.

So, something must happen with power when a certain time limit is reached. Are there any bits for power in DSDT where I could test the power behaviour.

 

Thanks

Link to comment
Share on other sites

I'm now convinced that this is an error regarding to power, because when I try to wake up the box only CPU vent start, the LED is not blinking anymore and there is some disk activity. It is trying to get out of sleep but then hangs. How I know that? Tried to ping the box. No good. The Time Machine external USB backup disk do not powers on and obviously there is no picture.

 

I also found out now that it won't wake up after 10 minutes.

So, something must happen with power when a certain time limit is reached. Are there any bits for power in DSDT where I could test the power behaviour.

 

Thanks

Is this problem limited to OS X only?

 

I think that the best option for you is to go back to a working DSDT and then check if everything is working properly. After that start making changes. Keep a backup of each change, how little they may look at first glance. Make a backup. Copy parts from the newly patched DSDT into the working one. Repeat this until you run into the problem again. Then check what you changed and try to fix it. This way you narrow the scope of the problem to a certain area. Make locating the problem your number one target. Forget the: "I think that this or that..." i.e. make sure that you know where, or even better what the problem is.

 

Don't have a working DSDT? Then you might have to prepare yourself for some long hours of hard work.

 

 

! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! TO ALL ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

 

I did some major cleanup for the INSANE DSDT and went on doing even more after that. I'm sure that you noticed this line in my DSDT's:

// Sleep Support Method – very important!!!

Which is utter bull {censored}. I mean we're not even using it for sleep. Not anymore. And for months already! Time to do some cleanups. Enter another day of code sharing:

    OperationRegion (SMIE, SystemIO, 0x0830, One)		// PM Control and Enable/Status Registers (ICH9R-316972.pdf / 13.8.3.13 - 18.8.3.14 / page 517 - 521).
   Field (SMIE, ByteAcc, NoLock, Preserve)
   {
           ,   4, 
       PS1E,   1,						// Bit 4 - SLP_SMI_EN (see page 518).
   }

   Method (_PTS, 1, NotSerialized)				// Prepare To Sleep.
   {
       If (LNotEqual (Arg0, 0x05))
       {
           Store (One, PS1E)					// Writes to the APMC register to cause an SMI#
       }
   }

   Method (_WAK, 1, NotSerialized)				// System Wake
   {
       Return (Package (0x02)
       {
           Zero, 
           Zero
       })
   }

What I did was to strip even more lines. And the most importantly change here, obviously, is that we no longer need the mysterious ASSB :blink: and thus we also say goodbye to:

	OperationRegion (BIOS, SystemMemory, 0xCFF8E090, One)
Field (BIOS, ByteAcc, NoLock, Preserve)
{
	ASSB,   8										   // 0xCFF8E090 : Triggers a TTS but it remains a mystery as to what it does.
}

So long. Have a nice one. See ya later... Not. :blink:

 

Up to the next change now. Oh and enjoy your Christmas Holiday :o

Link to comment
Share on other sites

Is this problem limited to OS X only?

 

I think that the best option for you is to go back to a working DSDT and then check if everything is working properly. After that start making changes. Keep a backup of each change, how little they may look at first glance. Make a backup. Copy parts from the newly patched DSDT into the working one. Repeat this until you run into the problem again. Then check what you changed and try to fix it. This way you narrow the scope of the problem to a certain area. Make locating the problem your number one target. Forget the: "I think that this or that..." i.e. make sure that you know where, or even better what the problem is.

 

Don't have a working DSDT? Then you might have to prepare yourself for some long hours of hard work.

 

;)

 

Sleep never worked for me. This is as far as I could get (for now) and I narrowed my scope a lot more. Now it is only the matter of asking, reading, headache and fine tunning .

 

Regards,

Link to comment
Share on other sites

Someone asked me if I could make my INSANE DSDT even smaller – in terms of lines – and I said: "Yes I can". Well. Here's the result:

 

ASL Input: dsdt-6.dsl - 255 lines, 12665 bytes, 149 keywords

AML Output: ./dsdt.aml - 1994 bytes, 119 named objects, 30 executable opcodes

 

That's more like it I guess. Let's call this one the EXTREMELY INSANE edition :rolleyes:

 

p.s. Let me reiterate what I said last time: This is a study object only!

dsdt_6.dsl.zip

Link to comment
Share on other sites

Indeed is insane... LOL

So you left almost all to be covered by OS, does that speed up the boot or make it longer?

This is quicker here on my P5K PRO.

 

Note: This DSDT will most likely fail to work on other motherboards, even P5K PRO's because I stripped the _PRT objects to a bare minimum. A simple insertion of some PCI card might already break it.

Link to comment
Share on other sites

hello .... I have a Sony DCR-HC37E MiniDV firewire with iDeneb

1.5.8 works ... with snow 1.6.2 does not work .. why?

on information system can not find any minidv.....

helppppp meee .... thanks

No idea. Missing driver (kext) perhaps? Have you tried to connect it after a sleep / wakeup cycle of your hack?

Link to comment
Share on other sites

 Share

×
×
  • Create New...