Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for Xeon E5-2650 v1 (SandyBridge) in ssdtPRGen. #21

Open
arkanisman opened this issue Mar 29, 2014 · 40 comments
Open

Support for Xeon E5-2650 v1 (SandyBridge) in ssdtPRGen. #21

arkanisman opened this issue Mar 29, 2014 · 40 comments

Comments

@arkanisman
Copy link

Hello Pike,

I've been running the script using SMBIOS Mac Pro 6,1 provided by Rampagedev.

My CPU doesn't seem to be supported properly by the script, it keeps on assimilating it with the Ivy Bridge version of the CPU, but clock speeds, TDP, etc. aren't the same. I also don't know exactly if the script generates the SSDT the same way for Sandy or Ivy CPUs, which means my states behave somewhat curiously sometimes.

I've edited the script adding the CPU settings under the Sandy tab, adding the Mac Pro 6,1 profile for Sandy CPUs, but it keeps on redirecting me to Ivy.

Could you please share some light on this ? or on how to edit the script properly ?

Here are the proper settings for my CPUs : E5-2650,95,1200,2000,2800,8,16

Thank you,

A.

@Piker-Alpha
Copy link
Owner

Thank you for reporting this issue here.
Please try v12.9 (missing data added).

@arkanisman
Copy link
Author

Piker,

Going to try this now, any special flag to add to the script ?

Edit : I runned the new script without any flag and this is what the script returns 👍

ssdtPRGen.sh v0.9 Copyright (c) 2011-2012 by † RevoGirl
v6.6 Copyright (c) 2013 by † Jeroen

v12.9 Copyright (c) 2013-2014 by Pike R. Alpha

Bugs > https://github.com/Piker-Alpha/ssdtPRGen.sh/issues <

System information: Mac OS X 10.9.2 (13C64)
Brandstring 'Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz'

Warning: only 29 of 32 ACPI Processor declarations found in device SCK0!
Generating ssdt.dsl for a 'MacPro6,1' with board-id [Mac-F60DEB81FF30ACF6]
Ivy Bridge Core E5-2650 v2 processor [0x206D7] setup [0x0a01]
With a maximum TDP of 95 Watt, as specified by Intel
Number logical CPU's: 16 (Core Frequency: 2600 MHz)
Number of Turbo States: 8 (2700-3400 MHz)
Number of P-States: 23 (1200-3400 MHz)
Injected C-States for C000 (C1,C3,C6)
Injected C-States for C001 (C1,C3,C6)

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20130117-64 [Jan 19 2013]
Copyright (c) 2000 - 2013 Intel Corporation

ASL Input: /Users/agustineguia/Desktop/ssdt.dsl - 830 lines, 26940 bytes, 132 keywords
AML Output: /Users/agustineguia/Desktop/ssdt.aml - 5119 bytes, 58 named objects, 74 executable opcodes

Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 0 Optimizations

Keeps on switching to IvyBridge and the wrong speeds and states, do you know what could it be ? Am I missing something ?

Any clue ?

@Piker-Alpha
Copy link
Owner

Matching appears to be failing. Presumably due to your OEM model, because of the zero (0) in the brand string. Have you tried ./ssdtPRGen.sh -p E5-2650 to see what happens?

@arkanisman
Copy link
Author

Piker,

Thanks for your reply, if I run the script like you recommend I get some warning messages because MacPro 6,1 isn't supposed to support those CPUs.

Testing the two SSDTs give me different results, when using the Ivy assimilated on I get a GB score of 20k, when using the "properly" generated SandyB one I'm getting a lower score of 17k. Please notice that both scores are well under their counterpart under windows which is 30k.

So I don't really know about this... had to rollback two kexts (PCIFamily and AppleACPI) to their 10.9.1 version, I was getting some weird lag otherwise and graphical freeze.

@Piker-Alpha
Copy link
Owner

Running: ./ssdtPRGen.sh -p E5-2650
should should give you the correct data, like frequencies and number of P-States, but you may need to use other flags like: -c 1 and -w 1 or -w 3 You just have to keep trying until it works, because there are too many variables to get the job done automatically.

And I don't know what/how many P-States you get, but that may be the problem of the 3K difference. Also. Forget the score you get under MS Windows, because that has a different baseline so you cannot compare the two.

@Piker-Alpha
Copy link
Owner

