Jump to content
63 posts in this topic

Recommended Posts

My MacPro style dsdt.dsl for a GA-EP45-DS3 with Q9550 CPU.

 

Vanilla speedstep, sleep, restart, shutdown, firewire etc working. Gfx/Ethernet use the Chameleon GraphicsEnabler and EthernetBuiltIn options in com.apple.Boot.plist. Based on work by StickPin and Master Chief.

 

dsdt_for_GA_EP45_DS3_v1.0.dsl.zip

  • Like 1
your code should look like this based on the above VoodooMonitor Info:

 

		   
				 Package (0x06) { 2997, 0x10, 0x10, 0x092A, Zero }, 
				 Package (0x06) { 2664, 0x10, 0x10, 0x0829, One }, 
				 Package (0x06) { 2331, 0x10, 0x10, 0x0727, 0x02 }, 
				 Package (0x06) { 1998, 0x10, 0x10, 0x0625, 0x03 }

 

You shouldn't be using voodoomonitor to find p-state FID VID values as it will round the VID values.

 

You should use the fixed voodoopstates v4 and pstatechanger.

 

See Here

 

D.

Hi stickpin. I don't know if this is any good but I have been working through the acpispec and come across this.

 

5.5.2.4.2 PCI Device BAR Target Protocols

The last part of the section reads.

Thus, a PCI function can be used as a platform controller for some task (hot-plug PCI, and so on) that the ACPI BIOS performs.

You shouldn't be using voodoomonitor to find p-state FID VID values as it will round the VID values.

 

You should use the fixed voodoopstates v4 and pstatechanger.

 

See Here

 

D.

 

 

OK! I did it your way but no changes! Still everything monitors same values (CPUi, Vodoomonitor, ....)

What should the differens be?

Anyone looking to do research on the "Orange Icon" SATA problem you can start by looking here.

 

 

I did another few tweak to HDEF posted yesterday by THE KiNG, ill post updates DSDT later today.
@Stickpin

Do you get any sound assertion errors at boot with this method?

Also, does auto-sleep work for you?

stickpin, thank you for your work..

I want to report that i´m using your DSDT based on MC's research, with some usual changes from me(IDE,GFX,etc)..

Well, for me all works 100%, but Shutdown work only one(1) times..

 

I´ve tried using OSXRestart, when i tried Shutdown in first time, its turnoff power well, but when i made someothers tests with shutdown, fans and leds still running..

Another thing is: my audio codec is ALC888 too, but using your LegacyHDA i haven´t sound. I´m using new 'tHe kInG' HDEF methods, present in yout DSDTv1.1 with my LegacyHDA..

 

Regards.

stickpin, thank you for your work..

I want to report that i´m using your DSDT based on MC's research, with some usual changes from me(IDE,GFX,etc)..

Well, for me all works 100%, but Shutdown work only one(1) times..

 

I´ve tried using OSXRestart, when i tried Shutdown in first time, its turnoff power well, but when i made someothers tests with shutdown, fans and leds still running..

Another thing is: my audio codec is ALC888 too, but using your LegacyHDA i haven´t sound. I´m using new 'tHe kInG' HDEF methods, present in yout DSDTv1.1 with my LegacyHDA..

 

Regards.

 

Yes you are right about shutdown, i removed it from "already working" list. About your audio problem check my legacy kext in the first post, maybe ill will give you a direction, be sure that you are using 888 as LayoutID in DSDT for my kext.

 

p.s. Im too busy with the "real life", ill work on this DSDT this weekend. Sorry if it take a time until my responds.

Yes you are right about shutdown, i removed it from "already working" list. About your audio problem check my legacy kext in the first post, maybe ill will give you a direction, be sure that you are using 888 as LayoutID in DSDT for my kext.

 

p.s. Im too busy with the "real life", ill work on this DSDT this weekend. Sorry if it take a time until my responds.

 

Well, when i said about audio problem, its occours when i use your LegacyHDA(posted on 1st post, with 'mixed' AHCI + legacyHDA)..When i used mine(from tmongkol thread, updated for removind 'Sound assertions' errors) sounds fully works... (Both LegacyHDA(mine and yours) i´ve tested using the revised 'HDEF Device' from 'the kIng', using LayoutID 888)

I will compare your LegacyHDA entries with mine, and will post results.

 

Regards.

Stickpin, I have almost the same config as you: EP45-UD3LR, Q9550 (overclocked to 4,03 GHz), 8GB RAM, etc.

With your DSDT, both my PCI slots are working!

