Help - Search - Members - Calendar
Full Version: MacPro4,1 SpeedStep FIX
Project OS X Forums > Snow Leopard Guides & Tutorials > Tips and Tricks!
THe KiNG
Hi,



HERE is the dummy.kext that will fix SpeedStep when MacPro4,1 is used as model name(Smbios.plist injection).
Put it on your /Extra/Extensions.mkext(is a must!)
Works on both leopard/snow

*Edit:

I saw EvOSx86 team has a similar fix HERE
Use whatever you like, the dummy.kext does same thing, is not yet a full fix(MacPro4,1 use diff method) is just a trick to force SpeedStep to work as was for MacPro3,1(used as model name)
For me works w/o _CST method fix, if you experience any problems try that fix.
youminbuluo
i do think spanish is hard for me to read
aprodigy
take this one...

click
THe KiNG
QUOTE (aprodigy @ Sep 10 2009, 11:54 PM) *
take this one...

click

Bro that is for n00bs, I DO NOT recommend using an app/script for DSDT unless you are a total n00b, fixing something w/o to know what you did is lame and dangerous...

P.S. I was lucky so far... rolleyes.gif
Gringo Vermelho
Have you tried it, it's not that bad actually. It doesn't force you to use the included fixes, and it lets you compare them to your own code, just open another window with the fix.

It doesn't do anything to your DSDT by itself.

The search function is a little annoying, it only searches what's below the cursor.

/Edit - The latest version of DSDTSE has a 'next' button which will continue search from the start.
THe KiNG
QUOTE (Gringo Vermelho @ Sep 17 2009, 03:49 PM) *
Have you tried it, it's not that bad actually. It doesn't force you to use the included fixes, and it lets you compare them to your own code, just open another window with the fix.

It doesn't do anything to your DSDT by itself.

The search function is a little annoying, it only searches what's below the cursor.

Sure I tried it, I didnt said is bad, I like it, is good for a "book of tips" perspective...
I said is not good IMO to use an app/script to do the job you should do manually, plus it has some wrong info in it, like native SATA stuff, e.g. _SUN should not be there and original intel code is:
CODE
Device (SAT1)
{
Name (_ADR, 0x001F0002)
Device (PRID)
{
Name (_ADR, Zero)
Device (P_D0)
{
Name (_ADR, Zero)
Method (_GTF, 0, NotSerialized)
{
Name (PIB0, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5
})
Return (PIB0)
}
}

Device (P_D1)
{
Name (_ADR, One)
Method (_GTF, 0, NotSerialized)
{
Name (PIB1, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xF5
})
Return (PIB1)
}
}
}

Device (SECD)
{
Name (_ADR, One)
Device (S_D0)
{
Name (_ADR, Zero)
Method (_GTF, 0, NotSerialized)
{
Name (PIB0, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5
})
Return (PIB0)
}
}

Device (S_D1)
{
Name (_ADR, One)
Method (_GTF, 0, NotSerialized)
{
Name (PIB1, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xF5
})
Return (PIB1)
}
}
}
}

Device (SAT2)
{
Name (_ADR, 0x001F0005)
Device (PRID)
{
Name (_ADR, Zero)
Device (P_D0)
{
Name (_ADR, Zero)
Method (_GTF, 0, NotSerialized)
{
Name (PIB0, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5
})
Return (PIB0)
}
}
}

Device (SECD)
{
Name (_ADR, One)
Device (S_D0)
{
Name (_ADR, Zero)
Method (_GTF, 0, NotSerialized)
{
Name (PIB0, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5
})
Return (PIB0)
}
}
}
}

Pere
Hi.

I have no problem adding a name on the SATA device (IDE mode)... does it cause problems in your machine?




