|
|
||||
c2ctlWarningUSE THIS PROGRAM AT YOU OWN RISK. IT MAY DAMAGE YOUR HARDWARE. What is c2ctl?The main purpose of c2ctl is overclocking and / or "undervolting" the CPU and to enable Intel SpeedStep. In particular
Download
Requirements
Usage
c2ctl <cpu>[-<cpun>]
Print some information about CPU(s) <cpu>(-<cpun>)
c2ctl <cpu>[-<cpun>] <fid> <vid>
Set fid and vid for CPU(s) <cpu>(-<cpun>) and enable EIST if
necessary.
c2ctl <cpu>[-<cpun>] -e
Enable EIST for CPU(s) <cpu>(-<cpun>)
c2ctl <cpu> -a
Print DSDT template for CPU <cpu> using the current settings
c2ctl -h
Help
Meaning of the fid and vidThe frequency ID (fid) is the multiplier for the reference clock (e.g. the FSB clock). The voltage ID (vid) is processor specific. Unfortunately Intel publishes no information about the meaning of this value but the conversion formula for Core CPU's seems to be UCpu = 700 mV + vid*12.5 mVand for Core 2 CPU's it seems to be UCpu = 800 mV + vid*12.5 mV . Examples
c2ctl 0-3 8 32
Set fid=8 and vid=32 for CPUs 0-3
c2ctl 0 -a
Print a DSDT template for CPU 0
Modifying core frequency and voltage
Enabling Enhanced Intel SpeedStepIf SpeedStep is disabled (for example due to overclocking) it can be enabled simply using e.g. # c2ctl <cpu>[-<cpun>] -eBut in order to use automatic performance scaling (using cpufreq) you need to inform the kernel about working fid-vid pairs. The most elegant way to do this is to modify the DSDT:
An example section of a DSDT, which defines 3 P-States for a Q9450 Core 2 Quad Processor running with a FSB frequency of 388 MHz is listed below. References
[1] Overriding a DSDT,
http://www.lesswatts.org/projects/acpi/overridingDSDT.php DSDT Example
Scope (\_PR)
{
Processor (\_PR.CPU0, 0x00, 0x00000410, 0x06) {
Name (_PPC, 0x00)
Name (_PCT, Package (0x02)
{
ResourceTemplate ()
{
Register (FFixedHW, // PERF_CTL
0x10, // Bit Width
0x00, // Bit Offset
0x0000000000000199, // Address
,)
},
ResourceTemplate ()
{
Register (FFixedHW, // PERF_STATUS
0x10, // Bit Width
0x00, // Bit Offset
0x0000000000000198, // Address
,)
}
})
Name (_PSS, Package (0x03)
{
Package (0x06)// P-State 0
{
3104, // f in MHz
75000, // P in mW
10, // Transition latency in us
10, // Bus Master latency in us
0x00000820, // value written to PERF_CTL; fid=8, vid=32
0x00000820// value of PERF_STATE after successful transition; fid=8, vid=32
},
Package (0x06)// P-State 1
{
2716, // f in MHz
65000, // P in mW
10, // Transition latency in us
10, // Bus Master latency in us
0x0000071C, // value written to PERF_CTL; fid=7, vid=28
0x0000071C// value of PERF_STATE after successful transition; fid=7, vid=28
},
Package (0x06)// P-State 2
{
2328, // f in MHz
60000, // P in mW
10, // Transition latency in us
10, // Bus Master latency in us
0x0000061A, // value written to PERF_CTL; fid=6, vid=26
0x0000061A// value of PERF_STATE after successful transition; fid=6, vid=26
},
})
}
Processor (\_PR.CPU1, 0x01, 0x00000410, 0x06) {
Name (_PPC, 0x00)
Name (_PCT, Package (0x02)
{
ResourceTemplate ()
{
Register (FFixedHW, // PERF_CTL
0x10, // Bit Width
0x00, // Bit Offset
0x0000000000000199, // Address
,)
},
ResourceTemplate ()
{
Register (FFixedHW, // PERF_STATUS
0x10, // Bit Width
0x00, // Bit Offset
0x0000000000000198, // Address
,)
}
})
Name (_PSS, Package (0x03)
{
Package (0x06)// P-State 0
{
3104, // f in MHz
75000, // P in mW
10, // Transition latency in us
10, // Bus Master latency in us
0x00000820, // value written to PERF_CTL; fid=8, vid=32
0x00000820// value of PERF_STATE after successful transition; fid=8, vid=32
},
Package (0x06)// P-State 1
{
2716, // f in MHz
65000, // P in mW
10, // Transition latency in us
10, // Bus Master latency in us
0x0000071C, // value written to PERF_CTL; fid=7, vid=28
0x0000071C// value of PERF_STATE after successful transition; fid=7, vid=28
},
Package (0x06)// P-State 2
{
2328, // f in MHz
60000, // P in mW
10, // Transition latency in us
10, // Bus Master latency in us
0x0000061A, // value written to PERF_CTL; fid=6, vid=26
0x0000061A// value of PERF_STATE after successful transition; fid=6, vid=26
},
})
}
Processor (\_PR.CPU2, 0x02, 0x00000410, 0x06) {
Name (_PPC, 0x00)
Name (_PCT, Package (0x02)
{
ResourceTemplate ()
{
Register (FFixedHW, // PERF_CTL
0x10, // Bit Width
0x00, // Bit Offset
0x0000000000000199, // Address
,)
},
ResourceTemplate ()
{
Register (FFixedHW, // PERF_STATUS
0x10, // Bit Width
0x00, // Bit Offset
0x0000000000000198, // Address
,)
}
})
Name (_PSS, Package (0x03)
{
Package (0x06)// P-State 0
{
3104, // f in MHz
75000, // P in mW
10, // Transition latency in us
10, // Bus Master latency in us
0x00000820, // value written to PERF_CTL; fid=8, vid=32
0x00000820// value of PERF_STATE after successful transition; fid=8, vid=32
},
Package (0x06)// P-State 1
{
2716, // f in MHz
65000, // P in mW
10, // Transition latency in us
10, // Bus Master latency in us
0x0000071C, // value written to PERF_CTL; fid=7, vid=28
0x0000071C// value of PERF_STATE after successful transition; fid=7, vid=28
},
Package (0x06)// P-State 2
{
2328, // f in MHz
60000, // P in mW
10, // Transition latency in us
10, // Bus Master latency in us
0x0000061A, // value written to PERF_CTL; fid=6, vid=26
0x0000061A// value of PERF_STATE after successful transition; fid=6, vid=26
},
})
}
Processor (\_PR.CPU3, 0x03, 0x00000410, 0x06) {
Name (_PPC, 0x00)
Name (_PCT, Package (0x02)
{
ResourceTemplate ()
{
Register (FFixedHW, // PERF_CTL
0x10, // Bit Width
0x00, // Bit Offset
0x0000000000000199, // Address
,)
},
ResourceTemplate ()
{
Register (FFixedHW, // PERF_STATUS
0x10, // Bit Width
0x00, // Bit Offset
0x0000000000000198, // Address
,)
}
})
Name (_PSS, Package (0x03)
{
Package (0x06)// P-State 0
{
3104, // f in MHz
75000, // P in mW
10, // Transition latency in us
10, // Bus Master latency in us
0x00000820, // value written to PERF_CTL; fid=8, vid=32
0x00000820// value of PERF_STATE after successful transition; fid=8, vid=32
},
Package (0x06)// P-State 1
{
2716, // f in MHz
65000, // P in mW
10, // Transition latency in us
10, // Bus Master latency in us
0x0000071C, // value written to PERF_CTL; fid=7, vid=28
0x0000071C// value of PERF_STATE after successful transition; fid=7, vid=28
},
Package (0x06)// P-State 2
{
2328, // f in MHz
60000, // P in mW
10, // Transition latency in us
10, // Bus Master latency in us
0x0000061A, // value written to PERF_CTL; fid=6, vid=26
0x0000061A// value of PERF_STATE after successful transition; fid=6, vid=26
},
})
}
}
|