ARMにはTrustZoneと呼ばれるものがあります。 ARMドキュメント)のとおり、プロセスはセキュア/ノンセキュアワールドで実行できることがわかります。
これを理解するのを手伝ってください。
http://infocenter.arm.com/help/topic/com.arm.doc.prd29-genc-009492c/index.html は、何かの概要を説明する、かなり優れた入門ドキュメントです少し複雑すぎて、テキストボックスに入力しても十分に説明できません。ただし、以下の直接的な質問にはお答えします。
UnixSmurfsの答えを補足するには、
セキュア/ノンセキュアワールドとはどういう意味ですか。それはプロセッサの実行モードに関連していますか、それともメモリ領域または他の何かの許可の設定に関連していますか?.
主にメモリ領域に関連しています。すべてのTrustZone互換デバイスは、AXIバスアクセスに[〜#〜] ns [〜#〜]ビットでタグ付けします。このビットは、アクセスがセキュアまたはノーマルのどちらからであるかを指定します。このようにして、/-通常ワールドの制御下にある[〜#〜] dma [〜#〜]周辺機器でさえも分離できます。
ARMの7つの動作モードとセキュア/ノンセキュアワールドの間に何らかの関係がありますか?.
あんまり。ただし、監視モードと呼ばれるの間に世界があり、明らかにそれが束の中で最も強力です。 監視モードは、セキュアとノーマルの間にあるブローカーです。 セキュアワールドのシステムメモリビューを保持しながら、ノーマルワールド CP15レジスタにアクセスできます(NS
ビットを0としてプッシュします)。
ARMでTrustZoneを有効にする方法。
Enableは、オーバーロードされたWordのビットです。 unixsmurf が示すように、CPUに組み込まれています。デフォルトでは、TrustZone対応のCPUはセキュアの世界で起動します。何もしない場合、CPUがTrustZone対応であることに気付かない可能性があります。 通常ワールドを設定し、それに制御を渡すことによってのみ、TrustZoneが使用されます。おそらく、これはenableの意味です。
ARMのどのバージョンから導入されましたか。
2つのフレーバーがあります。
TrustZoneセキュリティホワイトペーパーのセクション4.2これに答えてください。 ARM1176JZ(F)-S、Cortex-A8、Cortex-A9、Cortex-A9-MPCoreおよびCortex-A5サポートTrustZone。 ARM1156T2(F)-SおよびCortex-R4は互換性があります。彼らは2になることができますnd システムのコア。新しいコアが開発されると、それらがリストに追加される可能性があります。この質問は動く目標です。
このTrustZoneの使用は必須ですか? LinuxカーネルはこのTrustZone拡張機能を使用しますか?.
必須ではありません。 Linuxカーネルが果たすことができる2つの役割があります。 セキュアおよびノーマルワールド。 LinuxでのTrustZoneの使用に関する情報については、 svc-handler-to-smc-call を参照してください。
UnixSmurfが暗示する、答えられないいくつかのこと;すべてのBUSマスターおよびスレーブが[〜#〜] ns [〜#〜]ビットを適切に認識していることを確認する必要があります。この情報は、CPU情報の外であり、BUSアービトレータを含みます。 本のようなである別のトピック。
参照: PRD29-GENC-009492C
組み込みシステムの仮想化手法としてのARM TrustZone
ARM TrustZone
ARM Trusted Firmware