Jump to content
VegasKarma

Master Chief's P5K PRO ACPI Warfare

908 posts in this topic

Recommended Posts

We trigger an event yes. And this is usually the lower right black SATA connector on your motherboard. This should thus point to the port where your CD/DVD drive is attached.

 

Are you having troubles with the HD on that port?

 

not sure but my cd/dvd is not on this port, he is on port 5 and I have a e-sata drive on port 6

And I like to understand what I do not just copy you modifycation without trying to understand (it's why I maybe ask silly questions :) )

Barnum

Share this post


Link to post
Share on other sites
Advertisement
not sure but my cd/dvd is not on this port, he is on port 5 and I have a e-sata drive on port 6

And I like to understand what I do not just copy you modifycation without trying to understand (it's why I maybe ask silly questions :P )

Barnum

Which is good. No problem for me, but do yourself a favor and attach ZIP files :)

Share this post


Link to post
Share on other sites
Which is good. No problem for me, but do yourself a favor and attach ZIP files :D

 

Here is my last dsdt base on your 3.0 version dsdt_3.0_new.dsl.zip

I apply your patch for you processor part and I put 5 pstates in it but using cpu-i I still see only 3pstates ?

 

For the "Notify (\_SB.PCI0.SATA.PRT2" part, should I modify it to match my sata port configuration ?

 

and my last question for the moment, is it a way to activate hotplug for certain SATA port (declare it has external) and declare all other has internal with dsdt ?

 

Barnum

 

PS : with this new one, I can wakeup my computer from poweroff state with my ps2 keyboard

Share this post


Link to post
Share on other sites
Tired of all this...

Just a remark, I'm older then you on this forum, and if you look on my first post was after almost one year after join, wanna know why?

B/c first thing I did was to READ and LEARN not to POST {censored} or stupid questions, then I started to share what I found/did...

Go ahead exercise your power and ban me for telling the truth, I have nothing to lose, others might...

 

XyZ

 

 

Hey man ... whats the clue of your behaviour.... you don't like ... so don't read this topic.. you want that people share and try to help others and or improve osx on pc so be a motivator as a good "King" .. i suggest you read a book from Klaus Kobiol and find out what motivation is.

 

Here are a lot of people how learned a lot using changes which MC suggests. Yes lots of the changes make more or less the same as old methods but it's much cleaner ".. and this my friend is important. "get a wife and you will know :D" . actually just the fact that so much people are trying those methods just brings one big advantage. People are trying to understand and get familiar with dsdt. just this small point is very very important.. and brings us back to the motivation point.

 

so lets motivate.. if you want something specific in order to get here try to drive people to that.. pissing off people does not bring that effect.

 

 

Rest in peace

Share this post


Link to post
Share on other sites
Here is my last dsdt base on your 3.0 version dsdt_3.0_new.dsl.zip I apply your patch for you processor part and I put 5 pstates in it but using cpu-i I still see only 3pstates ?

Where exactly? Under P-States?

 

For the "Notify (\_SB.PCI0.SATA.PRT2" part, should I modify it to match my sata port configuration ?

Yes, or simply remove it.

 

and my last question for the moment, is it a way to activate hotplug for certain SATA port (declare it has external) and declare all other has internal with dsdt ?

I don't know. Probably. Let's figure out shall we?

 

PS : with this new one, I can wakeup my computer from poweroff state with my ps2 keyboard

You mean after sleep or after power off?

Share this post


Link to post
Share on other sites
Where exactly? Under P-States?

Yes under P-states in cpu-i

 

Yes, or simply remove it.

Ok

 

I don't know. Probably. Let's figure out shall we?

 

 

You mean after sleep or after power off?

after power off, I don't use sleep for the moment cause my hd3850 does support sleep (after waking up the resolution is bad).

Share this post


Link to post
Share on other sites

I'm going to play devils advocate here:~ and I have asked this question before and it would be good to know.

 

The main body of your efforts Chief have been in adding SBUS device - along with cleaning up unused parts of DSDT and editing others.

 

What benefit is there to adding the SBUS device. I can see that we have SBUS device listed in ioreg and some extra kexts load.

 

But does this impact on the operation of a hack? and if so how? what benifits have other users seen?

 

Kind Regards

D.

Share this post


Link to post
Share on other sites
Go ahead exercise your power and ban me for telling the truth, I have nothing to lose, others might...

done !!!

Share this post


Link to post
Share on other sites
...

The main body of your efforts Chief have been in adding SBUS device - along with cleaning up unused parts of DSDT and editing others.

No no no no! And I could link you to a few posts where I clearly state what my goals are:

 

1) Learn to understand and write ASL code.

