2378083_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2378083_ja-JP

2378083_ja-JP

DTSサーマル構成とランタイムサーマルトリップポイントの違い IMX93

こんにちは、

ファイル内で以下の熱構成が確認されました。

アーチ/arm64/ブート/dts/freescale/imx93.dtsi

熱ゾーン {
CPUサーマル {
ポーリング遅延(パッシブ)= <250>;
ポーリング遅延 = <2000>;

熱センサ = <&tmu 0>;

旅行 {
cpu_alert: cpu-alert {
温度 = <80000>;
ヒステリシス = <2000>;
タイプ = "パッシブ";
};

cpu_crit: cpu-crit {
温度 = <90000>;
ヒステリシス = <2000>;
タイプ = "クリティカル";
};
};
};
};

しかし、実行中のシステムでは、sysfsエントリは異なる値を報告します。

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

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

これは、実行時にパッシブトリップポイントが95℃、クリティカルトリップポイントが105℃に設定されていることを示しており、DTSファイルで定義されている値(80℃と90℃)とは異なります。

これらの値が異なる理由を説明していただけますか?カーネル、ドライバ、またはプラットフォームコードの中で、これらの熱遮断ポイントが実行時に変更または上書きされている箇所は他にありますか?

この現象についてさらに調査を進めるため、どこを調査すればよいか教えていただけますでしょうか。

よろしくお願いいたします。
ジャマル・ディーン

Re: Difference Between DTS Thermal Configuration and Runtime Thermal Trip Points IMX93

imx93evkボードで、以下のdts構成を確認しました。

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)

これは、Linuxカーネルによってロードされる前に、DTSがすでにu-bootによって変更されていることを意味します。

u-bootソースコードのarch/arm/mach-imx/fdt.cにあるfixup_thermal_trips関数を参照してください。

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);
(!type) の場合
続く;

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


Tags (1)
No ratings
Version history
Last update:
3 weeks ago
Updated by: