Loading Documentation/admin-guide/kernel-parameters.txt +7 −0 Original line number Diff line number Diff line Loading @@ -7020,3 +7020,10 @@ management firmware translates the requests into actual hardware states (core frequency, data fabric and memory clocks etc.) active Use amd_pstate_epp driver instance as the scaling driver, driver provides a hint to the hardware if software wants to bias toward performance (0x0) or energy efficiency (0xff) to the CPPC firmware. then CPPC power algorithm will calculate the runtime workload and adjust the realtime cores frequency. Documentation/admin-guide/pm/amd-pstate.rst +72 −2 Original line number Diff line number Diff line Loading @@ -262,6 +262,25 @@ lowest non-linear performance in `AMD CPPC Performance Capability <perf_cap_>`_.) This attribute is read-only. ``energy_performance_available_preferences`` A list of all the supported EPP preferences that could be used for ``energy_performance_preference`` on this system. These profiles represent different hints that are provided to the low-level firmware about the user's desired energy vs efficiency tradeoff. ``default`` represents the epp value is set by platform firmware. This attribute is read-only. ``energy_performance_preference`` The current energy performance preference can be read from this attribute. and user can change current preference according to energy or performance needs Please get all support profiles list from ``energy_performance_available_preferences`` attribute, all the profiles are integer values defined between 0 to 255 when EPP feature is enabled by platform firmware, if EPP feature is disabled, driver will ignore the written value This attribute is read-write. Other performance and frequency values can be read back from ``/sys/devices/system/cpu/cpuX/acpi_cppc/``, see :ref:`cppc_sysfs`. Loading @@ -280,8 +299,30 @@ module which supports the new AMD P-States mechanism on most of the future AMD platforms. The AMD P-States mechanism is the more performance and energy efficiency frequency management method on AMD processors. Kernel Module Options for ``amd-pstate`` ========================================= AMD Pstate Driver Operation Modes ================================= ``amd_pstate`` CPPC has two operation modes: CPPC Autonomous(active) mode and CPPC non-autonomous(passive) mode. active mode and passive mode can be chosen by different kernel parameters. When in Autonomous mode, CPPC ignores requests done in the Desired Performance Target register and takes into account only the values set to the Minimum requested performance, Maximum requested performance, and Energy Performance Preference registers. When Autonomous is disabled, it only considers the Desired Performance Target. Active Mode ------------ ``amd_pstate=active`` This is the low-level firmware control mode which is implemented by ``amd_pstate_epp`` driver with ``amd_pstate=active`` passed to the kernel in the command line. In this mode, ``amd_pstate_epp`` driver provides a hint to the hardware if software wants to bias toward performance (0x0) or energy efficiency (0xff) to the CPPC firmware. then CPPC power algorithm will calculate the runtime workload and adjust the realtime cores frequency according to the power supply and thermal, core voltage and some other hardware conditions. Passive Mode ------------ Loading @@ -298,6 +339,35 @@ processor must provide at least nominal performance requested and go higher if c operating conditions allow. User Space Interface in ``sysfs`` ================================= Global Attributes ----------------- ``amd-pstate`` exposes several global attributes (files) in ``sysfs`` to control its functionality at the system level. They are located in the ``/sys/devices/system/cpu/amd-pstate/`` directory and affect all CPUs. ``status`` Operation mode of the driver: "active", "passive" or "disable". "active" The driver is functional and in the ``active mode`` "passive" The driver is functional and in the ``passive mode`` "disable" The driver is unregistered and not functional now. This attribute can be written to in order to change the driver's operation mode or to unregister it. The string written to it must be one of the possible values of it and, if successful, writing one of these values to the sysfs file will cause the driver to switch over to the operation mode represented by that string - or to be unregistered in the "disable" case. ``cpupower`` tool support for ``amd-pstate`` =============================================== Loading arch/mips/include/asm/mach-loongson32/cpufreq.hdeleted 100644 → 0 +0 −18 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0-or-later */ /* * Copyright (c) 2014 Zhang, Keguang <keguang.zhang@gmail.com> * * Loongson 1 CPUFreq platform support. */ #ifndef __ASM_MACH_LOONGSON32_CPUFREQ_H #define __ASM_MACH_LOONGSON32_CPUFREQ_H struct plat_ls1x_cpufreq { const char *clk_name; /* CPU clk */ const char *osc_clk_name; /* OSC clk */ unsigned int max_freq; /* in kHz */ unsigned int min_freq; /* in kHz */ }; #endif /* __ASM_MACH_LOONGSON32_CPUFREQ_H */ arch/mips/include/asm/mach-loongson32/platform.h +0 −1 Original line number Diff line number Diff line Loading @@ -12,7 +12,6 @@ #include <nand.h> extern struct platform_device ls1x_uart_pdev; extern struct platform_device ls1x_cpufreq_pdev; extern struct platform_device ls1x_eth0_pdev; extern struct platform_device ls1x_eth1_pdev; extern struct platform_device ls1x_ehci_pdev; Loading arch/mips/loongson32/common/platform.c +0 −16 Original line number Diff line number Diff line Loading @@ -15,7 +15,6 @@ #include <platform.h> #include <loongson1.h> #include <cpufreq.h> #include <dma.h> #include <nand.h> Loading Loading @@ -62,21 +61,6 @@ void __init ls1x_serial_set_uartclk(struct platform_device *pdev) p->uartclk = clk_get_rate(clk); } /* CPUFreq */ static struct plat_ls1x_cpufreq ls1x_cpufreq_pdata = { .clk_name = "cpu_clk", .osc_clk_name = "osc_clk", .max_freq = 266 * 1000, .min_freq = 33 * 1000, }; struct platform_device ls1x_cpufreq_pdev = { .name = "ls1x-cpufreq", .dev = { .platform_data = &ls1x_cpufreq_pdata, }, }; /* Synopsys Ethernet GMAC */ static struct stmmac_mdio_bus_data ls1x_mdio_bus_data = { .phy_mask = 0, Loading Loading
Documentation/admin-guide/kernel-parameters.txt +7 −0 Original line number Diff line number Diff line Loading @@ -7020,3 +7020,10 @@ management firmware translates the requests into actual hardware states (core frequency, data fabric and memory clocks etc.) active Use amd_pstate_epp driver instance as the scaling driver, driver provides a hint to the hardware if software wants to bias toward performance (0x0) or energy efficiency (0xff) to the CPPC firmware. then CPPC power algorithm will calculate the runtime workload and adjust the realtime cores frequency.
Documentation/admin-guide/pm/amd-pstate.rst +72 −2 Original line number Diff line number Diff line Loading @@ -262,6 +262,25 @@ lowest non-linear performance in `AMD CPPC Performance Capability <perf_cap_>`_.) This attribute is read-only. ``energy_performance_available_preferences`` A list of all the supported EPP preferences that could be used for ``energy_performance_preference`` on this system. These profiles represent different hints that are provided to the low-level firmware about the user's desired energy vs efficiency tradeoff. ``default`` represents the epp value is set by platform firmware. This attribute is read-only. ``energy_performance_preference`` The current energy performance preference can be read from this attribute. and user can change current preference according to energy or performance needs Please get all support profiles list from ``energy_performance_available_preferences`` attribute, all the profiles are integer values defined between 0 to 255 when EPP feature is enabled by platform firmware, if EPP feature is disabled, driver will ignore the written value This attribute is read-write. Other performance and frequency values can be read back from ``/sys/devices/system/cpu/cpuX/acpi_cppc/``, see :ref:`cppc_sysfs`. Loading @@ -280,8 +299,30 @@ module which supports the new AMD P-States mechanism on most of the future AMD platforms. The AMD P-States mechanism is the more performance and energy efficiency frequency management method on AMD processors. Kernel Module Options for ``amd-pstate`` ========================================= AMD Pstate Driver Operation Modes ================================= ``amd_pstate`` CPPC has two operation modes: CPPC Autonomous(active) mode and CPPC non-autonomous(passive) mode. active mode and passive mode can be chosen by different kernel parameters. When in Autonomous mode, CPPC ignores requests done in the Desired Performance Target register and takes into account only the values set to the Minimum requested performance, Maximum requested performance, and Energy Performance Preference registers. When Autonomous is disabled, it only considers the Desired Performance Target. Active Mode ------------ ``amd_pstate=active`` This is the low-level firmware control mode which is implemented by ``amd_pstate_epp`` driver with ``amd_pstate=active`` passed to the kernel in the command line. In this mode, ``amd_pstate_epp`` driver provides a hint to the hardware if software wants to bias toward performance (0x0) or energy efficiency (0xff) to the CPPC firmware. then CPPC power algorithm will calculate the runtime workload and adjust the realtime cores frequency according to the power supply and thermal, core voltage and some other hardware conditions. Passive Mode ------------ Loading @@ -298,6 +339,35 @@ processor must provide at least nominal performance requested and go higher if c operating conditions allow. User Space Interface in ``sysfs`` ================================= Global Attributes ----------------- ``amd-pstate`` exposes several global attributes (files) in ``sysfs`` to control its functionality at the system level. They are located in the ``/sys/devices/system/cpu/amd-pstate/`` directory and affect all CPUs. ``status`` Operation mode of the driver: "active", "passive" or "disable". "active" The driver is functional and in the ``active mode`` "passive" The driver is functional and in the ``passive mode`` "disable" The driver is unregistered and not functional now. This attribute can be written to in order to change the driver's operation mode or to unregister it. The string written to it must be one of the possible values of it and, if successful, writing one of these values to the sysfs file will cause the driver to switch over to the operation mode represented by that string - or to be unregistered in the "disable" case. ``cpupower`` tool support for ``amd-pstate`` =============================================== Loading
arch/mips/include/asm/mach-loongson32/cpufreq.hdeleted 100644 → 0 +0 −18 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0-or-later */ /* * Copyright (c) 2014 Zhang, Keguang <keguang.zhang@gmail.com> * * Loongson 1 CPUFreq platform support. */ #ifndef __ASM_MACH_LOONGSON32_CPUFREQ_H #define __ASM_MACH_LOONGSON32_CPUFREQ_H struct plat_ls1x_cpufreq { const char *clk_name; /* CPU clk */ const char *osc_clk_name; /* OSC clk */ unsigned int max_freq; /* in kHz */ unsigned int min_freq; /* in kHz */ }; #endif /* __ASM_MACH_LOONGSON32_CPUFREQ_H */
arch/mips/include/asm/mach-loongson32/platform.h +0 −1 Original line number Diff line number Diff line Loading @@ -12,7 +12,6 @@ #include <nand.h> extern struct platform_device ls1x_uart_pdev; extern struct platform_device ls1x_cpufreq_pdev; extern struct platform_device ls1x_eth0_pdev; extern struct platform_device ls1x_eth1_pdev; extern struct platform_device ls1x_ehci_pdev; Loading
arch/mips/loongson32/common/platform.c +0 −16 Original line number Diff line number Diff line Loading @@ -15,7 +15,6 @@ #include <platform.h> #include <loongson1.h> #include <cpufreq.h> #include <dma.h> #include <nand.h> Loading Loading @@ -62,21 +61,6 @@ void __init ls1x_serial_set_uartclk(struct platform_device *pdev) p->uartclk = clk_get_rate(clk); } /* CPUFreq */ static struct plat_ls1x_cpufreq ls1x_cpufreq_pdata = { .clk_name = "cpu_clk", .osc_clk_name = "osc_clk", .max_freq = 266 * 1000, .min_freq = 33 * 1000, }; struct platform_device ls1x_cpufreq_pdev = { .name = "ls1x-cpufreq", .dev = { .platform_data = &ls1x_cpufreq_pdata, }, }; /* Synopsys Ethernet GMAC */ static struct stmmac_mdio_bus_data ls1x_mdio_bus_data = { .phy_mask = 0, Loading