2) Learn and understand what certain parts of the DSDT are used for.

3) Remove unused code.

4) Reduce the size of it so that it loads faster.

5) Get my hack as close to a Mac Pro 3,1 – and I am sure that you know this!

6) Help other people to learn and understand DSDT

7) Get other people to fix their own DSDT (with a little help from me when possible).

 

Not to mention that I've had success with a number of fixes, like:

 

1) Shutdown now works here without OpenHaltRestart.kext

2) Sleep didn't work, but does now.

3) Waking my hack with my Apple keyboard.

4) I can change shutdown into restart.

5) The resulting dsdt.aml is much smaller and thus it loads faster.

7) The dsdt.dsl is now also much more readable and understandable (thanks to the many comments added).

 

And we're not done yet. We merely started, so don't get over exited, but give people the time to do more work.

 

Note: And I am also trying to improve the community. Please remember that I am used to work with a huge community (Mozilla project) and I thought to see room for improvements. Yeah yeah. Me the old geezer :)

 

What benefit is there to adding the SBUS device. I can see that we have SBUS device listed in ioreg and some extra kexts load.

I kindly point you to the SMBus v2.0 specification, link available in post #3. And here's a starter:

 

"The System Management Bus (SMBus) is a two-wire interface through which various system component chips can communicate with each other and with the rest of the system. It is based on the principles of operation of I2C*.

 

SMBus provides a control bus for system and power management related tasks. A system may use SMBus to pass messages to and from devices instead of tripping individual control lines. Removing the individual control lines reduces pin count. Accepting messages ensures future expandability.

 

With System Management Bus, a device can provide manufacturer information, tell the system what its model/part number is, save its state for a suspend event, report different types of errors, accept control parameters, and return its status."

 

And to the Intel I/O Controller Hub 9/10 (ICH) Family datasheet (link also available in post #3) because we do happen to have such device. Lucky us. And think about it this way: Why develop (Apple) kexts for something that you don't even need (if that was the case).

 

But does this impact on the operation of a hack? and if so how? what benifits have other users seen?

You noticed the extra kexts, which you've said so yourself. And I am sure that you know that a kext loads for/with a purpose (hello initialization). Right?

 

Again, please read the SMBus specifications and do some testing. And hey, like I said in a previous post: either use it or ignore it. I'm fine with it. In fact I am done with it as I want to move forward ok?

 

p.s. Remember you blaming me for not reading stuff? Now do some reading my friend :P

Share this post


Link to post
Share on other sites

I guess that we all have something like this now:

		Processor (CPU3, 0x03, 0x00000810, 0x06)
	{
		Method (_PSS, 0, NotSerialized)
		{
			Return (\_PR.CPU1._PSS())
		}

		Method (_CST, 0, NotSerialized)
		{
			Return (\_PR.CPU2._CST())
		}
	}

What if we change the inline Methods into another one liner. Like this for example:

		Processor (CPU3, 0x03, 0x00000810, 0x06)
	{
		Alias (\_PR.CPU1._PSS, _PSS)
		Alias (\_PR.CPU1._CST, _CST)
	}

Wouldn't that be a little better to read?

 

Note: An Alias creates a new object which refers to, and acts exactly the same as the source object. This way we get rid of the extra lines, but it uses a little extra memory. Not a big deal for us, since we're no longer loading the SSDT tables. Yeah. I'm going to use this in the next update. Definitely.

 

Edit: Some of you might wonder why I keep using full path styles like: \_PR.CPU1._CST instead of the shorter/optimized variant: ^^_CST but that is for a reason.... readability. The latter one forces me to think (where it is in the code) whereas the first one tells me exactly what I want need to know. And thus that is why I use it.

Share this post


Link to post
Share on other sites

Hi Master Chief,

 

Can you explain me the main difference between the declaration of the

  • device(PRT0) / device(PRT1)

  • the others PRT devices

the are so differents

 

regards,

Barnum

Share this post


Link to post
Share on other sites

Hi chief,

 

Should I add the DropSSDT option in chameleon to use my own _pss table ?

 

I also see in the gigabyte thread that they add this

                Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x22, 0x3A, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }

