• Huang Rui's avatar
    cpufreq: amd-pstate: Introduce a new AMD P-State driver to support future processors · ec437d71
    Huang Rui authored
    AMD P-State is the AMD CPU performance scaling driver that introduces a
    new CPU frequency control mechanism on AMD Zen based CPU series in Linux
    kernel. The new mechanism is based on Collaborative processor
    performance control (CPPC) which is finer grain frequency management
    than legacy ACPI hardware P-States. Current AMD CPU platforms are using
    the ACPI P-states driver to manage CPU frequency and clocks with
    switching only in 3 P-states. AMD P-State is to replace the ACPI
    P-states controls, allows a flexible, low-latency interface for the
    Linux kernel to directly communicate the performance hints to hardware.
    
    AMD P-State leverages the Linux kernel governors such as *schedutil*,
    *ondemand*, etc. to manage the performance hints which are provided by CPPC
    hardware functionality. The first version for AMD P-State is to support one
    of the Zen3 processors, and we will support more in future after we verify
    the hardware and SBIOS functionalities.
    
    There are two types of hardware implementations for AMD P-State: one is full
    MSR support and another is shared memory support. It can use
    X86_FEATURE_CPPC feature flag to distinguish the different types.
    
    Using the new AMD P-State method + kernel governors (*schedutil*,
    *ondemand*, ...) to manage the frequency update is the most appropriate
    bridge between AMD Zen based hardware processor and Linux kernel, the
    processor is able to adjust to the most efficiency frequency according to
    the kernel scheduler loading.
    
    Please check the detailed CPU feature and MSR register description in
    Processor Programming Reference (PPR) for AMD Family 19h Model 51h,
    Revision A1 Processors:
    
    https://www.amd.com/system/files/TechDocs/56569-A1-PUB.zipSigned-off-by: default avatarHuang Rui <ray.huang@amd.com>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    ec437d71
Kconfig.x86 9.3 KB