How the heck did you make that happen? With my own custom DSDT (made with ACPI Patcher and TextEdit) first PCI slot is not usable - only the second one works...

 

Is there any way I could implement your PCI routines into my DSDT?

:censored2:

Quality work here stickpin - thanks.

 

I removed the GFX section, as I like to use PC_EFI for dynamic injection of the GFX strings - and altered the processor stepping specification to match my E8400 Core2 Duo and it works almost perfectly. I have sleep shutdown, and restart (with OSXRestart.kext)... so I'm wondering why restart was removed from your list of working features?

 

Once again - thanks for the research!

Quality work here stickpin - thanks.

 

I removed the GFX section, as I like to use PC_EFI for dynamic injection of the GFX strings - and altered the processor stepping specification to match my E8400 Core2 Duo and it works almost perfectly. I have sleep shutdown, and restart (with OSXRestart.kext)... so I'm wondering why restart was removed from your list of working features?

 

Once again - thanks for the research!

 

Can you shutdown with only OSXRestart.kext? Restart works flawless.

Of course, with OpenHaltRestart or EVOReboot we can shutdown normally. Try to get rid of these kexts and leave only OSXRestart. Try shutdown some times.

 

Regards.

Interesting - I've done some testing and have had some interesting results. I am using the kexts mentioned in the first post:

 

fakesmc.kext

OSXRestart.kext

GigabyteEP45-UD3LR.kext

 

Booted from the EFI partition using the usual combo of Cham2RC3 and PC EFI 10.5.

 

90% of the time, shutdown works just fine and the computer powers down completely. The only time I encountered any trouble was when I booted into 10.6.2 and then immediately tried to shut the machine down. On two occasions this resulted in partial shutdown, with fans still spinning etc - but for the most part it seems to work quite well for me...

Quality work here stickpin - thanks.

 

I removed the GFX section, as I like to use PC_EFI for dynamic injection of the GFX strings - and altered the processor stepping specification to match my E8400 Core2 Duo and it works almost perfectly. I have sleep shutdown, and restart (with OSXRestart.kext)... so I'm wondering why restart was removed from your list of working features?

 

Once again - thanks for the research!

 

Hi RepomanUK,

 

I have the same Board and CPU as you have. Everything seems to work fine. But my processor stepping does not seem to work, can you post your dstd.dsl ?

 

Thanks and thanks stickpin for your awesome work!

Quality work here stickpin - thanks.

 

I removed the GFX section, as I like to use PC_EFI for dynamic injection of the GFX strings - and altered the processor stepping specification to match my E8400 Core2 Duo and it works almost perfectly. I have sleep shutdown, and restart (with OSXRestart.kext)... so I'm wondering why restart was removed from your list of working features?

 

Once again - thanks for the research!

 

I've now done almost the same: Replacing the CPU and GFX part of stickpin's DSDT. Everything works except proper shut down, which I can live with for now. My old DSDT didn't need the SATA fix, since I implemented it directly into the DSDT. I like to have as few kexts in my Extras folder as possible. Anyways - my PCI cards are happy now! ;)