In the sata declaration. Should I also add it on my DSDT

 

 

Barnum

Share this post


Link to post
Share on other sites

@masterchief

 

Thought you might be interested in this finding. Although I do not have the same board/chipset as you I found that if you enable C1E, Speedstep and C-State Tech in the ASUS bios under CPU configuration, and change C State package limit setting to C6 or C7 then all P-states and C-states are picked up automatically in 10.6.1 and you need no mods to Scope (_PR) at all except for removal of aliases. I have an X58 Asus board and my ioreg entries for the processor are now identical to that in a MacPro4,1. Powermanagement now working fully with temps same as Windows. Maybe this would work for other Asus boards if they support C-state Technology. This fix also works on Gigabyte boards if you enable C3,C6,C7 support as well as C1E and Speedstep.

 

Carry on with your DSDT mods, you're doing a great job!

Share this post


Link to post
Share on other sites

Hi Master Chief :D

Thanks for your efforts, I merged all your patches with my DSDT (I have a P5Q deluxe) and everything is working fine (including speedstep). Here's my dsl.

Only a small issue remains: if I leave "Put the hard disk(s) to sleep when possible" enabled in Energy Saver, after some minutes that the DVD drive (an ASUS DRW-2014L1T) is left without a disc inside (so I guess after it's "put to sleep") it stops working (if I try to eject the tray, it ejects really fast and it's only possible to close it manually). It's also been reported in this thread.

Is it possible to fix this via DSDT, or at least to keep the DVD drive from "going to sleep"? (it's connected to "PRT2")

Thank you very much :)

Share this post


Link to post
Share on other sites
Hi chief,

 

Should I add the DropSSDT option in chameleon to use my own _pss table ?

Hi barnum,

 

I don't use Chameleon anymore, and I personally never used the dropSSDT option, but you might need it. In fact it sounds plausible.

 

I also see in the gigabyte thread that they add this

                Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x22, 0x3A, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }

In the sata declaration. Should I also add it on my DSDT

If you have hardware similar/close to a MacPro4,1 then you might, because the used device-id (address change) in this little snippet, is the one of a MacPro4,1 (ICH10). However, you'll still need one or more kexts to fix the yellow drive icons (at least one I'm told).

 

But more importantly... why would anyone want to use the older long style? Better use something like this instead:

				Method (_DSM, 4, NotSerialized)
			{
				Return (MCID (Arg2, 0x2681)) // MacPro3,1
				// Return (MCID (Arg2, 0x3a22)) MacPro4,1
			}

Much cleaner. And that is also how Cathul did it in the GigaByte thread. Except for the comments and the extra line with the other address of course.

 

@masterchief

 

Thought you might be interested in this finding. Although I do not have the same board/chipset as you I found that if you enable C1E, Speedstep and C-State Tech in the ASUS bios under CPU configuration, and change C State package limit setting to C6 or C7 then all P-states and C-states are picked up automatically in 10.6.1 and you need no mods to Scope (_PR) at all except for removal of aliases. I have an X58 Asus board and my ioreg entries for the processor are now identical to that in a MacPro4,1. Powermanagement now working fully with temps same as Windows. Maybe this would work for other Asus boards if they support C-state Technology. This fix also works on Gigabyte boards if you enable C3,C6,C7 support as well as C1E and Speedstep.

 

Carry on with your DSDT mods, you're doing a great job!

Thanks. And I'm not unaware of other possibilities (used my daughters Mac Book Pro). That is I found C5/C6 related code, but this one is sure totally new to me! Thanks!

 