CODE
Device (SATA)
            {
                Name (_ADR, 0x001F0002)
                Name (_SUN, Zero)
                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x04)
                        {
                            "model",
                            Buffer (0x16)
                            {
                                "I love my Sata device"
                            },

                            "built-in",
                            Buffer (One)
                            {
                                0x00
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }

                OperationRegion (SACS, PCI_Config, 0x40, 0xC0)
                Field (SACS, DWordAcc, NoLock, Preserve)
                {
                    PRIT,   16,
                    SECT,   16,
                    PSIT,   4,
                    SSIT,   4,
                            Offset (0x08),
                    SYNC,   4,



The supplied code comes from a Apple machine so sure is a bit different from other SATA code/other apple machine (Seems your code comes from buildsmart and the badaxe mobo wich is nice also).

Also, you can erase all methods from your SATA device and it will continue working under OSX due to it´s pciclassdevice wich does the driver load properly with just the Device registered in DSDT.

Example:

Original Sata dsdt code:




Sata modified dsdt code:




Ioreg Orginal Sata device:



Ioreg Modified Sata device:

THe KiNG
You are not telling me new stuff rolleyes.gif
Since we are all offtopic here, but for educational purpose:
QUOTE
6.1.8 _SUN (Slot User Number)
_SUN is an object that evaluates to the slot-unique ID number for a slot. _SUN is used by OSPM UI to
identify slots for the user. For example, this can be used for battery slots, PCI slots, PCMCIA slots, or
swappable bay slots to inform the user of what devices are in each slot. _SUN evaluates to an integer that is
the number to be used in the user interface.
Arguments:
None
Return Value:
An Integer containing the slot’s unique ID
The _SUN value is required to be unique among the slots of the same type. It is also recommended that this
number match the slot number printed on the physical slot whenever possible.

Now look on DSDTSE code under SATA is: Name (_SUN, One)
That is wrong and the provided code has a "}" missing, also you should specify that secondary SATA(SAT1, IDE2 etc.) should be removed, or the stuff from it b/c they are related in most cases:
CODE
Intel ACPI Component Architecture
ASL Optimizing Compiler version 20090730 [Aug 20 2009]
Copyright © 2000 - 2009 Intel Corporation
Supports ACPI Specification Revision 4.0

/Users/xyz/Desktop/P6T6 New Stuff/P6T6-WS-0001/Original.dsl 6104: Return (Concatenate (RETB, FZTF))
Error 4063 - Object does not exist ^ (FZTF)

ASL Input: /Users/xyz/Desktop/P6T6 New Stuff/P6T6-WS-0001/Original.dsl - 12160 lines, 383127 bytes, 5218 keywords
Compilation complete. 1 Errors, 0 Warnings, 0 Remarks, 0 Optimizations

The code should look IMO like this:
CODE
Device (SATA)
{
Name (_ADR, 0x001F0002)
Device (PRT0)
{
Name (_ADR, 0xFFFF)
Method (_GTF, 0, NotSerialized)
{
Name (PIB0, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5
})
Return (PIB0)
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{


"io-device-location",
Buffer (0x06)
{
"Bay 1"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}

}

Device (PRT1)
{
Name (_ADR, 0x0001FFFF)
Method (_GTF, 0, NotSerialized)
{
Name (PIB1, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xF5
})
Return (PIB1)
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{

"io-device-location",
Buffer (0x06)
{
"Bay 2"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}

}

Device (PRT2)
{
Name (_ADR, 0x0002FFFF)
Method (_GTF, 0, NotSerialized)
{
Name (PIB2, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5
})
Return (PIB2)
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"io-device-location",
Buffer (0x06)
{
"Bay 3"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}

Device (PRT3)
{
Name (_ADR, 0x0003FFFF)
Method (_GTF, 0, NotSerialized)
{
Name (PIB3, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xF5
})
Return (PIB3)
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{


"io-device-location",
Buffer (0x06)
{
"Bay 4"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}

Device (PRT4)
{
Name (_ADR, 0x0004FFFF)
Method (_GTF, 0, NotSerialized)
{
Name (PIB4, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5
})
Return (PIB4)
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{

"io-device-location",
Buffer (0x06)
{
"Bay 5"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}

Device (PRT5)
{
Name (_ADR, 0x0005FFFF)
Method (_GTF, 0, NotSerialized)
{
Name (PIB5, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xF5
})
Return (PIB5)
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{

"io-device-location",
Buffer (0x06)
{
"Bay 6"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
}
Pere
I did recheck the code to see the possible errors:

No problem inserting the provided code on dsdt, no missing brackets.

Also, no problems with _sun,One, wich gives the harcoded name for that pci device. (The said only "recommended") smile.gif

Anyway we should explain the people to erase the original sata code before insert the new one.




Original DSDTSE code:

CODE
Device (SATA)
            {
                Name (_ADR, 0x001F0002)
                Name (_SUN, One)
                Device (PRT0)
                {
                    Name (_ADR, Zero)
                    Method (_GTF, 0, NotSerialized)
                    {
                        Name (PIB0, Buffer (0x07)
                        {
                            0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5
                        })
                        Return (PIB0)
                    }

                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x02)
                            {
                                "io-device-location",
                                Buffer (0x06)
                                {
                                    "Bay 1"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }

                Device (PRT1)
                {
                    Name (_ADR, One)
                    Method (_GTF, 0, NotSerialized)
                    {
                        Name (PIB1, Buffer (0x07)
                        {
                            0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xF5
                        })
                        Return (PIB1)
                    }

                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x02)
                            {
                                "io-device-location",
                                Buffer (0x06)
                                {
                                    "Bay 2"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }

                Device (PRT2)
                {
                    Name (_ADR, 0x02)
                    Method (_GTF, 0, NotSerialized)
                    {
                        Name (PIB2, Buffer (0x07)
                        {
                            0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5
                        })
                        Return (PIB2)
                    }

                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x02)
                            {
                                "io-device-location",
                                Buffer (0x06)
                                {
                                    "Bay 3"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }

                Device (PRT3)
                {
                    Name (_ADR, 0x03)
                    Method (_GTF, 0, NotSerialized)
                    {
                        Name (PIB3, Buffer (0x07)
                        {
                            0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xF5
                        })
                        Return (PIB3)
                    }

                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x02)
                            {
                                "io-device-location",
                                Buffer (0x06)
                                {
                                    "Bay 4"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }

                Device (PRT4)
                {
                    Name (_ADR, 0x04)
                    Method (_GTF, 0, NotSerialized)
                    {
                        Name (PIB4, Buffer (0x07)
                        {
                            0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5
                        })
                        Return (PIB4)
                    }

                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x02)
                            {
                                "io-device-location",
                                Buffer (0x06)
                                {
                                    "Bay 5"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }

                Device (PRT5)
                {
                    Name (_ADR, 0x05)
                    Method (_GTF, 0, NotSerialized)
                    {
                        Name (PIB5, Buffer (0x07)
                        {
                            0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xF5
                        })
                        Return (PIB5)
                    }

                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x02)
                            {
                                "io-device-location",
                                Buffer (0x06)
                                {
                                    "Bay 6"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }

                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x06)
                        {
                            "device_type",
                            Buffer (0x10)
                            {
                                "AHCI Controller"
                            },

                            "model",
                            Buffer (0x1C)
                            {
                                "ICH9-R SATA/AHCI Controller"
                            },

                            "name",
                            Buffer (0x1C)
                            {
                                "ICH9-R SATA/AHCI Controller"
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }


Now let´s finish this offtopic thingy in benefit of the speedstep fix. smile.gif
THe KiNG
Yeah that missing "}" was my copy/paste mistake, twice lol.
About _SUN, you know that Apple fallow the specs, and we should do the same, they use it for the graphics PCIE slots, like this:
roisoft
just a tip for this fix, assuming at this time we´ve deleted the irqs from our dsdts (as The King says in "Slow Sata Performance....) , if you want to enable the native CSTs and powermanagement from macpro4,1 you´ll need to fix and hack the AppleLPC.kext and your temps will be the same as in windows, exactly the same, but if you just add the ID w/o the irqs fix, you will get a shitty performance and audio distort so that fix also provide the possibility to load the lpc w/o audio or performance problems..

I dont know if the new macpro4,1 is using variable speeds on power demand or if it can be enable/disable in someway, i dont see the StepData in the macpro4.1 ioreg so if i want the steps and variable speed i still need to hack the smc_plugin (PLimitDict=0 and StepDataDict=SP1)... still working on this ...

if you dont want the variable speeds dont touch the smc_plugin, use macpro4,1 in smbios.plist fix the irqs and add the id to the applelpc.kext (via dsdt or info.plist) your temps will remain the same as in windows

CODE
Device (SBRG) // Device (LPCB) MP4,1
            {
                Name (_ADR, 0x001F0000)
                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x02)
                        {
                            "device-id",
                            Buffer (0x04)
                            {
                                0x18, 0x3A, 0x00, 0x00 //hack the ID..
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }

               .......................
.................................



THe KiNG
Thanks roisoft for your reply and tip, still you forgot to say how to fix IRQ table(tried and I got IRQ changed but with shitty performance and lag on boot)...
Also a question for you, I have 2 io-apic but just one is used(io-apic-0) any idea why, or how the second one can be enabled/used?
roisoft
Delete the irqs from TMR and PIC devices

TMR= PNP0100 AT system timer
PIC = PNP0000 AT programmable interrupt controller

you are right asus uses 2 ioapic entries on ioreg but it seems just the second entrie is used with just one value, my msi use one entrie and the same value as asus,.... macpro4,1 has the same entrie , io-apic@fec00000 but with 16 values, i dont know how to enable or use your first ioapic entrie and if it is usefull in OSX

macpro4,1 io-apic

CODE
o io-apic@fec00000  <class IOACPIPlatformDevice, registered, matched, active, busy 0, retain 6>
    | | | {
    | | |   "InterruptControllerName" = "io-apic-0"
    | | |   "APIC ID" = 8
    | | |   "Physical Address" = 18446744073688000000
    | | |   "Destination APIC ID" = 0
    | | |   "IOInterruptControllers" = ("IOPlatformInterruptController","IOPlatformInterruptController","IOPlatformInterruptController","IOPlatformInterruptController","IOPlatformInterruptController","IOPlatformInterruptController","IOPlatformInterruptController","IOPlatformInterruptController","IOPlatformInterruptController","IOPlatformInterruptController","IOPlatformInterruptController","IOPlatformInterruptController","IOPlatformInterruptController","IOPlatformInterruptController","IOPlatformInterruptController","IOPlatformInterruptController")
    | | |   "Timer Vector Number" = 2
    | | |   "Base Vector Number" = 64
    | | |   "IOInterruptSpecifiers" = (<00000000>,<01000000>,<02000000>,<03000000>,<04000000>,<05000000>,<06000000>,<07000000>
,<08000000>,<09000000>,<0a000000>,<0b000000>,<0c000000>,<0d000000>,<0e000000>,<0f000000>)
THe KiNG
Did that with those fixes on Slow SATA fix...
A good link: PNP ID's
Still no info for IRQ routing table fix(why I'm still asking for those, on each boot hdd order changes disk0s3 that is normal then it goes on disk1s3...smth is wrong and that crap drive me nuts...)?

BTW, with your dev-id trick I got CSTInfo in ioreg but on me sound is fine(with smc_plugin hack) no interrupts or smth else, seems my SSDT is ok. Also i got some performance boost 100 poins on geekbench 200+ on second(after my GTX 285 wakes and goes on 3D mode). GeekBench is lame anyway we need a better test for OS X.
First io-apic is used on me(io-apic-0) not second.

If you need to compare here is the full ACPI dump from BIOS 0001(not public): 0001

L.E. I tried to bench it on stock speed w/ and w/o SMC_Platform_Plugin hack:




With smc-platform hack there is a lost in performance plus I can't get same result twice, the results goes from 6000+ to 8000+, never the same or close lol.

@roisoft any success implementing those ACST and APSS methods apple use?
Gringo Vermelho
QUOTE (THe KiNG @ Sep 18 2009, 04:29 PM) *
Still no info for IRQ routing table fix(why I'm still asking for those, on each boot hdd order changes disk0s3 that is normal then it goes on disk1s3...smth is wrong and that crap drive me nuts...)?

lol

Mine does that too sometimes.
Not sure exactly but IIRC it happens mostly after I've done a CMOS reset or reset BIOS defaults. I need to do this sometimes after certain types of crash.

What is your take on the 'Plug n Play OS' setting in the BIOS, I know default is normally "no", does it matter at all for OSX what this is set to?
THe KiNG
QUOTE (Gringo Vermelho @ Sep 21 2009, 04:11 PM) *
What is your take on the 'Plug n Play OS' setting in the BIOS, I know default is normally "no", does it matter at all for OSX what this is set to?

No diff at all, still does the same, and is random, it does that w/o to touch any setting in BIOS, especial on leopard, on snow seems to be more stable on disk0s3.
roisoft
QUOTE (THe KiNG @ Sep 18 2009, 09:29 PM) *
@roisoft any success implementing those ACST and APSS methods apple use?


you can drop the mp4,1 ssdt tables into your dsdt and use dropssdt=yes in boot.plist,

just add this http://pastebin.com/d742f2c85


it works fine for me and i get almost the same results in geekbench 32/64

no overclock - no hack smc_plugin


it would be really nice if someone can show a picture with msrtools output for mp4,1 and ioreg saved with ioregistryexplorer thx..
THe KiNG
Yesterday I figured out why didnt worked for me, MacPro4,1 has diff order for CPU tongue.gif
Thanks for paste roisoft again you saved me time, also check PM biggrin.gif

Hmn seems my GeekBench version was old.
Look what happen when Turbo kicks in(guess x22 multi was reached):

Seems my SSDT is fine, I will leave it as it is, no need to mess with it...
Still would be nice to see a pic from MSRTools running on MacPro4,1, I wonder if it jumps...

Without touching SSDT or SMC_Platform_Plugin:


Booted with arch=i386 to test MSRTools, it does not SpeedStep but Turbo is active and works:


Maybe MacPro4,1 or Xserve3,1 don't use variable speeds but use only Turbo, we can't know until we see a pic with MSRTools...

BTW w/o SMC_Platform_Plugin hack i have on CPU 2-3*C in plus.
roisoft
QUOTE (THe KiNG @ Sep 22 2009, 07:55 AM) *
Maybe MacPro4,1 or Xserve3,1 don't use variable speeds but use only Turbo, we can't know until we see a pic with MSRTools...

BTW w/o SMC_Platform_Plugin hack i have on CPU 2-3*C in plus.


yeah i think so too, but we must wait until someone post the info... anyway i get better temps w/o steps and no hack smc



sometimes it shows just 1 cpu info lol.

THe KiNG
Linux use both I/O APICs, I bet Windows does the same, so the problem is how to get that on OS X?

QUOTE
[ 0.000000] ACPI: IOAPIC (id[0x08] address[0xfec00000] gsi_base[0])
[ 0.000000] IOAPIC[0]: apic_id 8, version 32, address 0xfec00000, GSI 0-23
[ 0.000000] ACPI: IOAPIC (id[0x09] address[0xfec8a000] gsi_base[24])
[ 0.000000] IOAPIC[1]: apic_id 9, version 32, address 0xfec8a000, GSI 24-47
[ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[ 0.000000] ACPI: IRQ0 used by override.
[ 0.000000] ACPI: IRQ2 used by override.
[ 0.000000] ACPI: IRQ9 used by override.
[ 0.000000] Enabling APIC mode: Flat. Using 2 I/O APICs


@roisoft I compared MacPro4,1 Intel DX58SO and my APIC table, on mine this part is missing:
CODE
[0D8h 0216 1] Subtable Type : 04 <Local APIC NMI>
[0D9h 0217 1] Length : 06
[0DAh 0218 1] Processor ID : 00
[0DBh 0219 2] Flags (decoded below) : 000D
Polarity : 1
Trigger Mode : 3
[0DDh 0221 1] Interrupt Input LINT : 01

[0DEh 0222 1] Subtable Type : 04 <Local APIC NMI>
[0DFh 0223 1] Length : 06
[0E0h 0224 1] Processor ID : 01
[0E1h 0225 2] Flags (decoded below) : 000D
Polarity : 1
Trigger Mode : 3
[0E3h 0227 1] Interrupt Input LINT : 01

[0E4h 0228 1] Subtable Type : 04 <Local APIC NMI>
[0E5h 0229 1] Length : 06
[0E6h 0230 1] Processor ID : 02
[0E7h 0231 2] Flags (decoded below) : 000D
Polarity : 1
Trigger Mode : 3
[0E9h 0233 1] Interrupt Input LINT : 01

[0EAh 0234 1] Subtable Type : 04 <Local APIC NMI>
[0EBh 0235 1] Length : 06
[0ECh 0236 1] Processor ID : 03
[0EDh 0237 2] Flags (decoded below) : 000D
Polarity : 1
Trigger Mode : 3
[0EFh 0239 1] Interrupt Input LINT : 01

[0F0h 0240 1] Subtable Type : 04 <Local APIC NMI>
[0F1h 0241 1] Length : 06
[0F2h 0242 1] Processor ID : 04
[0F3h 0243 2] Flags (decoded below) : 000D
Polarity : 1
Trigger Mode : 3
[0F5h 0245 1] Interrupt Input LINT : 01

[0F6h 0246 1] Subtable Type : 04 <Local APIC NMI>
[0F7h 0247 1] Length : 06
[0F8h 0248 1] Processor ID : 05
[0F9h 0249 2] Flags (decoded below) : 000D
Polarity : 1
Trigger Mode : 3
[0FBh 0251 1] Interrupt Input LINT : 01

[0FCh 0252 1] Subtable Type : 04 <Local APIC NMI>
[0FDh 0253 1] Length : 06
[0FEh 0254 1] Processor ID : 06
[0FFh 0255 2] Flags (decoded below) : 000D
Polarity : 1
Trigger Mode : 3
[101h 0257 1] Interrupt Input LINT : 01

[102h 0258 1] Subtable Type : 04 <Local APIC NMI>
[103h 0259 1] Length : 06
[104h 0260 1] Processor ID : 07
[105h 0261 2] Flags (decoded below) : 000D
Polarity : 1
Trigger Mode : 3
[107h 0263 1] Interrupt Input LINT : 01

[108h 0264 1] Subtable Type : 04 <Local APIC NMI>
[109h 0265 1] Length : 06
[10Ah 0266 1] Processor ID : 08
[10Bh 0267 2] Flags (decoded below) : 000D
Polarity : 1
Trigger Mode : 3
[10Dh 0269 1] Interrupt Input LINT : 01

[10Eh 0270 1] Subtable Type : 04 <Local APIC NMI>
[10Fh 0271 1] Length : 06
[110h 0272 1] Processor ID : 09
[111h 0273 2] Flags (decoded below) : 000D
Polarity : 1
Trigger Mode : 3
[113h 0275 1] Interrupt Input LINT : 01

[114h 0276 1] Subtable Type : 04 <Local APIC NMI>
[115h 0277 1] Length : 06
[116h 0278 1] Processor ID : 0A
[117h 0279 2] Flags (decoded below) : 000D
Polarity : 1
Trigger Mode : 3
[119h 0281 1] Interrupt Input LINT : 01

[11Ah 0282 1] Subtable Type : 04 <Local APIC NMI>
[11Bh 0283 1] Length : 06
[11Ch 0284 1] Processor ID : 0B
[11Dh 0285 2] Flags (decoded below) : 000D
Polarity : 1
Trigger Mode : 3
[11Fh 0287 1] Interrupt Input LINT : 01

[120h 0288 1] Subtable Type : 04 <Local APIC NMI>
[121h 0289 1] Length : 06
[122h 0290 1] Processor ID : 0C
[123h 0291 2] Flags (decoded below) : 000D
Polarity : 1
Trigger Mode : 3
[125h 0293 1] Interrupt Input LINT : 01

[126h 0294 1] Subtable Type : 04 <Local APIC NMI>
[127h 0295 1] Length : 06
[128h 0296 1] Processor ID : 0D
[129h 0297 2] Flags (decoded below) : 000D
Polarity : 1
Trigger Mode : 3
[12Bh 0299 1] Interrupt Input LINT : 01

[12Ch 0300 1] Subtable Type : 04 <Local APIC NMI>
[12Dh 0301 1] Length : 06
[12Eh 0302 1] Processor ID : 0E
[12Fh 0303 2] Flags (decoded below) : 000D
Polarity : 1
Trigger Mode : 3
[131h 0305 1] Interrupt Input LINT : 01

[132h 0306 1] Subtable Type : 04 <Local APIC NMI>
[133h 0307 1] Length : 06
[134h 0308 1] Processor ID : 0F
[135h 0309 2] Flags (decoded below) : 000D
Polarity : 1
Trigger Mode : 3
[137h 0311 1] Interrupt Input LINT : 01
flintru
QUOTE (THe KiNG @ Oct 26 2009, 05:36 AM) *
Hi Mark
Any news on i7?


Hi,

sorry guys for being off the point, but desperately need to ask THe King:
what was advised by roisoft here
QUOTE
you can drop the mp4,1 ssdt tables into your dsdt and use dropssdt=yes in boot.plist,
just add this http://pastebin.com/d742f2c85


pastebin no longer shows it. Please do not drop that topic.Did you manage to drop native mp4,1 SSDT ?
Looking forwards hearing from you.
THe KiNG
QUOTE (flintru @ Oct 30 2009, 01:30 PM) *
pastebin no longer shows it. Please do not drop that topic.Did you manage to drop native mp4,1 SSDT ?
Looking forwards hearing from you.

Moved to the right place.

Here you can get MacPro4,1 SSDT: MP41_SSDT
ganxiao2008
On some gigabyte mainboard, SSDT table depends on feartures you enabled in bios.
I have cst errors in post screen when boot 10.6.1 on my ex58-ud4 platform previously.
Turbo boost feature didn't work on my i7 920 in SL either.
I realized that's due to lack of c-state info in ssdt,
and noticed someone claimed he got rid of those annoiying messages by enable c states in bios.
After hack the AppleLPC.kext and enable C3/C6/C7 state support in bios,
those messages are gone, and it seems c-states gonna work.
I got CSTInfo in ioreg, but unlike THe KiNG,
i have to remove irq under PIC/RTC/TMR to solve issue of sound distort and interrupt conficts.
Geekbench 64bit score increased from 9000 to 9500, and msr tool show turbo boost active.
After compared ssdt table before and after c state enabled in bios,
i noticed ssdt table was different,
Name (CSEN, 0x00000000) change to Name (CSEN, 0x00000001),
Method (_CST, 0, NotSerialized) appears after c stats enabled in bios.
Still need to hack SMC_Platform_Plugin to enable speedstep.
Click to view attachment
Click to view attachment

In conclude,
gigabyte user may not need to mod ssdt and add it to dsdt to get c-state and p-state work.
Vanilla C-state and speedstep should work w/o dsdt smc_plugin and lpc hacks on some giga MB.
gigabyte has implemented ssdt table well enough for osx, what we need to do is:
1. enable C1E, EIST, C3/C6/C7 support in bios to produce proper ssdt table, enable turbo boost if using i7 cpu
2. use macpro3,1 in smbios.plist, then you may not need smc_plugin hack(if wrong, please correct me)
3. hack LPC if needed (my EP43-UD3L do not need hack, device id 3a18 is the same as apple's, but EX58-UD4 need)

THe KiNG, what tool you use to monitor cpu speed and temperature?
I got KP with cpu-i, voodoomonitor and mark-i in 32bit SL.
THe KiNG
For temperature I use FakeSMC+IStat
For frequencies you can use MSRTools(only 32 bit)
Mark-i works for monitoring temps and fans not for frequencies yet...but your Super I/O need to be supported by RingAcces.kext.
dgsga
QUOTE (THe KiNG @ Nov 5 2009, 06:22 AM) *
For temperature I use FakeSMC+IStat
For frequencies you can use MSRTools(only 32 bit)
Mark-i works for monitoring temps and fans not for frequencies yet...but your Super I/O need to be supported by RingAcces.kext.



Hey King

Thought you might be interested in this finding. Having read the post before yours 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 kext mods and no mods to Scope (_PR) at all except for removal of aliases. Saves all the hassle with _CST hacks, ioreg entries for processor are identical to MP4,1 (CSTInfo and all 10 P-states listed). Have found that I no longer need OHR for shutdown but still for restart sad.gif . Temps are as in Windows
MowgliBook
I used to have vanilla Speedstep on my EX58-UD4P + i920, before 10.6.2, I didn't needed to put my CST in the DSDT, only used MacPro4,1 model and SpeedStep.MP41.Fix (both this one and EvOSX worked) Now it doesn't and I don't understand why... (I have edited my DSDT with all necessary hacks, including HPET, TMR and PIC.)
Could you help me?
I've never used any LPC legacy; what ID shall I put in it?
THe KiNG
Guess you are referring to variable p-states..
Yes on 10.6.2 they changed SMC_Platform_Plugin.kext now the config data goes to Resources instead Info.plist.
AFAIK you can not hack it like before(using dummy.kext) only way is to edit SMC_Platform_Plugin.kext Resources in /S/L/E.. or use MacPro3,1 as model name as before...
Until someone will figure out how we can set CPUPLimit to 0 w/o touching the kext.
Sorry for bad news.
demong1
Hi, here are the files needed for Smc Platform Plugin.kext resource.use MacPro4,1 as model name.LPC-ICH10 in DSDT.

Click to view attachment
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2010 Invision Power Services, Inc.