(toppers-users 4574) SafeG - ノントラストOSの再起動について
Yoshitaka Takebe
takebe @ sec.co.jp
2016年 7月 15日 (金) 11:12:01 JST
セックの建部です。
最近、多投しており、申し訳ございません。
再度、SafeGまわりで質問させて頂きたいと思います。
"safeg_syscall_restarnt()"をトラスト側から呼ぶと、
ノントラスト側のアプリケーションを再起動できると思いますが、
この機能を試してみたところ、ノントラスト側が再起動いたしません。
使い方や前提条件が誤っているでしょうか?
チェックポイントなど、教えて頂ければ幸いです。
実行環境:i.MX6のCPUボード(MCIMX6-SDB)
実行しているプログラムの内容:
・"shared_mem"サンプルを拡張して試しました。
・トラスト側で、起動後10秒後(10回目の周期タスク起動時)に、
"safeg_syscall_restartnt()"、"target_do_reboot()"を呼び出す
ようにしました。
※ "target_do_reboot()"関数は、空関数ですが、ここに何か実装する必要は
ありましたでしょうか?
・safeg_syscall_restartnt()の呼び出しまでは、NT側で書き込みを行う
メモリ領域の内容が改変されましたが、
safeg_syscall_restartnt()呼び出し以降、その領域が"0"になりました。
※ この領域がなぜ"0"になるのか、も疑問となっている点です。
メモリマップとしては、マニュアルの手順に沿って、以下のように配置しています。
ノントラスト: 0x17800000
monitor : 0x4f000000
トラスト : 0x4f100000
共有メモリ : 0x4f800000 (=TARGET_COM_SHMEM_ADDRESS)
・トラスト側のプログラムは、"safeg_syscall_restartnt()"呼び出し後も動作しています。
(UARTのコンソールで確認)
すみませんが、よろしくお願いします。
以上です。