Now. Would you please be so kind and attach the original, and when changed your current SSDT tables / DSDT plus a dump from ioreg but even better would be a dump from IOREgistryExplorer so that I can look at it?

 

p.s. I am pretty sure that you can rip out large parts of your DSDT and yes even in the _PR scope. This would of course make the code independent to the BIOS settings, but I couldn't care less about anything.

 

Hi Master Chief :)

Thanks for your efforts, I merged all your patches with my DSDT (I have a P5Q deluxe) and everything is working fine (including speedstep). Here's my dsl.

Only a small issue remains: if I leave "Put the hard disk(s) to sleep when possible" enabled in Energy Saver, after some minutes that the DVD drive (an ASUS DRW-2014L1T) is left without a disc inside (so I guess after it's "put to sleep") it stops working (if I try to eject the tray, it ejects really fast and it's only possible to close it manually). It's also been reported in this thread.

Is it possible to fix this via DSDT, or at least to keep the DVD drive from "going to sleep"? (it's connected to "PRT2")

Thank you very much :D

I'll start by having a look at your DSDT but tell me something; To which SATA port is your drive connected?

 

And you get the same weird result with a the unmodified DSDT? And one all SATA ports? Oh, and I presume that you are using the latest BIOS and firmware for the drive? BTW: Is this limited to OS X or also seen while using another OS say Windows or Linux? Well let's see what this brings.

Share this post


Link to post
Share on other sites
I'll start by having a look at your DSDT but tell me something; To which SATA port is your drive connected?

Thank you. I have it on the 3° ich10 port, it's "PRT2" in ioreg and Bay3 in System Profiler

And you get the same weird result with a the unmodified DSDT?

Yep, I tried with no DSDT.aml (the DSDT in the bios has only the cpu aliases removed and the CMOS reset fix).

And one all SATA ports?

Yes.

Oh, and I presume that you are using the latest BIOS and firmware for the drive?

Yes, both are updated and that DSDT is based on the one included with the latest BIOS.

BTW: Is this limited to OS X or also seen while using another OS say Windows or Linux? Well let's see what this brings.

I have a dual boot with Windows 7 and there I don't have any issue (maybe windows doesn't "stop" the DVD drive but just the HDDs).

Thanks again for your interest :thumbsup_anim:

Share this post


Link to post
Share on other sites
Thanks. And I'm not unaware of other possibilities (used my daughters Mac Book Pro). That is I found C5/C6 related code, but this one is sure totally new to me! Thanks!

 

Now. Would you please be so kind and attach the original, and when changed your current SSDT tables / DSDT plus a dump from ioreg but even better would be a dump from IOREgistryExplorer so that I can look at it?

 

p.s. I am pretty sure that you can rip out large parts of your DSDT and yes even in the _PR scope. This would of course make the code independent to the BIOS settings, but I couldn't care less about anything.

 

I've tried to find difference in DSDT and SSDT before and after this fix but cant find any. Have attached DSDT, SSDT and ioreg anyway!

 

PS Step2_0 data does not appear in MP4,1 ioreg.

DSDT.dsl.zip

SSDT.dsl.zip

AsusRIIGene.ioreg.zip

Share this post


Link to post
Share on other sites

I've add Device (PATA) to my DSDT and it shows up in IORegistryExplorer (without a driver!) which is a good start, but I had to wait for a few old ATA drives to see it actually work. The drives arrived earlier today, all ten of them – never ask colleagues for old hardware – but I have yet to install one.

 

And I remembered OsXsO mentioning that he uses the on board Marvell 8SE6102 controller:

Marvell 88se6102 = Patched ioata to get pata device working

Right. Mine shows up as 88SE6101 (pci11ab,6101) but that might be my mistake, a forgotten BIOS setting or whatever. Anyway. So who (else) here is using an Asus with old ATA drives. So what kext(s) are you using? What did you do to make it fly?

 

Anything you think I want to know might be important.

 

p.s. I'm looking at AppleVIAATA.kext – download available here – at the moment, and there is another kext (forgot the name) being AppleATAPIStorage.kext (in AppleStorageDriver.kext) with a reference to the old LS-120 floppy. Which is great for me, because I just found a new one in a box and thus I prolly end up with giving it a try, just for the kicks of it.

 

