TOPPERS LOGO
Loading

 Topics | About Project | ASP3 Kernel | Documents | Download | Community | Report | Contacts | FAQ
  • 会員向けページ
    • メーリングリスト
    • 早期リリース
    • 技術ドキュメント
    • 開発支援
    • 会員情報登録・変更
    • 会員向けイベント情報
  • プロジェクトについて
    • TOPPERSプロジェクトとは
    • TOPPERSのロゴについて
    • TOPPERS公式マスコット「とぱめ」
    • TOPPERSライセンス
    • プロジェクト規則集
    • 貸借対照表
    • プロジェクトの組織
    • 関連団体、プロジェクトメンバ
    • 受賞
    • 入会のススメと申込み方法
    • 開発成果物の利用報告
    • FAQ
    • 問い合わせ・事務局案内図
  • 取り組み
    • ETロボコンへの取組み
    • プレス発表
    • ニュースレター
    • コンテスト
    • 一般向けイベント情報
    • TOPPERSカンファレンス
    • TOPPERS開発者会議
    • 過去の取り組み
      • 公的資金によるプロジェクト
      • ソフトウェア開発委託事業
      • 公募型事業
  • 開発成果物
    • リアルタイムカーネル
      • TOPPERS/ASP3カーネル
      • TOPPERS/HRP3カーネル
      • TOPPERS/FMP3カーネル
      • TOPPERS/HRMP3カーネル
      • TOPPERS/ASPカーネル
      • TOPPERS/JSPカーネル
      • TOPPERS/FMPカーネル
      • TOPPERS/HRP2カーネル
      • TOPPERS/SSPカーネル
      • TOPPERS/PARK
      • TOPPERS/FDMPカーネル
      • TOPPERS/FI4カーネル
      • TOPPERS/HRPカーネル
      • TOPPERS/ATK1
    • AUTOSAR関連
      • TOPPERS/ATK2
      • TOPPERS/A-RTEGEN
      • TOPPERS/A-COMSTACK
      • TOPPERS/A-WDGSTACK
      • TOPPERS/A-OSBENCH
    • TOPPERS/EV3RT(EV3 Platform)
    • TECS(コンポーネントシステム)
    • TINET(TCP/IPスタック)
    • TOPPERS/ECNL
    • CAN/LIN通信ミドルウェア
    • FatFs for TOPPERS
    • SafeG
    • SafeG64
    • SafeG-M
    • SafeG-Auto
    • MDCOM
    • TOPPERS BASE PLATFORM
    • Athrill
    • TOPPERS Test Suite Package(TOPPERS新世代カーネル)
    • TOPPERS新世代カーネル用コンフィギュレータ
    • その他
      • TOPPERS Builder Bootable CD-ROM イメージ
      • TLV(トレースログ可視化ツール)
      • BridgePoint for JSP1.4
      • TOPPERS C++ APIテンプレートライブラリ
      • TOPPERSカーネルテストスイート(μITRON4.0仕様)
      • Remote Link Loader(RLL)
      • ダイナミックローディングマネージャ(DLM)
      • TOPPERSカーネル向けシミュレーション環境
  • 教育コンテンツ
    • 初級実装セミナー教材
    • 中級実装セミナー教材
    • 基礎1実装セミナー教材
    • 基礎2実装セミナー教材
    • 基礎3実装セミナー教材
    • 基礎ハードウェア基本設計セミナー教材
    • ARM7版基礎1、2、3実装セミナー教材
    • TOPPERS BASE PLATFORM対応版基礎1、2、3セミナー教材
    • 二足歩行ロボット教材
    • TOPPERS版鹿威し
  • ドキュメント
    • TOPPERS第3世代カーネル統合仕様書
    • TOPPERS新世代カーネル統合仕様書
    • TOPPERS新世代カーネルへのマイグレーションガイド
    • TOPPERS新世代カーネル用コンフィギュレータ関連仕様書
    • 機能分散マルチプロセッサ向けリアルタイムカーネル仕様書
  • ダウンロード
    • ダウンロードページ一覧
  • 関連製品
    • トータルソリューション
    • 開発キット・開発環境・ツール
    • ミドルウェア・ソフトウェア部品
    • サポート・サービス
    • 教育・教材
    • ハードウェア
  • 利用事例
    • 適用事例
    • ユーザ
  • コミュニティ情報
    • ユーザーズフォーラム
    • ソフトウェア
    • 統合開発環境
    • 外部リンク
    • Contributed Software
    • Contributed Software(GitHub)
    • AUTOSAR情報サイト
  • その他の情報
    • 雑誌記事・書籍

