Jump to content

DSDT for Asus P8P67-M PRO


Time2Retire
 Share

834 posts in this topic

Recommended Posts

Curious if anyone has the _PR modified for the i5-2400. Lots of 2500 and 2600 people around here but havent seen anyone do a 2400. I tried to do it myself but was not sure how to edit the pss and apss tables.

Link to comment
Share on other sites

Curious if anyone has the _PR modified for the i5-2400. Lots of 2500 and 2600 people around here but havent seen anyone do a 2400. I tried to do it myself but was not sure how to edit the pss and apss tables.

Set BIOS settings to default, boot Linux CD/DVD, dump ACPI tables, post it here.

 

Crafting the APSS got a whole lot easier, because the frequency field is not required.

 

However, I discovered that setting the Turbo Ratio higher than the normal 1234 generates a false APSS with not all of the P-States you would normally see.

Link to comment
Share on other sites

Set BIOS settings to default, boot Linux CD/DVD, dump ACPI tables, post it here.

 

Crafting the APSS got a whole lot easier, because the frequency field is not required.

 

However, I discovered that setting the Turbo Ratio higher than the normal 1234 generates a false APSS with not all of the P-States you would normally see.

 

Cool thanks. Will do that now.

Link to comment
Share on other sites

flAked,

 

Ok dumped my ACPI tables with default BIOS settings. Attached.

 

I wonder how different the DSDT edits will be for this board vs the P series. Eager to try and see.

 

In the ACPI tables you posted earlier the APSS data was un-initialized, which is very strange...

 

May have to do with the fact that i had SS off and all Cstates disabled? New one i posted is default settings.

P8H67_I_Del_i5_2400_CPU.zip

Link to comment
Share on other sites

No i think 3.4

Interesting, I wonder how that works. So maybe you only have 3 Turbo states?

 

Is the BIOS reflecting that? If you set each core individually for the Turbo states, how many fields do you have, 3 or 4?

 

 

Have a good night, be back tomorrow....

Link to comment
Share on other sites

Interesting, I wonder how that works. So maybe you only have 3 Turbo states?

 

Is the BIOS reflecting that? If you set each core individually for the Turbo states, how many fields do you have, 3 or 4?

 

 

Have a good night, be back tomorrow....

 

Now i know why i was having trouble following along. I dont have those options in my BIOS. It looks like the H-boards cannot set the turbo ratios, core ratio limits, etc. Its just enable/disable on the Turbo Boost. Thats it. Checked 4 different H model manuals and all the same - which is different that the P models.

 

Anyway, not sure what this means for getting all your work (and DHP) applied to this board but hopefully there is still a way...

 

Hope you are getting some rest.

Link to comment
Share on other sites

Here is a modded BIOS for the P8P67-M PRO, is anybody brave enough to test it?

 

This mod flips bit 15 of MSR 0xE2 in the CpuPei module of the ROM. Someone very kind send it to me smile.gif

 

This should enable loading AICPUPM without patching.

 

See included readme!

I'll try it tomorrow because I don't have my hack now ;)

Depending on your BIOS version you need to change the address of NBNV in the DSDT file.

For the current 1608 it is: 0xBF5D3C18

I see that beta BIOS for P8P67-M PRO is the newer version 0713 so I think that I've to change the address of NBNV. How can I get the new address? I can boot without loading my DSDT from Extra/ACPI and then extract the new DSDT with any tool and get the address?

 

Another thing.

From readme:

If you modify 0xE2 please be aware that should you enter

one of the higher S-states then it will be reset on wake-up.

This is not clear for me ;)

Link to comment
Share on other sites

I see that beta BIOS for P8P67-M PRO is the newer version 0713 so I think that I've to change the address of NBNV. How can I get the new address? I can boot without loading my DSDT from Extra/ACPI and then extract the new DSDT with any tool and get the address?

Your system will boot fine without the correct NBNV, this is only important for sleep.

