Difference Between DTS Thermal Configuration and Runtime Thermal Trip Points IMX93

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Difference Between DTS Thermal Configuration and Runtime Thermal Trip Points IMX93

52件の閲覧回数
Jamal
Contributor II

Hi,

We observed the following thermal configuration in the file:

arch/arm64/boot/dts/freescale/imx93.dtsi

thermal-zones {
cpu-thermal {
polling-delay-passive = <250>;
polling-delay = <2000>;

thermal-sensors = <&tmu 0>;

trips {
cpu_alert: cpu-alert {
temperature = <80000>;
hysteresis = <2000>;
type = "passive";
};

cpu_crit: cpu-crit {
temperature = <90000>;
hysteresis = <2000>;
type = "critical";
};
};
};
};

However, on the running system, the sysfs entries report different values:

cat /sys/class/thermal/thermal_zone0/trip_point_0_temp
95000

cat /sys/class/thermal/thermal_zone0/trip_point_1_temp
105000

This indicates that the passive trip point is set to 95°C and the critical trip point is set to 105°C at runtime, which differs from the values defined in the DTS file (80°C and 90°C).

Could you please clarify why these values are different? Is there any other location in the kernel, driver, or platform code where these thermal trip points are being modified or overridden at runtime?

Kindly let us know where we can further investigate this behavior.

Regards,
Jamal Deen

タグ(2)
0 件の賞賛
返信
1 返信

34件の閲覧回数
yipingwang
NXP TechSupport
NXP TechSupport

On imx93evk board, I checked the following dts configuration.

root@imx93evk:/tmp# hexdump -C /sys/firmware/devicetree/base/thermal-zones/cpu-thermal/trips/cpu-alert/temperature

00000000  00 01 73 18                                       |..s.|

00000004

root@imx93evk:/tmp# hexdump -C /sys/firmware/devicetree/base/thermal-zones/cpu-thermal/trips/cpu-crit/temperature

