AMD アダプティブ SoC エンベデッド ソフトウェア エコシステム
ソフトウェアを活用して、迅速なイノベーションとコネクティビティを実現
AMD のエンベデッド ソフトウェア エコシステムは、エンベデッド システムの開発をサポートし、構想段階から完成までのプロセスを効率化します。豊富なツール群、ランタイム、開発環境で構成されるこのエコシステムは、AMD のエンベデッド製品ポートフォリオのデバイス (AMD Zynq™ 7000 SoC、Zynq UltraScale+™ MPSoC、Versal™ アダプティブ SoC、MicroBlaze™ プロセッサおよび MicroBlaze V プロセッサ コア) の性能をシームレスに活用できるよう設計されています。また、Zynq デバイスや Versal デバイスのファブリックに密接に統合された先進的なセキュリティ機能や仮想化対応ソフトウェア ドライバーなどを基盤とし、高度な機能を提供しています。このような相互作用によって、次世代エンベデッド アプリケーションの要求に応える革新的なシステムを構築する可能性が広がります。
ビルド/開発ツール
Linux
Linux® は、AMD 製品で使用される最も一般的なオペレーティング システムです。AMD は、Yocto Project™ ベースの環境と Linux ディストリビューションである EDF Linux OS とエンベデッド開発フレームワーク (EDF) を提供しています。これには、GIT リポジトリからのソース コードと Yocto レシピ ファイルが含まれており、社内のビルド システムやサードパーティ ツールを介して AMD シリコンを Linux でサポートできます。EDF Linux OS は、AMD Versal™ アダプティブ SoC、Zynq™ UltraScale™ MPSoC、Zynq 7000 SoC、および MicroBlaze™ プロセッサでの開発を目的とした、カスタマイズされた非商用 Linux 開発プロジェクトです。
AMD EDF リリースの Linux カーネル サポートは LTS カーネルを追跡します。
ビルド ツール
AMD は現在、組み込み Linux ソリューションのビルドおよび運用をサポートする 2 種類のツールを提供しています。1 つは、オープンソースの Yocto Project™ をベースとして構築された AMD EDF で、もう 1 つは AMD EDF に置き換えられる PetaLinux です。どちらのツールも、組み込み Linux イメージを迅速に構築する方法を提供し、EDF はより高度なユース ケースにも対応します。
構築済み/オープンソース イメージ
カーネルおよびブート イメージの構築
AMD のオープンソース Linux フロー:
リアルタイム Linux
エミュレーション モデルおよびドライバー
ソフトウェア開発ツール
AMD Vitis™ 統合ソフトウェア プラットフォーム、ソフトウェア開発キット (SDK)、エコシステム パートナーのツールなど、Zynq および Versal プラットフォームで SoC 同様の C/C++ プログラミングをサポートする複数の開発環境が用意されています。
AMD ソフトウェア環境
- Vitis 統合ソフトウェア プラットフォーム - Zynq UltraScale+ MPSoC/RFSoC および Versal アダプティブ SoC デバイス向けのエンベデッド ソフトウェア開発を支援。
- ソフトウェア開発キット (SDK) - Zynq 7000 SoC、Zynq UltraScale+ MPSoC、MicroBlaze プロセッサ向けの設計およびデバッグを支援。
ザイリンクス エコシステムのソフトウェア開発環境およびツール
- AdviceLUNAⅡ (DTS INSIGHT 社)
- DYPLO (Dynamic Process Loader) (TOPIC 社)
- C/C++ コンパイラ「IAR Embedded Workbench for ARM」 (機能安全版) (IAR Systems 社)
RTOS & ライブラリ パートナー
RTOS、ハイパーバイザー、ベアメタル
Zephyr Project RTOS
Zephyr Project は、複数のハードウェア アーキテクチャをサポートするスケーラブルなリアルタイム オペレーティング システム (RTOS) で、リソースに制約のあるデバイスに最適化されており、セキュリティを考慮して構築されています。
Zephyr OS は、シンプルな組み込み環境センサーや LED ウェアラブルから、洗練されたスマート ウォッチや IoT ワイヤレス ゲートウェイまで、リソースに制約のあるシステムで使用するように設計された、フットプリントの小さいカーネルをベースにしています。
Zephyr Project の詳細については、次のサイトを参照してください: https://www.zephyrproject.org/
AMD の Zephyr Project のリポジトリは次の場所にあります: https://github.com/Xilinx/zephyr-amd
FreeRTOS
FreeRTOS は、AWS の 35 以上のアーキテクチャをサポートする、市場を牽引する RTOS であり、2017 年には 3 分に 1 回ダウンロードされていました。FreeRTOS カーネルは、専門的な開発、厳密な品質管理、堅牢性、充実したサポートを特徴とし、専有のソース コードの公開要件なしで、商用アプリケーションで自由に使用できます (参照: https://www.freertos.org/RTOS.html)。
FreeRTOS の詳細は、https://www.freertos.org/RTOS.html をご覧ください。
FreeRTOS カーネル ポートは、次の AMD アダプティブ SoC、FPGA、および SOM で使用できます。
AMD 製品における FreeRTOS に関する詳細およびサポート リソースは、AMD の FreeRTOS ページをご覧ください。
| プロセッサ | デバイス |
|---|---|
| 64 ビット Arm® Cortex®-A72 アプリケーション プロセッサ ユニット (APU) & 32 ビット Cortex-R5 リアルタイム プロセッサ ユニット (RPU) | Versal アダプティブ SoC |
| 64 ビット Arm Cortex-A53 アプリケーション プロセッサ ユニット (APU) & 32 ビット Cortex-R5 リアルタイム プロセッサ ユニット (RPU) | Zynq UltraScale+ MPSoC および Kria™ SOM |
| 32 ビット Arm Cortex-A9 アプリケーション プロセッサ ユニット (APU) | Zynq 7000 SoC デバイス |
| 32 ビット MicroBlaze プロセッサ | すべての AMD デバイス ファミリ |
AMD およびエコシステム パートナーの RTOS サポート
| プロバイダー | 製品 | Zynq 7000 SoC | Zynq UltraScale+ MPSoC | Versal アダプティブ SoC | MicroBlaze | |||||
|---|---|---|---|---|---|---|---|---|---|---|
| Cortex-A9 | Cortex-A53 | Cortex-R5 | VCU | Mali-400 | Cortex-A72 | Cortex-R5F | AIE | |||
| AMD | ベアメタル | ○ | ○1 | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
| AMD | FreeRTOS | ○ | ○1 | ○ | ✕ | ✕ | ○ | ○ | ○ | ○ |
| AMD | Zephyr6 | ✕ | ○4 | ○4 | ○4 | ○4 | ||||
| BlackBerry | QNX Neutrino | ○ | ○ | ✕ | ○ | ○ | ○ | ✕ | ✕ | ✕ |
| QNX OS for Safety | ○ | ○ | ✕ | ○ | ○ | ○ | ✕ | ✕ | ✕ | |
| Wind River | VxWorks | ○ | ○ | ○ | ✕ | ○ | ○ | ○ | ✕ | ✕ |
| Green Hills | INTEGRITY-178 | ✕ | ○ | ✕ | ✕ | ✕ | ○ | ✕ | ✕ | ✕ |
| INTEGRITY | ○ | ○ | ✕ | ✕ | ✕ | ○ | ✕ | ✕ | ✕ | |
| u-velOsity | ✕ | ✕ | ○ | ✕ | ✕ | ✕ | ○3 | ✕ | ✕ | |
| Siemens | Nucleus | ○ | ○ | ○ | ✕ | ✕ | ✕ | ○4 | ✕ | ✕ |
| PX5 | PX5 RTOS | ✕ | ○ | ○ | ✕ | ✕ | ✕ | ✕ | ✕ | ○ |
| Microsoft | Azure RTOS | ○ | ○ | ○ | ✕ | ✕ | ✕ | ✕ | ✕ | ○ |
| ETAS | ETAS RTA-OS | ○ | ○ | ○ | ✕ | ✕ | ✕ | ✕ | ✕ | ✕ |
| Sysgo | PikeOS | ○ | ○ | ✕ | ✕ | ✕ | ✕ | ✕ | ✕ | ✕ |
| PikeOS for MPU | ✕ | ✕ | ○ | ✕ | ✕ | ✕ | ✕ | ✕ | ✕ | |
| Lynx | LynxOS-178 | ✕ | ○ | ✕ | ✕ | ✕ | ✕ | ✕ | ✕ | ✕ |
| Weston Embedded | Cesium Cs/OS2、OS3 | ○ | ○ | ○ | ✕ | ✕ | ✕ | ✕ | ✕ | ✕ |
| DDC-I | Deos | ○ | ○ | ✕ |
✕ | ✕ | ✕ | ✕ | ✕ | ✕ |
| RTEMS | RTEMS | ○ | ○ | ○ | ✕ | ✕ | ○ | ○ | ✕ | ○ |
| eForce | uC3 | ○1 | ○1 | ✕ |
✕ | ✕ | ✕ | ✕ | ✕ | ✕ |
| ENEA | OSE | ○ | ○ | ✕ |
✕ | ✕ | ✕ | ✕ | ✕ | ✕ |
| イーソル株式会社 | eT-kernel | ○ | ○ | ✕ | ✕ | ✕ | ✕ | ✕ | ✕ | ✕ |
| Silicon Labs | Micrium uc/OS-II/OS-III5 | ○ | ○1 | ○ | ✕ | ✕ | ✕ | ✕ | ✕ | ✕ |
| Sciopta | Sciopta RTOS | ○1 | ○1 | ○ | ✕ | ✕ | ✕ | ✕ | ✕ | ✕ |
| Wittenstein | SafeRTOS | ○1 | ✕ | ✕ | ✕ | ✕ | ✕ | ✕ | ✕ | ✕ |
| Segger | emBOS | ○1 | ✕ | ✕ | ✕ | ✕ | ✕ | ✕ | ✕ | ✕ |
ほとんどの RTOS は、異なる安全規格に対してある程度の認証に対応しています。安全性に関する特定の要件がある場合は、OS ベンダーにお問い合わせください。
- SMP には非対応
- Micrium は現在メンテナンス モードのみで提供。現在は、Weston Embedded 社が「Cesium」というブランド名で OS を提供。
- アーキテクチャ サポート パッケージ
- 開発中
- レガシ製品のみ。サポートについては、Weston Embedded 社にお問い合わせください。
- AMD Arm ベースの組み込みハードウェア プラットフォーム向けの Zephyr OS の概要
詳細情報およびサポート リソースは、AMD Wiki のエンベデッド ソフトウェア エコシステム ページをご覧ください。
仮想化とハイパーバイザー
AMD は、顧客とパートナーが製品での高度なマルチ OS システム デザインを完成させるために必要な技術、資料、およびサポートを提供しています。AMD エコシステムが提供する製品は次のとおりです。
| ベンダー | 製品 | Versal アダプティブ SoC | Zynq UltraScale+ MPSoC | Zynq 7000 SoC |
|---|---|---|---|---|
| AMD | Xen ハイパーバイザー | ○ | ○ | ✕ |
| BlackBerry | QNX Hypervisor | ○ | ○ | ✕ |
| Wind River | Helix Virtualization Platform | ○ | ○ | ✕ |
| Sysgo | PikeOS Hypervisor | ✕ | ○ | ○ |
| Green Hills | Integrity Multivisor | ○1 | ○1 | ✕ |
| Lynx | LynxSecure Separation Kernel Hypervisor | ○ | ○ | ✕ |
| Dornerworks | SEL4 | ○ | ○ | ✕ |
| Siemens | Nucleus Hypervisor | ✕ | ○ | ○ |
| General Dynamics Mission Systems | OKL4 Microvisor | ✕ | ○ | ✕ |
- サービス契約が必要
詳細情報およびサポート リソースは、AMD Wiki のエンベデッド ソフトウェア エコシステム ページをご覧ください。
ベアメタルおよびライブラリ
AMD は、その他のライブラリおよびベアメタル ドライバーも提供しています。このライブラリは、AMD のデバイス専用に開発されています。
ベアメタル ドライバーおよびライブラリに関する詳細およびサポート リソースは、AMD Wiki のベアメタルおよびライブラリ ページをご覧ください。
ライブラリ
- Iwip: ネットワーク TCP/IP スタック
- xilisf: フラッシュ
- スタンドアロン BSP: ボード サポート パッケージ
- xilffs: FAT ファイル システム
- xilfpga: PL/FPGA 管理 (ビットストリームの読み込み)
- xilskey: セキュリティ xilsecu
- xilsecure: セキュリティ
- xilrsa: セキュリティ
エンベデッド Linux
オープンソースの Linux は、エンベデッド ハードウェアで最も一般的に使用されるオペレーティング システムであり、AMD は 2001 年の AMD Virtex™-II Pro FPGA リリース以来、自社の FPGA およびアダプティブ SoC デバイス向けに Linux サポートを提供しています。また、AMD は、PetaLinux や Yocto などのビルド環境に加えて、Canonical 社認定の Ubuntu® など AMD デバイスをターゲットにしたサードパーティ ベンダーによる商用サポートも提供しています。
AMD エンベデッド開発フレームワーク (EDF) と Yocto Project™
Yocto プロジェクトのページで説明されているとおり、「Yocto プロジェクトとは、ハードウェア アーキテクチャに関係なく、エンベデッド製品用の Linux ベースのカスタム システムを作成できるようサポートするオープンソースの共同プロジェクトです。このプロジェクトは、世界中の開発者がエンベデッド デバイス向けのカスタム Linux イメージを作成する際に利用できる技術、ソフトウェア スタック、コンフィギュレーション、またベスト プラクティスを共有するための手段を提供しています」AMD エンベデッド開発フレームワークは Yocto Project をベースにしています。AMD EDF の詳細をご覧ください。
AMD EDF および PetaLinux
どちらのフローも、AMD のプロセッシング システム上で組み込み Linux ソリューションをカスタマイズ、ビルド、および評価するために必要なものをすべて提供します。設計生産性の加速を目的とするこのソリューションは、AMD のハードウェア デザイン ツールと連動し、Versal アダプティブ SoC、Zynq UltraScale+ MPSoC、Zynq 7000 SoC、および MicroBlaze プロセッサ向けの Linux システム開発を容易にします。なお、PetaLinux ツールは既に AMD EDF に移行しています。詳細については、AMD PetaLinux Tools ページを参照してください。
Linux
| プロバイダー | 製品 | 配信 | Versal アダプティブ SoC | Zynq UltraScale+ MPSoC | Zynq 7000 SoC | MicroBlaze |
|---|---|---|---|---|---|---|
| AMD | AMD EDF | Yocto | ○ | ○ | ○ | ○* *MicroBlaze V のみ |
| PetaLinux | Yocto | ○ | ○ | ○ | ○ | |
| Yocto | Yocto | ○ | ○ | ○ | ○ | |
| Canonical | Ubuntu | Debian | ○1 | ○ | ✕ | ✕ |
| Wind River | Wind River Linux | Yocto | ○ | ○ | ○ | ✕ |
| Foundies.io | FoundriesFactory | Yocto | ○ | ○ | ✕ | ✕ |
| Siemens | Sokol Flex OS | Yocto | ✕ | ○ | ○ | ✕ |
| Sokol Omni OS | Debian | ✕ | ○ | ✕ | ✕ | |
| TimeSys | Linux Services | Yocto | ○ | ○ | ○ | ✕ |
| MontaVista | CGX/CGE | Yocto | ✕ | ○ | ○ | ✕ |
| ArchLinuxARM | ArchLinuxARM | N/A | ✕ | ✕ | ○ | ✕ |
- VCK190 向けベータ リリース
詳細情報およびサポート リソースは、AMD Wiki のエンベデッド ソフトウェア エコシステム ページをご覧ください。
オープンソース プロジェクト
QEMU
QEMU (Quick EMUlator) はオープンソースで、クロスプラットフォームのシステム エミュレーターです。主に x86 アーキテクチャの Linux オペレーティング システム上で実行され、AMD ZCU102 や VCK190 ボードなどフルシステム (一般的にゲストと呼ばれるもの) をエミュレートできます。
エミュレーションの対象となるのは、プロセッサ、ペリフェラル、開発ボード上のその他のハードウェアが含まれ、仮想化されたハードウェア上で実際のオペレーティング システムやアプリケーションを起動できます。
また、QEMU は CAN、Ethernet、USB などのインターフェイスを介してホスト マシンと通信できるため、ゲスト マシンはホストから実世界のデータをリアルタイムで受け取り、利用することが可能になります。
Xen ハイパーバイザー
Xen は、Xen プロジェクトによって開発および管理され、オープンソース コミュニティに提供されているタイプ 1 ハイパーバイザーです。Xen を使用することで、AMD Zynq UltraScale+ MPSoC 上で複数のオペレーティング システムのインスタンスやベアメタル アプリケーションを実行できます。Xen ハイパーバイザーの詳細は、Xen プロジェクトの「Getting Started」ページをご覧ください。
U-Boot
U-Boot は、Linux コミュニティで最も使用されているオープンソースの汎用ブートローダーです。AMD 製ボードで動作する U-Boot を含む Git リポジトリを https://github.com/Xilinx/u-boot-xlnx で提供しています。
Arm トラステッド ファームウェア
Arm Trusted Firmware は ARMv8-A アーキテクチャ向けのセキュア ソフトウェア リファレンスを提供します。また、PSCI (Power State Coordination Interface) などのさまざまなインターフェイス規格やセキュア モニター コードを実装できるため、非セキュアなソフトウェアとの連携を実現できます。AMD Arm トラステッド ファームウェアのポートは、https://github.com/Xilinx/arm-trusted-firmware で公開されています。