I need additional data before I can help you with this, because I just figured out that you are using two E5-2650 v1 processors. Not one. And that may be a problem for the script. So. Can you please e-mail me (see script for e-mail address) your DSDT.aml (not your DSDT.dsl) and the SSDT generated by ssdtPRGen.sh Your IORegistryExplorer dump would also be a great help to me.

Thanks.

@arkanisman
Copy link
Author

Piker,

I'm going to do this, I'm actually booting without DSDT, using a SSDT.aml for my board generated by Rampagedev coupled with a SSDT-1.aml generated by your script. Do you want to me to boot clean and generate those ? or can I generate those having booted with those ?

Thank you, will already generate those now and will await for your response.

@Piker-Alpha
Copy link
Owner

Thanks. please, do both if you notice that something is different.

@arkanisman
Copy link
Author

Sent !

Forgot to mention : I'm using the patched AICPM kext to get proper PM working.

@Piker-Alpha
Copy link
Owner

Received. Thank you!

New version (13.0) now available for testing. Try: ./ssdtPRGen.sh without any arguments or ./ssdtPRGen.sh -x 1 in combination with -w 1 or -w 3 and possibly -c 1 if you get a warning about the unsupported MacPro6,1 model.

I hope this update works for you, but in case it still fails... you know where to find me ;)

@arkanisman
Copy link
Author

Pike,

I have good news and bad news:

The good news is that using the script with the following flags "-w 1 -x 1", even if the CPU gets assimilated to the Ivy Bridge Family, after booting with this news SSDT I get a huge improvement in GB and now I'm at 27k (that 7k more than before), so a big thank you.

The bad news is that using the script with the following flags "-p E5-2650 -w 1 -x 1", to be sure that the proper Sandy information is used, I get the following output (error message):

ssdtPRGen.sh v0.9 Copyright (c) 2011-2012 by † RevoGirl
v6.6 Copyright (c) 2013 by † Jeroen

v13.0 Copyright (c) 2013-2014 by Pike R. Alpha

Bugs > https://github.com/Piker-Alpha/ssdtPRGen.sh/issues <

Override value: (-p) processor model, now using: E5-2650!
Override value: (-w) Ivy Bridge workarounds, now set to: 3!
Override value: (-x) XCPM mode, now set to: 1!

System information: Mac OS X 10.9.2 (13C64)
Brandstring 'Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz'

Generating ssdt.dsl for a 'MacPro6,1' with board-id [Mac-F60DEB81FF30ACF6]
Sandy Bridge Core E5-2650 processor [0x206D7] setup [0x0a01]
With a maximum TDP of 95 Watt, as specified by Intel
Number logical CPU's: 32 (Core Frequency: 2000 MHz)
Number of Turbo States: 8 (2100-2800 MHz)
Number of P-States: 17 (1200-2800 MHz)
Injected C-States for C000 (C1,C3,C6,C7)

Error: board-id [Mac-F60DEB81FF30ACF6] not supported by Sandy Bridge – check SMBIOS data / use the -c option

Do you want to continue (y/n)? y
Warning: 'system-type' may be set improperly (3 instead of 2)

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20130117-64 [Jan 19 2013]
Copyright (c) 2000 - 2013 Intel Corporation

/Users/agustineguia/Desktop/ssdt.dsl 597:
Error 4124 - syntax error, unexpected $end and premature End-Of-File

ASL Input: /Users/agustineguia/Desktop/ssdt.dsl - 598 lines, 16269 bytes, 155 keywords

Compilation complete. 1 Errors, 0 Warnings, 0 Remarks, 0 Optimizations
Do you want to open ssdt.dsl (y/n)? n

And I don't get the AML file on the desktop.

@Piker-Alpha
Copy link
Owner

Looks promising. Why didn't you add the -c 1 option, like the script suggested?

@arkanisman
Copy link
Author

Because the script is stopping due to an error... let me try now. Isn't -c 1 for Ivy CPUs ?

Piker : Using -c 1 didn't change anything, same GB score of 27k.

@Piker-Alpha
Copy link
Owner

Yes, but it doesn't really matter for what it is used in the script. What matters now is if -c 1 stops the error so did it?

Also. Can you please e-mail me a new set with the produced SSDT and the output of kextstat and sysctl. Thanks.

@arkanisman
Copy link
Author