SafeG64(Safety Gate 64)とは

SafeG64は,SafeGと同様 に同一ハードウェアプラットフォーム上で、汎用OSとRTOSを安全に同時実行で きる高信頼デュアルOSモニタです。
SafeGは32bitのARMv7-Aをサポートして いるのに対して,SafeG64は64bitのARMv8-Aをサポートしています。SafeG64で は汎用OSとRTOSの同時実行を実現するために、ARMプロセッサのTrustZoneセキ ュリティ拡張機能を利用します。

TrustZoneは、プロセッサにセキュア状態、ノンセキュア状態の2つの状態の概 念(仮想プロセッサ)が追加されます。各状態には独立に特権・非特権レベル が存在します。

Safeg64を使う事で,同一プロセッサ上のセキュア状態でTOPPERSカーネル(FMPカーネル) を実行し,ノンセキュア状態でLinuxを動作させることが出来ま す。

SafeG64

SafeG64の構成

SafeG64は,OS切り換えを行うモニタ自身はARMが開発してオープンソース として公開しているARM Trusted Firmware(ATF)を利用しています。ATFは多 くのARMv8-AのSoCでサポートされています。

ATFは,セキュア側のOSに応じて,SPD(Secure-EL1 Payload Dispatcher)を用 意することで,様々なOSに対応しています。SafeG64ではTOPPERSカーネル用の SPDを用意することで,セキュア状態でTOPPERSカーネルを動作させています。

SafeG64は以下のコンポーネントにより構成されています。

  • SPD for FMP
    • FMPカーネル用のSPD。
  • ATFへのパッチ
    • 各コアでLinux起動前にFMPカーネルを動作させるためのパッチ等。
  • DOSCOM driver
    • OS間通信を実現するためのドライバ。RTOS側とLinux側にそれぞれ存在。
  • DOSCOM Service
    • OS間通信を実現するためのサービス。ATFの一部として動作。
  • TOPPERS/FMPカーネル
    • セキュアOSと動作させるRTOS。セキュア側で動作するための変更がなされている。

SafeG64の特徴

基本的にはSafeGと同じ特徴を持っています。

  1. 各コアで汎用OSとRTOSの並行実行を実現します。汎用OSはノンセキュア状態で、RTOSはセキュア状態で実行されます。
  2. 汎用OSの不正なアクセスからRTOS用メモリとデバイスを保護します。RTOS 用メモリとデバイスは、セキュアス状態のコアからのみアクセス出来るように設定可能です。残りのリソースは、どちらのプロセッサ状態からもアクセス出来ます。
  3. RTOSのリアルタイム性を保証します。RTOSのリアルタイム性保証のため、各状態で異なる割り込み要求ラインを使用します。
    • FIQはRTOSで使用されます。
    • IRQは汎用OSで使用されます。

    セキュア状態ではIRQ割り込みが禁止されています。そのため、汎用OSの割り込みが、RTOSの実行に影響を与えることはありません。

    一方、ノンセキュア状態では、RTOSにプロセッサの制御を渡せるように、常にFIQ割り込みが許可されています。また、ノンセキュア状態でFIQ割り込みを禁止出来ないように設定されています。そのため,RTOSの割込みを汎用 OSが禁止することはできません。

  4. ハードウェアの仮想化支援機能を使用しているため、低オーバヘッドで2つのOSの同時実行を実現できます。
  5. 汎用OSは少ない変更で適用可能です。必要な変更点はメモリとデバイスに関するコンフィギュレーションのみです。

SafeG64の割込みハンドリング

OS間通信

OS間通信はMDCOMをベー スとしたDOSCOMがサポートされています。

