Piker-Alpha / ssdtPRGen.sh

Script to generate a SSDT for Power Management
714 stars 156 forks source link

[REQUEST] Underclocking possibility #105

Closed Ramalama2 closed 9 years ago

Ramalama2 commented 9 years ago

Hi Pike, can you add possibility for under clocking... ?

I mean, my vanilla _PSS Package for i7-4558U contains this values: Name (_PSS, Package () { Package () { 2801, 0x6D60, 10, 10, 0x2500, 0x2500 }, Package () { 2800, 0x6D60, 10, 10, 0x1C00, 0x1C00 }, Package () { 2700, 0x67CE, 10, 10, 0x1B00, 0x1B00 }, Package () { 2500, 0x5E0B, 10, 10, 0x1900, 0x1900 }, Package () { 2300, 0x54A5, 10, 10, 0x1700, 0x1700 }, Package () { 2200, 0x4F97, 10, 10, 0x1600, 0x1600 }, Package () { 2000, 0x46C0, 10, 10, 0x1400, 0x1400 }, Package () { 1900, 0x41F8, 10, 10, 0x1300, 0x1300 }, Package () { 1700, 0x39AD, 10, 10, 0x1100, 0x1100 }, Package () { 1600, 0x3621, 10, 10, 0x1000, 0x1000 }, Package () { 1400, 0x2E53, 10, 10, 0xE00, 0xE00 }, Package () { 1300, 0x2A18, 10, 10, 0xD00, 0xD00 }, Package () { 1100, 0x22D0, 10, 10, 0xB00, 0xB00 }, Package () { 1000, 0x1ED9, 10, 10, 0xA00, 0xA00 }, Package () { 800, 0x180E, 10, 10, 0x800, 0x800 }, Package () { 756, 0x1534, 10, 10, 0x700, 0x800 } })

But if i generate with ssdtprgen, i get this APSS Package for i7-4558U: Name (APSS, Package () { /* High Frequency Modes (turbo) / Package () { 3300, 0x6D60, 10, 10, 0x2100, 0x2100 }, Package () { 3200, 0x6D60, 10, 10, 0x2000, 0x2000 }, Package () { 3100, 0x6D60, 10, 10, 0x1F00, 0x1F00 }, Package () { 3000, 0x6D60, 10, 10, 0x1E00, 0x1E00 }, Package () { 2900, 0x6D60, 10, 10, 0x1D00, 0x1D00 }, / High Frequency Modes (non-turbo) */ Package () { 2800, 0x6D60, 10, 10, 0x1C00, 0x1C00 }, Package () { 2700, 0x6845, 10, 10, 0x1B00, 0x1B00 }, Package () { 2600, 0x6344, 10, 10, 0x1A00, 0x1A00 }, Package () { 2500, 0x5E5A, 10, 10, 0x1900, 0x1900 }, Package () { 2400, 0x5989, 10, 10, 0x1800, 0x1800 }, Package () { 2300, 0x54CF, 10, 10, 0x1700, 0x1700 }, Package () { 2200, 0x502D, 10, 10, 0x1600, 0x1600 }, Package () { 2100, 0x4BA2, 10, 10, 0x1500, 0x1500 }, Package () { 2000, 0x472F, 10, 10, 0x1400, 0x1400 }, Package () { 1900, 0x42D2, 10, 10, 0x1300, 0x1300 }, Package () { 1800, 0x3E8C, 10, 10, 0x1200, 0x1200 }, Package () { 1700, 0x3A5D, 10, 10, 0x1100, 0x1100 }, Package () { 1600, 0x3644, 10, 10, 0x1000, 0x1000 }, Package () { 1500, 0x3241, 10, 10, 0xF00, 0xF00 }, Package () { 1400, 0x2E55, 10, 10, 0xE00, 0xE00 }, Package () { 1300, 0x2A7E, 10, 10, 0xD00, 0xD00 }, Package () { 1200, 0x26BD, 10, 10, 0xC00, 0xC00 }, Package () { 1100, 0x2311, 10, 10, 0xB00, 0xB00 }, Package () { 1000, 0x1F7B, 10, 10, 0xA00, 0xA00 }, Package () { 900, 0x1BF9, 10, 10, 0x900, 0x900 }, Package () { 800, 0x188D, 10, 10, 0x800, 0x800 } })

So thats why im asking if it could be possible to customize the generation...

Thanks Pike :-)

Piker-Alpha commented 9 years ago

Your so called vanilla _PSS object, with a maximum of 16 P-States, is only usable on Windows and the like. Not OS X. The latter reads processor capabilities from MSRs, which tells it that Turbo is supported, but then it can't find the P-States for it and thus it will dump errors at boot time.

What you basically want is to disable/stop turbo support, but that cannot be done by limiting the _PSS or APSS object alone. What you need is a boot loader that let you write certain MSRs, for example to disable turbo support. Only then it will work, with at least four P-States less.

p.s. The ACPI part can already be done with help of: -turbo 2800

Ramalama2 commented 9 years ago

No, You understand me wrong...

I don't mean the Processor speed... i mean Voltage difference.... _PSS: Package () { 2700, 0x67CE, 10, 10, 0x1B00, 0x1B00 } APSS: Package () { 2700, 0x6845, 10, 10, 0x1B00, 0x1B00 }

Piker-Alpha commented 9 years ago

Sorry. You said "under clocking" and thus I went looking for the differences in frequencies. You want under voltage, but the power differences are minimal to none. Not to mention that the XCPM driver will take care of the power data and thus there is no way to change it from ACPI tables.

Ramalama2 commented 9 years ago

Okay