The easiest way to get the new value is by using a Linux Live-CD, once you have flashed the BIOS you need to extract the new ACPI tables and find the new NBNV in DSDT.

 

This is not clear for me :(

That's why MSRDumper shows the value of 0xE2 at the start. I don't know how E2 will change on wakeup, I hope it will not cause AICPUPM to panic.

 

So for testing this on the modded BIOS you need to

1) load MSRDumper, write down E2

2) unload

3) sleep, wake

4) step 1

 

And for that to work you need the new NBNV.

 

Another thing I haven't covered yet is the fact that if we use a vanilla AICPUPM then it will set E2 to a value we do not know about, yet. So it is important to do the testing step by step.

Write down the value of E2 you have now and once you load up the system with the modded BIOS and vanilla AICPUPM look at E2 again. How does it change? Then do the sleep test and see if that changes E2 again.

Link to comment
Share on other sites

@dhy8386

 

In your APSS object we see:

Package (0x06) { /* 3101 MHz */ 0x0C1D, 0x0003E418, 0x000A, 0x000A, /* 34 */  0x2200, 0x2200 }

This is the meta-state showing the maximum turbo multiplier. This also tells us that you only have 3 Turbo states, I'm curious to see if AICPUPM will output 123 or 1123 or something like that.

 

But this next one doesn't make any sense to me:

Package (0x06) { /* 3100 MHz */ 0x0C1C, 0x0003E418, 0x000A, 0x000A, /* 33 */ 0x2100, 0x2100 }

The frequency is set to 3.1 GHz, but the multiplier is x33? Can't remember if we discussed this, but this is clearly wrong. At least not the way Apple uses APSS. I'm starting to get confused, I should have documented things earlier :(

 

Anyways, here is the SSDT_PR for i5-2400:

ssdt_pr_minimal_i5_2400.dsl.zip

 

Please attach your "lspci -vv"

Link to comment
Share on other sites

Hey flAked do you know if this address is from BIOS version 0709 or 0713?

OperationRegion (NBNV, SystemMemory, 0xBF5D4C18, 0x0100)

I take it from last DSDT of DHP...

Because with this address on DSDT and with BIOS version 0709 my sleep doesn't work :(

Sleep works correctly but PC doesn't wake up.

Link to comment
Share on other sites

That's why MSRDumper shows the value of 0xE2 at the start. I don't know how E2 will change on wakeup, I hope it will not cause AICPUPM to panic.

 

So for testing this on the modded BIOS you need to

1) load MSRDumper, write down E2

2) unload

3) sleep, wake

4) step 1

 

And for that to work you need the new NBNV.

 

Another thing I haven't covered yet is the fact that if we use a vanilla AICPUPM then it will set E2 to a value we do not know about, yet. So it is important to do the testing step by step.

Write down the value of E2 you have now and once you load up the system with the modded BIOS and vanilla AICPUPM look at E2 again. How does it change? Then do the sleep test and see if that changes E2 again.