It did stop the errors indeed, the IOReg you will have now is using the c1 command and everything is already sent !

@Piker-Alpha
Copy link
Owner

Yup. Got it. Thanks.

Much better indeed, but what happens when you drop all factory SSDT's in Chameleon (there's still a factory PM related one) and have you tried the -xcpm under Kernel Flags in com.apple.Boot.plist?

@arkanisman
Copy link
Author

Pike,

What do you mean by drop all factory SSDT's ? Adding the "DropSSDT" option in Chameleon ?

Never heard of the -xcpm Kernel Flag, so I don't know what is it meant for... should I use both ? combine just one at a time ?

@Piker-Alpha
Copy link
Owner

Factory SSDT's are not the two you inject but they are part of your (UEFI) BIOS. And if "DropSSDT" is what you need to drop them, then yes. Use it.

I don't know if -xcpm will work for your setup, without a patched mach_kernel, but I would certainly give it a go. Use the following terminal command to check the result: /usr/sbin/sysctl -n machdep.xcpm.mode

0 = AppleIntelCPUPowerManagment.kext in control.
1 = XCPM (read: mach_kernel power management) in control.

Have you checked the triggered P-States already? What did you use and what do you get?

@arkanisman
Copy link
Author

Pike, I will conduct some testing and will report back here to let you know how it went.

I've been fighting also with getting this GTX680 properly running, PM is working using the info in AGPM form iMac 13,2 (GTX680 MX) but performance is shit.

@arkanisman
Copy link
Author

Tests conducted:

First of all, booting with DropSSDT gives me a KP so I would avoid that.
I did a sysctl -n and the restul was 0, so that means that AICPM is in charge.

Booting with -xcpm doesn't change anything either.

I tried removing the SSDT and leaving the DSDT only with the generated SSDT but same score there. Maybe there still one or two little things to optimize but I don't really know where to look.

And still no luck with the GPU... but I'm running it on slot 5, that could be the reason... who knows.

EDIT : Piker, when I use the flag -w 3, the generated SSDT is different regarding the AFPL (or is it APFL?), instead of having a value of "zero" or "one" (with letters), it's a number, any idea why is that ? Can I edit that manually to those values ?

@Piker-Alpha
Copy link
Owner

Thank you for your testing. And sorry that it took me so long to reply here, but I was busy finishing v13.1 (now available) but I think to have solved the SSDT problem before, probably for someone else, but I'll look at it at a later date and see what I did.

APLF should point to the lowest possible frequency for your processor, and it should change with -w 3 because that adds additional P-States (at the bottom).

@arkanisman
Copy link
Author

Don't worry Piker, I've been busy too around here.

I will give 13.1 a try and will let you know how it goes... Will wait to see if you get more infer on the SSDT problem, will report back here my results.

Take care,

A.

@arkanisman
Copy link
Author

Using -w 3 gives me lower results... so sticking with my previous SSDT.

@Piker-Alpha
Copy link
Owner

Argument -w 3 is normally used on Ivy Bridge setups where AppleIntelCPUPowerManagment.kext isn't loaded (IOResources -> intel_cpu_matching is 0 instead of 3). Your setup doesn't need it, as you have figured out already.

Piker-Alpha added a commit that referenced this issue Apr 12, 2014
@Piker-Alpha
Copy link
Owner

ssdtPRGen.sh v13.2 should now select the right (Sandy Bridge) processor data, and without any argument given.

@arkanisman
Copy link
Author

Testing, will report back

EDIT : 13.2 kind of sucks for me

  • When using without any flags = huge drop in GB scores.
  • When using flags (ex: -w 1, -c 0, -p E5-2650) = script error.

I edited the script and modified under the Ivy Bridge equivalent the settings of my CPUs, and guess what ? Everything gets back to normal and I get 27,3k GB (almost on par with windows).

So something weird is going on... just don't know what.

A.

@Piker-Alpha
Copy link
Owner

You may still need -w 1 but you should no longer need the -c -p arguments on a Sandy Bridge based platform. Can you confirm that?

I cannot reproduce the script error with ./ssdtPRGen.sh -w 1 -c 0 -p E5-2650 as arguments. What error did you get?

Also. What exactly did you change in the script?

@arkanisman
Copy link
Author

Well, the results sucked badly as Sandy, so I changed the settings under the Ivy bridge equivalent... launched the script and boom, results back to normal.

