カスタム imx93 SOM の CPU 周波数と DDR 周波数を調整するために、imx93_lpm ドライバーを使用しようとしています。
フォルダー内に「mode」オブジェクトがないため、`echo 1 > /sys/devices/platform/imx93-lpm/mode` を実行しようとしても失敗します。dmesg の出力を読んでいると、lpm ドライバから「DDR 周波数スケーリングをサポートできません」というエラーが発生し、ドライバがプローブに失敗していることがわかります。このエラーは、arm_smccc_smc 呼び出しが 2 未満の周波数設定ポイントを返すことによって発生します。
lpddr4x_timings.cにアクセスできますファイルには 3 つの周波数設定ポイントがあるように見えます。
私の推測では、uboot が spl.c で spl_dram_init を呼び出すと、DDR タイミングは設定されますが、周波数設定ポイント データは Linux による取得のために ARM SMC ストレージに書き込まれません。DDR タイミングを ARM SMC に書き込む例は見当たりません。
Linux でアクセスできるように DDR タイミング データが Arm SMC に保存されていることを確認する方法について説明していただけますか?
こんにちは@aaronc-nv 、
NXP サポートにお問い合わせいただきありがとうございます。
観察されている動作は、LPM ノードがデバイス ツリーに含まれていない場合に予想されるものです。
この問題を解決するには、i.MX93 EVK で定義されているのと同じ方法で、デバイス ツリーに lpm ノードを追加してください。
&lpm {
ld-mode-enabled;
};
このノードを追加した後、デバイス ツリーを再構築して再試行してください。
よろしくお願いします、
チャビラ