Here we go :(

With BIOS version 0713 I can succesfully boot with Vanilla AICPUPM.kext!

And this is what I get with MSRDumper.kext:

BIOS 0713

MSRDumper: rdmsr64(0xE2): 0x18000407

BIOS 0713 after sleep/wake

MSRDumper: rdmsr64(0xE2): 0x18000407

BIOS 0709

MSRDumper: rdmsr64(0xE2): 0x1e008407

There is only one problem: with newer BIOS version (0713) I get a CPU Fan error at boot also if I disable from BIOS the CPU Fan Control (my fans are all connected at one rheobus).

If I exit without save changes PC boot correctly.

Link to comment
Share on other sites

With BIOS version 0713 I can succesfully boot with Vanilla AICPUPM.kext!
:(

 

(you should say modded 0713, so people won't get the wrong idea)

 

And this is what I get with MSRDumper.kext:

Good, so no problems there.

 

There is only one problem: with newer BIOS version (0713) I get a CPU Fan error at boot also if I disable from BIOS the CPU Fan Control (my fans are all connected at one rheobus).

If I exit without save changes PC boot correctly.

Do you have the same problem with the original 0713? Try resetting to defaults? Will that clear the bit or can you still boot with AICPUPM when the settings are reset? (not sure if this is a NVRAM mod yet).

Link to comment
Share on other sites

Current version of MSRDumper.kext that shows the reached P-States over time.

 

Let it run for a while (15min at least), run benchmarks, open single applications that might trigger the higher states.

 

Ok.

First I have edited my DSDT as was suggested in this thread: I deleted entire content of Scope (_PR), replaced it with only the definitions of CPU as external and loaded a custom SSDT (the one provided by DHG with APSS definitions for 2600).

 

I added DropSSDT Yes in com.Apple.boot.plist.

I load MSRDumper.kext from EE.

 

AICPUPM and AICPUPMClient seems to load fine

AppleProcessorType:
ProcessorType: 0x701
Type: 127, Length: 4, Handle: 0x64

Customizing SystemID with : 20f0001f-c600-0011-10d2-f46d042e780a
Read HFS+ file: [hd(0,2)/Extra/DSDT.aml] 40178 bytes.
Read HFS+ file: [hd(0,2)/Extra/SSDT.aml] 2829 bytes.
ACPI table not found: SSDT-1.aml
FADT: Restart Fix applied!
FADT: Using custom DSDT!
RSDT: Added 1 SSDT table(s)
FADT: Restart Fix applied!
FADT: Using custom DSDT!
Added 1 SSDT table(s) into XSDT
Starting Darwin x86_64

 

Results: it boots fine, MSRDumper output during boot is:

 

kernel[0]: MSRDumper CoreMulti(34)
kernel[0]: MSRDumper PStatesReached: 34
DSMOS has arrived

then just after DSMOS has arrived it becomes:

kernel[0]: MSRDumper CoreMulti(16)
kernel[0]: MSRDumper PStatesReached: 16 34
kernel[0]: MSRDumper CoreMulti(16)
kernel[0]: MSRDumper PStatesReached: 16 34
kernel[0]: MSRDumper CoreMulti(16)
kernel[0]: MSRDumper PStatesReached: 16 34

 

After that, the current CoreMulti never get higher than 16, even running Cinebench CPU test...

Seems that PM is running my proc at lowest multi... and Cinebench scors reflect that.

 

Running Cinebench with NullCPUPM loaded (at 34X) gives me CPU 6,7 and GPU 39,7, runing it with AICPUPM and this DSDT (Multi 16) gives me CPU 3,16 / GPU 19 FPS.

 

I must have forgotten something...

Any idea?

Link to comment
Share on other sites

Ah, your ACST is the optimized version by DHP that proofed not to be working.

Download the SSDT_PR on this page for the i5-2400 and replace your ACST method with the one from the file.

 

Also, delete any P-State and C-State generation keys for Chameleon.

Link to comment
Share on other sites

Try to type DropSSDT=NO

 

Already tried, it loads the custom kernel and read the bios SSDT.

IORegistry Explorer "sees" the 8 CPU from custom SSDT (with ACPI_SMC_PlatformPlugin loaded and the 8 P0[0-7] from the bios without ACPI_SMC_PP.

Same results for the MSR : it uses 34 during boot then only 16.

 

I also tried with GeneratePStates=Yes and GenerateCStates=Yes and it created an other SSDT table during boot, same result for MSR CoreMulti: 16.

 

It seems to me that SSDT loads ok as the values in PerformanceStateArray for CPU0 (IORegistryExplorer) are those from the custom SSDT.

 

Also tried to modify my bios speedstep/turbo settings, no more results.

Link to comment
Share on other sites

I also tried with GeneratePStates=Yes and GenerateCStates=Yes

It's no good for you.

In any case you have to use DropSSDT=Yes if you activate this chameleon option.

 

 

If you add the SSDT in Extra and type DropSSDT=Yes the Chameleon will jump it ! ...The speedstep will not work.

Link to comment
Share on other sites

 Share

×
×
  • Create New...