Let me conduce more tests and I will let you know what flags get the score up or down running Sandy only, but I suspect that it's -x that brings the real power. I will post here further info.

EDIT 1: The script crashes when I try to use the "-x 1" flag.
EDIT 2: Forget all the flags, the one giving me the performance boost is the "-x 1" one. If the processor is detected as Sandy using only the "-x 1" flag the script crash with the following error

/Users/agustineguia/Desktop/ssdt.dsl 596:
Error 4124 - syntax error, unexpected $end and premature End-Of-File

ASL Input: /Users/agustineguia/Desktop/ssdt.dsl - 597 lines, 16215 bytes, 154 keywords

Compilation complete. 1 Errors, 0 Warnings, 0 Remarks, 0 Optimizations

So I tricked the script copying the settings from my CPU onto the v2 version and using the flags "-c 1 -x 1". I did a /usr/sbin/sysctl -n machdep.xcpm.mode and the result is still 0.

EDIT 3: I generated a SSDT with the script without any flags, edited the aml and changed the value of the line "Store ("machdep.xcpm.mode....: 0", Debug)" to one, rebooted but scores still suck. There is something going on with the "-x 1" flag.

@Piker-Alpha
Copy link
Owner

First thing first. If you run ./ssdtPRGen.sh -x 1 then what is the output? All I am interested in, for now, is the output of the following lines:

Sandy Bridge Core E5-2650 processor [0xNNNNN] setup [0x0NNN]
With a maximum TDP of 95 Watt, as specified by Intel
Number logical CPU's: 32 (Core Frequency: 2000 MHz)
Number of Turbo States: 8 (2100-2800 MHz)
Number of P-States: 17 (1200-2800 MHz)
Injected C-States for CP00 (C1,C3,C6)

Is this data correct or not? In that case there is no need to change the processor data and use the Ivy Bridge variant. Then we know that the detection works, or still fails.

Also. If you run ssdtPRGen.sh with -x 1 then it injects the Ivy Bridge specific Method _DSM (and a debug info feedback line) but I don't understand why you need it with your Sandy Bridge processors. Especially because you said that AppleIntelCPUPowerManagement.kext is loaded, which makes no sense to me. You either need AppleIntelCPUPowerManagement.kext or you don't, and in the latter case you should't need the -x 1 flag.

What I mean is this: If you run ./ssdtPRGen.sh -x 1 and then reboot
sysctl -n machdep.xcpm.mode should become 1 so is this the case or not?
If yes then you don't need AppleIntelCPUPowerManagement.kext and we need to figure out if and why it is still loaded.

If machdep.xcpm.mode is indeed 1 with ./ssdtPRGen.sh -x 1 but AppleIntelCPUPowerManagement.kext is still loaded, then edit: /S_/L_/Extensions/AppleIntelCPUPowerManagement.kext/C*/Info
What you do is to change the lines:

intel_cpupm_matching
0

from 0 into 9 – to stop it from getting loaded.

@arkanisman
Copy link
Author

Piker,

I'm using a patched AICPM, that could be the reason. I will roll back to the original kext and test a SSDT generated without flags.

I'm working right now, so later on when I have time to test I will test all this and report back.

@arkanisman
Copy link
Author

Ok, reporting:

Generating the AML without any flag returns this:

ssdtPRGen.sh v0.9 Copyright (c) 2011-2012 by † RevoGirl
v6.6 Copyright (c) 2013 by † Jeroen

v13.2 Copyright (c) 2013-2014 by Pike R. Alpha

Bugs > https://github.com/Piker-Alpha/ssdtPRGen.sh/issues <

System information: Mac OS X 10.9.2 (13C64)
Brandstring 'Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz'

Generating ssdt.dsl for a 'MacPro6,1' with board-id [Mac-F60DEB81FF30ACF6]
Sandy Bridge Core E5-2650 processor [0x206D7] setup [0x0a01]
With a maximum TDP of 95 Watt, as specified by Intel
Number logical CPU's: 32 (Core Frequency: 2000 MHz)
Number of Turbo States: 8 (2100-2800 MHz)
Number of P-States: 17 (1200-2800 MHz)
Injected C-States for C000 (C1,C3,C6,C7)

Error: board-id [Mac-F60DEB81FF30ACF6] not supported by Sandy Bridge – check SMBIOS data / use the -c option

