(toppers-users 4578) Re: SafeG - ノントラストOSの再起動について
Yoshitaka Takebe
takebe @ sec.co.jp
2016年 7月 15日 (金) 16:37:07 JST
本田様
建部です。
ご回答ありがとうございます。
Power on resetで実行されるU-Bootと同じことを、
このタイミングで実施する必要がある、という理解をしました。
確かに、初期値のあるデータテーブルのことを考えると、
NT側のプログラムカウンタだけ動かしても、正しく動作しないでしょうね。
NT_OS側は、今はTOPPERS/FMPを利用したサンプルを使用していますが、
この場合も同様のことだと思いますので、
試してみます。ありがとうございました。
以上です。
-----------------------返信元のメール-----------------------
Fri, 15 Jul 2016 16:17:44 +0900From: Shinya Honda <honda @ ertl.jp>
Reply-To: users @ toppers.jp
To: users @ toppers.jp
Subject: (toppers-users 4577) Re: SafeG - ノントラストOSの再起動について
日時: 2016/07/15(金) 16:17:44
>建部さん
>
>本田です.
>
>基本的な流れは次のようになります.
>
>1.全コアFMP側に処理を切り替える
>2.NS側のu-bootをロードし直す.
>3.コア0以外はNS Linuxからの起動指示待ちとする.
>4.コア0でNS側のu-bootを実行するようNS側のPCを変更する.
>5.コア0はNSに遷移
>6.NS側のu-booからNS側のlinuxを起動
>
>という流れになります.Linuxのデバドラはcoldブートを前提に書かれているため,6で初期化ミスをおこす
>場合はあります.その際にはLinux側のドライバの初期化処理を変更するか,2,3,4でFMP側からデバイスをリ
>セット等してあげる必要があります.
>
>以上,よろしくお願いします.
>
>On 2016/07/15 12:50, Yoshitaka Takebe wrote:
>> 本田様
>>
>> 建部です。
>>
>> ご回答ありがとうございます。
>>
>> safeg_syscall_restartnt()で、NT側のコンテキスト情報の"PC"に、
>> NT側の開始アドレスを設定していたので、
>> NT側にタスクを切り替えれば、NT側は起動(Start)からやり直される、
>> と思っていたのですが、それだけではダメ、ということですね。
>>
>> すみませんが、"target_do_reboot()"は、どのような実装をすれば
>> よいのでしょうか?
>>
>> このような質問ばかりですみません。
>> よろしくお願いいたします。
>>
>> 以上です。
>>
>> -----------------------返信元のメール-----------------------
>> Fri, 15 Jul 2016 12:23:23 +0900From: Shinya Honda <honda @ ertl.jp>
>> To: users @ toppers.jp
>> Cc: takebe @ sec.co.jp
>> Subject: Re: (toppers-users 4574) SafeG - ノントラストOSの再起動について
>> 日時: 2016/07/15(金) 12:23:23
>>
>>
>>> 建部さん
>>>
>>> 本田です.
>>>
>>> safeg_syscall_restarnt() はターゲット毎に実装する必要があります.
>>> i.mx6に関しては再起動処理は実装されていないので,実装していただく必要があります.
>>>
>>> 以上,よろしくお願いします.
>>>
>>> On 2016/07/15 11:12, Yoshitaka Takebe wrote:
>>>> セックの建部です。
>>>>
>>>> 最近、多投しており、申し訳ございません。
>>>>
>>>> 再度、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のコンソールで確認)
>>>>
>>>>
>>>>
>>>> すみませんが、よろしくお願いします。
>>>>
>>>> 以上です。
>>>>
>>
>>
>>
>> ======================================================================
>> 建部 貴隆 ( Yoshitaka Takebe )
>>
>> 株式会社セック 開発本部 第四開発部 (宇宙先端システム担当)
>>
>> ADR : 東京都世田谷区用賀4-10-1 世田谷ビジネススクエア
>> TEL : 03-5491-4404
>> FAX : 03-5491-4771
>> E-Mail : takebe @ sec.co.jp
>> ----------------------------------------------------------------------
>>
>> この電子メールの内容および添付されている情報は、機密情報であると同時に、
>> 宛先として意図した特定の受信者のみに送信いたしております。当方の誤送信
>> 等により、心当たりのない方が受信された場合は、大変お手数ですが、受信さ
>> れましたメール内容は削除していただきますようお願いいたします。
>> ======================================================================
>>
======================================================================
建部 貴隆 ( Yoshitaka Takebe )
株式会社セック 開発本部 第四開発部 (宇宙先端システム担当)
ADR : 東京都世田谷区用賀4-10-1 世田谷ビジネススクエア
TEL : 03-5491-4404
FAX : 03-5491-4771
E-Mail : takebe @ sec.co.jp
----------------------------------------------------------------------
この電子メールの内容および添付されている情報は、機密情報であると同時に、
宛先として意図した特定の受信者のみに送信いたしております。当方の誤送信
等により、心当たりのない方が受信された場合は、大変お手数ですが、受信さ
れましたメール内容は削除していただきますようお願いいたします。
======================================================================