2139971_ja-JP

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

2139971_ja-JP

2139971_ja-JP

imx93 - キーを押した後に再起動する

こんにちは、

他のボードで特定の操作を実行するために、ボードを停止する必要がある場合があります。

そして、その責任者が遠隔地にいることも多々あります。

そのため、以前のボード セット (x86 アーキテクチャ ベース) に機能を開発し、管理者がキーを押した後にボードを停止 (/sbin/halt) して再起動できるようにしました。

Linux カーネルの machine_restart() 関数内にフックを実装して呼び出しました。

unsigned char キー;
printk( KERN_ERR "再起動するには任意のキーを押してください\n");
キー = inb(0x3f8);
while (inb(0x3f8) == キー);


今度は、imx93 ベースのボードでも同じことを実行したいと思います。

次のように試してみましたが、while ループに留まらず、すぐにボードを再起動します。シリアルコンソールとしてLPUART1を使用します。

    unsigned charキー;
#REGBASE 0x44380000を定義する
    void __iomem *io = ioremap (REGBASE, SZ_4K);
printk ( KERN_ERR "再起動するには任意のキーを押してください\n" );
キー = readl (io + 0x1C ) & 0x3FF ;
    while ( ( readl (io + 0x1C ) & 0x3FF ) == キー );
 
注: ドキュメントでは DATA_RO レジスタ (オフセット 0x30) の存在についても言及されていますが、動作は同じです。
 
これを解決する方法について誰か提案がありますか?
ありがとうございます。
よろしくお願いいたします。
パトリック・アグレイン
Tags (1)
No ratings
Version history
Last update:
‎11-21-2025 11:48 PM
Updated by: