i.MX53クイック スターティング ボードでTrustZone (ARM セキュリティ拡張機能) を調べています。セキュアワールドイメージとノーマルワールドイメージのベアメタルシステムの作成に成功しました。u-bootを使用して 2 つのイメージを RAM にロードし、セキュア ワールドを起動します。セキュア ワールドは、モニター システムを初期化し、通常のワールド イメージに手を差し伸べます。
同じ制度を利用したい。しかし、今回は通常の世界の基本イメージを使用する代わりに、 Linux Kernel Imageを使用したいと思います。安全な世界にいるときに、i.MX53 リファレンス マニュアルと i.MX53 セキュリティ リファレンス マニュアルで見つけたいくつかの構成を行いました。構成は次のとおりです。
CSU を設定します。
CSL0-31 to 0x00FF_00FF
TZIC (割り込み)
TZIC_INTSEC0-3 to 0xFFFF_FFFF
を構成しTZIC_PRIORITY0-31 to 0x1F1F_1F1F
、TZIC_INTCTRL to 0x8001_0001
セキュア構成レジスタの構成:
NS=0 IRQ=0 FIQ=0 EA=0 FW=1 AW=1 => 0x30
Linux カーネルに手を差し伸べると、ブート プロセスが開始されます。出力の一部を以下に示します。
レギュレーター: コア バージョン 0.5
NET: 登録済みプロトコル ファミリ 16
i.MX IRAM プール: 128 KB@0xec840000
IRAM パーティションの解放に失敗しました
CPU は i.MX0 リビジョン 0.0
未処理の障害: 0xec82c00c での非ラインフェッチ (0x1008) での外部アボート
内部エラー: : 1008 [#1] PREEMPT
最後の sysfs ファイル:
リンクされているモジュール:
CPU: 0 汚染されていません (2.6.35.3 #1)
PC は mxc_cpu_lp_set+0x1c/0x16c にあります
LR は arch_idle+0x60/0x294 にあります
pc : [<8003a958>] lr : [<8003ab08>] psr: 60000093
sp: 80835f78 IP: 00000003 fp: 8088fb68
....
出力でわかるように、 IRAMに問題があり(通常は IRAM READY と表示されるため)、データの中断があります。これらのエラーに関連する画面が表示された後、Linux カーネルのブート プロセスが停止します。
それを解決する方法のアイデアはありますか? 構成が不足していますか? ありがとうございました