00000000  00 01 9a 28                                       |...(|

00000004

 

HEX 19a28 = 105000(DEC)

HEX 17318 = 95000(DEC)

It means the DTS has already been modified by u-boot before loading by Linux Kernel.

Please refer to function fixup_thermal_trips in arch/arm/mach-imx/fdt.c in u-boot source code.

get_cpu_temp_grade(&minc, &maxc);

fdt_for_each_subnode(trip, blob, node) {
const char *type;
int temp, ret;

type = fdt_getprop(blob, trip, "type", NULL);
if (!type)
continue;

temp = 0;
if (!strcmp(type, "critical"))
temp = 1000 * maxc;
else if (!strcmp(type, "passive"))
temp = 1000 * (maxc - 10);
if (temp) {
ret = fdt_setprop_u32(blob, trip, "temperature", temp);
if (ret)
return ret;
}

 

0 件の賞賛
返信
%3CLINGO-SUB%20id%3D%22lingo-sub-2378083%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EDTS%E3%82%B5%E3%83%BC%E3%83%9E%E3%83%AB%E6%A7%8B%E6%88%90%E3%81%A8%E3%83%A9%E3%83%B3%E3%82%BF%E3%82%A4%E3%83%A0%E3%82%B5%E3%83%BC%E3%83%9E%E3%83%AB%E3%83%88%E3%83%AA%E3%83%83%E3%83%97%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88%E3%81%AE%E9%81%95%E3%81%84%20IMX93%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2378083%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%3CBR%20%2F%3E%3CBR%20%2F%3E%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%86%85%E3%81%A7%E4%BB%A5%E4%B8%8B%E3%81%AE%E7%86%B1%E6%A7%8B%E6%88%90%E3%81%8C%E7%A2%BA%E8%AA%8D%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%3CP%3E%E3%82%A2%E3%83%BC%E3%83%81%2Farm64%2F%E3%83%96%E3%83%BC%E3%83%88%2Fdts%2Ffreescale%2Fimx93.dtsi%3C%2FP%3E%3CP%3E%E7%86%B1%E3%82%BE%E3%83%BC%E3%83%B3%20%7B%3CBR%20%2F%3E%20CPU%E3%82%B5%E3%83%BC%E3%83%9E%E3%83%AB%20%7B%3CBR%20%2F%3E%E3%83%9D%E3%83%BC%E3%83%AA%E3%83%B3%E3%82%B0%E9%81%85%E5%BB%B6%EF%BC%88%E3%83%91%E3%83%83%E3%82%B7%E3%83%96%EF%BC%89%3D%20%26lt%3B250%26gt%3B%3B%3CBR%20%2F%3E%E3%83%9D%E3%83%BC%E3%83%AA%E3%83%B3%E3%82%B0%E9%81%85%E5%BB%B6%20%3D%20%26lt%3B2000%26gt%3B%3B%3C%2FP%3E%3CP%3E%E7%86%B1%E3%82%BB%E3%83%B3%E3%82%B5%20%3D%20%26lt%3B%26amp%3Btmu%200%26gt%3B%3B%3C%2FP%3E%3CP%3E%E6%97%85%E8%A1%8C%20%7B%3CBR%20%2F%3E%20cpu_alert%3A%20cpu-alert%20%7B%3CBR%20%2F%3E%E6%B8%A9%E5%BA%A6%20%3D%20%26lt%3B80000%26gt%3B%3B%3CBR%20%2F%3E%E3%83%92%E3%82%B9%E3%83%86%E3%83%AA%E3%82%B7%E3%82%B9%20%3D%20%26lt%3B2000%26gt%3B%3B%3CBR%20%2F%3E%E3%82%BF%E3%82%A4%E3%83%97%20%3D%20%22%E3%83%91%E3%83%83%E3%82%B7%E3%83%96%22%3B%3CBR%20%2F%3E%20%7D%3B%3C%2FP%3E%3CP%3Ecpu_crit%3A%20cpu-crit%20%7B%3CBR%20%2F%3E%E6%B8%A9%E5%BA%A6%20%3D%20%26lt%3B90000%26gt%3B%3B%3CBR%20%2F%3E%E3%83%92%E3%82%B9%E3%83%86%E3%83%AA%E3%82%B7%E3%82%B9%20%3D%20%26lt%3B2000%26gt%3B%3B%3CBR%20%2F%3E%E3%82%BF%E3%82%A4%E3%83%97%20%3D%20%22%E3%82%AF%E3%83%AA%E3%83%86%E3%82%A3%E3%82%AB%E3%83%AB%22%3B%3CBR%20%2F%3E%20%7D%3B%3CBR%20%2F%3E%20%7D%3B%3CBR%20%2F%3E%20%7D%3B%3CBR%20%2F%3E%20%7D%3B%3C%2FP%3E%3CP%3E%E3%81%97%E3%81%8B%E3%81%97%E3%80%81%E5%AE%9F%E8%A1%8C%E4%B8%AD%E3%81%AE%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%A7%E3%81%AF%E3%80%81sysfs%E3%82%A8%E3%83%B3%E3%83%88%E3%83%AA%E3%81%AF%E7%95%B0%E3%81%AA%E3%82%8B%E5%80%A4%E3%82%92%E5%A0%B1%E5%91%8A%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3Ecat%20%2Fsys%2Fclass%2Fthermal%2Fthermal_zone0%2Ftrip_point_0_temp%3CBR%20%2F%3E%2095000%3C%2FP%3E%3CP%3Ecat%20%2Fsys%2Fclass%2Fthermal%2Fthermal_zone0%2Ftrip_point_1_temp%3CBR%20%2F%3E%20105000%3C%2FP%3E%3CP%3E%E3%81%93%E3%82%8C%E3%81%AF%E3%80%81%E5%AE%9F%E8%A1%8C%E6%99%82%E3%81%AB%E3%83%91%E3%83%83%E3%82%B7%E3%83%96%E3%83%88%E3%83%AA%E3%83%83%E3%83%97%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88%E3%81%8C95%E2%84%83%E3%80%81%E3%82%AF%E3%83%AA%E3%83%86%E3%82%A3%E3%82%AB%E3%83%AB%E3%83%88%E3%83%AA%E3%83%83%E3%83%97%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88%E3%81%8C105%E2%84%83%E3%81%AB%E8%A8%AD%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E7%A4%BA%E3%81%97%E3%81%A6%E3%81%8A%E3%82%8A%E3%80%81DTS%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%A7%E5%AE%9A%E7%BE%A9%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E5%80%A4%EF%BC%8880%E2%84%83%E3%81%A890%E2%84%83%EF%BC%89%E3%81%A8%E3%81%AF%E7%95%B0%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E3%81%93%E3%82%8C%E3%82%89%E3%81%AE%E5%80%A4%E3%81%8C%E7%95%B0%E3%81%AA%E3%82%8B%E7%90%86%E7%94%B1%E3%82%92%E8%AA%AC%E6%98%8E%E3%81%97%E3%81%A6%E3%81%84%E3%81%9F%E3%81%A0%E3%81%91%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%E3%80%81%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%80%81%E3%81%BE%E3%81%9F%E3%81%AF%E3%83%97%E3%83%A9%E3%83%83%E3%83%88%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E4%B8%AD%E3%81%A7%E3%80%81%E3%81%93%E3%82%8C%E3%82%89%E3%81%AE%E7%86%B1%E9%81%AE%E6%96%AD%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88%E3%81%8C%E5%AE%9F%E8%A1%8C%E6%99%82%E3%81%AB%E5%A4%89%E6%9B%B4%E3%81%BE%E3%81%9F%E3%81%AF%E4%B8%8A%E6%9B%B8%E3%81%8D%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E7%AE%87%E6%89%80%E3%81%AF%E4%BB%96%E3%81%AB%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%3C%2FP%3E%3CP%3E%E3%81%93%E3%81%AE%E7%8F%BE%E8%B1%A1%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%95%E3%82%89%E3%81%AB%E8%AA%BF%E6%9F%BB%E3%82%92%E9%80%B2%E3%82%81%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81%E3%81%A9%E3%81%93%E3%82%92%E8%AA%BF%E6%9F%BB%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%8B%E6%95%99%E3%81%88%E3%81%A6%E3%81%84%E3%81%9F%E3%81%A0%E3%81%91%E3%81%BE%E3%81%99%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3E%E3%82%B8%E3%83%A3%E3%83%9E%E3%83%AB%E3%83%BB%E3%83%87%E3%82%A3%E3%83%BC%E3%83%B3%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2378122%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Difference%20Between%20DTS%20Thermal%20Configuration%20and%20Runtime%20Thermal%20Trip%20Points%20IMX93%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2378122%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3Eimx93evk%E3%83%9C%E3%83%BC%E3%83%89%E3%81%A7%E3%80%81%E4%BB%A5%E4%B8%8B%E3%81%AEdts%E6%A7%8B%E6%88%90%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%0A%3CP%3Eroot%40imx93evk%3A%2Ftmp%23%20hexdump%20-C%20%2Fsys%2Ffirmware%2Fdevicetree%2Fbase%2Fthermal-zones%2Fcpu-thermal%2Ftrips%2Fcpu-alert%2Ftemperature%3C%2FP%3E%0A%3CP%3E00000000%2000%2001%2073%2018%20%7C..s.%7C%3C%2FP%3E%0A%3CP%3E00000004%3C%2FP%3E%0A%3CP%3Eroot%40imx93evk%3A%2Ftmp%23%20hexdump%20-C%20%2Fsys%2Ffirmware%2Fdevicetree%2Fbase%2Fthermal-zones%2Fcpu-thermal%2Ftrips%2Fcpu-crit%2Ftemperature%3C%2FP%3E%0A%3CP%3E00000000%2000%2001%209a%2028%20%7C...(%7C%3C%2FP%3E%0A%3CP%3E00000004%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3EHEX%2019a28%20%3D%20105000(DEC)%3C%2FP%3E%0A%3CP%3EHEX%2017318%20%3D%2095000(DEC)%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3E%E3%81%93%E3%82%8C%E3%81%AF%E3%80%81Linux%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E3%83%AD%E3%83%BC%E3%83%89%E3%81%95%E3%82%8C%E3%82%8B%E5%89%8D%E3%81%AB%E3%80%81DTS%E3%81%8C%E3%81%99%E3%81%A7%E3%81%ABu-boot%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E5%A4%89%E6%9B%B4%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E6%84%8F%E5%91%B3%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CP%3Eu-boot%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AEarch%2Farm%2Fmach-imx%2Ffdt.c%E3%81%AB%E3%81%82%E3%82%8Bfixup_thermal_trips%E9%96%A2%E6%95%B0%E3%82%92%E5%8F%82%E7%85%A7%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%3C%2FP%3E%0A%3CP%3Eget_cpu_temp_grade(%26amp%3Bminc%2C%20%26amp%3Bmaxc)%3B%3C%2FP%3E%0A%3CP%3Efdt_for_each_subnode(trip%2C%20blob%2C%20node)%20%7B%3CBR%20%2F%3E%20const%20char%20*type%3B%3CBR%20%2F%3E%20int%20temp%E3%80%81ret%3B%3C%2FP%3E%0A%3CP%3Etype%20%3D%20fdt_getprop(blob%2C%20trip%2C%20%22type%22%2C%20NULL)%3B%3CBR%20%2F%3E%20(!type)%20%E3%81%AE%E5%A0%B4%E5%90%88%3CBR%20%2F%3E%E7%B6%9A%E3%81%8F%3B%3C%2FP%3E%0A%3CP%3Etemp%20%3D%200%3B%3CBR%20%2F%3E%20if%20(!strcmp(type%2C%20%22critical%22))%3CBR%20%2F%3E%E6%B8%A9%E5%BA%A6%20%3D%201000%20*%20%E6%9C%80%E5%A4%A7%E6%B8%A9%E5%BA%A6%3B%3CBR%20%2F%3E%20else%20if%20(!strcmp(type%2C%20%22passive%22))%3CBR%20%2F%3E%20temp%20%3D%201000%20*%20(maxc%20-%2010)%3B%3CBR%20%2F%3E%20if%20(temp)%20%7B%3CBR%20%2F%3E%20ret%20%3D%20fdt_setprop_u32(blob%2C%20trip%2C%20%22temperature%22%2C%20temp)%3B%3CBR%20%2F%3E%20if%20(ret)%3CBR%20%2F%3E%20return%20ret%3B%3CBR%20%2F%3E%20%7D%3C%2FP%3E%0A%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E