# 配置動態電壓和頻率縮放 (DVFS) 調節器

Qualcomm Linux 核心基準支援多種 DVFS 實作，根據系統要求以動態方式管理頻率縮放。

## 選擇 CPU DVFS 調節器

您可以在變更 `CPUfreq` 調節器時選擇調節器 (`powersave/performance/schedutil`)，以調整系統功率或效能。預設情況下，Qualcomm Linux 核心上的 CPU 頻率調節器設為 `performance`。

表：CPU DVFS 變數

| 變數 | 說明 | 路徑 |
| --- | --- | --- |
| scaling_governor<br>    Copy to clipboard | 將調節器設為 performance。 | echo performance > /sys/devices/system/cpu/cpufreq/policy*/scaling_governor<br>    Copy to clipboard |
| scaling_max_freq<br>    Copy to clipboard | 設定 CPU 叢集的最大頻率。 | /sys/devices/system/cpu/cpufreq/policy*/scaling_max_freq<br>    Copy to clipboard |
| scaling_min_freq<br>    Copy to clipboard | 設定 CPU 叢集的最小頻率。 | /sys/devices/system/cpu/cpufreq/policy*/scaling_min_freq<br>    Copy to clipboard |

欲深入瞭解 `CPUfreq`，請參閱 [CPU frequency and voltage scaling code in the Linux(TM) kernel](https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt)。

## 配置快取和記憶體 DVFS 調節器

靜態映射 DVFS 調節器使 CPU 工作頻率與下列項目一致：

- 三級快取 (L3)
- 末級快取控制器 (LLCC)
- DDR RAM

如果將 CPU 頻率調節器設為 performance 或因為系統中的負載而使 CPU 頻率處於最大位準，則 L3、LLCC 和 DDR 也會以最大頻率運作。

此調節器的驅動程式位於 `drivers/cpufreq/qcom-cpufreq-hw.c` 檔案中，靜態映射位於 `arch/arm64/boot/dts/qcom/sc7280.dtsi` 檔案中。

備註

針對 Qualcomm SoC，請參閱平台專用 DTSI 檔案以取得此資訊。

另一個頻寬監控器 (BWMON) 調節器用來根據在 CPU 至 LLCC 以及 CPU 至 DDR 之間測得的流量來建議 LLCC 和 DDR 頻率。此調節器的驅動程式在於 `drivers/soc/qcom/icc-bwmon.c` 檔案中。

根據功率或效能要求調整 **CPU 頻率** 與 **L3/DDR 頻率** 之間的映射。

在 DTSI 中，每個 CPUx 節點都有 `operating-points-v2 = <&cpux_opp_table>` 項目。`cpux_opp_table` 包含 CPU、L3 與 DDR 頻率之間的靜態映射。

比如：

cpu0_opp_300mhz: opp-300000000 {
       opp-hz = /bits/ 64 <300000000>;
       opp-peak-kBps = <800000 9600000>;
    };
    Copy to clipboard

CPU 0 以 300 MHz 運作時，會針對 L3 建議 9600000，轉換成 300,000 Hz (9600000/w) L3 頻率。如果針對 DDR 建議 800,000 Hz，則產生 200,000 Hz (800000 / w) DDR 頻率。

在方程式中，「w」表示在單一週期內可寫入的位元組數：

- 就 DDR 而言，「w」為 4 (每個通道在每個週期執行兩次交易，每次異動為 2 個位元組)。
- 就 L3 而言，「w」為 32 (每個週期一次交易，每次異動為 32 個位元組)。

備註

針對 DDR 為每個通道設定這些值，映射將 CPU 頻率與記憶體控制器 (MC) 通道頻寬相關聯。調整此映射表可能會影響功率和效能特性。

欲深入瞭解運作效能點 (OPP) 框架和語法，請參閱 [Generic OPP (運作效能點) Bindings](https://www.kernel.org/doc/Documentation/devicetree/bindings/opp/opp.txt)。

## 配置排程器 DVFS 設定

在 `post_boot script` 檔案中定義排程器 DVFS 設定。

所有啟動後設定都存在於 `meta-qcom-hwe/recipes-core/initscripts/files/post_boot.sh` 指令碼中。如需更多資訊，請參閱 [post_boot.sh](https://github.com/qualcomm-linux/meta-qcom-hwe/blob/scarthgap/recipes-core/initscripts/files/post_boot.sh)。

Last Published: Jan 01, 2026

[Previous Topic
配置排程器](https://docs.qualcomm.com/bundle/publicresource/80-70020-3TC/topics/scheduler.md) [Next Topic
配置 pinctrl 驅動程式](https://docs.qualcomm.com/bundle/publicresource/80-70020-3TC/topics/pinctrl-configuration.md)