Thanks, and as always,

 

Happy Hacking!

 

Thank you. I have it on the 3° ich10 port, it's "PRT2" in ioreg and Bay3 in System Profiler

Does it help when you remove this code:

                    Method (_QCD, 0, NotSerialized) // Event CD.
                   {
                       If (CDIN)
                       {
                           Notify (\_SB.PCI0.SATA.PRT2, 0x81)
                       }
                       Else
                       {
                           Notify (\_SB.PCI0.SATA.PRT2, 0x82)
                       }
                   }

Ah dinner lunch time for big old Chief. Later folks

 

Edit: Link to darwin-aka added (6 November 2009).

Share this post


Link to post
Share on other sites
I've tried to find difference in DSDT and SSDT before and after this fix but cant find any. Have attached DSDT, SSDT and ioreg anyway!

 

PS Step2_0 data does not appear in MP4,1 ioreg.

Thanks (might come in handy for future reference).

Share this post


Link to post
Share on other sites
Does it help when you remove this code:
                    Method (_QCD, 0, NotSerialized) // Event CD.
                   {
                       If (CDIN)
                       {
                           Notify (\_SB.PCI0.SATA.PRT2, 0x81)
                       }
                       Else
                       {
                           Notify (\_SB.PCI0.SATA.PRT2, 0x82)
                       }
                   }

No results.

Share this post


Link to post
Share on other sites

Device (PATA) added and working with the following code:

            Device (P0P8)
           {
               Name (_ADR, 0x001C0004)
               Method (_PRW, 0, NotSerialized)
               {
                   Return (GPRW (0x09, 0x04))
               }

               Method (_PRT, 0, NotSerialized)
               {
                   Return (Package (0x04) // New: Previously AR08
                   {
                       Package (0x04) { 0xFFFF, Zero, Zero, 0x10 },
                       Package (0x04) { 0xFFFF,  One, Zero, 0x11 },
                       Package (0x04) { 0xFFFF, 0x02, Zero, 0x12 },
                       Package (0x04) { 0xFFFF, 0x03, Zero, 0x13 }
                   })
               }

[color="#FF0000"]                Device (PATA) // Newly added PATA Device.
               {
                   Name (_ADR, Zero)

                   Device (PRID) // CHN0 (default).
                   {
                       Name (_ADR, Zero)
                   }

                   Device (SECD) // CHN1 (default).
                   {
                       Name (_ADR, One)
                   }
               }[/color]
           }

You want the red lines only of course. And only when you have the Marvell IDE port enabled in your BIOS. BTW: Here's a screen shot of the good old LS-120 attached to port 1:

 

LS-120IDE-FloppyDrive.png

 

I don't have a 120MB floppy so that isn't showing here (1.44MB should also work).

Share this post


Link to post
Share on other sites
I've tried to find difference in DSDT and SSDT before and after this fix but cant find any. Have attached DSDT, SSDT and ioreg anyway!

 

PS Step2_0 data does not appear in MP4,1 ioreg.

dgsga, how do you prove that your P and c states are actually working,

I have a Gigabyte X58 MB, after enable C3,C6,C7 support as well as C1E and Speedstep,

I still need to use LegacyACPI_SMC_PlatformPlugin.kext to force speedstep with Step2_0 data shows up in ioreg,

Look at my post here.

Share this post


Link to post
Share on other sites
If you have hardware similar/close to a MacPro4,1 then you might, because the used device-id (address change) in this little snippet, is the one of a MacPro4,1 (ICH10). However, you'll still need one or more kexts to fix the yellow drive icons (at least one I'm told).

 

But more importantly... why would anyone want to use the older long style? Better use something like this instead:

				Method (_DSM, 4, NotSerialized)
			 {
				 Return (MCID (Arg2, 0x2681)) // MacPro3,1
				 // Return (MCID (Arg2, 0x3a22)) MacPro4,1
			 }

My motherboard is a P5Q pro so an ICH10

I add this code with the new methods ( MCID, MCBN and MCDP :) )

In My smbios.plist, it's better to used MacPro 4.1 or 3.1 ?

 

Barnum

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×