mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-27 11:55:07 +07:00
b3d627a5f2
Backend driver to dynamically set voltage and frequency on IBM POWER non-virtualized platforms. Power management SPRs are used to set the required PState. This driver works in conjunction with cpufreq governors like 'ondemand' to provide a demand based frequency and voltage setting on IBM POWER non-virtualized platforms. PState table is obtained from OPAL v3 firmware through device tree. powernv_cpufreq back-end driver would parse the relevant device-tree nodes and initialise the cpufreq subsystem on powernv platform. The code was originally written by svaidy@linux.vnet.ibm.com. Over time it was modified to accomodate bug-fixes as well as updates to the the cpu-freq core. Relevant portions of the change logs corresponding to those modifications are noted below: * The policy->cpus needs to be populated in a hotplug-invariant manner instead of using cpu_sibling_mask() which varies with cpu-hotplug. This is because the cpufreq core code copies this content into policy->related_cpus mask which should not vary on cpu-hotplug. [Authored by srivatsa.bhat@linux.vnet.ibm.com] * Create a helper routine that can return the cpu-frequency for the corresponding pstate_id. Also, cache the values of the pstate_max, pstate_min and pstate_nominal and nr_pstates in a static structure so that they can be reused in the future to perform any validations. [Authored by ego@linux.vnet.ibm.com] * Create a driver attribute named cpuinfo_nominal_freq which creates a sysfs read-only file named cpuinfo_nominal_freq. Export the frequency corresponding to the nominal_pstate through this interface. Nominal frequency is the highest non-turbo frequency for the platform. This is generally used for setting governor policies from user space for optimal energy efficiency. [Authored by ego@linux.vnet.ibm.com] * Implement a powernv_cpufreq_get(unsigned int cpu) method which will return the current operating frequency. Export this via the sysfs interface cpuinfo_cur_freq by setting powernv_cpufreq_driver.get to powernv_cpufreq_get(). [Authored by ego@linux.vnet.ibm.com] [Change log updated by ego@linux.vnet.ibm.com] Reviewed-by: Preeti U Murthy <preeti@linux.vnet.ibm.com> Signed-off-by: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com> Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com> Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
65 lines
1.9 KiB
Plaintext
65 lines
1.9 KiB
Plaintext
config CPU_FREQ_CBE
|
|
tristate "CBE frequency scaling"
|
|
depends on CBE_RAS && PPC_CELL
|
|
default m
|
|
help
|
|
This adds the cpufreq driver for Cell BE processors.
|
|
For details, take a look at <file:Documentation/cpu-freq/>.
|
|
If you don't have such processor, say N
|
|
|
|
config CPU_FREQ_CBE_PMI
|
|
bool "CBE frequency scaling using PMI interface"
|
|
depends on CPU_FREQ_CBE
|
|
default n
|
|
help
|
|
Select this, if you want to use the PMI interface to switch
|
|
frequencies. Using PMI, the processor will not only be able to run at
|
|
lower speed, but also at lower core voltage.
|
|
|
|
config CPU_FREQ_MAPLE
|
|
bool "Support for Maple 970FX Evaluation Board"
|
|
depends on PPC_MAPLE
|
|
help
|
|
This adds support for frequency switching on Maple 970FX
|
|
Evaluation Board and compatible boards (IBM JS2x blades).
|
|
|
|
config PPC_CORENET_CPUFREQ
|
|
tristate "CPU frequency scaling driver for Freescale E500MC SoCs"
|
|
depends on PPC_E500MC && OF && COMMON_CLK
|
|
select CLK_PPC_CORENET
|
|
help
|
|
This adds the CPUFreq driver support for Freescale e500mc,
|
|
e5500 and e6500 series SoCs which are capable of changing
|
|
the CPU's frequency dynamically.
|
|
|
|
config CPU_FREQ_PMAC
|
|
bool "Support for Apple PowerBooks"
|
|
depends on ADB_PMU && PPC32
|
|
help
|
|
This adds support for frequency switching on Apple PowerBooks,
|
|
this currently includes some models of iBook & Titanium
|
|
PowerBook.
|
|
|
|
config CPU_FREQ_PMAC64
|
|
bool "Support for some Apple G5s"
|
|
depends on PPC_PMAC && PPC64
|
|
help
|
|
This adds support for frequency switching on Apple iMac G5,
|
|
and some of the more recent desktop G5 machines as well.
|
|
|
|
config PPC_PASEMI_CPUFREQ
|
|
bool "Support for PA Semi PWRficient"
|
|
depends on PPC_PASEMI
|
|
default y
|
|
help
|
|
This adds the support for frequency switching on PA Semi
|
|
PWRficient processors.
|
|
|
|
config POWERNV_CPUFREQ
|
|
tristate "CPU frequency scaling for IBM POWERNV platform"
|
|
depends on PPC_POWERNV
|
|
default y
|
|
help
|
|
This adds support for CPU frequency switching on IBM POWERNV
|
|
platform
|