Do you want to continue (y/n)? y

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20130117-64 [Jan 19 2013]
Copyright (c) 2000 - 2013 Intel Corporation

ASL Input: /Users/agustineguia/Desktop/ssdt.dsl - 579 lines, 15829 bytes, 148 keywords
AML Output: /Users/agustineguia/Desktop/ssdt.aml - 4181 bytes, 69 named objects, 79 executable opcodes

Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 0 Optimizations

With the patched AICPM, I get horrible GB scores (around 17k)... without the patched AICPM I still get horrible scores but around 22k.

Booting with the Ivy trick generated SSDT (me modifying your script) and the vanilla AICPM gives me a KP. Putting back the patched AICPM bring the GB scores back up to 27,6k.

@Piker-Alpha
Copy link
Owner

Thanks, but you forgot to run: ./ssdtPRGen.sh -x 1
I see that because this line is missing: "Override value: (-x) XCPM mode, now set to: 1!"
That should create the same SSDT as what you get with your modified script, if not I want to know what the difference is.

@arkanisman
Copy link
Author

That's why I explained to you that the script was throwing me an error using that flag:

ssdtPRGen.sh v0.9 Copyright (c) 2011-2012 by † RevoGirl
v6.6 Copyright (c) 2013 by † Jeroen

v13.2 Copyright (c) 2013-2014 by Pike R. Alpha

Bugs > https://github.com/Piker-Alpha/ssdtPRGen.sh/issues <

Override value: (-x) XCPM mode, now set to: 1!

System information: Mac OS X 10.9.2 (13C64)
Brandstring 'Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz'

Generating ssdt.dsl for a 'MacPro6,1' with board-id [Mac-F60DEB81FF30ACF6]
Sandy Bridge Core E5-2650 processor [0x206D7] setup [0x0a01]
With a maximum TDP of 95 Watt, as specified by Intel
Number logical CPU's: 32 (Core Frequency: 2000 MHz)
Number of Turbo States: 8 (2100-2800 MHz)
Number of P-States: 17 (1200-2800 MHz)
Injected C-States for C000 (C1,C3,C6,C7)

Error: board-id [Mac-F60DEB81FF30ACF6] not supported by Sandy Bridge – check SMBIOS data / use the -c option

Do you want to continue (y/n)? y

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20130117-64 [Jan 19 2013]
Copyright (c) 2000 - 2013 Intel Corporation

/Users/agustineguia/Desktop/ssdt.dsl 596:
Error 4124 - syntax error, unexpected $end and premature End-Of-File

ASL Input: /Users/agustineguia/Desktop/ssdt.dsl - 597 lines, 16215 bytes, 154 keywords

Compilation complete. 1 Errors, 0 Warnings, 0 Remarks, 0 Optimizations

@Piker-Alpha
Copy link
Owner

Ok. So what is the problem in the SSDT.dsl? For this you can use FileMerge. Compare the files you have. Take the SSDT that works with the highest GeekBench score, and the broken one created with -x 1. What is missing?

@arkanisman
Copy link
Author

Pike, the SSDT.dsl isn't complete... the script doesn't generate it entirely. Also I'm not good enough at this to understand everything. Brackets are missing, there is no tree, etc.

@Piker-Alpha
Copy link
Owner

Ok. No problem. Please e-mail me your broken/working SSDT.

TIA

@arkanisman
Copy link
Author

Never-mind, I managed to merge the two... Back to 27.5k GB score now, will check IOReg to see if everything is good. Will send you those too to check.

@Piker-Alpha
Copy link
Owner

Fine, but I would love to get the broken SSDT, otherwise I cannot try to reproduce/fix it.
That is after all what we are trying to do here, right?

@nikezzz0
Copy link

Hey,

I'm using two SB E5 2687W and got a very good GB Score using your script and the flags -x 1 -c 1
Unfortunately in HWMonitor I can only see my CPUs operating in the Turbo States (Multiplier 32-38) even in idle - so it won't even reach the P-States (Multiplier 12-31). Any idea regarding that issue?

Thanks in advance

@Piker-Alpha
Copy link
Owner

Please open a new issue and add the output (log) of the latest version of ssdtPRGen.sh (no header data please because Github has issue with it) and preferable also that of AppleIntelCPUPowerManagementInfo.kext so that I know what we're talking about.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants