内核热区在dts文件中是什么意思?

What does kernel thermal zone mean in dts file?

在我内核的dts文件中,我有:

thermal-zones {
    cpu0_thermal: cpu0-thermal {
        thermal-sensors = <&tmuctrl_0>;
        polling-delay-passive = <1000>;
        polling-delay = <1000>;
        trips {
            cpu_alert0: cpu-alert-0 {
                temperature = <100000>;
                hysteresis = <1000>;
                type = "active";
            };
            cpu_alert1: cpu-alert-1 {
                temperature = <110000>;
                hysteresis = <1000>;
                type = "passive";
            };
            cpu_alert2: cpu-alert-2 {
                temperature = <120000>;
                hysteresis = <1000>;
                type = "passive";
            };
            cpu-crit-0 {
                temperature = <130000>;
                hysteresis = <1000>;
                type = "critical";
            };
        };

        cooling-maps {
            map0 {
                trip = <&cpu_alert0>;
                cooling-device = <&cpu0 1 1>;
            };
            map1 {
                trip = <&cpu_alert1>;
                cooling-device = <&cpu0 4 4>;
            };
            map2 {
                trip = <&cpu_alert2>;
                cooling-device = <&cpu0 10 10>;
            };
        };
    };
};

似乎被动意味着只使用 CPU,主动意味着使用任何风扇冷却设备。

我的问题:CPU的冷却装置中的两个数字代表什么?

https://www.kernel.org/doc/Documentation/devicetree/bindings/thermal/thermal.txt 说:"Cooling states are referred to by single unsigned integers, where larger numbers mean greater heat dissipation."

但是 1、4 和 10 是什么?这仅适用于 cpufreq 是按需的吗? "cooling" 频率是如何计算的?是否有 DTS 的另一部分链接到这些值?

我不完全确定它是通用的还是特定于我的 ARM 设备,但我通过阅读提交评论发现数字 (1, 4, 10) 仅对应于 CPU 的油门在点播模式下。在我的特定情况下,这些数字代表 100MHz 的油门测量值。因此,10 表示 CPU 在比其最大频率低 1GHz 时被节流。

in DTS cooling-device = <&cpu0 1 1> 用于表示与热区触发点绑定的冷却设备的状态。在你的情况下,冷却设备是 cpu 这意味着你的热区跳变点与 cpu 绑定并且 dts 中的 1 1 代表节流状态。所有这些都可以从 sysfs 界面读取,也可以从 user-space 读取。通过下面 link 了解详细信息: https://www.lookup2learn.com/post/thermal-management-in-linux