Store (Package (0x02)

{

"device-id",

Buffer (0x04)

{

0x18, 0x3A, 0x00, 0x00

}

Could someone explain the significance of the parameters in the buffer? I had been trying to get speedstepping to work, and I had used "0x18, 0x3A, 0x00, 0x00" as per various examples but I could not get working speedstepping. I did find another DSDT that had used "0x16, 0x29, 0x00, 0x00" and then speedstepping worked right away (to my surprise). How would I know which values to use, besides trial and error?

dsdt_rev2.zip

That value is specific to your MB ( I think you use the closest value to the chip that is on it, according to the AppleLPC plist), if the 2916 worked for you use it. The 3A18 is for my MB.

Forgot where I saw it, was surprised it was not included in this tute as it makes it more complete.

 

Thanks for that STLVNUB! I had seen a number of other posts that stated AppleLPC was needed for native speedstepping, but after implementing stickpin's DSDT I seemed to be getting reduced core temps at idle (well, reduced in comparison to my original DSDT) and sleep was working even without having the 'Start up automatically after a power failure' option in the energy pane of System Prefs.

 

I have now added your suggested method to LPCB and AppleLPC.kext now loads at boot and my CPU core temps have reduced again, idling around 40 - 45 degrees... which is nice!

 

So thanks again! Don't suppose you have any bright ideas in terms of fixing the shutdown issue do you

 

@mac_nobbi - My current DSDT including STLVNUB's fix is attached here:

 

2nd Revision with mac_nobbi's dual core update: dsdt_rev2.zip

dsdt.zip

@mac_nobbi - My current DSDT including STLVNUB's fix is attached here: dsdt.zip

 

Thanks for the dsdt

 

Now it is working great.

 

By the way your dsdt shows

 

Method (_PSD, 0, NotSerialized)
	{
		Return (Package (0x05)
		{
			0x05,
			Zero,
			Zero,
			0xFC,
			0x04
		})
	}

 

 

In other posts i found that a dual core should read 0x02 instead of the 0x04 which seems to be the number of cores

Thanks for the dsdt

 

Now it is working great.

 

By the way your dsdt shows

 

Method (_PSD, 0, NotSerialized)
	{
		Return (Package (0x05)
		{
			0x05,
			Zero,
			Zero,
			0xFC,
			0x04
		})
	}

 

 

In other posts i found that a dual core should read 0x02 instead of the 0x04 which seems to be the number of cores

 

Thanks for the input. I have made the correction and updated - although it doesn't seem to have made any huge change!

Working now on understanding of SATA "Orange Icon" problem, to get rid of another legacy kext. Looks like somehow need to remove Hot Plug flag on PR device and it will fix the problem. If someone know and did some research, please let me know.

I tried, but to no effect. I haven't had a lot of experience with the ICH10 chip set of the ASL language. However, I'll explain what I did in case someone has any ideas on whether I did something wrong.

 

What I did find was that in the AHCI spec there's a set of PxCMD registers (P0CMD, P1CMD, etc) at addresses ABAR+0x118, ABAR+0x198, ABAR+218, etc. Each of these has two bits at offsets 18 and 21 which sounded promising. Bit 18, the HPC, or Hot Plug Capable bit doesn't really do much, it's for the OS to use in controlling hot-plug, but doesn't actually change anything in the chip. At bit 21 is the ESP, or External SATA Port bit which does seem to disable hot-plus when cleared. I found some bit definitions for the SATA port in the DSDT for my Gigabyte GA-EP45T-DS3R that looked like this:

           Device (SATA)
           {
               Name (_ADR, 0x001F0002)
               OperationRegion (PCI, PCI_Config, 0x40, 0x20)
               Field (PCI, DWordAcc, NoLock, Preserve)
               {
                   ITM0,   16,
                   ITM1,   16,
                   SIT0,   4,
                   SIT1,   4,
                           Offset (0x08),
                   UDC0,   2,
                   UDC1,   2,
                           Offset (0x0A),
                   UDT0,   8,
                   UDT1,   8,
                           Offset (0x14),
                   ICF0,   2,
                   ICF1,   2,
                       ,   6,
                   WPPE,   1,
                       ,   1,
                   FAS0,   2,
                   FAS1,   2
               }

I added the bits to it like this:

           Device (SATA)
           {
               Name (_ADR, 0x001F0002)
               OperationRegion (PCI, PCI_Config, 0x40, 0x400)
               Field (PCI, DWordAcc, NoLock, Preserve)
               {
                   ITM0,   16,
                   ITM1,   16,
                   SIT0,   4,
                   SIT1,   4,
                           Offset (0x08),
                   UDC0,   2,
                   UDC1,   2,
                           Offset (0x0A),
                   UDT0,   8,
                   UDT1,   8,
                           Offset (0x14),
                   ICF0,   2,
                   ICF1,   2,
                       ,   6,
                   WPPE,   1,
                       ,   1,
                   FAS0,   2,
                   FAS1,   2,
                           Offset (0xD8), // Offset 0x118
                       ,  18,
                   HPC0,   1,
                       ,   2,
                   EPS0,   1,
                           Offset (0x158), // Offset 0x198
                       ,  18,
                   HPC1,   1,
                       ,   2,
                   EPS1,   1,
                           Offset (0x1D8), // Offset 0x218
                       ,  18,
                   HPC2,   1,
                       ,   2,
                   EPS2,   1,
                           Offset (0x258), // Offset 0x298
                       ,  18,
                   HPC3,   1,
                       ,   2,
                   EPS3,   1,
                           Offset (0x2D8), // Offset 0x318
                       ,  18,
                   HPC4,   1,
                       ,   2,
                   EPS4,   1,
                           Offset (0x358), // Offset 0x398
                       ,  18,
                   HPC5,   1,
                       ,   2,
                   EPS5,   1
               }

Then I tried to clear them in the _INI method:

                Method (^_INI, 0, NotSerialized)
               {
                   ...
                   Store (Zero, \_SB.PCI0.SATA.EPS0)
                   Store (Zero, \_SB.PCI0.SATA.EPS1)
                   Store (Zero, \_SB.PCI0.SATA.EPS2)
                   Store (Zero, \_SB.PCI0.SATA.EPS3)
                   Store (Zero, \_SB.PCI0.SATA.EPS4)
                   Store (Zero, \_SB.PCI0.SATA.EPS5)
                   Store (Zero, \_SB.PCI0.SATA.HPC0)
                   Store (Zero, \_SB.PCI0.SATA.HPC1)
                   Store (Zero, \_SB.PCI0.SATA.HPC2)
                   Store (Zero, \_SB.PCI0.SATA.HPC3)
                   Store (Zero, \_SB.PCI0.SATA.HPC4)
                   Store (Zero, \_SB.PCI0.SATA.HPC5)
               }

No luck. If I had sources to the kext that takes away the orange icons it might help.

No luck. If I had sources to the kext that takes away the orange icons it might help.

 

Here is Apple's source for IOStorageFamily

 

And the kext that overrides the icon is simply an injector kext consisting of:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleIdentifier</key>
<string>org.chameleon.plist.IOAHCIBlockStorageInjector</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>IOAHCIBlockStorage Fix</string>
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0.0</string>
<key>IOKitPersonalities</key>
<dict>
	<key>AppleAHCIDiskDriver</key>
	<dict>
		<key>CFBundleIdentifier</key>
		<string>com.apple.iokit.IOAHCIBlockStorage</string>
		<key>IOClass</key>
		<string>AppleAHCIDiskDriver</string>
		<key>IOProviderClass</key>
		<string>IOAHCIDevice</string>
		<key>IOProbeScore</key>
		<integer>1000</integer>
		<key>Protocol Characteristics</key>
		<dict>
			<key>Physical Interconnect</key>
			<string>SATA</string>
			<key>Physical Interconnect Location</key>
			<string>Internal/External</string>
		</dict>
	</dict>
</dict>
<key>OSBundleRequired</key>
<string>Root</string>
</dict>
</plist>

I've just started using the RealtekR1000SL.kext from this thread to enable Zeroconf networking - which works pretty well - but since I've installed it, my hard drives now appear as native internal rather than hotplug sata...

 

Not sure if this is a hard fix implemented in the Realtek kext, or a happy coincidence in conjunction with the DSDT. Even without the Realtek kext, every now and again during heavy disk access, the icon would flicker between the orange hotplug icon and the silver internal drive icon, indicating to me that on at least some level the drive was presenting to the OS as internal...

I've just started using the RealtekR1000SL.kext from this thread to enable Zeroconf networking - which works pretty well - but since I've installed it, my hard drives now appear as native internal rather than hotplug sata...

 

As the author of RealtekR1000SL.kext, I can assure you it does nothing at all that should affect the hard drives' icons.

 

Mine are still orange. :thumbsup_anim:

Thanks Stickpin, this is a great starting point. A couple of comments, but please bear in mind that I am no expert in any of this.

 

I got confused that the jmicron kext was still loading despite the fact that you have removed IDE from the DSDT. Maybe this is obvious to you but it took me a while to realise that you also have to disable the "Onboard IDE contoller" in the BIOS settings.

 

Sleep only works when I check the "Start up automatically after power failiure" option in the energy saver preferences. (If I don't check that option my machine will turn off rather than sleeping.) Is this your experience, too? Or could this be a side effect of the CST settings I'm using?

 

In your DSDT you define 3 C-States. Is this for C0, C3, and C5? Do you have C2/C2E and C4/C4E disabled in your BIOS settings?

 

I hope this is not veering into generic speed stepping territory... Repoman, I like how you avoided duplication for _PSS and _PSD in your DSDT. However, this makes it even more obvious that you're using different C-States for the different cores. What is the reason for this?

 

Also, in this block:

 

		
Method (_CST, 0, NotSerialized)
{
   Return (Package (0x04)
   {
       0x03,
       Package (0x04)
       {
           ResourceTemplate ()
           {
               Register (FFixedHW,
               0x01,
               0x02,
               0x0000000000000000,,)

 

Shouldn't the last line read: 0x0000000000000000,0x01,)

 

And in the following blocks, you keep using FFixedHW when most other CST use SystemIO. I have no idea what that means but I noticed the difference. Is this intentional?

×
×
  • Create New...