現状のMDCOMは異なるアーキテクチャのプロセッサ(AMP)間の通信をサポート しており,これを同一アーキテクチャの仮想環境のOS間通信をサポートする様 変更しています。APIの名称等はMDCOMからDOSCOMに変更されていますが,機能 は基本的に同じです。

SPDサービスコール

SPDのサービスを呼び出すための機構であり,SMCコールにより呼び出します。 TOPPERS向けのSPDでは以下のSPDサービスコールをサポートしています。

  • ベクタ設定 (SET_VECTOR)
    • ATFからFMPカーネルへ制御を移すためのベクタを登録
  • FMP初期化完了通知SMCコール (INIT_COMPLETE)
    • ATFに初期化完了を通知
    • サブコアの場合、LinuxがPSCI CPU_ONを実行しサブコア開始アドレスを渡すまで、エラーを返す
  • サブコアON SMCコール (CPU_ON)
    • Secure OSからサブコアをONにする
  • Secure/Non-Sucure World切り換えSMCコール(SWITCH_SECURE_STATE)
    • Secure/Non-Sucure Worldを切り替える
  • ソフトウェア割込発生SMCコール(GEN_INT)
    • GICを使用してソフトウェア割り込みをNon-Sucureから発生させる
    • MDCOMでドメイン間割込を発生させる際に使用

ATFとの違い

SafeG64ではATFにパッチを適用して振る舞いを変更しています。 具体的には各コアにおいてセキュア側のOSがノンセキュア側のOSが実行されて いない場合でも動作する様に変更しています。

これは,ATFではセキュア側のOSの主目的がセキュアライブラリの実行等,ノ ンセキュア側から依頼があって初めて動作することが前提であり,ノンセキュ ア側のOSが存在しないコアではセキュア側のOSを動かさないのが基本的な考え 方であるからです。

一方,SafeG64の利用を想定しているシステムではセキュア側のOSはリアルタ イム制御を実施することを前提しているため,ノンセキュア側のOSが存在しな いコアでも動作することを想定して,上記の様に変更しました。

SafeG64の利用想定

対応ハードウェア・OS

最新のリリースでは次のボードで次のOS構成に対応しています。

  • NXP社 i.MX 8M Mini EVK(i.mx8m mini(Cortex-A53+Cortex-M4))
    • Linux(Cortex-A53 64bit) <-> FMP(Cortex-A53 64bit)
  • Xilinx社 ZCU102(Zynq UltraScale+ MPSoC(Cortex-A53 + Cortex-R4))
    • Linux(Cortex-A53 64bit) <-> FMP(Cortex-A53 64bit)
    • Linux(Cortex-A53 64bit) <-> FMP(Cortex-R5 32bit)
  • Xilinx社 ZCU104(Zynq UltraScale+ MPSoC(Cortex-A53 + Cortex-R4))
    • Linux(Cortex-A53 64bit) <-> FMP(Cortex-A53 64bit)
    • Linux(Cortex-A53 64bit) <-> FMP(Cortex-R5 32bit)

ダウンロード

SafeG64の開発はTOPPERSメンバーによって、TOPPERS内のプロジェクト管理ツ ールで行われています。ユーザ向けのパッケージはここからダウンロードでき ます。

最新のリリース
パッケージ リリース サイズ リリース日
safeg64-1.2.0.zip 1.2.0 974KB 2021-06-04
safeg64-1.1.0.zip 1.1.0 929KB 2020-07-25
safeg64-1.0.0.zip 1.0.0 597KB 2019-07-01

開発スタッフ

SafeG64の開発に参加している開発スタッフは次の通りです(所属は参加した時点のもの)。

名前 所属 時期
本田晋也 名古屋大学 情報科学研究科 2018年〜
鈴木康議 ユビキタスAIコーポレーション 2019年〜
加藤吉之介 ユビキタスAIコーポレーション 2019年〜

※ 開発スタッフの名前は、掲載を了承された方のみ記載しています。

Newsletterのバックナンバーはこちら

Tweets by ToppersJP


Copyright (C) 2000 - 2023 by TOPPERS Project, Inc. All Rights Reserved.