Zynq UltraScale+ MPSoC: エンベデッド デザイン チュートリアル (UG1209)

Size: px
Start display at page:

Download "Zynq UltraScale+ MPSoC: エンベデッド デザイン チュートリアル (UG1209)"

Transcription

1 Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 効率的なエンベデッドシステムを構築するためのハンディガイド この資料は表記のバージョンの英語版を翻訳したもので 内容に相違が生じる場合には原文を優先します 資料によっては英語版の更新に対応していないものがあります 日本語版は参考用としてご使用の上 最新情報につきましては 必ず最新英語版をご参照ください

2 改訂履歴 次の表に この文書の改訂履歴を示します セクション 改訂内容 2018 年 7 月 31 日バージョン 全体的なアップデート Vivado Design Suite および PetaLinux で検証 2018 年 6 月 5 日バージョン 全体的なアップデート Vivado Design Suite および PetaLinux で検証 セキュアブートシーケンス より詳細な情報および手順でアップデート 隔離設定 セクションをアップデート Zynq UltraScale+: エンベデッドデザインチュートリアル 2

3 目次 改訂履歴 第 1 章 : 概要このガイドについて Zynq UltraScale+ デバイスが提供するシングルチップソリューション Vivado ツールでデザインプロセスを加速 必要なセットアップ 第 2 章 : Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション Zynq UltraScale+ システムのコンフィギュレーション サンプルプロジェクト : Zynq UltraScale+ MPSoC の新規エンベデッドプロジェクトの作成 サンプルプロジェクト : Arm Cortex-A53 から Hello World アプリケーションを実行 その他の情報 第 3 章 : PS サブシステム用ソフトウェアのビルド Zynq UltraScale+ のプロセッシングユニット サンプルプロジェクト : SDK でのベアメタルアプリケーションプロジェクトの作成 サンプルプロジェクト : PetaLinux を使用した Linux イメージの作成 第 4 章 : SDK を使用したデバッグザイリンクスシステムデバッガー SDK を使用したソフトウェアのデバッグ ザイリンクスソフトウェアコマンドラインツール (XSCT) を使用したデバッグ 第 5 章 : ブートおよびコンフィギュレーションシステムソフトウェア APU の Linux と RPU のベアメタル SD ブートのブートシーケンス QSPI ブートモードのブートシーケンス JTAG を使用した QSPI ブートモードのブートシーケンス USB ブートモードのブートシーケンス セキュアブートシーケンス 第 6 章 : システムデザイン例サンプルデザイン 1: GPIO タイマー および割り込みの使用 サンプルデザイン 2: グラフィックおよびディスプレイポートベースのサブシステムのセットアップ例 付録 A: セキュアブートでの問題のデバッグ PUF 登録が実行されているかどうかの確認 ブートイメージの読み出し Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 3

4 付録 B: その他のリソースおよび法的通知ザイリンクスリソース ソリューションセンター Documentation Navigator およびデザインハブ このチュートリアルのデザインファイル ザイリンクスリソース トレーニングリソース お読みください : 重要な法的通知 Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 4

5 第 1 章 概要 このガイドについて このガイドでは Zynq UltraScale+ MPSoC を使用するザイリンクス Vivado Design Suite フローについて説明します サンプルプロジェクトは ザイリンクスの ZCU102 Rev1 評価ボードをターゲットとしています 使用したツールのバージョンは の Vivado およびザイリンクスソフトウェア開発キット (SDK) です 注記 : SDK を Vivado Design Suite の一部としてインストールするには インストーラーに SDK を含めるよう選択する必要があります 8 ページの ザイリンクスソフトウェア開発キット (SDK) を参照してください このガイドのサンプルプロジェクトは 64 ビットの Windows 7 オペレーティングシステムで実行するザイリンクスツール および 64 ビットの Linux オペレーティングシステムで実行する PetaLinux を使用して作成されています ほかの Windows インストールで別バージョンのツールを実行した場合 結果が異なることがあります サンプルプロジェクトは エンベデッドデザインの次の項目について紹介することに重点を置いています 注記 : チュートリアルで説明されているハードウェア上で Linux をブートする手順は リリースの PetaLinux ツール特定のものです このガイドの Linux 部分の演習を実行するには PetaLinux ツールを Linux ホストマシンにインストールする必要があります 第 2 章 Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション では Zynq UltraScale+ MPSoC プロセッシングシステム (PS) を使用するシステムの作成 および Arm Cortex -A53 と Cortex-R5 プロセッサ上での簡単な Hello World アプリケーションの実行について説明します この章では 簡単なデザインを例として使用し ハードウェアおよびソフトウェアツールの概要を説明します 第 3 章 PS サブシステム用ソフトウェアのビルド では アプリケーションプロセッシングユニット (APU) リアルタイムプロセッシングユニット (RPU) プラットフォーム管理ユニット (PMU) など プロセッシングシステム内のプロセッシングブロックに応じてソフトウェアを設定および構築する手順を説明します 第 4 章 SDK を使用したデバッグ では ザイリンクスのソフトウェア開発キット (SDK) のデバッグ機能を使用したソフトウェアのデバッグについて説明します この章では 前のデザインを使用してソフトウェアベアメタル (OS なし ) を実行し デバッグ方法を示します また Zynq UltraScale+ MPSoC のデバッグコンフィギュレーションについても説明します 第 5 章 ブートおよびコンフィギュレーション では Zynq UltraScale+ システム用にブートイメージを構成して作成することを目的としたコンポーネントの統合について説明します この章の主旨は ブートローダーを統合およびロードする方法を理解することです 第 6 章 システムデザイン例 では 第 3 章で設定したソフトウェアブロックを使用して Zynq UltraScale+ システムをどのように構築できるかを紹介します 付録 B その他のリソースおよび法的通知 では このガイドに関連するその他の資料へのリンクを提供します Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 5

6 第 1 章 : 概要 サンプルプロジェクト ツールを習得するための最良の方法は 使用してみることです このガイドでは 説明に従ってツールを操作していきます サンプルプロジェクトのセクションでは サンプルプロジェクトの仕様のほかに 背景で何が起こっているかも説明しています 各章およびサンプルプロジェクトは エンベデッドデザインのさまざまな側面を紹介することを目的としています サンプルプロジェクトを通して 各項目の学習を完了して次に進む形でフロー全体が説明されます その他の資料 その他の資料一覧は 付録 B その他のリソースおよび法的通知 に記載されています Zynq UltraScale+ デバイスが提供するシングルチップソリューション 次世代の Zynq デバイスである Zynq UltraScale+ MPSoC は タスクごとに最適なエンジンを使用するという考えに基づいて設計されています Zynq UltraScale+ は 多用途のプロセッシングシステム (PS) と柔軟性および性能の高いプログラマグルロジック (PL) をすべて 1 つのシステムオンチップ (SoC) に搭載したソリューションです Zynq UltraScale+ MPSoC PS ブロックは 次のエンジンで構成されています クワッドコア Arm Cortex-A53 ベースのアプリケーションプロセッシングユニット (APU) デュアルコア Arm Cortex-R5 ベースのリアルタイムプロセッシングユニット (RPU) Arm Mali-400 MP2 ベースのグラフィックスプロセッシングユニット (GPU) 専用のプラットフォーム管理ユニット (PMU) とコンフィギュレーションセキュリティユニット (CSU) ディスプレイポートおよび SATA を含む一連の高速ペリフェラル プログラマブルロジックには プログラマブルロジックセルに加え 次に示す高性能ペリフェラルも統合されています PCI Express 用統合ブロック Interlaken 用統合ブロック 100G Ethernet 用統合ブロック システムモニター ビデオコーデックユニット Zynq UltraScale+ の PS と PL は 高性能で高帯域幅のさまざまな PS-PL インターフェイスを使用して厳密にまたは柔軟に連動させることができます このような高度なデバイスのデザインプロセスを単純にするため ザイリンクスでは Vivado Design Suite ソフトウェア開発キット (SDK) および Linux 用 PetaLinux ツールを提供しています これらのツールは FPGA を結合した SoC デバイス向けのエンベデッドシステムデザインを容易にするために必要なものをすべて提供します これらのツールを組み合わせることで ハードウェアとソフトウェアのアプリケーションの設計 デバッグ コードの実行が可能になり デザインを実際のボードに移行して検証および評価を実行できます Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 6

7 第 1 章 : 概要 Vivado Design Suite ザイリンクスでは さまざまな開発システムツールを Vivado Design Suite にまとめて提供しています Vivado Design Suite の複数のエディションをエンベデッドシステム開発に使用できます このガイドでは System Edition を使用します 次の図に Vivado Design Suite の各エディションの機能を示します X-Ref Target - Figure 1-1 その他の Vivado コンポーネント 図 1-1: Vivado Design Suite のエディション Vivado のその他のコンポーネントは次のとおりです ザイリンクスエンベデッドプロセッサ用のエンベデッド / ソフト IP 資料 サンプルプロジェクト Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 7

8 第 1 章 : 概要 ザイリンクスソフトウェア開発キット (SDK) ソフトウェア開発キット (SDK) は Vivado を補完する統合開発環境で C/C++ エンベデッドソフトウェアアプリケーションの作成および検証に使用します SDK は Eclipse オープンソースフレームワークで構築されており ソフトウェア設計者や設計チームにとって使い慣れた環境です Vivado Design Suite をインストールする際に インストールに含める必要のあるオプションのソフトウェアツールとして SDK を選択できます 詳細は 10 ページの インストール要件 を参照してください Eclipse 開発環境の詳細は を参照してください SDK のその他のコンポーネントは次のとおりです エンベデッドソフトウェア開発用のドライバーおよびライブラリ Zynq UltraScale+ プロセッシングシステム内の Arm Cortex-A53 および Arm Cortex-R5 MPCore プロセッサをターゲットにした C/C++ ソフトウェア開発用 Linaro GCC コンパイラ PetaLinux ツール PetaLinux ツールセットは エンベデッド Linux システム開発キットです このツールにより多面的な Linux ツールフローが提供され Zynq UltraScale+ を含むザイリンクス Zynq デバイス向けの Linux OS 環境を完全にコンフィギュレーション ビルド および運用できます 詳細は PetaLinux ツール資料 : リファレンスガイド (UG1144) [ 参照 7] を参照してください PetaLinux ツールのデザインハブは PetaLinux ツールの情報および資料へのリンクを提供します 詳細は Documentation Navigator およびデザインハブ を参照してください Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 8

9 第 1 章 : 概要 Vivado ツールでデザインプロセスを加速 Vivado Design Suite ツールを使用してハードウェアにデザインソースを追加できます ツールには 既存のプロジェクトに IP を追加したり クロックやリセットなどのポートの接続を作成したりするプロセスを簡単に実行できる IP インテグレーターが含まれます Vivado ツールと IP インテグレーターは 一連のハードウェアシステム開発を完了までサポートします これには Zynq UltraScale+ プロセッシングシステムの仕様 ペリフェラル 各コンポーネントの接続 それらの詳細な設定などが含まれます SDK はソフトウェア開発に使用され Vivado Design Suite の一部として利用できます または ほかのザイリンクスツールをインストールせずに SDK のみをインストールして使用することも可能です SDK は ソフトウェアアプリケーションのデバッグにも使用できます Zynq UltraScale+ プロセッシングシステム (PS) は FPGA ( プログラマブルロジック (PL)) をプログラムしなくても ブートして動作させることができます ただし ファブリックでソフト IP を使用したり EMIO を用いて PS ペリフェラルを接続するには PL をプログラムする必要があります PL のプログラムには SDK まは Vivado ハードウェアマネージャーを使用できます エンベデッドデザインプロセスの詳細は Vivado Design Suite チュートリアル : エンベデッドプロセッサハードウェアデザイン (UG940) [ 参照 2] を参照してください Zynq UltraScale+ プロセッシングシステムの詳細は Zynq UltraScale+ プロセッシングシステム製品ガイド (PG201) [ 参照 9] を参照してください 必要なセットアップ ツールについて詳しく説明する前に ツールが適切にインストールされ 使用する環境がこのガイドのサンプルプロジェクトセクションに記載されている要件に一致するかを確認します ハードウェア要件 このガイドでは Zynq UltraScale+ ZCU102 評価ボードをターゲットとしています このチュートリアルのサンプルプロジェクトは ZCU102 Rev 1 ボードを使用してテストされています このガイドを活用するにあたって 評価ボードに同梱されている次のものを用意してください ZCU102 Rev1 評価ボード AC 電源アダプター (12 VDC) USB Type-A/Micro ケーブル (UART 通信用 ) USB-Micro JTAG 接続を介するプログラムおよびデバッグ用の USB Micro ケーブル Linux ブート用の SD-MMC フラッシュカード ターゲットボードとホストマシンの接続用のイーサネットケーブル ディスプレイポート (DP) 機能を備えたモニター (1080P 以上の解像度 ) ZCU102 ボードからのディスプレイ出力を DP モニターに接続するための DP ケーブル Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 9

10 第 1 章 : 概要 インストール要件 Vivado Design Suite および SDK Vivado HL System Edition ツールがインストール済みであることを確認してください ツールバージョンが最新であるかどうかは にアクセスして確認できます Vivado Design Suite および SDK ツールの両方がインストールされていることを確認してください Vivado Design Suite をインストールする際に 次の図に示すように [Software Development Kit (SDK)] をオンにすることで インストールに含める必要のあるオプションのソフトウェアツールとして SDK を選択できます SDK を単独でインストールするには [Software Development Kit (SDK)] のみをオンにし ほかのソフトウェア製品の選択をオフにしてインストーラーを実行します X-Ref Target - Figure 1-2 図 1-2: Vivado インストーラー - [Software Development Kit (SDK)] の選択 Vivado Design Suite と SDK のインストールの詳細は Vivado Design Suite ユーザーガイド : リリースノート インストールおよびライセンス (UG973) [ 参照 3] を参照してください 重要 : デフォルトでは インストールにより SDK 用のデスクトップショートカットは作成されません SDK バイナリは C:\Xilinx\SDK\2018.2\bin\xsdk.bat から起動可能です Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 10

11 第 1 章 : 概要 PetaLinux ツール このチュートリアルの Linux 部分の演習で実行する PetaLinux ツールをインストールします PetaLinux ツールは 次のいずれかが稼働している Linux ホストシステムで実行します RHEL 7.2/7.3 (64 ビット ) CentOS 7.2/7.3 (64 ビット ) Ubuntu /2 (64 ビット ) 注記 : 詳細は ザイリンクスアンサー を参照してください このツールは 専用 Linux ホストシステム または Windows 開発プラットフォーム上でこれらの Linux オペレーティングシステムのいずれかが稼働している仮想マシンを使用できます PetaLinux ツールを選択したシステムにインストールするには 次を実行する必要があります PetaLinux SDK ツールを ザイリンクスのウェブサイトからダウンロードする ZCU102 PetaLinux BSP (ZCU102 BSP ( プロダクションシリコン )) を のダウンロードページからダウンロードする ワークステーションまたは仮想マシンに共通のシステムパッケージおよびライブラリを追加する 詳細は PetaLinux ツール資料 : リファレンスガイド (UG1144) [ 参照 7] の インストール要件 を参照してください 必要な環境 8 GB RAM ( ザイリンクスツールで推奨される最小サイズ ) 2 GHz CPU クロックまたは同等の CPU ( 少なくとも 8 つのコア ) 100 GB のハードディスク空き容量 PetaLinux パッケージの展開 デフォルトでは パッケージが現在のディレクトリのサブディレクトリとしてインストールされます インストールパスを指定することもできます ダウンロードした PetaLinux インストーラーを実行します 注記 : PetaLinux のインストールパスは短くしてください パスが 255 文字を超えると PetaLinux のビルドがエラーになります bash>./petalinux-v final-installer.run PetaLinux は このコマンドの作業ディレクトリの直下にある petalinux-v final ディレクトリにインストールされます インストーラーをホームディレクトリ (/home/user) に置いた場合 PetaLinux は /home/user/petalinux-v final にインストールされます PetaLinux 環境のセットアップ プロジェクトの作成 およびプロジェクトの使用例の詳細は 第 3 章 PS サブシステム用ソフトウェアのビルド を参照してください PetaLinux のインストールおよび使用方法に関する詳細は PetaLinux ツール資料 : リファレンスガイド (UG1144) [ 参照 7] に記載されています Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 11

12 第 1 章 : 概要 ソフトウェアのライセンス ザイリンクスのソフトウェアには FLEXnet ライセンスが使用されています ソフトウェアを初めて起動する際 ライセンスの検証プロセスが実行されます ライセンス検証で有効なライセンスが検出されない場合 ライセンスウィザードに従ってライセンスを取得し インストールしたツールでそのライセンスを使用できるようにします ソフトウェアのフルバージョンが不要な場合は 評価版ライセンスを使用できます インストールの手順と詳細は Vivado Design Suite ユーザーガイド : リリースノート インストールおよびライセンス (UG973) [ 参照 3] を参照してください チュートリアルのデザインファイル このチュートリアルのデザインファイルのダウンロードについては 159 ページの このチュートリアルのデザインファイル を参照してください Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 12

13 第 2 章 Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション ザイリンクスの Vivado Design Suite の概要に続き このツールを活用して Zynq UltraScale+ MPSoC プロセッシングシステム (PS) を使用するエンベデッドシステムを開発する方法を説明します Zynq UltraScale+ は クワッドコア Arm Cortex -A53 APU デュアルコア Arm Cortex-R5 RPU Mali 400 MP2 GPU および複数のハード IP (Intellectual Property) コンポーネント およびプログラマブルロジック (PL) で構成されています これらは次の 2 つの方法で使用できます Zynq UltraScale+ PS は ファブリック IP を追加せずに スタンドアロンモードで使用できます IP コアをファブリックでインスタンシエートし PS と PL の組み合わせとして Zynq UltraScale+ PS に接続できます Zynq UltraScale+ システムのコンフィギュレーション Zynq UltraScale+ システムデザインの作成には ブートデバイスおよびペリフェラルを適切に選択する PS のコンフィギュレーションが含まれます PS ペリフェラルと利用可能な MIO の接続がデザイン要件を満たしていれば ビットストリームは必要ありません この章では ビットストリームを必要としない簡単な PS ベースのデザインの作成手順を説明します この章では 基本的な PS コンフィギュレーションに加え 保護されたメモリおよびペリフェラルを含むサブシステムを作成する隔離設定フローについても説明します PS ブロックでのこのアドバンスコンフィギュレーションモードを使用すると マスターと専用メモリおよびペリフェラルで構成されるサブシステムを設定できます この保護は Zynq UltraScale+ PS ブロックの XMPU および XPPU により提供されます 隔離設定ではコンポーネントの TrustZone 設定も可能であり セキュアおよび非セキュア環境でシステムを作成および設定できます Zynq UltraScale+: エンベデッドデザインチュートリアル 13

14 第 2 章 : Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション サンプルプロジェクト : Zynq UltraScale+ MPSoC の新規エンベデッドプロジェクトの作成 この例では Vivado Design Suite を起動し エンベデッドプロセッシングシステムのプロジェクトを最上位として作成します デザインの開始 1. Vivado Design Suite を起動します 2. [Quick Start] セクションの [Create Project] をクリックし New Project ウィザードを開きます 3. ウィザードの各ページで次の表の情報に基づいて設定を選択します 表 2-1: New Project ウィザードオプション ウィザードページ システムプロパティ 設定または使用するコマンド Project Name Project name edt_zcu102 Project Type Project location Create project subdirectory デザインのソースタイプを指定 RTL または合成済み EDIF から開始可能 Do not specify sources at this time C:/edt オン RTL Project オフ Add Sources 変更なし Add Constraints 変更なし Default Part Select Boards Display Name Zynq UltraScale+ ZCU102 Evaluation Board New Project Summary プロジェクトサマリプロジェクトサマリを確認 4. [Finish] をクリックします New Project ウィザードが閉じ 作成したプロジェクトが Vivado デザインツールで開きます Zynq UltraScale+: エンベデッドデザインチュートリアル 14

15 第 2 章 : Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション ブロックデザインプロジェクトの作成 IP インテグレーターを使用し ブロックデザインプロジェクトを作成します 1. Flow Navigator の [IP Integrator] [Create Block Design] をクリックします X-Ref Target - Figure 2-1 図 2-1: [Create Block Design] [Create Block Design] ダイアログボックスが開きます 2. [Create Block Design] ダイアログボックスで次のように選択します 表 2-2: Create Block Design ウィザードの設定 ウィザードページ システムプロパティ 設定または使用するコマンド Create Block Design Design name edt_zcu102 Directory <Local to Project> Specify source set Design Sources 3. [OK] をクリックします [Diagram] ウィンドウがこのデザインが空であることを示すメッセージと共に表示されます デザインを開始するには カタログから IP を追加します 4. [Add IP] をクリックします 5. [Search] フィールドに zynq と入力して Zynq デバイス IP を検索します 6. ZYNQ UltraScale+ MPSoC IP をダブルクリックし ブロックデザインに追加します 次の図に示すように Zynq UltraScale+ MPSoC プロセッシングシステム IP ブロックが [Diagram] ウィンドウに表示されます Zynq UltraScale+: エンベデッドデザインチュートリアル 15

16 第 2 章 : Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション X-Ref Target - Figure 2-2 図 2-2: Zynq UltraScale+ MPSoC プロセッシングシステム IP ブロック Vivado での Zynq UltraScale+ MPSoC プロセッシングシステムの設定 Zynq UltraScale+ MPSoC プロセッシングシステムをデザインに追加したので オプションを設定します 1. [Diagram] ウィンドウで ZYNQ UltraScale+ MPSoC プロセッシングシステムブロックをダブルクリックします 次の図に示す [Re-customize IP] ダイアログボックスが開きます デフォルトでは プロセッシングシステムにペリフェラルは接続されていません X-Ref Target - Figure 2-3 図 2-3: [Re-customize IP] ダイアログボックス Zynq UltraScale+: エンベデッドデザインチュートリアル 16

17 第 2 章 : Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション 2. [Cancel] をクリックすると デザインが変更されずにウィザードが閉じます ヒント : [Diagram] ウィンドウで 次の図に示すようなデザインアシスタントが使用可能であることを示すメッセージが表示されます デザインアシスタントが利用可能な場合 リンクをクリックすると Vivado によりデザインでこの手順が実行されます X-Ref Target - Figure 2-4 図 2-4: デザインアシスタントのリンク 3. ZCU102 ボード用に作成されたテンプレートを使用します [Run Block Automation] リンクをクリックします [Run Block Automation] ダイアログボックスが開きます 4. [OK] をクリックしてデフォルトのプロセッシングシステムオプションを選択し デフォルトのピン接続を作成します このコンフィギュレーションウィザードにより ZCU102 のボードレイアウトに従って MIO (Multiplexed I/O) ピンが割り当てられた複数のペリフェラルがプロセッシングシステムで有効になります たとえば UART0 および UART1 が有効になっています UART 信号は USB-UART コネクタに接続され UART を介して ZCU102 ボードの USB コンバーターチップに接続されます 5. これを確認するには ブロック図で Zynq UltraScale+ MPSoC プロセッシングシステムブロックをダブルクリックします Zynq UltraScale+ MPSoC のブロック図でペリフェラル名の横に表示されているチェックマークは それらの I/O ペリフェラルがアクティブであることを示します X-Ref Target - Figure 2-5 図 2-5: アクティブなペリフェラルが示された I/O ユニット Zynq UltraScale+: エンベデッドデザインチュートリアル 17

18 第 2 章 : Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション 6. ブロック図で緑色で示されている I/O ペリフェラルの 1 つをクリックします 選択したペリフェラルが [I/O Configuration] ページに表示されます X-Ref Target - Figure 2-6 図 2-6: [Re-customize IP] ダイアログボックスの [I/O Configuration] ページ このページでは 低速ペリフェラルおよび高速ペリフェラルを設定できます ここでは ZCU102 用のボードプリセットを使用して基本的な接続を有効にした状態で続けます 7. Page Navigator で [PS-PL Configuration] をクリックします 8. [PS-PL Configuration] で [PS-PL Interfaces] [Master Interface] を展開表示します このサンプルプロジェクトでは PL にデザインが読み込まれていないため PS-PL インターフェイスを無効にできます ここでは AXI HPM0 FPD および AXI HPM1 FPD マスターインターフェイスを無効にできます Zynq UltraScale+: エンベデッドデザインチュートリアル 18

19 第 2 章 : Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション 9. [AXI HPM0 FPD] および [AXI HPM1 FPD] をオフにします PS-PL インターフェイスは次の図のようになります X-Ref Target - Figure 2-7 図 2-7: [PS-PL Configuration] 10. [OK] をクリックして [Re-customize IP] ダイアログボックス閉じます 隔離設定 Zynq UltraScale+ のザイリンクスメモリ保護ユニット (XMPU) およびザイリンクスペリフェラル保護ユニット (XPPU) は メモリおよびペリフェラルのハードウェア保護を提供します これらの保護ユニットは TrustZone (TZ) および Zynq UltraScale+ MPSoC SMMU で提供される隔離を補足します これらの保護ユニットは Zynq UltraScale+ MPSoC PS IP ウィザードの [Isolation Configuration] ページで設定します 隔離設定は初期化ファイルとしてエクスポートされ ブートローダー ( この場合は FSBL ( 第 1 段階ブートローダー )) の一部として読み込まれます 詳細は Zynq UltraScale+ MPSoC テクニカルリファレンスマニュアル (UG1085) [ 参照 5] を参照してください 次の手順に従って 隔離に基づく単純なシステムを作成します [Switch to the Advanced Mode] をオンにして [Isolation Configuration] ページを表示してください 1. ブロック図で ZYNQ UltraScale+ MPSoC プロセッシングシステムブロックをダブルクリックします 2. [Switch To Advanced Mode] をオンにします 保護境界がブロックデザインに赤色のブロックで示されます Zynq UltraScale+: エンベデッドデザインチュートリアル 19

20 第 2 章 : Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション X-Ref Target - Figure [Isolation Configuration] をクリックし [Enable Isolation] をオンにします 4. [Enable Secure Debug] をオンにして DAP マスターがシステム内のすべてのスレーブにアクセスできるようにします これは 開発段階で簡単なデバッグを実行するためにのみオンにし プロダクションリリースではオフにできます PMU サブシステムがデフォルトで有効になっています これはカスタムシステムコンフィギュレーションに一致するよう変更できますが PMU ファームウェアサブシステムは必要な場合以外は変更しないことをお勧めします PMU は pmu_subsystem の XMPU/XPPU マスターとして設定されています このチュートリアルでは APU サブシステムと RPU サブシステムの間の隔離に焦点を置きます RPU サブシステムの作成 次の手順に従って 新しい RPU システムを作成します 図 2-8: PS 設定のアドバンスモード 1. [+] ボタンをクリックし [Add New Subsystem] をクリックします X-Ref Target - Figure 2-9 図 2-9: 新しいサブシステムの追加 2. 表示されたダイアログボックスに RPU と入力し Enter キーを押します 3. [+] ボタンをクリックし [Add New Subsystem] をクリックします 4. 表示されたダイアログボックスに APU と入力し Enter キーを押します Zynq UltraScale+: エンベデッドデザインチュートリアル 20

21 第 2 章 : Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション 5. [RPU] を右クリックして [Add Master] をクリックし [Processors] [RPU0] をダブルクリックします デフォルトでは RPU0 マスターには Secure Trustzone が設定されています 6. [RPU] を右クリックして [Add Slaves] をクリックし [Memory] [DDR_LOW] をダブルクリックします DDR のサイズ ([Size] 列 ) を 240 MB に変更します 開始アドレス ([Start Address] 列 ) を 0x に設定します 7. [Memory] を右クリックして [Add] をクリックし [DDR_LOW] をダブルクリックします DDR のサイズ ([Size] 列 ) を 240 MB に変更します 開始アドレス ([Start Address] 列 ) を 0x に設定します 8. [RPU] を右クリックして [Add Slaves] をクリックし [Peripherals] [UART1] をダブルクリックします 9. [Peripherals] を右クリックして [Add] をクリックし [GPIO] をダブルクリックします 10. [Peripherals] を右クリックして [Add] をクリックし [SWDT0] をダブルクリックします 11. [RPU] を右クリックして [Add Slaves] をクリックし [Control and Status Registers] [CRF_APB] をダブルクリックします 12. [Control and Status Registers] を右クリックして [Add] をクリックし [RPU] をダブルクリックします 13. [Control and Status Registers] を右クリックして [Add] をクリックし [EFUSE] をダブルクリックします 14. [Control and Status Registers] を右クリックして [Add] をクリックし [IOU_SLCR] をダブルクリックします 15. [Control and Status Registers] を右クリックして [Add] をクリックし [CRL_APB] をダブルクリックします 注記 : [Control and Status Registers] の [TZ Settings] をすべて [Secure] に変更します APU サブシステムの作成 次の手順に従って 新しい APU システムを作成します 1. [APU] を右クリックして [Add Master] をクリックし [Processors] [APU] をダブルクリックします 2. [APU] を右クリックして [Add Slaves] をクリックし [Memory] [DDR_LOW] をダブルクリックします DDR のサイズ ([Size] 列 ) を 1750 MB に変更します 3. 開始アドレス ([Start Address] 列 ) を 0x0 に設定します 4. [Memory] を右クリックして [Add] をクリックし [DDR_LOW] をダブルクリックします DDR のサイズ ([Size] 列 ) を 1 MB に変更します 5. 開始アドレス ([Start Address] 列 ) を 0x6FF00000 に設定します 注記 : DDR 空間のこの 1 MB は APU および RPU の両方からアクセスされます 6. [APU] を右クリックして [Add Slaves] をクリックし [Peripherals] [GPIO] をダブルクリックします 7. [Peripherals] を右クリックして [Add] をクリックし [SWDT1] をダブルクリックします 8. [APU] を右クリックして [Add Slaves] をクリックし [Control and Status Registers] [CRF_APB] をダブルクリックします 9. [Control and Status Registers] を右クリックして [Add] をクリックし [RPU] をダブルクリックします 10. [Control and Status Registers] を右クリックして [Add] をクリックし [EFUSE] をダブルクリックします 11. [Control and Status Registers] を右クリックして [Add] をクリックし [IOU_SLCR] をダブルクリックします 12. [Control and Status Registers] を右クリックして [Add] をクリックし [CRL_APB] をダブルクリックします 注記 : [Control and Status Registers] の [TZ Settings] をすべて [Secure] に変更します Zynq UltraScale+: エンベデッドデザインチュートリアル 21

22 第 2 章 : Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション DMA_Masters サブシステムの作成 次の手順に従って 新しい USB システムを作成します 1. [+] ボタンをクリックし [Add New Subsystem] をクリックします 2. 表示されたダイアログボックスに DMA_Masters と入力し Enter キーを押します 3. [DMA_Masters] を右クリックして [Add Master] をクリックし [Processors] [APU] をダブルクリックします 4. [DMA_Masters] を右クリックして [Add Master] をクリックし [Processors] [USB0] をダブルクリックします 5. [DMA_Masters] を右クリックして [Add Master] をクリックし [I/O Peripherals] [SD1] をダブルクリックします 6. [DMA_Masters] を右クリックして [Add Master] をクリックし [Memory Interfaces] [QSPI] をダブルクリックします 7. [DMA_Masters] を右クリックして [Add Slaves] をクリックし [Memory] [DDR_LOW] をダブルクリックします DDR のサイズ ([Size] 列 ) を 1750 MB に変更します 8. 開始アドレス ([Start Address] 列 ) を 0x0 に設定します 9. [Memory] を右クリックして [Add] をクリックし [DDR_LOW] をダブルクリックします DDR のサイズ ([Size] 列 ) を 1 MB に変更します 10. 開始アドレス ([Start Address] 列 ) を 0x6FF00000 に設定します X-Ref Target - Figure 2-10 図 2-10: APU の隔離設定レジスタ Zynq UltraScale+: エンベデッドデザインチュートリアル 22

23 第 2 章 : Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション X-Ref Target - Figure 2-11 図 2-11: RPU の隔離設定レジスタ X-Ref Target - Figure 2-12 図 2-12: DMA_Masters の隔離設定レジスタ Zynq UltraScale+: エンベデッドデザインチュートリアル 23

24 第 2 章 : Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション 11. [OK] をクリックして [Re-customize IP] ダイアログボックス閉じます デザインおよび接続ポートの検証 次の手順に従ってデザインを検証します 1. [Diagram] ウィンドウの空白部分を右クリックして [Validate Design] をクリックします または F6 キーを押します 2. 検証が成功し デザインにエラーや重大な警告がないことを示すメッセージダイアログボックスが表示されます 3. [OK] をクリックしてメッセージを閉じます 4. [Block Design] 環境の [Sources] ウィンドウをクリックします 5. [Hierarchy] タブをクリックします 6. [Design Sources] の下の [edt_zcu102] を右クリックし [Create HDL Wrapper] をクリックします [Create HDL Wrapper] ダイアログボックスが開きます このダイアログボックスを使用して プロセッササブシステム用の HDL ラッパーファイルを作成します ヒント : HDL ラッパーは デザインツールに必要な最上位エンティティです 7. [Let Vivado manage wrapper and auto-update] をオンにし [OK] をクリックします 8. [Sources] ウィンドウで [Design Sources] の下にある [edt_zcu102_wrapper] を展開します 9. [edt_zcu102_i - edt_zcu102 (edt_zcu102.bd)] という最上位ブロック図を右クリックし [Generate Output Products] をクリックします 次に示す [Generate Output Products] ダイアログボックスが開きます X-Ref Target - Figure 2-13 図 2-13: [Generate Output Products] ダイアログボックス Zynq UltraScale+: エンベデッドデザインチュートリアル 24

25 第 2 章 : Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション 注記 : Linux ホストマシンで Vivado Design Suite を実行している場合は [Run Settings] の下に追加オプションが表示されることがあります その場合は デフォルト設定で続行します 10. [Generate] をクリックします この手順では 選択したソースに必要なすべての出力ファイルを作成します たとえば IP プロセッサシステムに対する制約を手動で作成する必要はありません [Generate Output Products] を実行すると Vivado ツールでプロセッササブシステム用の XDC ファイルが自動的に生成されます 11. Out-of-context module run was launched for generating output products ( 出力ファイル生成のためアウトオブコンテキストモジュール run が実行されました ) というメッセージが表示されたら [OK] をクリックします 12. [Generate Output Products] の処理が完了したら [OK] をクリックします 13. [Block Design] の [Sources] ウィンドウで [IP Sources] タブをクリックします 次の図に示すように 生成した出力ファイルが表示されます X-Ref Target - Figure 2-14 図 2-14: [IP Sources] の下に生成された出力 Zynq UltraScale+: エンベデッドデザインチュートリアル 25

26 第 2 章 : Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション ハードウェアの SDK へのエクスポート この例では Vivado から SDK を起動します 1. [File] [Export] [Export Hardware] をクリックします [Export Hardware] ダイアログボックスが開きます [Export to] フィールドはデフォルトオプションの [<Local to Project>] のままにします X-Ref Target - Figure [OK] をクリックします 図 2-15: ハードウェアを SDK へエクスポートする ヒント : ハードウェアは ZIP ファイル (<project wrapper>.hdf) でエクスポートされます SDK が起動するとファイルは自動的に解凍され SDK プロジェクトハードウェアプラットフォームフォルダーにすべてのファイルが含まれます 3. [File] [Launch SDK] をクリックします [Launch SDK] ダイアログボックスが開きます ヒント : SDK はスタンドアロンモードで起動することもでき エクスポートされたハードウェアを使用できます その場合 SDK を起動し エクスポートされた新しいターゲットハードウェアを新しいプロジェクトの作成時にポイントします 4. [Exported location] および [Workspace] には デフォルト設定を選択します X-Ref Target - Figure [OK] をクリックします 図 2-16: [Launch SDK] ダイアログボックス SDK が開きます SDK を起動するとハードウェア記述ファイルが自動的に読み込まれます Zynq UltraScale+: エンベデッドデザインチュートリアル 26

27 第 2 章 : Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション 次の図に示すように [system.hdf] にプロセッシングシステム全体のアドレスマップが表示されます X-Ref Target - Figure 2-17 ここまでの結果 Vivado によって ソフトウェアを開発するための選択したワークスペースにハードウェア仕様がエクスポートされました [<Local to Project>] を選択していれば Vivado プロジェクトフォルダーに新しいワークスペースが作成されます ワークスペース名は <project_name>.sdk です この例では C:\edt\edt_zcu102\edt_zcu102.sdk という名前のワークスペースが作成されます Vivado デザインツールにより デザインのハードウェアプラットフォーム仕様 ( この例では system.hdf) が SDK にエクスポートされました system.hdf のほかに 次のファイルが SDK にエクスポートされます psu_init.c psu_init.h psu_init.tcl psu_init_gpl.c psu_init_gpl.h psu_init.html 図 2-17: SDK の [system.hdf] のアドレスマップ system.hdf ファイルは デフォルトでは SDK の起動時に開かれます このファイルから読み出されるシステムのアドレスマップがデフォルトで SDK ウィンドウに表示されます psu_init.c psu_init.h psu_init_gpl.c および psu_init_gpl.h の各ファイルには Zynq UltraScale+ MPSoC プロセッシングシステムの初期化コードと DDR クロック 位相ロックループ (PLL) および I/O の初期化設定が含まれます SDK は アプリケーションがプロセッシングシステムの最上位で実行可能となるように これらの設定をプロセッシングシステムの初期化時に使用します プロセッシングシステムの設定には ZCU102 評価ボード用に固定されているものもあります Zynq UltraScale+: エンベデッドデザインチュートリアル 27

28 第 2 章 : Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション 次の手順 これで SDK を使用してプロジェクトのソフトウェア開発を開始できます 次のセクションでは ハードウェアプラットフォーム向けのソフトウェアアプリケーションの作成に役立つ情報を提供します サンプルプロジェクト : Arm Cortex-A53 から Hello World アプリケーションを実行 この例では ザイリンクス SDK の Xilinx System Debugger を使用して ボード設定の管理 ケーブル接続 PC を介したボードへの接続 および JTAG モードで Arm Cortex-A53 から簡単な hello world ソフトウェアアプリケーションを実行する方法を説明します 1. 電源ケーブルをボードに接続します 2. USB Micro ケーブルで Windows ホストマシンとターゲットボードの J2 USB JTAG コネクタを接続します 3. USB Micro ケーブルで Windows ホストマシンとターゲットボードのコネクタ J83 を接続します これは USB からシリアルへの転送に使用されます 重要 : 次の図に示すように SW6 スイッチが JTAG ブートモードに設定されていることを確認します X-Ref Target - Figure 2-18 図 2-18: JTAG ブートモードの SW6 スイッチ設定 Zynq UltraScale+: エンベデッドデザインチュートリアル 28

29 第 2 章 : Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション 4. 次の図に示すスイッチを使用して ZCU102 ボードに電源を投入します X-Ref Target - Figure 2-19 図 2-19: ZCU102 ボードの電源スイッチ 注記 : SDK が既に起動している場合は 手順 6 に進みます 5. SDK を開き プロジェクトファイルへのワークスペースパス ( この例では C:\edt\edt_zcu102\edt_zcu102.sdk) を設定します または デフォルトのワークスペースを使用して SDK を開き 後で [File] [Switch Workspace] をクリックして正しいワークスペースに切り替えることもできます 6. システムで割り当てられている COM ポートのシリアル通信ユーティリティを開きます SDK ではシリアルターミナルユーティリティが提供されており これをチュートリアルを通して使用します [Window] [Show View] [Other] [Terminal] をクリックしてこのユーティリティを開きます 7. [Connect] ボタンをクリックし シリアルコンフィギュレーションを設定して接続します X-Ref Target - Figure 2-20 図 2-20: [Terminal] ウィンドウのヘッダーバー 8. 変更するには [Disconnect] ボタンをクリックして接続を解除します 9. [Settings] ボタンをクリックして [Terminal Settings] ダイアログボックスを開きます Zynq UltraScale+: エンベデッドデザインチュートリアル 29

30 第 2 章 : Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション 10. デバイスマネージャーでポートの詳細を確認します UART-0 ターミナルは Interface-0 の COM ポートに対応します この例では デフォルトで UART-0 ターミナルが設定されているため COM ポートに Interface-0 のポートを選択します 次の図に Zynq UltraScale+ MPSoC プロセッシングシステム用の標準的な設定を示します X-Ref Target - Figure [File] [New] [Application Project] をクリックします New Project ウィザードが開きます 図 2-21: [Terminal Settings] ダイアログボックス 12. ウィザードの各ページで次の表の情報に基づいて設定を選択します 表 2-3: スタンドアロン APU アプリケーションの新規アプリケーションプロジェクト設定 ウィザードページシステムプロパティ設定または使用するコマンド Application Project Project name test_a53 Use default location OS Platform Hardware Platform Processor Language Compiler Hypervisor Guest オン standalone edt_zcu102_wrapper_hw_platform_0 psu_cortexa53_0 Board Support Package [Create New] をオンにして test_a53_bsp と入力 Templates Available Templates Hello World C 64-bit No test_a53 アプリケーションプロジェクトおよび test_a53_bsp ボードサポートパッケージ (BSP) プロジェクトが作成され [Project Explorer] ビューに表示されます これら両プロジェクトが自動的にコンパイルされ ELF ファイルが作成されます Zynq UltraScale+: エンベデッドデザインチュートリアル 30

31 第 2 章 : Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション 13. [test_a53] を右クリックして [Run as] [Run Configurations] をクリックします 14. [Xilinx C/C++ application (System Debugger)] を右クリックして [New] をクリックします test_a53 Debug という名前の新しい実行コンフィギュレーションが作成されます アプリケーションに関連するコンフィギュレーションは 起動コンフィギュレーションの [Main] タブに自動入力されます 15. [Target Setup] タブをクリックし 設定を確認します 初期化 Tcl ファイルへのコンフィギュレーションパスがあることに注目してください ここでは psu_init.tcl へのパスです このファイルは デザインを SDK にエクスポートした際にエクスポートされたもので プロセッシングシステムの初期化情報を含みます 16. ボードの電源を切って入れ直します 17. [Run] をクリックします 次の図に示すように [Terminal 1] のシリアル通信ユーティリティに Hello World と表示されます X-Ref Target - Figure 2-22 注記 : Zynq UltraScale+ 評価ボードで上記のソフトウェアアプリケーションを実行するのに ビットストリームをダウンロードする必要はありませんでした Arm Cortex-A53 クワッドコアは既にプロセッシングシステムに実装されています 簡単なアプリケーションを実行するこのシステムの基本的な初期化は デバイス初期化 Tcl スクリプトで実行されます 18. ボードの電源を切って入れ直し 次のセクションの手順用に同じ接続とボード設定を保持します ここまでの結果 図 2-22: シリアルターミナルへの出力 アプリケーションソフトウェアによって Hello World の文字列が PS の UART0 ペリフェラルに送信されました UART0 から Hello World の文字列がホストマシンで動作しているシリアルターミナルアプリケーションにバイトごとに送信され 文字列として表示されます Zynq UltraScale+: エンベデッドデザインチュートリアル 31

32 第 2 章 : Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション その他の情報 ボードサポートパッケージ ボードサポートパッケージ (BSP) はハードウェアプラットフォームまたはボードのサポートコードで 電源投入時の基本的な初期化およびソフトウェアアプリケーションのハードウェアプラットフォームまたはボード上での実行をサポートします これは ブートローダーおよびデバイスドライバーを使用するオペレーティングシステム固有のものにできます ヒント : BSP を再生成する場合は [Project Explorer] ビューに表示される BSP プロジェクトを右クリックし [Re-generate BSP Sources] をクリックします プロジェクトの作成後にターゲット BSP を変更する場合は 次を実行します 1. ターゲット用に新規のボードサポートパッケージを作成します 2. [Project Explorer] ビューで アプリケーションプロジェクトを右クリックして [Change Referenced BSP] をクリックし 新しい BSP を指定します スタンドアロン OS スタンドアロンはシンプルな下位ソフトウェア層です キャッシュ 割り込み 例外などの基本的なプロセッサ機能 およびホスト環境の基本的なプロセッサ機能へのアクセスを提供します これらの機能には 標準の入力 / 出力 プロファイル 停止 終了が含まれます これはセミホスト型のシングルスレッド環境です 重要 : この章で実行したアプリケーションは スタンドアロン OS 上に作成されています ソフトウェアアプリケーションがターゲットにする BSP は 新規アプリケーションプロジェクトを作成するプロセスで選択します プロジェクトの作成後にターゲット BSP を変更する場合は ソフトウェアアプリケーションを右クリックして [Change Referenced BSP] をクリックします Zynq UltraScale+: エンベデッドデザインチュートリアル 32

33 第 3 章 PS サブシステム用ソフトウェアのビルド この章では PS サブシステム用にソフトウェアを設定およびビルドする手順を示します Vivado Design Suite で設定した Zynq UltraScale + ハードウェアプラットフォーム ( ハードウェア定義ファイル ) を使用します 第 2 章では Vivado でハードウェアプラットフォームを作成し エクスポートしました このハードウェアプラットフォームには ハードウェアハンドオフファイル プロセッシングシステム初期化ファイル (psu_init) および PL ビットストリームが含まれます この章では ハードウェアプラットフォームをザイリンクス SDK および PetaLinux で使用し プロセッシングシステム用にソフトウェアを設定します この章では 2 つの重要な点について説明します 1 つ目は この後の章で使用可能なソフトウェアコンポーネントのビルドおよび設定に役立つ情報を提供します 2 つ目は 特定の PS サブシステムをビルドする手順を説明します Zynq UltraScale+ のプロセッシングユニット Zynq UltraScale+ にあるプロセッシングシステムの主なプロセッシングユニットは次のとおりです アプリケーションプロセッシングユニット : クワッドコア Arm Cortex -A53 MPCore プロセッサ リアルタイムプロセッシングユニット : デュアルコア Arm Cortex-R5 MPCore プロセッサ グラフィックスプロセッシングユニット : Arm Mali 400 MP2 GPU プラットフォーム管理ユニット (PMU) このセクションでは 上記のユニットをシステムソフトウェアを使用して設定する方法を説明します これは FSBL ( 第 1 段階ブートローダー ) を使用するブートレベルで実行するか またはプラットフォーム管理ユニット (PMU) に適用可能なシステムファームウェアを使用して実行できます SDK で Zynq UltraScale+ ハードウェアプラットフォームを使用して 次のタスクを実行します 1. Arm Cortex-A53 64 ビットクワッドコアプロセッシングユニット (APU) および Cortex-R5 デュアルコアリアルタイムプロセッシングユニット (RPU) 用の FSBL ( 第 1 段階ブートローダー ) を作成します 2. APU および RPU 用のベアメタルアプリケーションを作成します 3. ザイリンクス SDK を使用してプラットフォーム管理ユニット (PMU) 用にプラットフォーム管理ユニットファームウェアを作成します ベアメタルアプリケーションのほかに APU 用の U-Boot および Linux イメージのビルドについても説明します Linux イメージおよび U-Boot は PetaLinux ビルドシステムを使用して設定およびビルドできます Zynq UltraScale+: エンベデッドデザインチュートリアル 33

34 第 3 章 : PS サブシステム用ソフトウェアのビルド サンプルプロジェクト : SDK でのベアメタルアプリケーションプロジェクトの作成 このサンプルプロジェクトでは ザイリンクス SDK を起動し Vivado Design Suite で作成した Zynq UltraScale+ 用ハードウェアプラットフォームを使用してベアメタルアプリケーションを作成します 35 ページの図 3-1 に示す SDK の New Project ウィザードでは Zynq UltraScale+ デバイスのプロセッシングサブシステム用にベアメタル ( スタンドアロン ) アプリケーションを作成するためのオプションを示しています Arm Cortex-A53 ベースの APU 用 FSBL の作成 第 1 段階ブートローダー (FSBL) の作成から開始します Zynq UltraScale+ は APU または RPU 上で実行する FSBL をサポートします これにより 必要な Arm プロセッサに FSBL をロードでき その FSBL で必要なアプリケーションまたは第 2 段階ブートローダーを必要なコアにロードできます この例では Arm Cortex-A53 コア 0 をターゲットとした FSBL イメージを作成します 1. SDK が起動していない場合は起動します 2. 第 2 章で作成したプロジェクトに基づいてワークスペースパスを設定します たとえば C:\edt\edt_zcu102\edt_zcu102.sdk です 3. [File] [New] [Application Project] をクリックします New Project ウィザードが開きます Zynq UltraScale+: エンベデッドデザインチュートリアル 34

35 第 3 章 : PS サブシステム用ソフトウェアのビルド X-Ref Target - Figure 3-1 図 3-1: New Project ウィザードの [Application Project] ページ 4. New Project ウィザードの各ページを次の表の情報に基づいて設定します 表 3-1: 新しいアプリケーションプロジェクト作成時の設定 - FSBL_A53 ウィザードページ システムプロパティ 設定またはコマンド Application Project Project name fsbl_a53 Use default location オン OS Platform standalone Hardware Platform edt_zcu102_wrapper_hw_platform_0 Processor psu_cortexa53_0 Language C Compiler 64-bit Hypervisor Guest No Board Support Package [Create New] をオンにして a53_bsp と入力 [Next] をクリック Templates Available Templates Zynq MP FSBL Zynq UltraScale+: エンベデッドデザインチュートリアル 35

36 . 第 3 章 : PS サブシステム用ソフトウェアのビルド 5. [Templates] ページで [Zynq MP FSBL] を選択します X-Ref Target - Figure [Finish] をクリックします ボードサポートパッケージおよび FSBL アプリケーションが作成されます FSBL はデフォルトで基本メッセージを表示するように設定されています 次に FSBL ビルド設定を変更してデバッグ出力を有効にします FSBL のデバッグオプションの一覧は [fsbl_a53] [src] [xfsbl_debug.h] ファイルを参照してください この例では 次を実行して FSBL_DEBUG_INFO を有効にします 1. [Project Explorer] ビューで fsbl_a53 アプリケーションを右クリックします 2. [C/C++ Build] [Settings] をクリックします 3. [Settings] [Tool Settings] [Symbols] をクリックします 4. [Add] をクリックします 図 3-2: New Project ウィザードの [Templates] ページ Zynq UltraScale+: エンベデッドデザインチュートリアル 36

37 第 3 章 : PS サブシステム用ソフトウェアのビルド 5. FSBL_DEBUG_INFO と入力します X-Ref Target - Figure 3-3 図 3-3: [Enter Value] ダイアログボックス 次の図に示すようにシンボルを設定します X-Ref Target - Figure 3-4 図 3-4: Fsbl_a53 アプリケーションのシンボルの設定 6. [OK] をクリックし 変更を適用して [Settings] ダイアログボックスを閉じます 7. fsbl_a53 アプリケーションを右クリックして [Clean Project] をクリックします 注記 : [Project] [Build Automatically] をクリックすると アプリケーションが自動的にビルドされます 8. FSBL の実行ファイルが [fsbl_a53] [debug] [fsbl_a53.elf] に保存されます このチュートリアルの fsbl_a53 というアプリケーション名は FSBL が APU (Arm Cortex-A53 コア ) をターゲットにしていることを示しています 9. ファイルを保存し fsbl_a53 アプリケーションを再ビルドします 注記 : システムデザインで必要な場合は FSBL を RPU 上で実行するようにすることができ これによりソフトウェアスタックの残りを RPU および APU に読み込むことができます Zynq UltraScale+: エンベデッドデザインチュートリアル 37

38 第 3 章 : PS サブシステム用ソフトウェアのビルド Arm Cortex-R5 ベースの RPU 用 FSBL の作成 次の手順に従って Arm Cortex-R5 コア用に FSBL を作成することもできます 1. [File] [New] [Application Project] をクリックして New Project ウィザードを開きます X-Ref Target - Figure 3-5 図 3-5: New Project ウィザードの [Application Project] ページ Zynq UltraScale+: エンベデッドデザインチュートリアル 38

39 第 3 章 : PS サブシステム用ソフトウェアのビルド 2. New Project ウィザードの各ページを次の表の情報に基づいて設定します 表 3-2: 新しいアプリケーションプロジェクト作成時の設定 - FSBL_R5 ウィザードページ システムプロパティ 設定またはコマンド Application Project Project name fsbl_r5 Use default location オン OS Platform standalone Hardware Platform edt_zcu102_wrapper_hw_platform_0 Processor psu_cortexr5_0 Language C Board Support Package [Create New] をオンにして r5_bsp と入力 [Next] をクリック Templates Available Templates Zynq MP FSBL 3. [Finish] をクリックします これにより ボードサポートパッケージ および Zynq UltraScale+ RPU Arm Cortex-R5 コア 0 をターゲットにした FSBL アプリケーションが作成されます Arm Cortex-A53 ベースの APU 用ベアメタルアプリケーションの作成 FSBL が作成されたので Arm A53 コア 0 をターゲットにした簡単なベアメタルアプリケーションを作成できます この例では 第 2 章の サンプルプロジェクト : Arm Cortex-A53 から Hello World アプリケーションを実行 で作成した test_a53 アプリケーションを使用します test_a53 では簡単な Hello World アプリケーションを選択しました このアプリケーションは APU または RPU 上で動作している FSBL により APU にロードできます SDK では Zynq UltraScale+ デバイスでのアプリケーション実行を簡単に開始できるようにため ほかにもベアメタルアプリケーションテンプレートがいくつか提供されています また [Available Templates] から [Empty Application] を選択し アプリケーションフォルダー構造にカスタムアプリケーションコードをコピーまたは作成することもできます Zynq UltraScale+: エンベデッドデザインチュートリアル 39

40 第 3 章 : PS サブシステム用ソフトウェアのビルド アプリケーションソースコードの編集 1. [Project Explorer] ビューで [Test_a53] [src] [helloworld.c] をクリックします test_a53 アプリケーション用の helloworld.c ソースファイルが開きます 2. print コマンドの引数を次のように編集します Print("Hello World from APU\n\r"); X-Ref Target - Figure 3-6 図 3-6: Application Source Code Snippet: Print Command 3. Ctrl + S キーを押して変更を保存します 4. test_a53 プロジェクトを右クリックし [Build Project] をクリックします 5. アプリケーションがコンパイルされ リンクが正常に確立され test_a53.elf ファイルが [test_a53] [Debug] フォルダーに生成されていることを確認します X-Ref Target - Figure 3-7 図 3-7: [CDT Build Console] Zynq UltraScale+: エンベデッドデザインチュートリアル 40

41 第 3 章 : PS サブシステム用ソフトウェアのビルド Arm Cortex-R5 ベースの RPU 用ベアメタルアプリケーションの作成 この例では Arm Cortex-R5 ベースの RPU 用ベアメタルアプリケーションプロジェクトを作成します このプロジェクトでは このチュートリアルでリリースされたデザインファイル (ZIP ファイル ) に含まれるアプリケーションソースファイルをインポートする必要があります これらのデザインファイルの場所は 付録 B の このチュートリアルのデザインファイル を参照してください アプリケーションプロジェクトの作成 1. SDK で [File] [New] [Application Project] をクリックし New Project ウィザードを開きます 2. ウィザードの各ページで次の表の情報に基づいて設定を選択します 表 3-3: 新しい RPU アプリケーションプロジェクト作成時の設定 ウィザードページ システムプロパティ 設定または使用するコマンド Application Project Project name testapp_r5 注記 : r5_bsp のボードサポートパッケージは Arm Cortex-R5 ベースの RPU 用 FSBL の作成 の手順を実行した際に作成されています 3. [Finish] をクリックします New Project ウィザードが閉じ testapp_r5 アプリケーションプロジェクトが作成されて [Project Explorer] ビューに表示されます 4. [Project Explorer] ビューで [testapp_r5] プロジェクトを展開します 5. [src] を右クリックし [Import] をクリックして [Import] ダイアログボックスを開きます 6. [Import] ダイアログボックスで [General] を展開し [File System] をクリックします 7. [Next] をクリックします 8. [Browse] をクリックし 前に保存したデザインファイルフォルダーに移動します ( 付録 B の このチュートリアルのデザインファイル 参照 ) 9. [OK] をクリックします Use default location OS Platform Hardware Platform Processor Language 10. testapp.c ファイルを選択します オン standalone edt_zcu102_wrapper_hw_platform psu_cortexr5_0 Board Support Package [Use existing] をオンにして r5_bsp と入力 Templates Available Templates Empty Application 11. [Finish] をクリックします アプリケーションが自動的にビルドされ コンソールウィンドウにステータスが表示されます 12. testapp.c を開いてこのアプリケーションのソースコードを確認します アプリケーションでは UART 割り込みが設定され プロセッサが WFI モードに設定されています このアプリケーションについては 第 5 章 ブートおよびコンフィギュレーション での実行時に再度利用し 説明します C Zynq UltraScale+: エンベデッドデザインチュートリアル 41

42 第 3 章 : PS サブシステム用ソフトウェアのビルド リンカースクリプトの変更 注記 : このセクションはオプションで アプリケーション用に異なるメモリ属性を設定するためにリンカースクリプトを変更する方法を説明します これらの設定は第 2 章で作成した隔離により既に処理されているので このチュートリアルではこの手順はオプションです リンカースクリプトはソフトウェア境界を作成するのに使用し 隔離設定は XMPU に基づいて保護領域を不正アクセスから保護します 1. [Project Explorer] ビューで [testapp_r5] プロジェクトを展開します 2. [src] を展開表示して [lscript.ld] をダブルクリックし プロジェクトのリンカースクリプトを開きます 3. リンカースクリプトの [Available Memory Regions] ( ベクターセクション以外 ) で psu_r5_ddr_0_mem_3 のベースアドレスとサイズを次のように変更します [Base Address]: 0x7F [Size]: 0xF00000 リンカースクリプトの変更を次の図に示します この図は表示のみです 実際のメモリ領域は 隔離設定によって異なる場合があります X-Ref Target - Figure 3-8 図 3-8: リンカースクリプトの変更 このリンカースクリプトの変更により RPU ベアメタルアプリケーションは DDR の 0x7F のベースアドレスより上位にあり 16 MB 以下のサイズとなります 4. Ctrl + S キーを押して変更を保存します 5. testapp_r5 プロジェクトを右クリックし [Build Project] をクリックします 6. アプリケーションがコンパイルされ リンクが正常に確立され testapp_r5.elf ファイルが [testapp_r5] [Debug] フォルダーに生成されていることを確認します Zynq UltraScale+: エンベデッドデザインチュートリアル 42

43 第 3 章 : PS サブシステム用ソフトウェアのビルド ボードサポートパッケージの変更 ZCU102 評価キットには Silicon Labs 社の USB-TO-QUAD-UART Bridge IC (CP2108) が搭載されています これにより A53 および R5 コアで動作するアプリケーションに異なる UART ポートを選択できます この例では A53 にデフォルトの UART 0 を使用し UART 1 を介して RPU シリアルデータを送受信します このためには r5_bsp ファイルを少し変更する必要があります 1. [r5_bsp] を右クリックし [Board Support Package Settings] をクリックします 2. [standalone] をクリックします 3. 次の図に示すように [stdin] および [stdout] の値 ([Value] 列 ) を psu_uart_1 に変更します X-Ref Target - Figure [OK] をクリックします 図 3-9: RPU BSP の [Board Support Package Settings] ダイアログボックス 5. testapp_r5 プロジェクトを右クリックし [Build Project] をクリックします 6. アプリケーションがコンパイルされ リンクが正常に確立され testapp_r5.elf が [testapp_r5] [Debug] フォルダーに生成されていることを確認します プラットフォーム管理ユニット用 PMU ファームウェアの作成 この例では ザイリンクス SDK を使用して PMU ファームウェアを作成します PMU ファームウェアは Zynq UltraScale+ MPSoC のブートアップおよび全体的なプラットフォーム管理において重要な役割を果たします 詳細は 第 5 章の プラットフォーム管理ユニットファームウェア を参照してください 1. [File] [New] [Application Project] をクリックします 2. [Application Project] ページで [Project name] に pmu_fw と入力します 3. [Use default location] はオンのままにします 4. [OS Platform] で [standalone] を選択します 5. [Target Hardware] で 次を確認および設定します a. 第 2 章で Vivado からエクスポートされたハードウェアプラットフォームとして [Hardware Platform] に [edt_zcu102_wrapper_hw_platform_0] が選択されていることを確認します b. [Processor] で [psu_pmu_0] を選択します Zynq UltraScale+: エンベデッドデザインチュートリアル 43

44 第 3 章 : PS サブシステム用ソフトウェアのビルド 6. [Target Software] で 次を設定します a. [Language] で [C] をオンにします b. [Board Support Package] の [Create New] をオンにして pmu_bsp と入力します 7. [Next] をクリックします 8. [Available Templates] で [ZynqMP PMU Firmware] を選択します 9. [Finish] をクリックします X-Ref Target - Figure 3-10 図 3-10: New Project ウィザードの [Templates] ページ 10. ファームウェアがコンパイルされ リンクが正常に確立され 実行ファイルが [pmu_fw] [Debug] [pmu_fw.elf] に生成されていることを確認します サンプルプロジェクト : PetaLinux を使用した Linux イメージの作成 前のサンプルプロジェクトでは ザイリンクス SDK を使用して APU RPU および PMU 用にブートローダーイメージとベアメタルアプリケーションを作成しました この章では Zynq UltraScale+ の Arm Cortex-A53 コアベース APU 用の Linux オペレーティングシステムプラットフォームを設定およびビルドします Linux イメージの設定とビルドには PetaLinux のツールフローとボード特定の BSP を使用できます 重要 : このサンプルプロジェクトには Linux ホストマシンが必要です PetaLinux の依存性については PetaLinux ツール資料 : リファレンスガイド (UG1144) [ 参照 7] を参照してください 重要 : この例では ZCU102 PetaLinux BSP を使用して PetaLinux プロジェクトを作成します 11 ページの PetaLinux ツール の説明に従って PetaLinux 用の ZCU102 BSP をダウンロードしてください Zynq UltraScale+: エンベデッドデザインチュートリアル 44

45 第 3 章 : PS サブシステム用ソフトウェアのビルド 1. 次のコマンドを使用して PetaLinux プロジェクトを生成します $petalinux-create -t project -s <xilinx-zcu102-v final.bsp> 注記 : xilinx-zcu102-v final.bsp は ZCU102 プロダクションシリコン Rev1.0 ボード用の PetaLinux BSP です Rev 1.0 ボードの ES2 シリコンを使用している場合は xilinx-zcu102-zu9-es2-rev1.0-v final.bsp を使用してください 上記の手順で 次のような PetaLinux プロジェクトディレクトリが作成されます xilinx-zcu 次のコマンドを使用して PetaLinux プロジェクトディレクトリに移動します $ cd xilinx-zcu ZCU102 PetaLinux-BSP はデフォルトの ZCU102 Linux BSP です この例では 第 2 章で Vivado Design Suite を使用して設定した Zynq UltraScale+ ハードウェアプラットフォームに基づいて PetaLinux プロジェクトを再度設定します これは PetaLinux で第 2 章の 隔離設定 に基づいてデバイスツリーが設定されるようにするのに役立ちます 3. ハードウェアプラットフォーム edt_zcu102_wrapper.hdf を Linux ホストマシンにコピーします 4. 次のコマンドを実行してプロジェクトを再度設定します $ petalinux-config --get-hw-description=<path containing edt_zcu102_wrapper.hdf>/ [PetaLinux Configuration] ウィンドウが開きます 必要に応じて設定内容を変更してください この例では BSP からのデフォルト設定で必要なブートイメージを生成できます 次の手順で PetaLinux が SD ブートの Linux およびブートイメージを作成するように設定されているかどうかを確認します 5. [Subsystem AUTO Hardware Settings] を選択します 6. [Advanced Bootable Images Storage Settings] を選択します a. [boot image settings] を選択します b. [Image Storage Media] を選択します c. ブートデバイスとして [primary sd] を選択します 7. [Advanced Bootable Images Storage Settings] サブメニューで 次の操作を実行します a. [kernel image settings] を選択します b. [Image Storage Media] を選択します c. ストレージデバイスとして [primary sd] を選択します 8. [Subsystem AUTO Hardware Settings] の下の [Memory Settings] を選択し [System Memory Size] を 0x6D5FFFFF に設定します 9. 設定内容を保存し Configuration ウィザードを終了します 10. PetaLinux がプロジェクトを再設定するのを待ちます 次の手順で Linux イメージをビルドし 検証して ブートイメージを生成します Zynq UltraScale+: エンベデッドデザインチュートリアル 45

46 第 3 章 : PS サブシステム用ソフトウェアのビルド 11. デバイスツリーで Heartbeat LED SW19 プッシュボタンを無効にします これにより このチュートリアルのほかのデザインで RPU R5-0 により PS LED および SW19 スイッチを使用できるようになります これは 次のディレクトリにある system-user.dtsi で実行します <PetaLinux-project>/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi 12. system-user.dtsi を次のようになるように変更します /include/ "system-conf.dtsi" / { gpio-keys { sw19 { status = "disabled"; }; }; leds { heartbeat_led { status = "disabled"; }; }; }; 13. <PetaLinux-project> で 次のコマンドを使用して Linux イメージをビルドします $ petalinux-build 14. 上記の文が正常に実行されたら 次のコマンドを使用して PetaLinux プロジェクトフォルダーの images ディレクトリ内にあるイメージとタイムスタンプを検証します $ cd images/linux/ $ ls -al 15. 次のコマンドを使用して ブートイメージを生成します $ petalinux-package --boot --fsbl zynqmp_fsbl.elf --u-boot これで <petalinux-project>/images/linux/boot.bin ディレクトリに BOOT.BIN イメージファイルが作成されます ログに 上記コマンドで PMU_FW および ATF が BOOT.BIN に含まれることが示されます また上記コマンドで --pmufw <PMUFW_ELF> および --atf <ATF_ELF> を追加することもできます 詳細は $ petalinux-package --boot --help を参照してください 注記 : 上記のコマンドでは ビットストリームを追加する --fpga コマンドは意図的に含めていません これは この時点でのハードウェアコンフィギュレーションは PS のみに基づいており PL のデザインは含まれていないからです デザインにビットストリームが存在する可能性を考慮して 次に示すように petalinux-package コマンドに --fpga を追加できます petalinux-package --boot --fsbl zynqmp_fsbl.elf --fpga system.bit --pmufw pmufw.elf --atf bl31.elf --u-boot u-boot.elf Zynq UltraScale+: エンベデッドデザインチュートリアル 46

47 第 3 章 : PS サブシステム用ソフトウェアのビルド ZCU102 ボードのイメージの検証 次を実行してイメージを検証します 1. BOOT.BIN ファイルと image.ub ファイルを SD カードにコピーします 2. SD カードを ZCU102 ボードの J100 コネクタに挿入します 3. マイクロ USB ケーブルで ZCU102 ボードの USB UART ポート (J83) とホストマシンの USB ポートを接続します 4. スイッチ SW6 を次の図に示すように設定し ボードを SD ブートモードに設定します X-Ref Target - Figure 3-11 図 3-11: SD ブートモードの SW6 スイッチ設定 5. 12V 電源を ZCU102 の 6 ピン Molex コネクタに接続します 6. 使用しているホストマシンに応じて Tera Term または Minicom を使用し ターミナルセッションを開始します システムの COM ポートとボーレートを次の図に示すように設定します X-Ref Target - Figure 3-12 図 3-12: COM ポートのセットアップ 7. ポート設定では デバイスマネージャーで COM ポートを検証し COM ポートに対して Interface-0 を選択します 8. SW1 を使用して ZCU102 ボードに電源を投入し Linux がボードにロードされるまで待ちます Zynq UltraScale+: エンベデッドデザインチュートリアル 47

48 第 3 章 : PS サブシステム用ソフトウェアのビルド PetaLinux を使用した QSPI フラッシュ用 Linux イメージの作成 前のサンプルプロジェクトでは SD カードからブートするための Linux イメージとブートイメージの作成について説明しました このセクションでは QSPI フラッシュ用の Linux イメージを生成するために PetaLinux を設定する方法を説明します PetaLinux の依存性については PetaLinux ツール資料 : リファレンスガイド (UG1144) [ 参照 7] を参照してください 1. サンプルプロジェクトを開始する前に 次のコマンドを使用して SD カードのセットアップ用に作成されたブートイメージのバックアップを作成します $ cd <Petalinux-project-path>/xilinx-zcu /images/linux/ $ mkdir sd_boot $ cp image.ub sd_boot/ $ cp u-boot.elf sd_boot/ $ cp BOOT.BIN sd_boot/ 2. ディレクトリを次の PetaLinux プロジェクトのルートディレクトリに変更します $ cd <Petalinux-project-path>/xilinx-zcu 最上位のシステム設定メニューを起動します $ petalinux-config Configuration ウィザードが開きます 4. [Subsystem AUTO Hardware Settings] を選択します 5. [Advanced Bootable Images Storage Settings] を選択します a. [boot image settings] を選択します b. [Image Storage Media] を選択します c. ブートデバイスとして [primary flash] を選択します 6. [Advanced Bootable Images Storage Settings] サブメニューで 次の操作を実行します a. [kernel image settings] を選択します b. [Image Storage Media] を選択します c. [primary flash] をストレージデバイスとして選択します 7. 1 つ上の [Subsystem AUTO Hardware Settings] で次の操作を実行します a. [Flash Settings] を選択して パーティションテーブルに示されるエントリを確認します b. 一部のメモリ (0x1E x40000) は 初期ブートパーティションおよび U-Boot の設定用に確保されています これらの値は 必要に応じて変更できます c. これに基づいて Linux イメージのオフセットは QSPI フラッシュデバイスの 0x1E40000 として計算されます これは 第 5 章で QSPI ブートモードのブートイメージを作成する際に使用されます 次の手順を使用して Linux のシステムメモリサイズを約 1.79 GB に設定します 8. [Subsystem AUTO Hardware Settings] で次を実行します a. [Memory Settings] を選択します a. [System Memory Size] を 0x6D5FFFFF に設定します 9. 設定内容を保存し Configuration ウィザードを終了します 10. petalinux-build コマンドを使用して再構築します Zynq UltraScale+: エンベデッドデザインチュートリアル 48

49 第 3 章 : PS サブシステム用ソフトウェアのビルド 11. u-boot.elf およびその他のイメージのバックアップを作成します これらは第 5 章で使用します 注記 : 詳細は PetaLinux ツール資料 : リファレンスガイド (UG1144) [ 参照 7] を参照してください この章では ザイリンクスツールを使用して Zynq UltraScale+ デバイスのソフトウェアブロックを設定およびコンパイルする方法を説明しました 第 6 章ではこれらのイメージを使用して 特定のサンプルデザイン用にブートイメージを作成します 第 4 章 SDK を使用したデバッグ では ザイリンクス SDK を使用して Zynq UltraScale+ デバイスのソフトウェアをデバッグします Zynq UltraScale+: エンベデッドデザインチュートリアル 49

50 第 4 章 SDK を使用したデバッグ この章では これまで説明してきたデザインフローで可能なデバッグについて説明します 最初のオプションは ザイリンクスソフトウェア開発キット (SDK) を使用したソフトウェアのデバッグです SDK デバッガーは 次のデバッグ機能を提供します Arm Cortex -A53 Arm Cortex-R5 および MicroBlaze プロセッサアーキテクチャ上のプログラムのデバッグをサポート ( ヘテロジニアスマルチプロセッサハードウェアシステムのデバッグ ) ハードウェアボード上のプログラムのデバッグをサポート リモートハードウェアシステムでのデバッグ プログラムをデバッグするための豊富な機能を備えた IDE を提供 テストスクリプトの実行および自動化のためのツールコマンド言語 (Tcl) インターフェイスを提供 SDK デバッガーを使用すると プログラムの実行中に何が起こっているかを確認できます プロセッサを停止するブレークポイントまたはウォッチポイントの設定 プログラムのステップ実行 プログラム変数およびスタックの確認 システム内のメモリ内容の確認などを実行できます ザイリンクス SDK では ザイリンクスシステムデバッガー (XSDB) を使用したデバッグがサポートされます ザイリンクスシステムデバッガー ザイリンクスシステムデバッガーでは ザイリンクスの hw_server が基本のデバッグエンジンとして使用されます SDK は各ユーザーインターフェイス操作を一連の TCF (Target Communication Framework) コマンドに変換し システムデバッガーからの出力を処理して デバッグされているプログラムの現在のステートを表示します SDK は ザイリンクスの hw_server を使用してハードウェア上のプロセッサと通信します Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 50

51 第 4 章 : SDK を使用したデバッグ 次の図に このデバッグワークフローを示します X-Ref Target - Figure 4-1 Debug Executable ワークフローは 次の要素で構成されます 図 4-1: システムデバッガーのフロー 実行可能な ELF ファイル : ユーザーアプリケーションをデバッグするには デバッグ用にコンパイルされた ELF (Executable and Linkable Format) ファイルを使用する必要があります デバッグ ELF ファイルには デバッガーへの追加のデバッグ情報が含まれ ソースコードとその元のソースから生成された 2 進数間が直接関連付けられます ビルドコンフィギュレーションを管理するには ソフトウェアアプリケーションを右クリックして [Build Configurations] [Manage] をクリックします デバッグコンフィギュレーション : デバッグセッションを開始するには SDK でデバッグコンフィギュレーションを作成する必要があります このコンフィギュレーションには 実行ファイル名 デバッグするプロセッサターゲットなど デバッグセッションを開始するのに必要な情報が含まれます デバッグコンフィギュレーションを作成するには ソフトウェアアプリケーションを右クリックして [Debug As] [Debug Configurations] をクリックします SDK [Debug] パースペクティブ : [Debug] パースペクティブを使用すると ワークベンチでプログラムのデバッグまたは実行を管理できます ブレークポイントを設定 実行中のプログラムを一時停止 コードをステップ実行 変数の内容を確認するなど プログラムの実行を制御できます [Debug] ウィンドウを表示するには [Window] [Open Perspective] [Debug] をクリックします SDK では コードの変更 実行ファイルの構築 プログラムのデバッグというサイクルを繰り返すことができます 注記 : コンパイル後にソースを編集すると デバッグ情報がそのソースに直接関連付けられているため その行番号はステップ実行されなくなります 同様に 最適化されたバイナリをデバッグすると 実行トレース中に予期しないジャンプが発生することがあります Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 51

52 第 4 章 : SDK を使用したデバッグ SDK を使用したソフトウェアのデバッグ この例では hello world アプリケーションをデバッグします APU または RPU で実行する hello world アプリケーションを作成していない場合は 39 ページの Arm Cortex-A53 ベースの APU 用ベアメタルアプリケーションの作成 の手順に従って新しい hello world アプリケーションを作成してください hello world アプリケーションを作成したら SDK で次の例を実行してソフトウェアをデバッグします 1. サンプルプロジェクト : Arm Cortex-A53 から Hello World アプリケーションを実行 の手順に従って JTAG モードでターゲットを設定し 電源を投入します 2. [C/C++] パースペクティブで test_a53 プロジェクトを右クリックして [Debug As] [Launch on Hardware (System Debugger)] をクリックします 注記 : この手順により プロジェクト設定に基づいて [Debug] ウィンドウでシステムデバッガーが起動します または 図 4-2 に示すようにデバッグコンフィギュレーションを作成することもできます X-Ref Target - Figure 4-2 図 4-2: [Debug Configurations] ダイアログボックス [Confirm Perspective Switch] ダイアログボックスが表示されたら [Yes] をクリックします [Debug] パースペクティブが開きます Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 52

53 第 4 章 : SDK を使用したデバッグ 注記 : [Debug] ウィンドウが自動的に開かない場合は [Window] [Perspective] [Open Perspective] [Other] をクリックして Open Perspective ウィザードで [Debug] を選択します X-Ref Target - Figure 4-3 図 4-3: アプリケーションデバッグ用の [Debug] パースペクティブ 注記 : このページに示されているアドレスは システムで表示されているものと若干異なる場合があります プロセッサが main() の冒頭にあり プログラム実行が 0x で停止していることがわかります この情報は [Disassembly] ビューで確認できます このビューに アセンブリレベルのプログラム実行が 0x で一時停止していることが示されています 注記 : [Disassembly] ビューが表示されていない場合は [Window] [Show View] [Disassembly] をクリックします 3. helloworld.c ウィンドウにも C コードの最初の実行可能な行で実行が一時停止していることが表示されています [Registers] ビューを選択し プログラムカウンターである pc レジスタに 0x が含まれていることを確認します 注記 : [Registers] ウィンドウが表示されていない場合は [Window] [Show View] [Registers] をクリックします 4. print("hello World\n\r"); を読み出すコードの行の横にある helloworld.c ウィンドウの空白をダブルクリックします これにより printf コマンドにブレークポイントが設定されます ブレークポイントの確認には [Breakpoints] ウィンドウを使用します 注記 : [Breakpoints] ウィンドウが表示されていない場合は [Window] [Show View] [Breakpoints] をクリックします Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 53

54 第 4 章 : SDK を使用したデバッグ 5. [Run] [Step Into] をクリックし init_platform () ルーチンにステップインします プログラムの実行が 0x c8 の位置で一時停止します コールスタックの深さは 2 レベルになります 6. [Run] [Resume] をクリックし プログラムをブレークポイントまで実行します プログラムの実行は printf コマンドを含むコードの行で停止します [Disassembly] および [Debug] ウィンドウに プログラムの実行が 0x で停止していることが示されます 注記 : hello world のソースコードを変更した場合 ウィンドウに表示される実行アドレスは異なる場合があります 7. [Run] [Resume] をクリックし プログラムを最後まで実行します プログラムの実行が完了すると [Debug] ウィンドウにプログラムが exit というルーチンで一時停止していることが示されます これは デバッガーの制御下で実行しているときに発生します 8. コードを複数回再実行します シングルステップ メモリの検査 ブレークポイント コードの変更 および print 文の追加を試してみます ビューの追加および移動を試します ヒント : SDK ツールデバッグショートカット ( ステップイン (F5) ステップリターン (F7) ステップオーバー (F6) および再開 (F8)) を使用できます ザイリンクスソフトウェアコマンドラインツール (XSCT) を使用したデバッグ 先ほどの手順に従って SDK System Debugger GUI を使用して RPU および PMU 上で実行しているベアメタルアプリケーションをデバッグできます また XSCT の一部として含まれる XSDB を使用してコマンドラインモードでデバッグすることもできます この例では XSCT を使用してベアメタルアプリケーション testapp_r5 をデバッグします 次の手順は XSCT を使用して R5 にベアメタルアプリケーションをロードする方法を示しています この例は XSDB/XSCT を使用して可能なコマンドラインデバッグを示すことを目的としています 要件に基づいて システムデバッガー GUI または XSCT のコマンドラインデバッガーのいずれかを選択してコードをデバッグできます すべての XSCT コマンドはスクリプト記述可能であり これはこの例で説明するコマンドに当てはまります Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 54

55 第 4 章 : SDK を使用したデバッグ ターゲットのセットアップ 1. USB ケーブルでターゲットの USB-JTAG J2 コネクタとホストマシンの USB ポートを接続します 2. SW6 を次の図のように設定して ボードを JTAG ブートモードに設定します X-Ref Target - Figure 4-4 図 4-4: JTAG ブートモードの SW6 スイッチ設定 3. スイッチ SW1 を使用してボードに電源を投入します 4. SDK ツールバーの [XSCT Console] をクリックして SDK の XSCT コンソールを開きます または [Xilinx] [XSCT Console] をクリックして XSCT コンソールを開くこともできます 5. [XSCT Console] で 次の connect コマンドを使用して JTAG を介してターゲットに接続します xsct% connect connect コマンドは 接続のチャネル ID を返します 6. target コマンドを実行して使用可能なターゲットをリストし ID を使用してターゲットを選択します ターゲットには JTAG チェーンで検出されたものとして ID が割り当てられているため ターゲット ID はセッションごとに変更できます スクリプト記述などの非対話型の使用法では ID を使用してターゲットを選択するのではなく -filter オプションを利用してターゲットを選択できます xsct% targets Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 55

56 第 4 章 : SDK を使用したデバッグ 次の図に示すように ターゲットが一覧表示されます X-Ref Target - Figure 4-5 図 4-5: ターゲットのリスト 7. PSU ターゲットを選択します Arm APU および RPU クラスターは PSU の下にグループ化されています xsct% targets -set -filter {name=~ PSU } targets コマンドはターゲットをリストし 選択されたターゲットをアスタリスク (*) マークで強調表示します または次の図に示すように ターゲット番号を使用してターゲットを選択することもできます X-Ref Target - Figure 4-6 図 4-6: 選択した PSU ターゲット Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 56

57 第 4 章 : SDK を使用したデバッグ 8. source コマンドで psu_init.tcl スクリプトを読み込み psu_init コマンドを実行して Zynq UltraScale+ のプロセッシングシステムを初期化します xsct% source {C:\edt\edt_zcu102\edt_zcu102.sdk\edt_zcu102_wrapper_hw_platform_0\psu_init.tcl} xsctk% psu_init 上記のコマンドに中かっこ ({}) が使用されていることに注意してください これは Windows マシンでパスのバックスラッシュ (\) を有効にするために必要です パスにフォワードスラッシュ (/) を使用する場合は 中かっこは不要です Linux のパスは XSCT のパスは中かっこなしでも機能するため フォワードスラッシュ (/) を使用します XSCT を使用したアプリケーションのロード 1. Arm R5 コア 0 に testapp_r5 アプリケーションをダウンロードします 2. RPU Cortex-R5 コア 0 のターゲット ID をチェックして選択します xsct% targets xsct% targets -set -filter {name =~ "Cortex-R5 #0"} xsct% rst -processor rst-processoror コマンドは個々のプロセッサコアのリセットをクリアします この手順は重要です 理由は Zynq MPSoC が JTAG ブートモードで起動すると すべての A53 コアおよび R5 コアがリセット状態に保持されるからです これらのコアでデバッグを実行する前に 各コアのリセットをクリアする必要があります リセットは XSDB の rst コマンドでクリアできます 注記 : rst -cores コマンドは 現在のターゲットが子である グループ (APU または RPU など ) 内にあるすべてのプロセッサコアのリセットをクリアします たとえば A53#0 が現在のターゲットである場合 rst -cores は APU のすべての A53 コアのリセットをクリアします xsct% dow {C:\edt\edt_zcu102\edt_zcu102.sdk\testapp_r5\Debug\testapp_r5.elf} または xsct% dow C:/edt/edt_zcu102/edt_zcu102.sdk/testapp_r5/Debug/testapp_r5.elf ここで ELF ファイルのセクションが順にダウンロードされるのが表示されます XSCT プロンプトはダウンロードが正常に完了すると表示されます 次に シリアルターミナル (Tera Term Minicom または UART-1 USB シリアル接続用の SDK シリアルターミナルインターフェイス ) を設定します Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 57

58 第 4 章 : SDK を使用したデバッグ シリアルターミナルの設定 1. 使用しているホストマシンに応じて Tera Term または Minicom を使用し ターミナルセッションを開始します COM ポートとボーレートを次の図に示すように設定します X-Ref Target - Figure 4-7 図 4-7: COM ポートのセットアップ 2. ポート設定では デバイスマネージャーで COM ポートを検証します ZCU102 ボードでは 4 つの USB UART インターフェイスを使用できます 最も小さい番号のインターフェイスに関連付けられた COM ポートを選択します つまりここでは UART-0 に Interface-0 の COM ポートを選択します 3. 同様に UART-1 に Interface-1 の COM ポートを選択します R5 BSP は UART-1 を使用するように設定されているため R5 アプリケーションメッセージは UART-1 ターミナルの COM ポートに表示されます XSCT を使用したアプリケーションの実行およびデバッグ 1. アプリケーションを実行する前に main () にブレークポイントを設定します xsct% bpadd -addr &main このコマンドにより ブレークポイント ID が返されます bplist コマンドを使用して挿入されたブレークポイントを確認できます XSCT のブレークポイントの詳細は XSCT で help breakpoint と入力して確認します 2. プロセッサコアの実行を再開します xsct% con コアがブレークポイントに到達すると 次の情報メッセージが表示されます xsct% Info: Cortex-R5 #0 (target 7) Stopped at 0x10021C (Breakpoint) 3. コアが停止しているので レジスタを表示して確認します xsct% rrd 4. ローカル変数を表示します xsct% locals Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 58

59 第 4 章 : SDK を使用したデバッグ 5. ソースコードの行をステップ実行し スタックトレースを表示します xsct% nxt Info: Cortex-R5 #0 (target 6) Stopped at 0x (Step) xsct% bt help コマンドを使用すると ほかのオプションを表示できます X-Ref Target - Figure 4-8 図 4-8: XSCT ヘルプのカテゴリ Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 59

60 第 4 章 : SDK を使用したデバッグ help running コマンドを使用すると XSCT を使用してアプリケーションを実行またはデバッグするためのオプションを表示できます X-Ref Target - Figure 4-9 図 4-9: プログラム実行のデバッグに使用する XSCT ヘルプ 6. コードを実行します xsct% con ここで UART-1 ターミナルに R5 アプリケーションのメッセージが表示されます SDK を使用した FSBL のデバッグ FSBL は SDK でデフォルトで Size Optimization および Link Time Optimization フラグ (-Os および LTO 最適化 ) を使用してビルドされます これにより FSBL のメモリフットプリントが削減します FSBL をデバッグする際は これをディスエーブルにする必要があります 最適化をディスエーブルにするとコードサイズが増加し FSBL をビルドできなくなる可能性があります デバッグ用に最適化をディスエーブルにするには FSBL の xfsbl_config.h ファイルで一部の不要な FSBL 機能をディスエーブルにする必要があります ここでは 第 3 章 PS サブシステム用ソフトウェアのビルド で作成した FSBL を変更する代わりにこのセクション用の新しい FSBL を作成しします これで このチュートリアルの残りの章で使用する FSBL_a53 プロジェクトを変更せずにすみます Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 60

61 第 4 章 : SDK を使用したデバッグ FSBL の作成および変更 次の手順に従って FSBL プロジェクトを作成します 1. SDK が起動していない場合は起動します 2. 第 3 章 PS サブシステム用ソフトウェアのビルド で作成したプロジェクトに基づいてワークスペースパスを設定します たとえば C:\edt\edt_zcu102\edt_zcu102.sdk です 3. [File] [New] [Application Project] をクリックします New Project ウィザードが開きます 4. New Project ウィザードの各ページを次の表の情報に基づいて設定します 表 4-1: FSBL_debug プロジェクト作成時の設定 ウィザードページシステムプロパティ設定または使用するコマンド Application Project Project name fsbl_debug 5. [Finish] をクリックします Use default location OS Platform Hardware Platform Processor Language Compiler Hypervisor Guest Board Support Package ボードサポートパッケージおよび FSBL アプリケーションが作成されます 次の手順に従って最適化をディスエーブルにします 1. [Project Explorer] ビューで fsbl_debug アプリケーションを右クリックします 2. [C/C++ Build] [Settings] をクリックします オン standalone edt_zcu102_wrapper_hw_platform_0 psu_cortexa53_0 3. [Settings] [Tool Settings] タブ [Arm A53 gcc Compiler] [Miscellaneous] をクリックします C 64-bit [Next] をクリック Templates Available Templates Zynq MP FSBL No [Create New] をオンにして test_a53_bsp と入力 Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 61

62 第 4 章 : SDK を使用したデバッグ 4. 次の図に示すように [Other flags] で -Os -flto -ffat-lto-objects を削除します X-Ref Target - Figure 4-10 図 4-10: FSBL BSP ビルド設定の変更 同様に fsbl_debug_bsp を変更して最適化をディスエーブルにする必要があります 5. [fsbl_debug_bsp] を右クリックし [Board Support Package Settings] をクリックします 6. [Overview] [Drivers] [psu_cortexa53_0] [extra_compiler_flags] をクリックし 次の図に示すように [extra_compiler_flags] で -Os -flto -ffat-lto-objects を削除します X-Ref Target - Figure [Overview] [Standalone] をクリックします 図 4-11: FSBL BSP ビルド設定の変更 8. [zynqmp_fsbl_bsp] フラグを [false] に変更し これらの変更後に BSP を再ビルドしたときに FSBL の BSP の最適化設定がデフォルトにリセットされないようにします X-Ref Target - Figure [OK] をクリックしてこれらの変更を保存します BSP が自動的に再ビルドされます これで FSBL をデバッグできるようになりました 図 4-12: FSBL BSP ビルド設定の変更 FSBL は ほかのスタンドアロンアプリケーションと同じようにデバッグするか ( SDK を使用したソフトウェアのデバッグ および ザイリンクスソフトウェアコマンドラインツール (XSCT) を使用したデバッグ を参照 ) System Debugger の [Attach to running target] モードを使用してブートイメージの一部としてデバッグできます Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 62

63 第 5 章 ブートおよびコンフィギュレーション この章では コンポーネントを統合して Zynq UltraScale+ システムを作成します Zynq UltraScale+ システム用にブートローダー ベアメタルアプリケーション (APU/RPU 用 ) および Linux オペレーティングシステムを統合してロードする方法を示します 次の重要な項目について説明します システムソフトウェア : FSBL U-Boot Arm トラステッドファームウェア (ATF) アプリケーションプロセッシングユニット (APU): APU 用に SMP Linux を設定 リアルタイムプロセッシングユニット (RPU): ロックステップで RPU 用にベアメタルを設定 次のブートシーケンスのブートイメージを作成 a. APU b. RPU ロックステップ セキュアブートイメージを作成およびロード 注記 : RPU ロックステップの詳細は Zynq UltraScale+ MPSoC テクニカルリファレンスマニュアル (UG1085) [ 参照 5] を参照してください ブートシーケンスでは プラットフォーム管理ユニット (PMU) 用の PMU ファームウェアもロードされます 上記の設定は ザイリンクス SDK および PetaLinux ツールフローを使用して実行できます 第 3 章では PS 内の各プロセッシングユニットのソフトウェアブロックを作成することにのみ重点を置いていましたが この章ではより大規模なシステムの一部としてこれらのブロックをロードする方法を説明します ブートイメージの生成には SDK の Create Boot Image ウィザード (Bootgen コマンドラインツール ) を使用します Create Boot Image ウィザードまたは Bootgen の主要な機能はパーティション ( ハードウェアビットストリームおよびソフトウェア ) を統合することであり ユーザーはデザインにセキュリティオプションを指定できます 暗号化キーの作成も可能です Bootgen は Bootgen イメージフォーマット (BIF) ファイルを入力として使用し バイナリ BIN または MCS フォーマットで 1 つのファイルイメージを生成します Bootgen により出力された 1 つのファイルイメージは NVM (QSPI SD カード ) にロードされます Bootgen GUI により BIF 入力ファイルを簡単に作成できます この章では プロセッシングシステムブロックを使用します サンプルデザイン 1: GPIO タイマー および割り込みの使用 では この章で使用される PS パーティションと PL ファブリックをターゲットとするビットストリームを含むブートイメージについて説明します Zynq UltraScale+: エンベデッドデザインチュートリアル 63

64 第 5 章 : ブートおよびコンフィギュレーション システムソフトウェア この章のブートおよびコンフィギュレーションの説明の大部分は ここで挙げるシステムソフトウェアブロックについてです 詳細なブートフローおよびさまざまなブートシーケンスについては Zynq UltraScale+ MPSoC ソフトウェア開発者向けガイド (UG1137) [ 参照 6] の システムブートおよびコンフィギュレーション の章を参照してください 第 1 段階ブートローダー (FSBL) 非セキュアブートモードでは プラットフォーム管理ユニット (PMU) はコンフィギュレーションセキュリティユニットのリセットを解除した後 PMU サーバーモードに移行して電力を監視します この段階で コンフィギュレーションセキュリティユニットは FSBL ( 第一段階ブートローダー ) をオンチップメモリ (OCM) にロードします FSBL は APU A53_0 RPU R5_0 または RPU R5_lockstep から実行できます この例では FSBL は APU A53 コア 0 をターゲットとしています この領域の最後の 512 バイトは ATF がハンドオフするアプリケーションに対応するハンドオフパラメーターを共有するため FSBL で使用されます 第 1 段階ブートローダー (FSBL) は プロセッシングサブシステム内の重要なブロックを初期化します これには プロセッサのリセットのクリアや クロック メモリ および UART の初期化などが含まれます その後 DDR の次のパーティションの制御を RPU または APU に渡します この例では FSBL は DDR にベアメタルアプリケーションをロードしてロックステップモードで RPU R5 にハンドオフし 同様に U-Boot をロードして これを APU A53 コア 0 で実行します 詳細は Zynq UltraScale+ MPSoC ソフトウェア開発者向けガイド (UG1137) [ 参照 6] を参照してください この章では 第 3 章で作成した FSBL 実行ファイルを使用できます FSBL アプリケーションでは xfsbl_translation_table.s は A53 の translation_table.s と DDR 領域が予約されているという点のみが異なります これは DDR が初期化される前に DDR が投機的アクセスされないようにするためです FSBL で DDR の初期化が完了すると DDR 領域のメモリ属性が Memory に変更されます プラットフォーム管理ユニットファームウェア 複数段階のブートプロセスは プラットフォーム管理ユニット (PMU) とコンフィギュレーションセキュリティユニット (CSU) により管理および実行されます プリコンフィギュレーションステージは主に PMU が制御し PMU ROM を実行してシステムをセットアップします リセットおよび復帰に関するプロセスはすべて PMU が処理します SDK では PMU 上で動作するようビルド可能な PMU ファームウェアを提供しています プラットフォーム管理および PMU ファームウェアの詳細は Zynq UltraScale+ MPSoC ソフトウェア開発者向けガイド (UG1137) [ 参照 6] を参照してください PMU ファームウェアは 次の方法で読み込むことができます 1. bootrom を使用 ( SD ブートのブートシーケンス を参照 ) 2. FSBL を使用 ( QSPI ブートモードのブートシーケンス を参照 ) 3. JTAG ブートモードを使用 ( JTAG を使用した QSPI ブートモードのブートシーケンス を参照 ) 詳細は PMU ファームウェアザイリンクス Wiki を参照してください Zynq UltraScale+: エンベデッドデザインチュートリアル 64

65 第 5 章 : ブートおよびコンフィギュレーション U-Boot U-Boot はセカンダリブートローダーとして機能します FSBL のハンドオフ後 U-Boot は Arm A53 の APU に Linux をロードします FSBL の後 U-Boot はボード構成に基づいてプロセッシングシステムの残りのペリフェラルの設定を実行します U-Boot は emmc SATA TFTP SD QSPI などのさまざまなメモリソースからイメージを取得できます この例では U-Boot とその他すべてのイメージが SD カードからロードされます したがって ここではボードは SD ブートモードに設定されます U-Boot は PetaLinux ツールフローを使用して設定およびビルドできます この例では 第 3 章で作成された またはこの資料に付属のデザインファイルから作成された U-Boot イメージを使用できます このチュートリアルのデザインファイルのダウンロードについては 159 ページの このチュートリアルのデザインファイル を参照してください Arm トラステッドファームウェア Arm トラステッドファームウェア (ATF) は APU の EL3 ( 例外レベル 3) で実行される透過的なベアメタルアプリケーションレイヤーです ATF には セキュアワールドと非セキュアワールドを切り替えるためのセキュアモニターレイヤーが含まれます セキュアモニターの呼び出しと TBBR (Trusted Board Boot Requirements) の実装により Zynq UltraScale+ の APU に Linux をロードするには ATF レイヤーが必須です FSBL は APU で実行される ATF をロードします ATF は EL3 で動作し続けてサービス要求を待ちます ATF は 0xFFFEA000 ステートで開始します FSBL は APU で実行される U-Boot を DDR にロードします U-Boot は SMP モードで Linux OS を APU にロードします ここで重要なのは PL ビットストリームは ATF がロードされる前にロードする必要があるということです これは ビットストリームが.BIN ファイルに存在する場合に一時バッファーを保持するため ATF 用に予約されている OCM 領域が FSBL で使用されるからです そのため ビットストリームを ATF の後にロードすると FSBL で ATF イメージとその一時バッファーが上書きされ ATF イメージが破損します この理由から ビットストリームは ATF の前 理想的には FSBL と PMUFW の直後に.BIF に配置する必要があります ATF (bl31.elf) はデフォルトで PetaLinux に含まれており PetaLinux プロジェクトの image ディレクトリにあります ATF の詳細は Zynq UltraScale+ MPSoC ソフトウェア開発者向けガイド (UG1137) [ 参照 6] の セキュリティ の章の Arm トラステッドファームウェア を参照してください Zynq UltraScale+: エンベデッドデザインチュートリアル 65

66 第 5 章 : ブートおよびコンフィギュレーション APU の Linux と RPU のベアメタル システムソフトウェアが設定されたら PetaLinux ツールフローを使用して Linux イメージを作成します PetaLinux イメージは第 3 章で既に作成されています この例では PetaLinux は SD ブート用のイメージをビルドするように設定されています これは PetaLinux のデフォルトのブート設定です イメージは $<PetaLinux_Project>/images/linux/ ディレクトリにあります APU に Linux をロードするために PetaLinux から次のイメージが使用されます ATF - bl31.elf U-Boot - u-boot.elf 次を含む Linux イメージ - Image.ub: カーネルイメージ デバイスツリー System.dtb ファイルシステム - rootfs.cpio.gz.u-boot この例では APU の Linux に加え ベアメタルアプリケーションをロックステップモードで RPU R5 にロードします この例では 41 ページの Arm Cortex-R5 ベースの RPU 用ベアメタルアプリケーションの作成 で作成した testapp_r5 アプリケーションを参考にしてください また このチュートリアルに付属のデザインファイルに testapp_r5.elf 実行ファイルがあります このチュートリアルのデザインファイルのダウンロードについては 159 ページの このチュートリアルのデザインファイル を参照してください Zynq UltraScale+: エンベデッドデザインチュートリアル 66

67 第 5 章 : ブートおよびコンフィギュレーション SD ブートのブートシーケンス 各イメージの準備が完了したので ブートイメージを作成して Zynq UltraScale+ にこれらのコンポーネントをすべてロードします これには 次の手順に従って SDK の Create Boot Image ウィザードを使用します 1. SDK で [Xilinx] [Create Boot Image] をクリックします 2. この章の前のセクションで説明したすべてのパーティションを選択し 次の図に示すように設定します X-Ref Target - Figure 5-1 FSBL パーティションを追加します 図 5-1: SD ブートモードの Create Boot Image ウィザード 1. Create Boot Image ウィザードで [Add] をクリックして [Add partition] ダイアログボックスを開きます 2. [Add partition] ダイアログボックスで [Browse] をクリックして FSBL 実行ファイルを選択します 3. [Partition type] に [bootloader] が選択され [Destination CPU] が正しく選択されていることを確認します これは FSBL 実行ファイルに基づいて設定されます 注記 : FSBL はデフォルトで EL3 に設定されているため [Exception Level] のドロップダウンリストは無視してください また この例では [Enable Trust Zone] をオフのままにしてください Zynq UltraScale+: エンベデッドデザインチュートリアル 67

68 第 5 章 : ブートおよびコンフィギュレーション X-Ref Target - Figure 5-2 図 5-2: [Add new boot image partition] ページ 4. [OK] をクリックして FSBL を選択し Create Boot Image ウィザードに戻ります PMU および ATF ファームウェアパーティションを追加します 1. [Add] をクリックして 次の図に示す [Add partition] ダイアログボックスを開きます X-Ref Target - Figure 5-3 図 5-3: PMUFW パーティションの追加 Zynq UltraScale+: エンベデッドデザインチュートリアル 68

69 第 5 章 : ブートおよびコンフィギュレーション 2. PMU ファームウェアパーティションを追加します a. [Browse] をクリックして PMU ファームウェア実行ファイルを選択します b. [Partision type] で [pmu] を選択します 注記 : pmu パーティションタイプでは実行ファイルが PMU をターゲットとするので [Destination Device] と [Destination CPU] は淡色表示されます 3. [Exception Level] ドロップダウンリストは無視し [Enable Trust Zone] はオフのままにします 4. [OK] をクリックします 5. [Add] をクリックして [Add partition] ダイアログボックスを開きます 6. ATF ファームウェア bl31.elf パーティションを追加します 注記 : ATF ファームウェア (bl31.elf) は <PetaLinux Project>/image/linux/ にあります または このチュートリアルのデザインファイル の bl31.elf を使用することもできます a. [Partision type] で [datafile] を選択します b. [Destination Device] を [PS] に設定します c. [Destination CPU] を [A53 0] に設定します d. [Exception Level] で [EL3] を選択し [Enable Trust Zone] をオンにします X-Ref Target - Figure [OK] をクリックします 図 5-4: ATF パーティションの追加 Zynq UltraScale+: エンベデッドデザインチュートリアル 69

70 第 5 章 : ブートおよびコンフィギュレーション R5 実行ファイルを追加し これをロックステップモードで有効にします 1. [Add] をクリックして R5 ベアメタル実行ファイルを追加します X-Ref Target - Figure [Destination Device] を [PS] に設定します 3. [Destination CPU] を [R5 Lockstep] に設定します これにより RPU R5 コアがロックステップモードで実行されるように設定されます 4. [Exception Level] ドロップダウンリストは無視し [Enable Trust Zone] はオフのままにします 5. [OK] をクリックします U-Boot パーティションを追加します sd_boot モードの u-boot.elf は <PetaLinux_project>/images/linux/sd_boot にあります 1. [Add] をクリックして u-boot.elf パーティションを追加します 2. [Destination Device] で [PS] を選択します 3. [Destination CPU] で [A53 0] を選択します 4. [Exception Level] を [EL2] に設定します 図 5-5: RPU イメージパーティションの追加 Zynq UltraScale+: エンベデッドデザインチュートリアル 70

71 第 5 章 : ブートおよびコンフィギュレーション X-Ref Target - Figure 5-6 図 5-6: U-Boot パーティションの追加 5. [OK] をクリックして Create Boot Image ウィザードに戻ります 6. [Create Image] をクリックします ウィザードが閉じ ブートイメージが作成されます BIF 属性と Bootgen コマンドを使用して BOOT.bin イメージを作成することもできます このコンフィギュレーションでは BIF ファイルには次の属性が含まれます the_rom_image: { [bootloader, destination_cpu=a53-0] [bootloader]c:\edt\edt_zcu102\edt_zcu102.sdk\fsbl_a53\debug\fsbl_a53.elf [pmufw_image]c:\edt\edt_zcu102\edt_zcu102.sdk\pmu_fw\debug\pmu_fw.elf [destination_cpu = a53-0, exception_level=el-3, trustzone]c:\edt\design_files\bl31.elf [destination_cpu = r5-lockstep]c:\edt\edt_zcu102\edt_zcu102.sdk\testapp_r5\debug\testapp_r5.elf [destination_cpu = a53-0, exception_level=el-2]c:\edt\design_files\sd_boot\u-boot.elf } SDK は次の Bootgen コマンドを呼び出して このコンフィギュレーションの BOOT.bin イメージを生成します bootgen -image sd_boot.bif -arch zynqmp -o C:\edt\BOOT.bin Zynq UltraScale+: エンベデッドデザインチュートリアル 71

72 第 5 章 : ブートおよびコンフィギュレーション ZCU102 ボードでのイメージの実行 1. BOOT.bin および image.ub イメージを SD カードにコピーします 2. SD カードを ZCU102 ボードの J100 コネクタに挿入します 3. マイクロ USB ケーブルで ZCU102 ボードの USB UART ポート (J83) とホストマシンの USB ポートを接続します 4. スイッチ SW6 を次の図に示すように 1 をオン 2 をオフ 3 をオフ 4 をオフにして ボードを SD ブートモードに設定します X-Ref Target - Figure 5-7 図 5-7: SD ブートモードの SW6 スイッチ設定 5. 12V 電源を ZCU102 の 6 ピン Molex コネクタに接続します 6. 使用しているホストマシンに応じて Tera Term または Minicom を使用し ターミナルセッションを開始します システムの COM ポートとボーレートを次の図に示すように設定します X-Ref Target - Figure 5-8 図 5-8: COM ポートのセットアップ 7. ポート設定では デバイスマネージャーで COM ポートを検証します ZCU102 ボードには 4 つの USB UART インターフェイスがあります 8. 最も小さい番号のインターフェイスに関連付けられた COM ポートを選択します ここでは UART-0 に対して Interface-0 の COM ポートを選択します 9. 同様に UART-1 に Interface-1 の COM ポートを選択します R5 BSP は UART-1 を使用するように設定されているため R5 アプリケーションメッセージは UART-1 ターミナルの COM ポートに表示されます Zynq UltraScale+: エンベデッドデザインチュートリアル 72

73 第 5 章 : ブートおよびコンフィギュレーション 10. SW1 を使用して ZCU102 ボードに電源を投入し Linux がボードにロードされるまで待ちます UART-0 用のターミナル画面に初期ブートシーケンスメッセージが表示されます UART-1 用に設定されたターミナル画面にもメッセージが表示されます これは RPU で実行されている UART-1 インターフェイスを使用するように設定された R5 ベアメタルアプリケーションからのメッセージです このアプリケーションは FSBL によって RPU にロードされます ベアメタルアプリケーションは UART 割り込みサンプルを含むように変更されています このアプリケーションは UART-1 ターミナルのキーボードからユーザーが入力するまで WFI (Waiting For Interrupt) 状態で待機します X-Ref Target - Figure 5-9 図 5-9: UART-1 に表示される R5-0 で実行する Hello World 一方 ブートシーケンスは APU で継続され ロードされたイメージは UART-0 ターミナルに表示されるメッセージからわかります 次の図に メッセージを強調表示します Zynq UltraScale+: エンベデッドデザインチュートリアル 73

74 第 5 章 : ブートおよびコンフィギュレーション X-Ref Target - Figure 5-10 図 5-10: Zynq UltraScale+ ブートシーケンス時の APU からのメッセージ U-Boot は SMP モードで Linux カーネルとその他のイメージを Arm Cortex -A53 の APU にロードします ターミナルメッセージに U-Boot がカーネルイメージをロードしてカーネルを起動したことが示され ターゲット Linux OS にユーザーインターフェイスプロンプトが表示されます カーネルのロードおよびスタートシーケンスは 次の図のようになります Zynq UltraScale+: エンベデッドデザインチュートリアル 74

75 第 5 章 : ブートおよびコンフィギュレーション X-Ref Target - Figure 5-11 図 5-11: カーネルのロードおよびスタートシーケンス Zynq UltraScale+: エンベデッドデザインチュートリアル 75

76 第 5 章 : ブートおよびコンフィギュレーション QSPI ブートモードのブートシーケンス ZCU102 ボードには 最大 128 MB のデュアルパラレル QSPI フラッシュも搭載されています この例では QSPI ブートモードでブートイメージを作成し UltraScale+ にロードします イメージは SDK の Create Boot Image ウィザードを使用して設定できます これは 次の手順に従って実行できます 注記 : このセクションでは PetaLinux を使用した QSPI フラッシュ用 Linux イメージの作成 の手順に従って QSPI ブートモードで PetaLinux イメージが作成されていると想定しています 1. SDK が起動していない場合は起動し 第 3 章で説明したようにワークスペースパスを設定します 2. [Xilinx] [Create Boot Image] をクリックします 3. [Architecture] で [Zynq MP] を選択します 4. [Create new BIF file] をオンにします 5. [Output format] が [BIN] に設定されていることを確認します 6. [Basic] タブで [Output BIF file path] および [Output path] の [Browse] をクリックし 適切に選択します X-Ref Target - Figure 5-12 図 5-12: QSPI ブートモードの Create Boot Image ウィザード Zynq UltraScale+: エンベデッドデザインチュートリアル 76

77 第 5 章 : ブートおよびコンフィギュレーション ブートパーティションを追加します 1. [Add] をクリックして [Add Partition] ダイアログボックスを開きます 2. [Add Partition] ダイアログボックスで [Browse] をクリックして FSBL 実行ファイルを選択します a. [Partition type] に [bootloader] が選択され [Destination CPU] が正しく選択されていることを確認します これは FSBL 実行ファイルに基づいて設定されます X-Ref Target - Figure 5-13 b. FSBL はデフォルトで EL3 に設定されているため [Exception Level] のドロップダウンリストは無視します また この例では [Enable Trust Zone] をオフのままにしてください c. [OK] をクリックして FSBL を選択し Create Boot Image ウィザードに戻ります 3. [Add] をクリックして [Add Partition] ダイアログボックスを開き 次のパーティションを追加します 4. プラットフォーム管理ユニットの PMU ファームウェアを追加します a. [Partition type] で [datafile] を選択し [Destination Device] で [PS] を選択します b. [Destination CPU] で [PMU] を選択します c. [OK] をクリックします 図 5-13: [Add new boot image partition] ページ Zynq UltraScale+: エンベデッドデザインチュートリアル 77

78 第 5 章 : ブートおよびコンフィギュレーション X-Ref Target - Figure 5-14 図 5-14: PMU パーティションの追加 5. ATF ファームウェアを追加します [Partition type] を [datafile] に設定します a. ATF 実行ファイル bl31.elf は PetaLinux イメージフォルダー (<PetaLinux_project>/images/linux/) にあります b. [Destination Device] で [PS] を選択し [Destination CPU] で [A53 0] を選択します c. [Exception Level] で [EL3] を選択し [Enable Trust Zone] をオンにします X-Ref Target - Figure 5-15 d. [OK] をクリックします 図 5-15: ATF パーティションの追加 Zynq UltraScale+: エンベデッドデザインチュートリアル 78

79 第 5 章 : ブートおよびコンフィギュレーション 6. [Add] をクリックして R5 ベアメタル実行ファイルを追加します a. R5 実行ファイルを次の図に示すように追加し [R5 Lockstep] を選択します b. [OK] をクリックします X-Ref Target - Figure [Add] をクリックして U-Boot パーティションを追加します u-boot.elf は <PetaLinux_Project>/images/linux/ にあります a. 次のように設定します 図 5-16: RPU ロックステップイメージパーティションの追加 - [Partition type] を [datafile] に設定します - [Destination Device] を [PS] に設定します - [Destination CPU] を [A53 0] を設定します - [Exception Level] を [EL2] に設定します Zynq UltraScale+: エンベデッドデザインチュートリアル 79

80 第 5 章 : ブートおよびコンフィギュレーション X-Ref Target - Figure 5-17 図 5-17: U-Boot パーティションの追加 b. [OK] をクリックします 8. [Add] をクリックして Linux イメージファイル image.ub を追加します a. イメージファイル image.ub は images/linux ディレクトリの PetaLinux プロジェクトにあります b. 次のように設定します - [Partition type] を [datafile] に設定します - [Destination Device] を [PS] に設定します - [Destination CPU] を [A53 0] を設定します c. [Offset] に 0x1E40000 と入力します d. [Exception Level] ドロップダウンリストは無視し [Enable Trust Zone] はオフのままにします 注記 : 上記のロードアドレス設定 ([Load]) はオプションで U-Boot を使用してイメージを DDR にロードする場合は必要ありません 手順 8.d の設定で パーティションは FSBL により DDR 内のロケーションに書き込まれます この例では FSBL と U-Boot の両方でイメージが DDR にコピーされています イメージのロードに FSBL または U-Boot のどちらを使用するかは BIF ファイルで partition_owner = U-Boot ( または FSBL) フラグを設定して選択できます ヒント : オフセット値については PetaLinux を使用した QSPI フラッシュ用 Linux イメージの作成 を参照してください 9. [OK] をクリックして Create Boot Image ウィザードに戻ります 10. [Create Image] をクリックして qspi_boot.bin イメージを作成します または BIF 属性と Bootgen コマンドを使用して qspi_boot.bin イメージを作成することもできます このコンフィギュレーションの BIF 属性は [Preview BIF Changes] をクリックして表示できます このコンフィギュレーションでは BIF ファイルには次の属性が含まれます Zynq UltraScale+: エンベデッドデザインチュートリアル 80

81 第 5 章 : ブートおよびコンフィギュレーション the_rom_image: { [bootloader, destination_cpu=a53-0]c:\edt\edt_zcu102\edt_zcu102.sdk\fsbl_a53\debug\fsbl_a53.elf [destination_cpu = pmu]c:\edt\edt_zcu102\edt_zcu102.sdk\pmu_fw\ Debug\pmu_fw.elf [destination_cpu = a53-0, exception_level=el-3, trustzone]c:\edt\design_files\bl31.elf [destination_cpu = r5-lockstep]c:\edt\edt_zcu102\edt_zcu102.sdk\testapp_r5\debug\testapp_r5.elf [destination_cpu = a53-0, exception_level=el-2]c:\edt\design_files\qspi_boot\u-boot.elf [offset = 0x1E40000, load=0x , destination_cpu = a53-0]c:\edt\design_files\image.ub } SDK は次の Bootgen コマンドを呼び出して このコンフィギュレーションの qspi_boot.bin イメージを生成します bootgen -image qspi_boot.bif -arch zynqmp -o C:\edt\qspi_BOOT.bin 注記 : このブートシーケンスでは FSBL ( 第一段階ブートローダー ) によって PMU ファームウェアがロードされます これは [Partition type] を [datafile] に設定して PMU ファームウェアが追加されたためです 理想的には 前のセクションで説明したように bootrom コードで PMU 用の PMU ファームウェアをロードできます PMU ファームウェアの詳細は Zynq UltraScale+ MPSoC ソフトウェア開発者向けガイド (UG1137) [ 参照 6] の プラットフォーム管理 の章を参照してください ZCU102 ボードで QSPI ブートモードでイメージを実行 この例でイメージをテストするには SDK のプログラムフラッシュユーティリティを使用して ZCU102 ボードの QSPI にブートイメージ (qspi_boot.bin) イメージをロードします または ザイリンクス SDK で XSDB デバッガーを使用することもできます 1. ザイリンクス SDK で [Xilinx] [Program Flash] をクリックします 2. [Program Flash Memory] ダイアログボックスで [Browse] をクリックし このサンプルプロジェクトの一部として作成された qspi_boot.bin イメージファイルを選択します 3. [Flash Type] で [qspi_dual_parallel] を選択します 4. [Offset] を 0 に設定し [FSBL File] で FSBL ELF ファイル (fsbl_a53.elf) を選択します 5. 次の手順に従って ZCU102 ターゲットの USB-JTAG コネクタとホストマシンの USB ポートが USB ケーブルで接続されていることを確認します a. SW6 ブートモードスイッチを次の図に示すように設定します b. ボードの電源をオンにします Zynq UltraScale+: エンベデッドデザインチュートリアル 81

82 第 5 章 : ブートおよびコンフィギュレーション X-Ref Target - Figure 5-18 図 5-18: JTAG ブートモードの SW6 スイッチ設定 6. [Program] をクリックし qspi_boot.bin イメージで QSPI フラッシュをプログラムするプロセスを開始します X-Ref Target - Figure 5-19s 図 5-19: [Program Flash Memory] ダイアログボックス Zynq UltraScale+: エンベデッドデザインチュートリアル 82

83 第 5 章 : ブートおよびコンフィギュレーション 次の図に示すように SDK コンソールに Flash Operation Successful というメッセージが表示されるまで待ちます X-Ref Target - Figure 5-20 ZCU102 ボードのセットアップ 図 5-20: SDK コンソールのプログラムフラッシュメッセージ 1. ボードの USB-UART をホストマシンに接続します Micro USB ケーブルの一端を ZCU102 ボードの Micro USB ポート J83 に接続し もう一端をホストマシンの空きの USB ポートに接続します 2. スイッチ SW6 を次の図に示すように設定して ボードを QSPI ブートモードに設定します X-Ref Target - Figure 5-21 図 5-21: QSPI ブートモードの SW6 スイッチ設定 3. 12V 電源を ZCU102 の 6 ピン Molex コネクタに接続します 4. 使用しているホストマシンに応じて Tera Term または Minicom を使用し ターミナルセッションを開始します COM ポートとボーレートを図 5-22 に示すように設定します 5. ポート設定では デバイスマネージャーで COM ポートを検証します ZCU102 では 4 つの USB UART インターフェイスが使用されています Zynq UltraScale+: エンベデッドデザインチュートリアル 83

84 第 5 章 : ブートおよびコンフィギュレーション 6. 最も小さい番号のインターフェイスに関連付けられた COM ポートを選択します ここでは UART-0 に対して Interface-0 の COM ポートを選択します 7. 同様に UART-1 に Interface-1 の COM ポートを選択します R5 BSP は UART-1 を使用するように設定されているため R5 アプリケーションメッセージは UART-1 ターミナルの COM ポートに表示されます X-Ref Target - Figure 5-22 図 5-22: UART-1 ターミナル用の COM ポート設定 8. SW1 を使用して ZCU102 ボードに電源を投入します ここで UART-0 用のターミナル画面に初期ブートシーケンスメッセージが表示されます UART-1 用に設定されたターミナル画面にもメッセージが表示されます これは RPU で実行されている UART-1 インターフェイスを使用するように設定された R-5 ベアメタルアプリケーションからのメッセージです このアプリケーションは FSBL によって RPU にロードされます ベアメタルアプリケーションは UART 割り込みサンプルを含むように変更されています このアプリケーションは UART-1 ターミナルのキーボードからユーザーが入力するまで WFI 状態で待機します X-Ref Target - Figure 5-23 図 5-23: UART-1 に表示される R5-0 で実行する Hello World 一方 ブートシーケンスは APU で継続され ロードされたイメージは UART-0 ターミナルに表示されるメッセージからわかります 次の図に メッセージを強調表示します Zynq UltraScale+: エンベデッドデザインチュートリアル 84

85 第 5 章 : ブートおよびコンフィギュレーション X-Ref Target - Figure 5-24 図 5-24: UART-0 ターミナルに表示されるメッセージ Zynq UltraScale+: エンベデッドデザインチュートリアル 85

86 第 5 章 : ブートおよびコンフィギュレーション U-Boot は SMP モードで Linux カーネルとその他のイメージを Arm Cortex-A53 の APU にロードします ターミナルメッセージは U-Boot がカーネルイメージをロードしてカーネルが起動したことを示し Linux カーネルでユーザーインターフェイスプロンプトが表示されます カーネルのロードおよびスタートシーケンスは 次の図のようになります X-Ref Target - Figure Linux がボードにロードされるまで待ちます 図 5-25: カーネルのロードおよびスタートシーケンス Zynq UltraScale+: エンベデッドデザインチュートリアル 86

87 第 5 章 : ブートおよびコンフィギュレーション JTAG を使用した QSPI ブートモードのブートシーケンス Zynq UltraScale+ MPSoC では ブートイメージをロードするさまざまな方法がサポートされています その 1 つが JTAG インターフェイスを使用する方法です この XSCT セッションの例では XSDB デバッガーを使用して QSPI にブートイメージファイル (qspi_boot.bin) をダウンロードする方法を示します QSPI がロードされると qspi_boot.bin イメージは Zynq UltraScale+ の QSPI ブートモードと同じ方法で実行されます 同様のブートフローをデバッグするために この XSCT セッションまたはシステムデバッガーを使用できます 次のセクションでは このブートモードに関連する基本的な手順を示します ターゲットの設定 1. USB ケーブルでターゲットの USB-JTAG J2 コネクタとホストマシンの USB ポートを接続します 2. スイッチ SW6 を次の図に示すように設定して ボードを JTAG ブートモードに設定します X-Ref Target - Figure 5-26 図 5-26: JTAG ブートモードの SW6 スイッチ設定 3. スイッチ SW1 を使用してボードに電源を投入します XSCT ボタンをクリックして SDK で XSCT コンソールを開きます または [Xilinx] [XSCT Console] をクリックして XSCT コンソールを開くこともできます 4. XSCT コンソールで 次の connect コマンドを使用して JTAG を介してターゲットに接続します xsct% connect connect コマンドは 接続のチャネル ID を返します 5. target コマンドを実行して使用可能なターゲットをリストし ID を使用してターゲットを選択します ターゲットには JTAG チェーンで検出されたときに ID が割り当てられるので ターゲット ID はセッションごとに変わります 注記 : スクリプト記述などの非対話型の使用法では ID を使用してターゲットを選択するのではなく -filter オプションを利用してターゲットを選択できます xsct% targets Zynq UltraScale+: エンベデッドデザインチュートリアル 87

88 第 5 章 : ブートおよびコンフィギュレーション 次の図に示すように ターゲットが一覧表示されます X-Ref Target - Figure 5-27 図 5-27: XSCT ターゲット XSCT/XSDB を使用した U-Boot のロード 1. 次のコマンドを使用して Cortex-A53 # 0 に u-boot アプリケーションをダウンロードします セキュリティゲートを無効にして PMU MB ターゲットをデバッガーに認識させます xsct% targets -set -filter {name =~ "PSU"} xsct% mwr 0xffca0038 0x1ff xsct% targets #Disable Security gates to view PMU MB target targets -set -filter {name =~ "PSU"} #By default, JTAGsecurity gates are enabled #This disables security gates for DAP, PLTAP and PMU. mwr 0xffca0038 0x1ff after 500 PMU デバイスの下に PMU MB がリストされていることを確認します PMUFW をロードして実行します xsct% targets -set -filter {name =~ "MicroBlaze PMU"} xsct% dow {C:\edt\edt_zcu102\edt_zcu102.sdk\pmu_fw\Debug\pmu_fw.elf} xsct% con APU Cortex A53 コア 0 をリセットし FSBL をロードして実行します xsct% targets -set -filter {name =~ "Cortex-A53 #0"} xsct% rst -processor ヒント : rst-processoror は個々のプロセッサコアのリセットをクリアします Zynq UltraScale+: エンベデッドデザインチュートリアル 88

89 第 5 章 : ブートおよびコンフィギュレーション Zynq UltraScale+ を JTAG ブートモードで起動すると すべての APU コアおよび RPU コアがリセット状態に保持されるので この手順は重要です これらのコアでデバッグを実行する前に 各コアのリセットをクリアする必要があります リセットは XSCT の rst コマンドでクリアできます 注記 : rst -cores は 現在のターゲットが子となっている グループ (APU または RPU など ) 内にあるすべてのプロセッサコアのリセットをクリアします たとえば A53#0 が現在のターゲットである場合 rst -cores は APU のすべての A53 コアのリセットをクリアします FSBL をロードして実行します xsct% dow {C:\edt\edt_zcu102\edt_zcu102.sdk\fsbl_a53\Debug\fsbl_a53.elf} xsct% con シリアルターミナルに表示される FSBL メッセージを確認し 数秒後に FSBL を停止します xsct% stop ATF をロードして実行します xsct% dow {C:\edt\design_files\bl31.elf} xsct% con xsct% stop 2. シリアルターミナル (Tera Term Minicom または UART-0 USB シリアル接続用の SDK シリアルターミナルインターフェイス ) を設定します 3. シリアルターミナルの設定は 図 5-22 を参照してください X-Ref Target - Figure 5-28 図 5-28: ZCU102 ボードでイメージを検証する 4. U-Boot をロードして実行します xsct% dow {C:\edt\design_files\sd_boot\u-boot.elf} 5. XSDB で con コマンドを使用して U-Boot を実行します xsct% con 6. ターゲットのシリアルターミナルで 任意のキーを押して U-Boot の自動ブートを停止します 7. XSDB で stop コマンドを使用してコアを停止します xsct% stop Zynq UltraScale+: エンベデッドデザインチュートリアル 89

90 第 5 章 : ブートおよびコンフィギュレーション XSDB を使用した DDR への BOOT.bin のロード 1. ZCU102 の DDR に BOOT.bin バイナリをダウンロードします QSPI ブートモード用に作成された同じ BOOT.bin を使用します xsct% dow -data {C:\edt\qspi_BOOT.bin} 0x XSDB で con コマンドを使用して U-Boot を再開します xsct% con U-Boot を使用した QSPI への BOOT.bin イメージのロード 1. ターゲットターミナルの U-Boot コンソールで次のコマンドを実行します これらのコマンドによって QSPI が消去され BOOT.bin イメージが DDR から QSPI に書き込まれます ZynqMP> sf probe ZynqMP> sf erase 0 0 0x1E00000 ZynqMP> sf write 0x x0 ${filesize} 2. イメージが QSPI に書き込まれたら ZCU102 ボードの電源を切断し 83 ページの ZCU102 ボードのセットアップ の説明に従ってボードをセットアップします UART-0 ターミナルで Linux のロード UART-1 ターミナルで R5 アプリケーションの実行を確認できます この章では 主にシステムブートと システムブートに関連するさまざまなコンポーネントを中心に説明しています 次の章で PS ペリフェラル PL IP および APU コアと RPU コアの処理能力を活用する Linux およびスタンドアロン ( ベアメタル ) アプリケーションについて説明します USB ブートモードのブートシーケンス Zynq UltraScale+ MPSoC は USB スレーブブートモードもサポートしています これは USB デバイスクラス仕様の USB DFU (Device Firmware Upgrade) を適用しています OpenMoko DFU-Util のような標準アップデートユーティリティを使用すると 新しく作成されたイメージを USB ポートを介して Zynq UltraScale+ にロードできます 次のセクションでは このブートモードでブートイメージをロードするために必要な一連の設定を説明します DFU ユーティリティは ザイリンクス SDK および PetaLinux に付属しています USB ブートモードを有効にするために必要な FSBL の設定 USB ブートモードを有効にするために必要な FSBL の変更はほとんどありません USB ブートモードサポートは FSBL のフットプリントを約 10 KB 増加します これは主に初期開発段階中に使用することを目的としているので このサポートは OCM 空間を節約するためデフォルトでは無効になっています このセクションでは FSBL を変更して USB ブートモードを有効します FSBL プロジェクトはこのチュートリアル全体で広く使用されているので 既存の FSBL プロジェクトは変更しません その代わりに このセクションでは新しい FSBL プロジェクトを使用します Zynq UltraScale+: エンベデッドデザインチュートリアル 90

91 第 5 章 : ブートおよびコンフィギュレーション Arm Cortex-A53 ベースの APU 用 FSBL の作成 1. SDK で [File] [New] [Application Project] をクリックし New Project ウィザードを開きます 2. ウィザードの各ページで次の表の情報に基づいて設定を選択します 表 5-1: ウィザードのプロパティおよびコマンド ウィザードページ システムプロパティ 設定または使用するコマンド Application Project Project name fsbl_usb_boot Use default location オン OS Platform standalone Hardware Platform edt_zcu102_wrapper_hw_platform_0 Processor psu_cortexa53_0 Language C Compiler 64-bit Hypervisor Guest No Board Support Package [Use existing] をオンにして a53_bsp と入力 Templates Available Templates Zynq MP FSBL 3. [Finish] をクリックします 4. [Project Explorer] ビューで 次のように [fsbl_usb_boot] プロジェクトを展開し xfsbl_config.h を開きます fsbl_usb_boot > src > xfsbl_config.h 5. xfsbl_config.h で 次のように変更または設定します #define FSBL_QSPI_EXCLUDE_VAL (1U) #define FSBL_SD_EXCLUDE_VAL (1U) #define FSBL_USB_EXCLUDE_VAL (0U) 6. Ctrl + S キーを押して変更を保存します 7. FSBL (fsbl_usb_boot) を再ビルドします USB ブート用ブートイメージの作成 このセクションでは ブートイメージを作成し DFU ユーティリティを使用して USB を介してロードします Device Firmware Upgrade (DFU) は ファームウェアを USB を介して接続されたデバイスにダウンロード またはファームウェアをデバイスからアップロードします このブートモードでは bootrom によってロードされるブートローダー (FSBL) と PMUFW が DFU ユーティリティを使用してホストマシンの USB ポートから Zynq UltraScale+ のオンチップメモリ (OCM) にコピーされます OCM のサイズ (256 KB) により bootrom で USB ブートモードでダウンロードされるブートイメージのサイズが制限されます これを考慮し サイズ要件が満たされていることを条件として FSBL と PMUFW のみが最初の BOOT.bin に統合され OCM にコピーされます 残りのブートパーティションは 別のブートイメージに統合されて DDR メモリにコピーされます DDR は この段階で既にロードされて実行されている FSBL によりロードされます 次の手順に従って このブートモードのブートイメージを作成します 1. SDK で [Xilinx] [Create Boot Image] をクリックします 2. fsbl_usb_boot.elf および pmu_fw.elf のパーティションを選択し 次の図に示すように設定します Zynq UltraScale+: エンベデッドデザインチュートリアル 91

92 第 5 章 : ブートおよびコンフィギュレーション X-Ref Target - Figure PMUFW パーティションが bootrom によってロードされるよう設定されていることを確認します 4. [Create Image] をクリックして BOOT.bin を生成します PetaLinux の U-Boot の変更 図 5-29: USB ブートモードの Create Boot Image ウィザード PetaLinux の U-Boot を変更し image.ub をロードできるようにします デバイスツリーを変更して USB をペリフェラルモードに設定する必要があります デフォルトの PetaLinux コンフィギュレーションでは USB はホストモードに設定されています これには 次の手順に従って PetaLinux プロジェクト <PetaLinux-project>/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.d tsi にある system-user.dtsi を変更します 1. system-user.dtsi を次のようになるように変更します /include/ "system-conf.dtsi" / { gpio-keys { sw19 { status = "disabled"; }; }; leds { heartbeat_led { status = "disabled"; }; }; }; &dwc3_0 { dr_mode = "peripheral"; maximum-speed = "super-speed"; }; Zynq UltraScale+: エンベデッドデザインチュートリアル 92

93 第 5 章 : ブートおよびコンフィギュレーション 変更済みの system-user.dtsi ファイルは このチュートリアル付属のデザインファイル ZIP の usb_boot フォルダーに含まれています 2. これらの変更を含めて PetaLinux をビルドします $ petalinux-build 次の手順に従って 残りのパーティションを含む usb_boot.bin を作成します 注記 : 新しく生成された U-Boot を C:\edt\usb-edt\ にコピーします u-boot.elf は このチュートリアルのデザインファイル にも含まれています 1. SDK で [Xilinx] [Create Boot Image] をクリックします 2. FSBL および残りのパーティションを選択し 次の図に示すように設定します これには SD ブートシーケンスから BIF ファイルをインポートすることもできます X-Ref Target - Figure 5-30 図 5-30: 残りのパーティションのブートイメージの作成 3. PMUFW パーティションは イメージ (usb_boot.bin) がロードされる前に bootrom によってロードされるため このイメージには必要ありません 4. [Create Image] をクリックして usb_boot.bin を生成します 注記 : BOOT.bin および usb_boot.bin のほかに image.ub といった Linux イメージが Linux をブートするまで必要です この image.ub は DFU ユーティリティによって個別にロードされます Zynq UltraScale+: エンベデッドデザインチュートリアル 93

94 第 5 章 : ブートおよびコンフィギュレーション USB ブートを使用したブート このセクションでは DFU ユーティリティを使用して ZCU102 ターゲットにブートイメージをロードします 開始する前に 次のようにボード接続を設定します 1. SW6 を次の図に示すように 1 をオン 2 をオフ 3 をオフ 4 をオフにして ZCU102 を USB ブートモードに設定します X-Ref Target - Figure USB 3.0 ケーブルの一端を J96 USB 3 ULPI コネクタに接続し もう一端をホストマシンの USB ポートに接続します 3. USB Micro ケーブルでボード (J83) とホストマシン間の USB-UART ポートを接続します 4. 使用しているホストマシンに応じて Tera Term または Minicom を使用し ターミナルセッションを開始します システムの COM ポートとボーレートを図 5-31 に示すように設定します 5. ボードに電源を投入します 次のセクションの手順では DFU ユーティリティを使用して USB を介してブートイメージをロードします DFU ユーティリティは SDK\2018.2\tps\lnx64\dfu-util-0.9 にあります または 使用する Linux ディストリビューションでサポートされているパッケージマネージャーを利用して DFU ユーティリティを Linux にインストールすることも可能です Linux ホストマシンのブートコマンド 図 5-31: USB ブートモードの SW6 設定 1. DFU が USB ターゲットを検出可能かどうかをチェックします $ sudo dfu-util -l USB デバイスは VendorId : ProductId (03fd:0050) でエニュメレートする必要があります 次のようなメッセージが表示されるはずです Found DFU: [03fd:0050] ver=0100, devnum=30, cfg=1, intf=0, alt=0, name="xilinx DFU Downloader", serial="2a49876d9cc1aa4" 注記 : Found DFU メッセージが表示されない場合は 接続を確認して再試行してください 2. USB ブート用ブートイメージの作成 で作成した BOOT.bin をダウンロードします $ sudo dfu-util -d 03fd:0050 -D <USB_Boot_Image_Path>/Boot.bin FSBL が問題なくロードされていることをシリアルターミナルで確認します Zynq UltraScale+: エンベデッドデザインチュートリアル 94

95 第 5 章 : ブートおよびコンフィギュレーション 3. usb_boot.bin をダウンロードします その前に UART-1 シリアルコンソール用に別のターミナルセッションを開始します $ sudo dfu-util -d 03fd:0050 -D <USB_Boot_Image_Path>/usb_boot.bin UART 0 ターミナルをチェックし U-Boot がロードされるまで待機します 4. U-Boot のプロンプト画面で Enter と入力して自動ブートを終了します R5 アプリケーションも問題なくロードされていることを UART1 で確認します 5. U-Boot コンソールで DFU_RAM を開始して Linux イメージのダウンロードを有効にします U-boot> run dfu_ram 6. ホストマシンターミナルから次のコマンドを実行して Linux イメージの Image.ub をダウンロードします $ sudo dfu-util -d 03fd:0300 -D <PetaLinux_project>/images/linux/image.ub -a 0 7. U-Boot コンソールで Ctrl + C キーを押して dfu_ram を停止します 8. U-Boot コンソールで bootm コマンドを実行します U-boot> bootm 9. Linux がターゲットに問題なくロードされていることを確認します 注記 : この例では image.ub を U-Boot コンフィギュレーションの #define DFU_ALT_INFO_RAM の設定に基づいて DDR ロケーションにコピーします 同じものを変更して使用し ほかのイメージファイルを DDR ロケーションにコピーできます 必要な場合は これらのイメージを JTAG を使用した QSPI ブートモードのブートシーケンス にリストされている U-Boot コマンドを使用して QSPI にコピーできます Windows ホストマシンのブートコマンド 1. SDK で [Xilinx] [Launch Shell] をクリックします 2. シェルが起動したら DFU が USB ターゲットを検出可能であることを確認します > dfu-util.exe -l 注記 : dfu-util.exe は <SDK_Installation_path>\SDK\2018.2\tps\Win64\dfu-util-0.9\dfu-util.exe にあります 3. USB デバイスを VendorId : ProductId (03fd:0050) でエニュメレートします 注記 : Found DFU で始まるメッセージが表示されない場合 zadig ツールをダウンロードしてインストールします [Options] をクリックして [List all devices] をクリックします [Xilinx DFU downloader] をクリックし [Install Driver] をクリックします 4. USB ブート用ブートイメージの作成 で作成した BOOT.bin をダウンロードします $ dfu-util.exe -d 03fd:0050 -D BOOT.bin 5. FSBL が問題なくロードされていることをシリアルターミナル (UART 0) で確認します 6. usb_boot.bin をダウンロードします その前に UART-1 シリアルコンソール用に別のターミナルセッションを開始します $ dfu-util.exe -d 03fd:0050 -D usb_boot.bin 7. U-Boot のプロンプトに Enter と入力して自動ブートを終了します UART1 コンソールで R5 アプリケーションも問題なくロードされていることを確認します Zynq UltraScale+: エンベデッドデザインチュートリアル 95

96 第 5 章 : ブートおよびコンフィギュレーション 注記 : ここで zadig ツールを使用してデバイス ID 03fd:0300 の Usb download gadget 用にドライバーをインストールします このドライバーがない場合 ターゲットで U-Boot を起動した後に zadig ツールに Xilinx DFU Downloader が表示されません 8. U-Boot コンソールで DFU_RAM を開始して Linux イメージのダウンロードを有効にします U-boot> run dfu_ram 9. ホストマシンターミナルから次のコマンドを実行して Linux イメージの image.ub をダウンロードします $ dfu-util.exe -d 03fd:0300 -D image.ub -a U-Boot コンソールで bootm コマンドを実行します U-boot> bootm 11. Linux がターゲットに問題なくロードされていることを確認します セキュアブートシーケンス Zynq UltraScale+ MPSoC のセキュアブート機能により パーティションの機密性 完全性 および認証がサポートされます セキュアブートは Zynq UltraScale+ デバイスのハードウェアによる信頼のルート (HROT) 機能と すべてのブートパーティションを暗号化する機能を組み合わせることで実現します HROT は ハードウェアアクセラレーションを用いた SHA-3/384 またはソフトウェアとして実装された SHA-2/256 を使用した RSA-4096 非対称アルゴリズムに基づきます 機密性は 256 ビット Advanced Encryption Standard - Galois Counter Mode (AES-GCM) により実現しています このセクションでは 次の機能の使用方法と実装方法を中心に説明します キーの取り消しを含むハードウェアによる信頼のルート 差分電力解析 (DPA) 対策を含むパーティション暗号化 Physically Unclonable Function (PUF: 物理的な複製防止機能 ) を用いたブラックキーの格納 この セキュアブートシステムデザインにおける決定 では デザイン開発の早期に実行すべきハイレベルなセキュアブートの判断について概説します ハードウェアによる信頼のルート (HROT) では ブートにおける信頼のルート (RoT) の使用について説明します ブートイメージの機密性と DPA では AES 暗号化を使用する機密性の保護手法について説明します ブートイメージの機密性と DPA では DPA 攻撃への対策としての操作キーとキーローリング手法の使用について説明します AES キーを変更することで キーとそのキーで保護されているデータが脅威にさらされる危険性が低くなります レッドキーは非暗号化フォーマットのキーです ブラックキーの格納 では 暗号化 ( ブラック ) フォーマットで AES キーを格納する方法について説明します ブラックキーの格納では Physically Unclonable Function (PUF) をキーの暗号化キー (KEK) として使用します セキュアブートでの実用的な方法 では AES 暗号化および RSA 認証を使用するシステムの開発およびテスト手順を説明します Zynq UltraScale+: エンベデッドデザインチュートリアル 96

97 第 5 章 : ブートおよびコンフィギュレーション セキュアブートシステムデザインにおける決定 セキュアブートに影響を及ぼすデバイスレベルの決定事項は次のとおりです ブートモード AES キーの格納場所 AES の格納ステート ( 暗号化または非暗号化 ) 暗号化および認証の要件 キーの提供 セキュアブートをサポートするブートモードは Quad Serial Peripheral Interface (QSPI) SD emmc および NAND です AES キーは efuse ( 暗号化または暗号化なし ) バッテリバックアップランダムアクセスメモリ (BBRAM) ( 暗号化なし ) または外部 NVM ( 暗号化のみ ) に格納されます Zynq UltraScale+ MPSoC では パーティションはパーティション単位で暗号化および / または認証できます ザイリンクスは一般に すべてのパーティションに RSA 認証を使用することを推奨しています オープンソース (U-Boot Linux) のパーティション または専有情報や機密情報を含まないパーティションは通常 暗号化する必要はありません 機密データや専有 IP のソース / サプライヤーが複数存在するシステムでは 固有のキーを使用してパーティションを暗号化することが重要になります 耐 DPA 攻撃の要件は 攻撃者がデバイスに物理的にアクセスできるかどうかによって決まります 表 5-2 に 特定のセキュアシステム要件を満たすために必要な機能を決定する際に役立つ基準を示します 以降のセクションでは これらの機能についてより詳しく説明します 表 5-2: システムレベルのセキュリティ要件 システムの考慮事項 / 要件デバイスでユーザー SW および HW のみを実行可能ユーザー SW および HW が変更されない攻撃者が SW/HW を複製またはリバースエンジニアリングできない機密データおよび独自の Intellectual Property (IP) を保護秘密キー (AES キー ) をサイドチャネル攻撃から保護秘密キー (AES キー ) が停止状態で暗号化されて格納される Zynq UltraScale+ の機能 HWROT HWROT ブートイメージの機密性ブートイメージの機密性 DPA 保護ブラックキーの格納 Zynq UltraScale+: エンベデッドデザインチュートリアル 97

98 第 5 章 : ブートおよびコンフィギュレーション ハードウェアによる信頼のルート (HROT) 信頼のルートは ストレージ (RTS) 完全性 (RTI) 検証 (RTV) 対策 (RTM) およびレポート (RTR) の各セキュリティ要素から成ります RoT はハードウェア ファームウェア およびソフトウェアで構成されています HROT は変更不可で 攻撃対象領域が小さく 動作の信頼性が高いことから ソフトウェアによる RoT よりも利点があります HROT は CSU efuse BBRAM および分離エレメントに基づいています 動作環境およびコンフィギュレーションが変更されていないことを検証することは HROT の役割です RoT はブートのアンカーとして機能するため 検出機能が起動する前に攻撃者が悪意のあるコードを挿入することはできません ファームウェアとソフトウェアはブート時に HROT 上で実行されます Zynq UltraScale は 変更不可の bootrom コード 第 1 段階ブートローダー デバイスドライバー および HROT で動作する kilskey と xilsecure ライブラリを提供します これらにより 十分にテストされた実績のある API が提供されるため 開発者はセキュリティコンポーネントを最初から作成する必要はなく テストにも制限はありません データの完全性 データの完全性とは ハードウェア ファームウェア およびソフトウェアに破損がないことを意味します データの完全性機能では 攻撃者によりコンフィギュレーションおよび動作環境が改ざんされていないことが検証されます Zynq UltraScale+ は 対称キー (AES-GCM) および非対称キー (RSA) の認証を使用してパーティションの完全性を検証します RSA は秘密 / 公開キーペアを使用します フィールドで展開されているエンベデッドシステムには 公開キーしか含まれていません 現在の技術では公開キーから秘密キーを導出することは不可能であるため 公開キーを盗難してもあまり価値がありません 暗号化されたパーティションは AES の Galois Counter Mode (GCM) でも認証されます セキュアブートフローでは パーティションはまず認証され その後必要に応じて復号化されます 認証 図 5-32 に パーティションに対する RSA 署名と検証を示します SDK Bootgen ツールは セキュアな施設から秘密キーを使用してパーティションに署名を入れます デバイス内では 公開キーを使用して ROM が FSBL を検証し FSBL または U-Boot のいずれかが続くパーティションを検証します プライマリおよびセカンダリの秘密 / 公開キーペアが使用されます プライマリ秘密 / 公開キーは セカンダリ秘密 / 公開キーペアを認証します セカンダリキーは パーティションを署名 / 検証します Zynq UltraScale+: エンベデッドデザインチュートリアル 98

99 第 5 章 : ブートおよびコンフィギュレーション X-Ref Target - Figure 5-32 Signing - Bootgen Verification ROMCode, FSBL, U-Boot Partition Data Partition Data RSA Signature Public Key 384 Bit Hash Private Key 384 Bit Hash == 384 Bit Hash RSA Signature パーティションに署名を入れるため Bootgen はまずパーティションデータの SHA3 を計算します その後 秘密キーを使用して 384 ビットのハッシュが RSA 署名されます 結果の RSA 署名が認証証明に追加されます イメージ内では 署名された各パーティションにパーティションデータがあり その後に RSA 署名を含む認証証明が続きます FSBL の検証は CSU ROM コードで実行されます 後続のパーティションは FSBL または U-Boot により xilsecure ライブラリを使用して検証されます ブートヘッダー認証という認証用のデバッグモードがあります この認証モードでは デバイス efuse に格納されているプライマリ公開キーダイジェスト セッションキー ID およびキー取り消しビットは CSU ROM コードでチェックされません そのため このモードはセキュアではありませんが efuse をプログラムする必要がないので テストおよびデバッグには便利です このチュートリアルではこのモードを使用します フィールドに展開されたシステムではブートヘッダー認証は使用しないでください このセクションの最後に 完全にセキュアなシステム用の BIF ファイル例が含まれています ブートイメージの機密性と DPA 図 5-32: Zynq UltraScale+ の RSA 認証 AES を使用して 機密データおよび IP の機密性を確実に保護します Zynq UltraScale+ では AES Galois Counter Mode (GCM) を使用します また 256 ビットの AES キーを使用します Zynq UltraScale+ で改善された主な AES の機能は Differential Power Analysis (DPA) 攻撃に対する耐性が強化されていることと AES 暗号化 / 復号化後のブートが利用可能になっていることです Bootgen および FSBL ソフトウェアでは AES 暗号化がサポートされています 秘密キーが AES 暗号化に使用され AES 暗号化は Bootgen がキーファイルを使用して実行します キーファイルは Bootgen または OpenSSL により生成できます 操作キーを使用すると デバイスキーが脅威にさらされる危険性が低くなります 次のセクションで キーローリングでの操作キーの使用について説明します ブートイメージの機密性を保持するために Bootgen を使用して暗号化されたブートイメージを作成できます BBRAM および efuse にキーをプログラムするソフトウェアの例も ザイリンクス SDK で提供されています そのうちの一例を セキュアブートでの実用的な方法 で説明します Zynq UltraScale+: エンベデッドデザインチュートリアル 99

100 第 5 章 : ブートおよびコンフィギュレーション DPA 保護 キーローリングは耐 DPA 攻撃に使用されます キーローリングとブラックキーの格納は 同じデザインで使用できます キーローリングでは ソフトウェアとビットストリームは複数のデータブロックに分割され それぞれ固有のキーで暗号化されます 最初のキーは BBRAM または efuse NVM に格納されます 続くデータブロックのキーは前のデータブロックで暗号化されます 最初のキーの後 キーアップデートレジスタがキーソースとして使用されます 96 ビット初期化ベクター (IV) が 1 つ NKY キーファイルに含まれます IV は 96 ビットを使用して AES カウンターを初期化します キーローリングが使用される場合 128 ビット IV が 1 つ ブートヘッダーに提供されます 32 LSB で 現在のキーで復号化されるデータのブロックサイズが定義されます IV で定義される最初のブロックに続くブロックのサイズは Bootgen イメージフォーマット (BIF) ファイルの属性として定義されます キーローリングの効果的な方法は操作キーを使用することです 操作キーを使用する場合 Bootgen でユーザー指定の操作キーを使用して最初のブロック IV で暗号化されたセキュアヘッダーが作成されます efuse または BBRAM 内の AES キーは 256 ビット操作キーを含む 384 ビットセキュアヘッダーを復号化する目的にのみ使用します これにより デバイスキーが DPA 攻撃にさらされる可能性が制限されます ブラックキーの格納 PUF を使用すると AES キーを暗号化 ( ブラック ) フォーマットで格納できます ブラックキーは efuse またはブートヘッダー内に格納できます 復号化に必要な場合は efuse またはブートヘッダー内にある暗号化されたキーが PUF で生成された KEK (Key Encryption Key キーの暗号化キー ) で復号化されます PUF をブラックキーの格納に使用するには 2 つの手順に従います まず PUF 登録ソフトウェアを使用して PUF ヘルパーデータと PUF KEK を生成します この PUF 登録データを使用することで PUF は KEK を生成するごとに同一のキーを再生成できるようになります PUF 登録ソフトウェアの使用の詳細は PUF の登録 - ブートヘッダーモード を参照してください efuse モードの PUF 登録の詳細は BBRAM および efuse のプログラミング (XAPP1319) [ 参照 13] を参照してください ヘルパーデータおよび暗号化されたユーザーキーは共に PUF efuse のときは efuse に PUF ブートヘッダーモードのときはブートヘッダーに格納する必要があります PUF ブートヘッダーモードの手順は ブートヘッダーモードでの PUF の使用 で説明します efuse モードの PUF の使用方法は BBRAM および efuse のプログラミング (XAPP1319) [ 参照 13] を参照してください このチュートリアルでは efuse のプログラムが不要でテストおよびデバッグに便利な PUF ブートヘッダーモードを使用します ただし PUB ブートヘッダーモードでは各デバイスに対して個別に Bootgen を実行する必要があるので 最も一般的なモードは PUF efuse モードです セキュアブートシーケンス の最後に PUF efuse モードを示す完全にセキュアなシステム用の BIF ファイル例が含まれています Zynq UltraScale+: エンベデッドデザインチュートリアル 100

101 第 5 章 : ブートおよびコンフィギュレーション セキュアブートでの実用的な方法 このセクションでは Zynq UltraScale+ システムでセキュアブートを開発する手順を概説します セキュアなエンベデッドシステムを構築するには 2 段階のプロセスが必要です 第 1 段階では 暗号化キーを生成して NVM にプログラムします 第 2 段階では セキュアシステムを開発してテストします どちらの段階にもザイリンクスのソフトウェア開発キット (SDK) を使用し ソフトウェアプロジェクトの作成 イメージの生成 およびイメージのプログラムを実行します 第 2 段階のテストシステムは fsbl.elf および hello.elf ファイルのような単純なものにできます このセクションでは SD ブートのブートシーケンス で使用されているものと同じイメージを使用しますが このイメージをアセンブルし セキュアブートシーケンスの一部としてセキュア属性を有効にします このセクションでは まず AES および RSA キーの生成方法を示します キーの生成に続き 高度な AES および RSA 手法を使用してシステムを開発し テストします このセクションで生成されるキーは このチュートリアルのデザインファイル にも含まれています AES 機能の開発に使用する手法は 次のセクションで説明されています AES キーの生成 キーローリングを使用した暗号化の有効化 操作キーの使用の有効化 efuse の AES キー PUF の使用 RSA 秘密 / 公開キーペアの作成 に ブート時にロードされるすべてのパーティションを認証する手順を説明しています キーの取り消し方法も示しています セキュアシステムの開発では イメージの生成時に使用するセキュリティ属性を追加する必要があります SDK の Bootgen によりブートイメージフォーマット (BIF) ファイルが生成されます BIF ファイルはテキストファイルです 最もシンプルなフォーマットの BIF では ブート時にロードされるパーティションがリストされます 暗号化機能を指定するためのセキュリティ属性が BIF に追加されます BIF ファイルは Bootgen GUI (Create Boot Image ウィザード ) により生成されることがほとんどです セキュリティ属性を追加する際 Bootgen で生成された BIF ファイルの変更が求められることがあります ザイリンクス SDK の Create Boot Image ウィザードで [Security] タブをクリックし [Authentication] タブおよび [Encryption] タブでセキュリティ属性を指定します セキュアブートで AES および RSA 暗号化をインプリメントしたら ブートテストは完了します システムが問題なくロードされ ターミナルに FSBL メッセージが表示されます これらのメッセージには 各パーティションで実行された暗号化操作が示されます 付録 A セキュアブートでの問題のデバッグ では セキュアブートテストで問題が検出された場合に実行する手順を説明します Zynq UltraScale+: エンベデッドデザインチュートリアル 101

102 第 5 章 : ブートおよびコンフィギュレーション サンプルデザインの概要 サンプルデザインは さまざまなタイプのイメージをデバイスに読み込みます FSBL PMU ファームウェア U-Boot Linux RPU ソフトウェア および PL コンフィギュレーションイメージを読み込みます このサンプルでは これらすべてのイメージは FSBL により読み込まれ FSBL ですべての認証および復号化が実行されます これがシステムをブートする唯一の方法ではありませんが 以降ではシンプルでセキュアな方法です X-Ref Target - Figure 5-33 図 5-33: サンプルデザインの概要 Zynq UltraScale+: エンベデッドデザインチュートリアル 102

103 第 5 章 : ブートおよびコンフィギュレーション ブートイメージ内のさまざまなセクションはセキュリティレベルが異なり 異なる場所に読み込まれます 次の表に 最終的なブートイメージの内容を示します 表 5-3: 最終的なブートイメージとセキュア属性 バイナリ RSA 認証 AES 暗号化 例外レベル ローダー FSBL あり あり EL3 CSU ROM PMU ファームウェア あり あり 該当なし FSBL PL ビットストリーム あり あり 該当なし FSBL Arm トラステッドファームウェア (ATF) あり なし EL3 FSBL R5 ソフトウェア あり あり 該当なし FSBL U-Boot あり なし EL2 FSBL Linux ありなし EL1 FSBL 注記 : 1. セキュアブートシーケンスでは PMU イメージは FSBL により読み込まれます PMU ファームウェアの読み込みに bootrom/csu を使用すると まず FSBL の復号化 その後 PMU イメージの復号化にキー /IV の組み合わせが 2 回使用されるので セキュリティ脆弱性が発生します これはセキュアシステムでは許容されません からは U-Boot で Linux のセキュア認証読み込みは実行されません U-Boot の代わりに FSBL で Linux イメージがメモリアドレスに読み込まれ U-Boot が使用されてそのメモリアドレスにジャンプします このチュートリアルでは 第 6 章 システムデザイン例 を使用して作成したバイナリを すべてのセキュリティ機能を有効にしてブートイメージに統合します このセクションでは PL ビットストリームをセキュアブートフローの一部として追加する方法も示します 第 6 章 システムデザイン例 の手順に ビルド設定の変更 まで従って必要なファイルをすべて作成してから このセクションに戻ります ブートイメージでセキュリティ機能を有効にするには 2 つの方法があります 最初の方法では テキストエディターを使用して BIF ファイルを手動で作成し その BIF ファイルを使用して Bootgen でキーを作成します これにより セキュリティ機能を有効にした BIF ファイルのセクションを特定できます 2 つ目の方法では SDK の Create Boot Image ウィザードを使用します 同じセキュリティ機能を示します 2 つ目の方法では 便宜上最初の方法と同じキーを使用します 認証用のキーの生成 キーの生成方法は複数あります Bootgen カスタマイズされたキーファイル OpenSSL ハードウェアセキュリティモジュール (HSM) を使用する方法などがあります このチュートリアルでは Bootgen を使用します Bootgen で作成したファイルは ほかのキーソースからのユーザー指定キーを含むファイルを作成する際にテンプレートとして使用できます Bootgen を使用してキーを作成するには BIF ファイルを生成して変更する必要があります このチュートリアルのキー生成セクションでは これらの BIF ファイルをテキストエディターを使用して手動で作成します その次のブートイメージのビルドセクションでは これらの BIF ファイルを SDK の Create Boot Image ウィザードを使用して作成する方法を示します Zynq UltraScale+: エンベデッドデザインチュートリアル 103

104 第 5 章 : ブートおよびコンフィギュレーション RSA 秘密 / 公開キーペアの作成 この例では プライマリおよびセカンダリのキーを PEM フォーマットで作成します キーは Bootgen のコマンドラインオプションを使用して生成されます または OpenSSL などの外部ツールを使用してキーを作成できます 次の手順に従って RSA 秘密 / 公開キーペアを作成します 1. SDK のシェルを起動します 2. [Xilinx] [Launch Shell] をクリックします 3. key_generation.bif という名前のファイルを作成します 注記 : key_generation.bif ファイルは この手順で使用する非対称キーと後の手順で使用する対称キーの両方を作成するのに使用します the_rom_image: { [pskfile]psk0.pem [sskfile]ssk0.pem [auth_params]spk_id = 0; ppk_select = 0 [fsbl_config]a53_x64 [bootloader]fsbl_a53.elf [destination_cpu = pmu]pmu_fw.elf [destination_device = pl]edt_zcu102_wrapper.bit [destination_cpu = a53-0, exception_level = el-3, trustzone] bl31.elf [destination_cpu = r5-0]tmr_psled_r5.elf [destination_cpu = a53-0, exception_level = el-2]u-boot.elf [load = 0x , destination_cpu = a53-0]image.ub } 4. key_generation.bif ファイルを C:\edt\secure_boot_sd\keys ディレクトリに保存します 5. 第 6 章 システムデザイン例 で作成した ELF BIF および UB ファイルを C:\edt\secure_boot_sd\keys ディレクトリにコピーします 6. BIF ファイルを含むフォルダーに移動します cd C:\edt\secure_boot_sd\keys 7. 次のコマンドを実行してキーを生成します bootgen -p zu9eg -arch zynqmp -generate_keys auth pem -image key_generation.bif 8. ppk0.pem および ssk0.pem ファイルが BIF ファイルで指定された場所 (c:\edt\secure_boot_sd\keys) に生成されていることを確認します Zynq UltraScale+: エンベデッドデザインチュートリアル 104

105 第 5 章 : ブートおよびコンフィギュレーション RSA 秘密 / 公開キーペアで公開キーの SHA3 を生成 次に示す手順は efuse モードの RSA 認証でのみ実行する必要があり ブートヘッダーモードの RSA 認証ではスキップできます sha3.txt からの 384 ビットを efuse にプログラムして efuse モードの RSA 認証に使用できます 詳細は BBRAM および efuse のプログラミング (XAPP1319) [ 参照 13] を参照してください 1. 前のセクションの手順を実行します 2. PEM ファイルが定義されたので key_generation.bif に次に示すように authentication = rsa 属性を追加します the_rom_image: { [pskfile]psk0.pem [sskfile]ssk0.pem [auth_params]spk_id = 0; ppk_select = 0 [fsbl_config]a53_x64 [bootloader, authentication = rsa]fsbl_a53.elf [destination_cpu = pmu, authentication = rsa]pmu_fw.elf [destination_device = pl, authentication = rsa]edt_zcu102_wrapper.bit [destination_cpu = a53-0, exception_level = el-3, trustzone, authentication = rsa]bl31.elf [destination_cpu = r5-0, authentication = rsa]tmr_psled_r5.elf [destination_cpu = a53-0, exception_level = el-2, authentication = rsa]u-boot.elf [load = 0x , destination_cpu = a53-0, authentication = rsa]image.ub } 3. 次の bootgen コマンドを使用して PPK のハッシュを計算します bootgen -p zcu9eg -arch zynqmp -efuseppkbits ppk0_digest.txt -image key_generation.bif 4. ppk0_digest.txt ファイルが指定された場所 (c:\edt\secure_boot_sd\keys) に生成されていることを確認します 追加の RSA 秘密 / 公開キーペア このセクションでは キーの取り消しに必要なセカンダリ RSA 秘密 / 公開キーペアを生成する手順を示します これには efuse のプログラムが必要です 詳細は BBRAM および efuse のプログラミング (XAPP1319) [ 参照 13] を参照してください キーの取り消しを使用する予定がない場合は このセクションはスキップできます 2 つ目の RSA 秘密 / 公開キーペアを作成し この PPK の SHA3 を生成するには RSA 秘密 / 公開キーペアの作成 および RSA 秘密 / 公開キーペアで公開キーの SHA3 を生成 の手順を繰り返します 1. 前のセクションの手順を psk0.pem ssk0.pem および ppk0_digest.txt をそれぞれ psk1.pem ssk1.pem および ppk1_digest.pem に置き換えて実行します このファイルを key_generation_1.bif という名前で保存します この.bif ファイルは次のようになります the_rom_image: { [pskfile]psk1.pem [sskfile]ssk1.pem [auth_params]spk_id = 1; ppk_select = 1 [fsbl_config]a53_x64 [bootloader]fsbl_a53.elf [destination_cpu = pmu]pmu_fw.elf [destination_device = pl]edt_zcu102_wrapper.bit [destination_cpu = a53-0, exception_level = el-3, trustzone]bl31.elf [destination_cpu = r5-0]tmr_psled_r5.elf [destination_cpu = a53-0, exception_level = el-2]u-boot.elf [load = 0x , destination_cpu = a53-0]image.ub } Zynq UltraScale+: エンベデッドデザインチュートリアル 105

106 第 5 章 : ブートおよびコンフィギュレーション 2. 次の bootgen コマンドを実行して RSA 秘密 / 公開キーペアを作成します bootgen -p zu9eg -arch zynqmp -generate_keys auth pem -image key_generation_1.bif 3. key_generation_1.bif ファイルに authentication = rsa 属性を追加します.bif ファイルは次のようになります the_rom_image: { [pskfile]psk1.pem [sskfile]ssk1.pem [auth_params]spk_id = 1; ppk_select = 1 [fsbl_config]a53_x64 [bootloader, authentication = rsa]fsbl_a53.elf [destination_cpu = pmu, authentication = rsa]pmu_fw.elf [destination_device = pl, authentication = rsa]edt_zcu102_wrapper.bit [destination_cpu = a53-0, exception_level = el-3, trustzone, authentication = rsa]bl31.elf [destination_cpu = r5-0, authentication = rsa]tmr_psled_r5.elf [destination_cpu = a53-0, exception_level = el-2, authentication = rsa]u-boot.elf [load = 0x , destination_cpu = a53-0, authentication = rsa]image.ub } 4. 次の bootgen コマンドを使用してプライマリ RSA 公開キーのハッシュを生成します bootgen -p zcu9eg -arch zynqmp -efuseppkbits ppk1_digest.txt -image key_generation_1.bif 5. ppk1.pem spk1.pem および ppk1_digest.txt ファイルが指定された場所 (c:\edt\secure_boot_sd\keys) に生成されていることを確認します ブートヘッダー認証の有効化 ブートヘッダー認証モードでは ROM での PPK の efuse ハッシュ PPK の取り消しステータス およびセカンダリキーのセッション ID のチェックがスキップされます このモードでは efuse をプログラムする必要がないので テストおよびデバッグに便利です このモードは デバイスで RSA_EN efuse をプログラムすることにより恒久的に無効にできます これにより efuse チェックを使用した RSA 認証が強制的に実行されるようになります フィールドに展開されたシステムでは RSA_EN efuse を使用して efuse チェックが強制的に実行されるようにし ブートヘッダー認証は無効にしてください [fsbl_config] 行に bh_auth_enable 属性を追加します.bif ファイルは次のようになります the_rom_image: { [pskfile]psk0.pem [sskfile]ssk0.pem [auth_params]spk_id = 0; ppk_select = 0 [fsbl_config]a53_x64, bh_auth_enable [bootloader, authentication = rsa]fsbl_a53.elf [destination_cpu = pmu, authentication = rsa]pmu_fw.elf [destination_device = pl, authentication = rsa]edt_zcu102_wrapper.bit [destination_cpu = a53-0, exception_level = el-3, trustzone, authentication = rsa]bl31.elf [destination_cpu = r5-0, authentication = rsa]tmr_psled_r5.elf [destination_cpu = a53-0, exception_level = el-2, authentication = rsa]u-boot.elf [load = 0x , destination_cpu = a53-0, authentication = rsa]image.ub } Zynq UltraScale+: エンベデッドデザインチュートリアル 106

107 第 5 章 : ブートおよびコンフィギュレーション 機密性のためのキーの生成 イメージの機密性については ブートイメージの機密性と DPA で説明します このセクションでは 認証セクションの.bif ファイルに属性を追加して AES-256-GCM 暗号化アルゴリズムを使用したイメージの機密性を有効にします 最後に bootgen コマンドを実行して 必要な AES-256 キーを作成します AES 暗号化の使用 1. [keysrc_encryption] bbram_red_key 属性を使用して初期暗号キー (bbram_red_key) のキーソースを指定し イメージの機密性を有効にします 2. パーティションに encryption = aes 属性を追加して機密性を有効にします 各パーティションに固有のキーファイルも指定します 各パーティションに固有のキーファイルを使用すると キーが再利用されず 1 つのキーに暗号化される情報量が少なくなるので セキュリティが向上します key_generation.bif ファイルは次のようになります the_rom_image: { [pskfile]psk0.pem [sskfile]ssk0.pem [auth_params]spk_id = 0; ppk_select = 0 [keysrc_encryption]bbram_red_key [fsbl_config]a53_x64, bh_auth_enable [aeskeyfile]fsbl_a53.nky [bootloader, authentication = rsa, encryption = aes]fsbl_a53.elf [aeskeyfile]pmu_fw.nky [destination_cpu = pmu, authentication = rsa, encryption = aes]pmu_fw.elf [aeskeyfile]edt_zcu102_wrapper.nky [destination_device = pl, authentication = rsa, encryption = aes]edt_zcu102_wrapper.bit [destination_cpu = a53-0, exception_level = el-3, trustzone, authentication = rsa]bl31.elf [aeskeyfile]tmr_psled_r5.nky [destination_cpu = r5-0, authentication = rsa, encryption = aes]tmr_psled_r5.elf [destination_cpu = a53-0, exception_level = el-2, authentication = rsa]u-boot.elf [load = 0x , destination_cpu = a53-0, authentication = rsa]image.ub } Zynq UltraScale+: エンベデッドデザインチュートリアル 107

108 第 5 章 : ブートおよびコンフィギュレーション DPA 保護の有効化 このセクションでは 差分電力解析 (DPA) への対策に有効な操作キーとキーローリングの使用手順を示します 操作キーの使用の有効化 操作キーを使用すると デバイスキーを使用して暗号化される情報量が制限されます 操作キーの使用を有効にするには.bif ファイルの [fsbl_config] 行に opt_key 属性を追加します key_generation.bif ファイルは次のようになります the_rom_image: { [pskfile]psk0.pem [sskfile]ssk0.pem [auth_params]spk_id = 0; ppk_select = 0 [keysrc_encryption]bbram_red_key [fsbl_config]a53_x64, bh_auth_enable, opt_key [aeskeyfile]fsbl_a53.nky [bootloader, authentication = rsa, encryption = aes]fsbl_a53.elf [aeskeyfile]pmu_fw.nky [destination_cpu = pmu, authentication = rsa, encryption = aes]pmu_fw.elf [aeskeyfile]edt_zcu102_wrapper.nky [destination_device = pl, authentication = rsa, encryption = aes]edt_zcu102_wrapper.bit [destination_cpu = a53-0, exception_level = el-3, trustzone, authentication = rsa]bl31.elf [aeskeyfile]tmr_psled_r5.nky [destination_cpu = r5-0, authentication = rsa, encryption = aes]tmr_psled_r5.elf [destination_cpu = a53-0, exception_level = el-2, authentication = rsa]u-boot.elf [load = 0x , destination_cpu = a53-0, authentication = rsa]image.ub } Zynq UltraScale+: エンベデッドデザインチュートリアル 108

109 第 5 章 : ブートおよびコンフィギュレーション キーローリングを使用した暗号化の有効化 キーローリングを使用すると ほかのキーを使用して暗号化される情報の量が制限されます キーローリングを有効にするには.bif ファイルでパーティションごとに blocks 属性を追加します blocks 属性では 各キーで暗号化する情報量をバイト数で指定できます たとえば blocks=4096,1024(3),512(*) と記述すると最初のキーに 4096 バイト 2 ~ 4 番目キーには 1024 バイト 残りすべてのキーに 512 バイトが使用されます この例では 各キーの情報量を 1728 バイトに制限しています キーローリングの使用を有効にするには 暗号化された各パーティションに blocks 属性を追加します key_generation.bif ファイルは次のようになります the_rom_image: { [pskfile]psk0.pem [sskfile]ssk0.pem [auth_params]spk_id = 0; ppk_select = 0 [keysrc_encryption]bbram_red_key [fsbl_config]a53_x64, bh_auth_enable, opt_key [aeskeyfile]fsbl_a53.nky [bootloader, authentication = rsa, encryption = aes, blocks = 1728(*)]fsbl_a53.elf [aeskeyfile]pmu_fw.nky [destination_cpu = pmu, authentication = rsa, encryption = aes, blocks = 1728(*)]pmu_fw.elf [aeskeyfile]edt_zcu102_wrapper.nky [destination_device = pl, authentication = rsa, encryption = aes, blocks = 1728(*)]edt_zcu102_wrapper.bit [destination_cpu = a53-0, exception_level = el-3, trustzone, authentication = rsa]bl31.elf [aeskeyfile]tmr_psled_r5.nky [destination_cpu = r5-0, authentication = rsa, encryption = aes, blocks = 1728(*)]tmr_psled_r5.elf [destination_cpu = a53-0, exception_level = el-2, authentication = rsa]u-boot.elf [load = 0x , destination_cpu = a53-0, authentication = rsa]image.ub } AES キーの生成 必要な暗号化機能をすべて有効にしたら Bootgen を使用してキーファイルを生成できます ELF などの一部のソースファイルには 複数のセクションがあります これらの各セクションは個別のパーティションにマップされ 各パーティションに固有のキーファイルが使用されます その場合 キーファイルに.1. が追加されます たとえば pmu_fw.elf ファイルに複数のセクションがある場合 pmu_fw.nky および pmu_fw.1.nky ファイルが生成されます 1. 次の bootgen コマンドを実行して必要な NKY ファイルすべてを作成します このコマンドにより 最終的な BOOT.bin イメージが作成されます bootgen -p zcu9eg -arch zynqmp -image key_generation.bif 2. NKY ファイルが生成されていることを確認します edt_zcu102_wrapper.nky fsbl_a53.nky pmu_fw.nky pmu_fw.1.nky tmr_psled_r5.nky および tmr_psled_r5.1.nky ファイルが生成されているはずです Zynq UltraScale+: エンベデッドデザインチュートリアル 109

110 第 5 章 : ブートおよびコンフィギュレーション キー取り消しの使用 キー取り消しを使用すると RSA のプライマリ公開キーまたはセカンダリ公開キーを無効にできます キーの使用時間が超過した場合 またはキーへの不正アクセスが検出された場合 キー取り消しが適用されます プライマリおよびセカンダリキーの取り消しは ワンタイムプログラマブルな efuse によって制御されます ザイリンクスセキュアキーライブラリをキー取り消しに使用すると フィールド展開されているデバイスに対するキー取り消しが可能になります キー取り消しの詳細は Zynq UltraScale+ MPSoC テクニカルリファレンスマニュアル (UG1085) [ 参照 5] を参照してください PUF の使用 このセクションでは PUF を PUF ブートヘッダーモードでブラックキーの格納に使用します PUF を使用する場合は RSA 認証が必要です PUF ブートヘッダーモードでは PUF ヘルパーデータと暗号化されたユーザー AES キーはブートヘッダーに格納されます ここでは PUF を使用して BIF を作成する方法を説明します ヘルパーデータおよび暗号化されたユーザーキーはボードに特定なので 作成された Bootgen イメージはヘルパーデータを作成したボードでしか機能しません セキュアブートシーケンス の最後に efuse モードで PUF を使用した BIF ファイルが示されています PUF efuse モードでは PUF ヘルパーデータと暗号化されたユーザー AES キーは efuse に格納されます PUF efuse モードでは すべてのボードで 1 つのブートイメージを使用できます PUF の登録 - ブートヘッダーモード PUF 登録ソフトウェアは kilskey ライブラリに含まれています このソフトウェアはブートヘッダーモードまたは efuse モードで動作します ブートヘッダーモードでは OTP の efuse をプログラムすることなく開発が可能です efuse モードは プロダクションフローで使用されます このチュートリアルでは ブートヘッダーモードでの PUF の登録までを実行します efuse を使用した PUF 登録については BBRAM および efuse のプログラミング (XAPP1319) [ 参照 13] を参照してください PUF 登録ソフトウェアはレッド ( 非暗号化 ) キーを入力として受け取り CHASH と AUX も含むシンドロームデータ ( ヘルパーデータ ) およびブラック ( 暗号化 ) キーを出力します PUF ブートヘッダーモードでは この出力はブートヘッダーに挿入されます PUF efuse モードでは この出力は efuse にプログラムされます 1. SDK で [tmr_psled_r5_bsp] を右クリックし [Board Support Package Settings] をクリックします 2. [Supported Libraries] で [xilskey] および [xilsecure] を必ずオンにします Zynq UltraScale+: エンベデッドデザインチュートリアル 110

111 第 5 章 : ブートおよびコンフィギュレーション X-Ref Target - Figure 5-34 図 5-34: [Supported Libraries] で [xilskey] および [xilsecure] をオンにする 3. [OK] をクリックします [Project Explorer] ビューで [tmr_psled_r5_bsp] を展開して [system.mss] をダブルクリックします 4. [Libraries] セクションまでスクロールダウンします xilskey 6.5 の [Import Examples] をダブルクリックします 5. 表示されたダイアログボックスで [xilskey_puf_registration] をオンにします [OK] をクリックします X-Ref Target - Figure 5-35 図 5-35: PUF 登録サンプルのインポート Zynq UltraScale+: エンベデッドデザインチュートリアル 111

112 第 5 章 : ブートおよびコンフィギュレーション 6. [Project Explorer] ビューで [tmr_psled_r_bsp_xilskey_puf_registration_1] を右クリックします [Rename] をクリックし 開いた [Rename Resource] ダイアログボックスで [New name] に puf_registration と入力して [OK] をクリックします X-Ref Target - Figure 5-36 図 5-36: PUF 登録プロジェクトの名前の変更 7. [Project Explorer] ビューで [puf_registration] [src] を展開して [xilskey_puf_registration.h] をダブルクリックし SDK を開きます 8. xilskey_puf_registration.h を次のように変更します a. #define XSK_PUF_INFO_ON_UART を FALSE から TRUE に変更します b. #define XSK_PUF_PROGRAM_EFUSE が FALSE に設定されていることを確認します c. XSK_PUF_AES_KEY (256 ビットキー ) を設定します キーは 16 進数フォーマットで入力し AES キーの生成 で生成した fsbl_a53.nky ファイルの Key 0 キーである必要があります 次にサンプルキーを示します #define XSK_PUF_AES_KEY "68D ED1481C C1D98DA816202A57E7FE4F67859CB069CD510" 注記 : このキーはコピーしないでください ユーザーキーについては fsbl_a53.nky ファイルを参照してください d. XSK_PUF_IV を次のように設定します 初期化ベクター (IV) はユーザーが選択する 12 バイトデータです #define XSK_PUF_IV "E1757A6E6DD1CC9F733BED31" Zynq UltraScale+: エンベデッドデザインチュートリアル 112

113 第 5 章 : ブートおよびコンフィギュレーション 9. [src] を展開表示して [lscript.ld] をダブルクリックし プロジェクトのリンカースクリプトを開きます リンカースクリプトの [Available Memory Regions] ( ベクターセクション以外 ) で psu_r5_ddr_0_mem_3 のベースアドレスとサイズを次のように変更します base 0x7F size 0xF00000 X-Ref Target - Figure ファイルを保存して閉じます 11. [Project Explorer] ビューで [puf_registration project] を右クリックし [Build Project] をクリックします 12. SDK で [Xilinx] [Create Boot Image] をクリックします 13. [Architecture] で [Zynq MP] を選択します 図 5-37: ブートヘッダーモードでの PUF 登録 14. [Output BIF file path] で次のように指定します C:\edt\secureboot_sd\puf_registration\puf_registration.bif 15. [Output path] で次のように指定します C:\edt\secureboot_sd\puf_registration\BOOT.bin 16. [Boot image partitions] で [Add] をクリックします パーティションを追加し puf_registration アプリケーションのデスティネーション CPU を R5-0 に設定します C:\edt\edt_zcu102\edt_zcu102.sdk\fsbl_a53\Debug\fsbl_a53.elf C:\edt\edt_zcu102\edt_zcu102.sdk\puf_registration\Debug\puf_registration.elf Zynq UltraScale+: エンベデッドデザインチュートリアル 113

114 第 5 章 : ブートおよびコンフィギュレーション 17. [Create Image] をクリックして PUF 登録用のブートイメージを作成します X-Ref Target - Figure SD カードを PC の SD カードスロットに挿入します 19. C:\edt\secureboot_sd\puf_registration\BOOT.bin を SD カードにコピーします 20. SD カードを PC の SD カードスロットから取り出し ZCU102 のカードスロットに挿入します 21. 使用しているホストマシンに応じて Tera Term または Minicom を使用し ターミナルセッションを開始します システムの COM ポートとボーレートを図 3-12 に示すように設定します 22. 通信ターミナルのメニューバーで [File] [Log] をクリックします ダイアログボックスに C:\edt\secureboot_sd\puf_registration\puf_registration.log と入力します 23. ボードの電源を切って入れ直します 図 5-38: PUF 登録ソフトウェア 24. puf_registration ソフトウェアが実行されたら 通信ターミナルを終了します 25. puf_registration.log の内容は ブートヘッダーモードでの PUF の使用 で使用されます テキストエディターで puf_registration.log を開きます 26. App:PUF Syndrome data Start!!! の後から App:PUF Syndrome data End!!! まで ( これらは含めない ) の PUF シンドロームデータを helperdata.txt というファイルに保存します 27. App: Black Key IV というブラックキーを black_iv.txt というファイルに保存します 28. ブラックキーを black_key.txt というファイルに保存します 29. helperdata.txt black_key.txt および black_iv.txt ファイルは C:\edt\secure_boot_sd\keys に保存します Zynq UltraScale+: エンベデッドデザインチュートリアル 114

115 第 5 章 : ブートおよびコンフィギュレーション ブートヘッダーモードでの PUF の使用 前のセクションの.bif ファイルを次の手順に従ってアップデートし ブートヘッダーモードでの PUF の使用を有効にします このセクションでは PUF 登録プロセスで作成したシンドロームデータとブラックキーを使用します 1. 次に示す.bif ファイル (key_generation.bif) に太字で示されているフィールドおよび属性をすべて追加して PUF の使用を有効にします the_rom_image: { [pskfile]psk0.pem [sskfile]ssk0.pem [auth_params]spk_id = 0; ppk_select = 0 [keysrc_encryption]bh_blk_key [bh_key_iv]black_iv.txt [bh_keyfile]black_key.txt [puf_file]helperdata.txt [fsbl_config]a53_x64, bh_auth_enable, opt_key, puf4kmode, shutter=0x e, pufhd_bh [aeskeyfile]fsbl_a53.nky [bootloader, authentication = rsa, encryption = aes, blocks = 1728(*)]fsbl_a53.elf [aeskeyfile]pmu_fw.nky [destination_cpu = pmu, authentication = rsa, encryption = aes, blocks = 1728(*)]pmu_fw.elf [aeskeyfile]edt_zcu102_wrapper.nky [destination_device = pl, authentication = rsa, encryption = aes, blocks = 1728(*)]edt_zcu102_wrapper.bit [destination_cpu = a53-0, exception_level = el-3, trustzone, authentication = rsa]bl31.elf [aeskeyfile]tmr_psled_r5.nky [destination_cpu = r5-0, authentication = rsa, encryption = aes, blocks = 1728(*)]tmr_psled_r5.elf [destination_cpu = a53-0, exception_level = el-2, authentication = rsa]u-boot.elf [load = 0x , destination_cpu = a53-0, authentication = rsa]image.ub } 2. 上記の.bif ファイルを使用して PUF KEK を使用してブートイメージヘッダーで暗号化された AES キーを使用して最終的なブートイメージを作成します これには 次の bootgen コマンドを使用します bootgen -p zcu9eg -arch zynqmp -image key_generation.bif -w -o BOOT.bin 注記 : 上記の手順は efuse モードの PUF でも実行できます その場合は efuse モードの PUF を使用して 前述の手順を繰り返します これには PUF 登録アプリケーションのビルドに使用した xilskey_puf_registration.h ファイルに XSK_PUF_PROGRAM_EFUSE マクロを設定して PUF 登録中に efuse のプログラムをイネーブルにする必要があります また efuse からの暗号キーを使用するように BIF を変更し ヘルパーデータとブラックキーファイルを削除する必要があります 開発またはチュートリアルシステムの efuse をプログラムしないようにするため このチュートリアルでは efuse モードの PUF については説明しません [keysrc_encryption]efuse_blk_key [bh_key_iv]black_iv.txt Zynq UltraScale+: エンベデッドデザインチュートリアル 115

116 第 5 章 : ブートおよびコンフィギュレーション SDK の Create Boot Image ウィザードを使用したシステム例 前のセクションでは BIF ファイルを手動で編集して さまざまなセキュリティ機能 ( 認証 機密性 DPA 保護 およびブラックキーの格納 ) を有効にしました このセクションでは 同じ操作を SDK の Create Boot Image ウィザードを開始点として使用して実行します Create Boot Image ウィザードで基本の BIF ファイルを作成し その後ウィザードでサポートされていないセキュリティ機能をテキストエディターを使用して追加します 1. cd コマンドを使用して bootgen_lab_files ディレクトリに移動します cd C:\edt\secure_boot_sd\bootgen_files 2. 前の例からの次のデータをこの例にコピーします cp../keys/*nky. cp../keys/*pem. cp../keys/black_iv.txt. cp../keys/helper_data.txt. cp../keys/*.elf. cp../keys/edt_zcu102_wrapper.bit. cp../keys/image.ub. 3. [Programs] [Xilinx Design Tools] [SDK ] [Xilinx SDK ] をクリックして SDK を起動します 4. SDK のメニューバーから [Xilinx Tools] [Create Boot Image] をクリックし Create Boot Image ウィザードを開きます 5. [Architecture] で [Zynq MP] を選択します 6. [Output BIF file path] を c:\edt\secure_boot_sd\bootgen_files\design_bh_bkey_keyrolling.bif に設定します 7. [Output format] で [BIN] を選択します 8. [Output path] に c:\edt\secure_boot_sd\bootgen_files\boot.bin を入力します Zynq UltraScale+: エンベデッドデザインチュートリアル 116

117 第 5 章 : ブートおよびコンフィギュレーション 9. 認証を有効にします a. [Security] タブをクリックします b. [Use Authentication] をオンにします c. [Browse] ボタンを使用して [PSK] に psk0.pem ファイル [SSK] に ssk0.pem ファイルを選択します d. [PPK Select] が 0 であることを確認します e. [SPK ID] に 0 を入力します f. [Use BH Auth] をオンにします X-Ref Target - Figure 5-39 図 5-39: 認証の有効化 Zynq UltraScale+: エンベデッドデザインチュートリアル 117

118 第 5 章 : ブートおよびコンフィギュレーション 10. 暗号化を有効にします a. [Encryption] タブをクリックします b. [Use Encryption] をオンにします c. [Key File] で [Browse] ボタンをクリックして fsbl_a53.nky ファイルを選択します d. [Operational Key] をオンにします X-Ref Target - Figure [Basic] タブをクリックします 図 5-40: 暗号化を有効にします Zynq UltraScale+: エンベデッドデザインチュートリアル 118

119 第 5 章 : ブートおよびコンフィギュレーション 12. ブートイメージに FSBL バイナリを追加します a. [Add] をクリックします b. [File path] で [Browse] ボタンをクリックして fsbl_a53.elf ファイルを選択します c. [Partition type] を [bootloader] [Destination CPU] を [a53x64] に設定します d. [Authentication] を [rsa] に設定します e. [Encryption] を [aes] に設定します f. [OK] をクリックします X-Ref Target - Figure 5-41 図 5-41: FSBL バイナリの追加 Zynq UltraScale+: エンベデッドデザインチュートリアル 119

120 第 5 章 : ブートおよびコンフィギュレーション 13. ブートイメージに PMW ファームウェアバイナリを追加します a. [Add] をクリックします b. [File path] で [Browse] ボタンをクリックして pmu_fw.elf ファイルを選択します c. [Partition type] を [datafile] に設定します d. [Destination CPU] を [PMU] に設定します e. [Authentication] を [rsa] に設定します f. [Encryption] を [aes] に設定します g. [OK] をクリックします X-Ref Target - Figure 5-42 図 5-42: PMU ファームウェアバイナリの追加 Zynq UltraScale+: エンベデッドデザインチュートリアル 120

121 第 5 章 : ブートおよびコンフィギュレーション 14. ブートイメージに PL ビットストリームを追加します a. [Add] をクリックします b. [File path] で [Browse] ボタンをクリックして edt_zcu102_wrapper.bit ファイルを選択します c. [Partition type] を [datafile] に設定します d. [Destination Device] を [PL] に設定します e. [Authentication] を [rsa] に設定します f. [Encryption] を [aes] に設定します g. [OK] をクリックします X-Ref Target - Figure 5-43 図 5-43: PL ビットストリームの追加 Zynq UltraScale+: エンベデッドデザインチュートリアル 121

122 第 5 章 : ブートおよびコンフィギュレーション 15. ブートイメージに Arm トラステッドファームウェア (ATF) バイナリを追加します a. [Add] をクリックします b. [File path] で [Browse] ボタンをクリックして bl31.elf ファイルを選択します c. [Partition type] を [datafile] に設定します d. [Destination CPU] を [A53 0] に設定します e. [Authentication] を [rsa] に設定します f. [Encryption] を [none] に設定します g. [Exception Level] を [EL3] に設定します h. [OK] をクリックします X-Ref Target - Figure 5-44 図 5-44: Arm トラステッドファームウェアの追加 Zynq UltraScale+: エンベデッドデザインチュートリアル 122

123 第 5 章 : ブートおよびコンフィギュレーション 16. ブートイメージに R5 ソフトウェアバイナリを追加します a. [Add] をクリックします b. [File path] で [Browse] ボタンをクリックして tmr_psled_r5.elf ファイルを選択します c. [Partition type] を [datafile] に設定します d. [Destination CPU] を [R5 0] に設定します e. [Authentication] を [rsa] に設定します f. [Encryption] を [aes] に設定します g. [OK] をクリックします X-Ref Target - Figure 5-45 図 5-45: R5 アプリケーションバイナリの追加 Zynq UltraScale+: エンベデッドデザインチュートリアル 123

124 第 5 章 : ブートおよびコンフィギュレーション 17. ブートイメージに U-Boot ソフトウェアバイナリを追加します a. [Add] をクリックします b. [File path] で [Browse] ボタンをクリックして u-boot.elf ファイルを選択します c. [Partition type] を [datafile] に設定します d. [Destination CPU] を [A53 0] に設定します e. [Authentication] を [rsa] に設定します f. [Encryption] を [none] に設定します g. [Exception Level] を [EL2] に設定します h. [OK] をクリックします X-Ref Target - Figure 5-46 図 5-46: U-Boot ソフトウェアの追加 Zynq UltraScale+: エンベデッドデザインチュートリアル 124

125 第 5 章 : ブートおよびコンフィギュレーション 18. ブートイメージに Linux イメージを追加します a. [Add] をクリックします b. [File path] で [Browse] ボタンをクリックして image.ub ファイルを選択します c. [Partition type] を [datafile] に設定します d. [Destination CPU] を [A53 0] に設定します e. [Authentication] を [rsa] に設定します f. [Encryption] を [none] に設定します g. [Load] に 0x を入力します h. [OK] をクリックします X-Ref Target - Figure 5-47 図 5-47: Linux ブートイメージの追加 Zynq UltraScale+: エンベデッドデザインチュートリアル 125

126 第 5 章 : ブートおよびコンフィギュレーション 19. [Create Image] をクリックします X-Ref Target - Figure 5-48 図 5-48: 最終的なブートイメージの作成 20. design_bh_bkey_keyrolling.bif は次のようになります the_rom_image: { [pskfile]psk0.pem [sskfile]ssk0.pem [auth_params]spk_id = 0; ppk_select = 0 [aeskeyfile]fsbl_a53.nky [keysrc_encryption]efuse_red_key [fsbl_config]a53_x64, bh_auth_enable, opt_key [bootloader, encryption = aes, authentication = rsa]fsbl_a53.elf [encryption = aes, authentication = rsa, destination_cpu = pmu]pmu_fw.elf [encryption = aes, authentication = rsa, destination_device = pl]edt_zcu102_wrapper.bit [authentication = rsa, destination_cpu = a53-0, exception_level = el-3]bl31.elf [encryption = aes, authentication = rsa, destination_cpu = r5-0]tmr_psled_r5.elf [authentication = rsa, destination_cpu = a53-0, exception_level = el-2]u-boot.elf [authentication = rsa, load = 0x , destination_cpu = a53-0]image.ub } 21. この BIF ファイルにはまだ足りないセキュリティ機能があります これらの機能は Create Boot Image ウィザードでサポートされていません 足りない機能は パーティションごとの.nky ファイル キーローリング およびブラックキーの格納です Zynq UltraScale+: エンベデッドデザインチュートリアル 126

127 第 5 章 : ブートおよびコンフィギュレーション 22. BIF ファイルが次のようになるように keysrc_encryption を変更し 項目を追加します the_rom_image: { [pskfile]psk0.pem [sskfile]ssk0.pem [auth_params]spk_id = 0; ppk_select = 0 [aeskeyfile]fsbl_a53.nky [keysrc_encryption]bh_blk_key [bh_key_iv]black_iv.txt [bh_keyfile]black_key.txt [puf_file]helperdata.txt [fsbl_config]a53_x64, bh_auth_enable, opt_key, puf4kmode, shutter=0x e, pufhd_bh [bootloader, encryption = aes, authentication = rsa]fsbl_a53.elf [encryption = aes, authentication = rsa, destination_cpu = pmu]pmu_fw.elf [encryption = aes, authentication = rsa, destination_device = pl]edt_zcu102_wrapper.bit [authentication = rsa, destination_cpu = a53-0, exception_level = el-3]bl31.elf [encryption = aes, authentication = rsa, destination_cpu = r5-0]tmr_psled_r5.elf [authentication = rsa, destination_cpu = a53-0, exception_level = el-2]u-boot.elf [authentication = rsa, load = 0x , destination_cpu = a53-0]image.ub } 23. BIF ファイルを次のようになるように変更し 暗号化された各パーティションに固有の AES キーファイルを指定します the_rom_image: { [pskfile]psk0.pem [sskfile]ssk0.pem [auth_params]spk_id = 0; ppk_select = 0 [aeskeyfile]fsbl_a53.nky [keysrc_encryption]bh_blk_key [bh_key_iv]black_iv.txt [bh_keyfile]black_key.txt [puf_file]helperdata.txt [fsbl_config]a53_x64, bh_auth_enable, opt_key, puf4kmode, shutter=0x e, pufhd_bh [bootloader, encryption = aes, authentication = rsa]fsbl_a53.elf [aeskeyfile]pmu_fw.nky [encryption = aes, authentication = rsa, destination_cpu = pmu]pmu_fw.elf [aeskeyfile]edt_zcu102_wrapper.nky [encryption = aes, authentication = rsa, destination_device = pl]edt_zcu102_wrapper.bit [authentication = rsa, destination_cpu = a53-0, exception_level = el-3]bl31.elf [aeskeyfile]tmr_psled_r5.nky [encryption = aes, authentication = rsa, destination_cpu = r5-0]tmr_psled_r5.elf [authentication = rsa, destination_cpu = a53-0, exception_level = el-2]u-boot.elf [authentication = rsa, load = 0x , destination_cpu = a53-0]image.ub } Zynq UltraScale+: エンベデッドデザインチュートリアル 127

128 第 5 章 : ブートおよびコンフィギュレーション 24. 暗号化された各パーティションに blocks 属性を追加し キーローリング有効にします BIF ファイルは次のようになります the_rom_image: { [pskfile]psk0.pem [sskfile]ssk0.pem [auth_params]spk_id = 0; ppk_select = 0 [aeskeyfile]fsbl_a53.nky [keysrc_encryption]bh_blk_key [bh_key_iv]black_iv.txt [bh_keyfile]black_key.txt [puf_file]helperdata.txt [fsbl_config]a53_x64, bh_auth_enable, opt_key, puf4kmode, shutter=0x e, pufhd_bh [bootloader, encryption = aes, authentication = rsa, blocks = 1728(*)]fsbl_a53.elf [aeskeyfile]pmu_fw.nky [encryption = aes, authentication = rsa, destination_cpu = pmu, blocks = 1728(*)]pmu_fw.elf [aeskeyfile]edt_zcu102_wrapper.nky [encryption = aes, authentication = rsa, destination_device = pl, blocks = 1728(*)]edt_zcu102_wrapper.bit [authentication = rsa, destination_cpu = a53-0, exception_level = el-3]bl31.elf [aeskeyfile]tmr_psled_r5.nky [encryption = aes, authentication = rsa, destination_cpu = r5-0, blocks = 1728(*)]tmr_psled_r5.elf [authentication = rsa, destination_cpu = a53-0, exception_level = el-2]u-boot.elf [authentication = rsa, load = 0x , destination_cpu = a53-0]image.ub } 25. 次のコマンドを実行して ブートイメージを生成します -encryption_dump オプションが追加されていることに注意してください このオプションにより ログファイル aes_log.txt が作成されます このログファイルには 使用されたすべての暗号化操作の詳細が記述されます このファイルを参照して ブートイメージのどのセクションにどのキーおよび IV が使用されているかを確認できます bootgen -p zcu9eg -arch zynqmp -image design_bh_bkey_keyrolling.bif -w -o BOOT.bin -encryption_dump Zynq UltraScale+: エンベデッドデザインチュートリアル 128

129 第 5 章 : ブートおよびコンフィギュレーション セキュアブートイメージを使用したシステムのブート このセクションでは 前のセクションで作成した BOOT.bin ブートイメージを使用して ZCU102 でセキュアブートを実行する方法を示します 1. c:\edt\secure_boot_sd\bootgen_files から BOOT.bin イメージおよび ps_pl_linux_app.elf を SD カードにコピーします 2. SD カードを ZCU102 に挿入します 3. ZCU102 の SW6 を SD ブートモードに設定します (1 をオン をオフ ) X-Ref Target - Figure 5-49 図 5-49: SD ブートモードの SW6 スイッチ設定 4. シリアルターミナルを ZCU102 に接続します ( データビット 1 停止ビット パリティなし ) 5. ZCU102 に電源を投入します 6. ターミナルに U-Boot の ZynqMP> プロンプトが表示されたら bootm 0x と入力します X-Ref Target - Figure 5-50 図 5-50: U-Boot プロンプト Zynq UltraScale+: エンベデッドデザインチュートリアル 129

130 第 5 章 : ブートおよびコンフィギュレーション 7. 次の資格情報を使用して Linux にログインします ログイン : root パスワード : root X-Ref Target - Figure 5-51 サンプルデザイン 1: GPIO タイマー および割り込みの使用 の手順に従って Linux アプリケーションを実行します Linux アプリケーションの実行 次の手順に従って Linux アプリケーションを実行します 1. アプリケーションを SD カードのマウントポイントから /tmp にコピーします # cp /run/media/mmcblk0p1/ps_pl_linux_app.elf /tmp 注記 : この場所に SD カードの内容が見つからない場合は SD カードを手動で挿入してください # mount /dev/mmcblk0p1 /media/ 2. アプリケーションを /tmp にコピーします # cp /media/ps_pl_linux_app.elf /tmp 3. アプリケーションを実行します # /tmp/ps_pl_linux_app.elf 図 5-51: Linux ログイン Zynq UltraScale+: エンベデッドデザインチュートリアル 130

131 第 5 章 : ブートおよびコンフィギュレーション フィールドで展開されているシステム用のサンプル BIF 次に フィールドで展開されているシステム用の BIF ファイル例を示します この BIF ファイルをボード上で機能させるには RSA_EN PPK0 ダイジェスト ブラック AES キー および PUF ヘルパーを efuse にプログラムする必要があります これらの efuse をプログラムすると デバイスまたはボードのテストおよびデバッグでの使用が制限されるので 参照用にのみ含めています チュートリアルの一部ではありません 最終的な generation.bif ファイルを次のように変更します 1. PUF ブートヘッダーモードから PUF efuse モードに変更します a. keysrc_encryption 属性を efuse_blk_key に変更します b. bh_keyfile および puf_file 行を削除します c. fsbl_config 行から puf4kmode および pufhd_bh 属性を削除します 2. ブートヘッダー認証から efuse 認証に変更します a. fsbl_config 行から bh_auth_enable 属性を削除します the_rom_image: { [pskfile]psk0.pem [sskfile]ssk0.pem [auth_params]spk_id = 0; ppk_select = 0 [keysrc_encryption]efuse_blk_key [bh_key_iv]black_iv.txt [fsbl_config]a53_x64, opt_key, shutter=0x e [aeskeyfile]fsbl_a53.nky [bootloader, authentication = rsa, encryption = aes, blocks = 1728(*)]fsbl_a53.elf [aeskeyfile]pmu_fw.nky [destination_cpu = pmu, authentication = rsa, encryption = aes, blocks = 1728(*)]pmu_fw.elf [aeskeyfile]edt_zcu102_wrapper.nky [destination_device = pl, authentication = rsa, encryption = aes, blocks = 1728(*)]edt_zcu102_wrapper.bit [destination_cpu = a53-0, exception_level = el-3, trustzone, authentication = rsa]bl31.elf [aeskeyfile]tmr_psled_r5.nky [destination_cpu = r5-0, authentication = rsa, encryption = aes, blocks = 1728(*)]tmr_psled_r5.elf [destination_cpu = a53-0, exception_level = el-2, authentication = rsa]u-boot.elf [load = 0x , destination_cpu = a53-0, authentication = rsa]image.ub } Zynq UltraScale+: エンベデッドデザインチュートリアル 131

132 第 6 章 システムデザイン例 この章では 使用可能なツールとサポートされているソフトウェアブロックを使用して Zynq UltraScale+ デバイスをベースにしたシステムを構築する方法を説明します また 第 3 章で設定したソフトウェアブロックを使用して Zynq UltraScale+ システムを作成する方法も示します ドメイン特定のデザインについては説明しませんが Zynq UltraScale+ デバイスで利用可能な下位のソフトウェアを使用するさまざまな方法を重点的に示します サンプルデザイン 1: GPIO タイマー および割り込みの使用 Zynq ZCU102 UltraScale+ 評価ボードには ユーザー設定可能なスイッチおよび LED がいくつかあります このサンプルデザインでは ベアメタルおよび Linux アプリケーションを使用して これらの LED をトグルします 詳細は次のとおりです Linux アプリケーションは PS DIP スイッチを使用してトグルする PL LED セットと PL DIP スイッチ (SW17) を使用してトグルする PL LED セットを設定します Linux APU A-53 コア 0 でこの Linux アプリケーションを実行し RPU R5 コア 0 で別のベアメタルアプリケーションを実行します R5 コア 0 のアプリケーションは プログラマブルロジックの AXI Timer IP を使用して PS LED (DS50) をトグルします アプリケーションは タイマーカウンターが終了するたびに LED 状態を切り替えるように設定されており PL 内のタイマーは ユーザー設定可能な期間が経過したら定期的にリセットするように設定されています システムは APU Linux アプリケーションと RPU ベアメタルアプリケーションが同時に実行されるように設定されています Zynq UltraScale+: エンベデッドデザインチュートリアル 132

133 第 6 章 : システムデザイン例 ハードウェアの設定 このデザインの最初の手順として PS セクションと PL セクションを設定します これは Vivado IP インテグレーターで実行できます まず Vivado IP カタログから必要な IP を追加し PS サブシステムのブロックにコンポーネントを接続します 1. Vivado Design Suite が既に開いている場合は 図 2-2 に示すブロック図から開始して手順 4 に進みます 2. 作成した Vivado プロジェクトを開きます C:/edt/edt_zcu102/edt_zcu102.xpr 3. Flow Navigator の [IP Integrator] で [Open Block Design] をクリックして [edt_zcu102.bd] をクリックします X-Ref Target - Figure 6-1 図 6-1: ブロックデザインを開く 4. ブロック図を右クリックし [Add IP] をクリックして IP カタログから IP を追加します IP の追加および設定 1. IP カタログで [AXI Timer] を選択します 次の図に示すように [IP Details] に情報が表示されます X-Ref Target - Figure 6-2 図 6-2: [IP Details] の情報 2. [AXI Timer] をダブルクリックしてデザインに追加します Zynq UltraScale+: エンベデッドデザインチュートリアル 133

134 第 6 章 : システムデザイン例 3. [AXI Timer] を再度ダブルクリックして 次の図のように IP を設定します X-Ref Target - Figure 6-3 図 6-3: AXI Timer の [Re-customize IP] ダイアログボックス 4. [OK] をクリックします 5. ブロック図を右クリックし [Add IP] をクリックします 6. AXI GPIO を検索し [AXI GPIO] をダブルクリックしてブロック図に追加します 7. 手順 5 および手順 6 を繰り返して AXI GPIO IP の別のインスタンスを追加します Zynq UltraScale+: エンベデッドデザインチュートリアル 134

135 第 6 章 : システムデザイン例 8. axi_gpio_0 をダブルクリックし GPIO の [Board Interface] ドロップダウンリストから [push button 5bits] を選択します X-Ref Target - Figure [OK] をクリックして プッシュボタン用の AXI_GPIO 設定を確定します 10. [axi_gpio_1] をダブルクリックします 図 6-4: AXI GPIO の [Re-customize IP] ダイアログボックス 11. 次の図に示すように GPIO の [Board Interface] ドロップダウンリストから [led 8bits] を選択して PL LED 向けに axi_gpio_1 として設定します X-Ref Target - Figure 6-5 図 6-5: led_8bits 向けの GPIO の設定 12. [OK] をクリックして LED 向けの AXI_GPIO 設定を確定します Zynq UltraScale+: エンベデッドデザインチュートリアル 135

136 第 6 章 : システムデザイン例 IP ブロックを接続して完全なシステムを作成 ボードのプリセットを使用して初期接続を実行します これには 次の手順に従います 1. [Zynq UltraScale+ IP] ブロックをダブルクリックし 図 6-6 に示すように PL-PS の割り込みを設定します デフォルトで選択されている場合は 次の手順に進みます X-Ref Target - Figure 6-6 図 6-6: PL-PS 割り込みの設定 2. [PS-PL Configuration] で [PS-PL Interfaces] [Master Interface] を展開表示します Zynq UltraScale+: エンベデッドデザインチュートリアル 136

137 . 第 6 章 : システムデザイン例 3. 図 6-7 に示すように [AXI HPM0 LPD] を展開して [AXI HPM0 LPD Data Width] ドロップダウンリストから 128 ビットを選択します X-Ref Target - Figure 6-7 図 6-7: AXI HPM0 LPD のデータ幅の設定 4. [OK] をクリックして設定を完了し ブロック図に戻ります 5. [Diagram] ウィンドウで [axi_timer_0] の割り込みポートを [pl_ps_irq [0:0]] に接続します 6. [Run Connection Automation] をクリックします [Run Block Automation] はクリックしないでください X-Ref Target - Figure [Run Connection Automation] ダイアログボックスで [All Automation] をオンにします 8. [OK] をクリックします 図 6-8: [Run Connection Automation] リンク 9. [Address Editor] ウィンドウで 次の図に示すように該当する IP に同じアドレスマップが割り当てられていることを確認します 割り当てられていない場合は オフセットアドレスを次の図に示す内容と一致するように設定します X-Ref Target - Figure 6-9 図 6-9: PL IP のアドレスマップ 10. 次のセクションで説明するようにデザインを検証し デザインの出力ファイルを生成します Zynq UltraScale+: エンベデッドデザインチュートリアル 137

138 第 6 章 : システムデザイン例 デザインを検証して出力ファイルを生成する 1. [Diagram] ウィンドウに戻り ブロックデザインを保存します (Ctrl + S キーを押す ) 2. [Diagram] ウィンドウの空白部分を右クリックして [Validate Design] をクリックします または F6 キーを押します 検証が成功し デザインにエラーや重大な警告がないことを示すメッセージダイアログボックスが表示されます 3. [OK] をクリックしてメッセージを閉じます 4. [Block Design] 環境の [Sources] ウィンドウをクリックします 5. [Hierarchy] タブをクリックします 6. [Block Design] の [Sources] ウィンドウで [Design Sources] の [edt_zcu102_wrapper] を展開します 7. edt_zcu102_i - edt_zcu102 (edt_zcu102.bd) という名前の最上位ブロック図を右クリックし [Generate Output Products] をクリックします 図 6-10 に示す [Generate Output Products] ダイアログボックスが表示されます X-Ref Target - Figure 6-10 図 6-10: [Generate Output Products] ダイアログボックス 注記 : Linux ホストマシンで Vivado Design Suite を実行している場合は [Run Settings] の下に追加オプションが表示されることがあります その場合は デフォルト設定で続行します 8. [Generate] をクリックします 9. [Generate Output Products] の処理が完了したら [OK] をクリックします Zynq UltraScale+: エンベデッドデザインチュートリアル 138

139 第 6 章 : システムデザイン例 10. [Block Design] の [Sources] ウィンドウで [IP Sources] タブをクリックします 次の図に示すように 生成した出力ファイルが表示されます X-Ref Target - Figure 6-11 図 6-11: [IP Sources] の下に生成された出力 デザインの合成 インプリメンテーションの実行 およびビットストリームの生成 1. デザインを合成します Flow Navigator で [Synthesis] [Run Synthesis] をクリックします X-Ref Target - Figure 6-12 図 6-12: Run Synthesis 2. 合成の開始前にプロジェクトを保存するようメッセージが表示された場合は [Save] をクリックします 合成の実行中 ウィンドウの右上にステータスバーが表示されます このステータスバーは デザインプロセスをとおして さまざまな理由により表示されます ステータスバーは プロセスがバックグランドで実行されていることを示します X-Ref Target - Figure 6-13 図 6-13: ステータスバー 合成が完了すると [Synthesis Completed] ダイアログボックスが開きます Zynq UltraScale+: エンベデッドデザインチュートリアル 139

140 第 6 章 : システムデザイン例 3. [Run Implementation] をクリックして [OK] をクリックします この場合も プロセスがバックグラウンドで実行されていることが ステータスバーによって示されます インプリメンテーションが完了すると [Implementation Completed] ダイアログボックスが開きます 4. [Generate Bitstream] をクリックして [OK] をクリックします ビットストリームの生成が完了すると [Bitstream Generation Completed] ダイアログボックスが開きます 5. [Cancel] をクリックしてウィンドウを閉じます 6. ビットストリームの生成が完了したら ハードウェアを SDK にエクスポートします ハードウェアの SDK へのエクスポート この例では Vivado から SDK を起動します 1. [File] [Export] [Export Hardware] をクリックします [Export Hardware] ダイアログボックスが開きます [Include bitstream] がオンになっていること ( デザインで PL デザインとビットストリームが生成されている場合のみ ) および [Export to] がデフォルトオプションの [<Local to Project>] に設定されていることを確認します 2. [OK] をクリックします ハードウェアモジュールが既にエクスポートされていることを示す警告メッセージが表示されます 3. [OK] をクリックして既存の HDF ファイルを上書きします X-Ref Target - Figure 6-14 図 6-14: 既存のハードウェアファイルの上書きを許可 Zynq UltraScale+: エンベデッドデザインチュートリアル 140

141 第 6 章 : システムデザイン例 4. ハードウェアファイルがエクスポートされると SDK で新しい HDF も検出され 次の警告メッセージが表示されます X-Ref Target - Figure 6-15 図 6-15: アップデートされた HDF の検出に関する SDK の警告メッセージ この警告メッセージでは SDK で新しい HDF に合わせてプロジェクトをアップデートするかどうかも選択できます 5. [Yes] をクリックします これで SDK プロジェクトは新しい HDF ファイルに合わせてアップデートされます これを検証するには 既存プロジェクトの BSP パッケージに追加された GPIO ドライバーと AXI Timer ドライバーを検索します Zynq UltraScale+: エンベデッドデザインチュートリアル 141

142 第 6 章 : システムデザイン例 ソフトウェアの設定 このユースケースには R5 コアで実行するベアメタルアプリケーションと APU Linux ターゲットで実行する Linux アプリケーションがあります ほとんどのソフトウェアブロックは 第 3 章で説明したものと同様です このサンプルデザインのソフトウェアには PL ロジックに追加されたコンポーネント用の追加ドライバーが必要です そのため このデザイン用に生成されたハードウェアファイルを使用して SDK で新しいベアメタル BSP を作成する必要があります また Linux では 新しいハードウェアデザインファイル (HDF) に合わせて Linux BSP を再設定する必要があります ソフトウェアを設定する前に アプリケーションデザインの構成を確認してください システムには RPU で実行するベアメタルアプリケーションがあり これは PS LED をユーザーが設定した期間トグルすることで開始します LED は PL ブロックで動作している PL AXI Timer に合わせてトグルするように設定されています ベアメタルアプリケーションは AXI Timer を生成モードに設定し タイマーカウントが満了になるたびに割り込みを生成します このアプリケーションは タイマー割り込みを処理した後 PS LED の状態を切り替えるように設計されています アプリケーションは無限の while ループで実行され ユーザーが設定した期間 LED をトグルした後に RPU を WFI モードに設定します LED のこのトグルシーケンスは 外部割り込みを使用して RPU を WFI モードから遷移させることで繰り返すことができます このため UART 割り込みも同じアプリケーションで設定および有効化されます ベアメタルアプリケーションが RPU 上で実行される一方で Linux ターゲットも別の Linux アプリケーションを実行します Linux アプリケーションは PS または PL スイッチからのユーザー入力を使用して PL LED をトグルします この Linux アプリケーションは無限の while ループでも実行し PL LED をトグルするためのユーザー入力を待ちます 次の一連の手順では このデザイン用にシステムソフトウェアを設定し ユーザーアプリケーションを構築する方法を示します PetaLinux を使用した Linux のコンフィギュレーションおよびビルド まず PetaLinux を使用して Linux イメージを作成します Linux イメージは このデザインのハードウェア設定に合わせて作成する必要があります また SD ブート用のイメージを作成するために PetaLinux を設定する必要があります 第 3 章の サンプルプロジェクト : PetaLinux を使用した Linux イメージの作成 を参照し 手順 2 ~ 手順 13 を繰り返してデバイスツリーを更新し PetaLinux を使用して Linux イメージを構築します または このチュートリアルで共有している Linux イメージファイルを使用することもできます このセクションのイメージは <design_files>/design にあります 手順 15 に従ってイメージを検証します 次のステップでは Arm Cortex-R5 ベースの RPU をターゲットとしたベアメタルアプリケーションを作成します このサンプルデザインでは このチュートリアルでリリースされたデザインファイル (ZIP) に含まれるアプリケーションソースファイルをインポートする必要があります これらのデザインファイルの場所は 付録 B の このチュートリアルのデザインファイル を参照してください Zynq UltraScale+: エンベデッドデザインチュートリアル 142

143 第 6 章 : システムデザイン例 ベアメタルアプリケーションプロジェクトの作成 1. SDK で [File] [New] [Application Project] をクリックします New Project ウィザードが開きます 2. ウィザードの各ページで次の表の情報に基づいて設定を選択します 表 6-1: タイマーベースの RPU アプリケーションプロジェクト作成時の設定 ウィザードページ システムプロパティ 設定または使用するコマンド Application Project Project name tmr_psled_r5 3. [Finish] をクリックします New Project ウィザードが閉じ tmr_psled_r5 アプリケーションプロジェクトが作成されて [Project Explorer] ビューに表示されます 4. [Project Explorer] ビューで [tmr_psled_r5] プロジェクトを展開します 5. [src] を右クリックし [Import] をクリックして [Import] ダイアログボックスを開きます 6. [Import] ダイアログボックスで [General] を展開し [File System] をクリックします 7. [Next] をクリックします 8. [Browse] をクリックし 前に保存したデザインファイル design-files/design1 フォルダーに移動します ( 付録 B の その他のリソースおよび法的通知 を参照 ) 9. [OK] をクリックします 10. timer_psled_r5.c ファイルを選択して追加します 11. [Finish] をクリックします Use default location Hardware Platform OS Platform Processor Language オン edt_zcu102_wrapper_hw_platform_0 standalone psu_cortexr5_0 Board Support Package [Use existing] をオンにして r5_bsp と入力 Templates Available Templates Empty Application アプリケーションが自動的にビルドされ コンソールウィンドウにステータスが表示されます C Zynq UltraScale+: エンベデッドデザインチュートリアル 143

144 第 6 章 : システムデザイン例 リンカースクリプトの変更 注記 : このセクションはオプションで アプリケーション用に異なるメモリ属性を設定するためにリンカースクリプトを変更する方法を説明します これらの設定は第 2 章で作成した隔離により既に処理されているので このチュートリアルではこの手順はオプションです リンカースクリプトはソフトウェア境界を作成するのに使用し 隔離設定は XMPU に基づいて保護領域を不正アクセスから保護します 1. [Project Explorer] ビューで [tmr_psled_r5] プロジェクトを展開します 2. [src] を展開表示して [lscript.ld] をダブルクリックし プロジェクトのリンカースクリプトを開きます 3. リンカースクリプトの [Available Memory Regions] ( ベクターセクション以外 ) で psu_r5_ddr_0_mem_3 のベースアドレスとサイズを次のように変更します [Base Address]: 0x7F [Size]: 0xF00000 リンカースクリプトの変更を次の図に示します この図は表示のみです 実際のメモリ領域は 隔離設定によって異なる場合があります X-Ref Target - Figure 6-16 図 6-16: リンカースクリプトの変更 このリンカースクリプトの変更により RPU ベアメタルアプリケーションは DDR の 0x7F のベースアドレスより上位にあり 16 MB 以下のサイズとなります 4. Ctrl + S キーを押して変更を保存します 5. tmr_psled_r5 プロジェクトを右クリックし [Build Project] をクリックします 6. アプリケーションがコンパイルされ リンクが正常に確立され tmr_psled_r5.elf ファイルが [tmr_psled_r5] [Debug] フォルダーに生成されていることを確認します 7. BSP が UART_1 用に設定されていることを確認します 詳細は 第 3 章の ボードサポートパッケージの変更 を参照してください Zynq UltraScale+: エンベデッドデザインチュートリアル 144

145 第 6 章 : システムデザイン例 Linux アプリケーションプロジェクトの作成 1. SDK で [File] [New] [Application Project] をクリックします New Project ウィザードが開きます 2. ウィザードの各ページで次の表の情報に基づいて設定を選択します s 表 6-2: 新しい Linux アプリケーションプロジェクト作成時の設定 ウィザードページ システムプロパティ 設定または使用するコマンド Application Project Project name ps_pl_linux_app 3. [Finish] をクリックします New Project ウィザードが閉じ ps_pl_linux_app アプリケーションプロジェクトが作成されて [Project Explorer] ビューに表示されます 4. [Project Explorer] ビューで [ps_pl_linux_app] プロジェクトを展開します 5. [src] を右クリックし [Import] をクリックして [Import] ダイアログボックスを開きます 6. [Import] ダイアログボックスで [General] を展開し [File System] をクリックします 7. [Next] をクリックします 8. [Browse] をクリックし 前に保存したデザインファイル design-files/design1 フォルダーに移動します ( 付録 B の このチュートリアルのデザインファイル を参照 ) 9. [OK] をクリックします Use default location OS Platform Processor Language Compiler 10. ps_pl_linux_app.c ファイルを選択して追加します オン Linux psu_cortexa53 注記 : pthread ライブラリへの参照がないため アプリケーションのビルドでエラーが発生することがあります 次のセクションに pthread ライブラリを追加する方法を示します C 64-bit Templates Available Templates Linux Empty Application Zynq UltraScale+: エンベデッドデザインチュートリアル 145

146 第 6 章 : システムデザイン例 ビルド設定の変更 このアプリケーションでは pthread ライブラリから Pthread を使用します Pthread ライブラリを次のように追加します 1. [ps_pl_linux_app] を右クリックして [C/C++ Build] [Settings] をクリックします 2. 次の図を参照して pthread ライブラリを追加します X-Ref Target - Figure 6-17 図 6-17: C/C++ ビルド設定 X-Ref Target - Figure 両方のウィンドウで [OK] をクリックします 図 6-18: pthread ライブラリの追加 アプリケーションが自動的にビルドされ コンソールウィンドウにステータスが表示されます Zynq UltraScale+: エンベデッドデザインチュートリアル 146

147 第 6 章 : システムデザイン例 ブートイメージの作成 各イメージの準備が完了したので ブートイメージを作成して Zynq UltraScale+ にこれらのコンポーネントをすべてロードします これは SDK の Create Boot Image ウィザードを使用して 次の手順に従って実行できます この例では C:\edt\design1 にブートイメージ BOOT.bin が作成されます 1. SDK が起動していない場合は起動します 2. 第 2 章で作成したプロジェクトに基づいてワークスペースパスを設定します 次に例を示します C:\edt\edt_zcu102\edt_zcu102.sdk 3. [Xilinx] [Create Boot Image] をクリックします 4. Create Boot Image ウィザードで図 6-19 に示すように設定します 5. 次の図に示すように パーティションを追加します 注記 : パーティションを追加する手順の詳細は SD ブートのブートシーケンス を参照してください X-Ref Target - Figure 6-19 図 6-19: SD ブートモードの Create Boot Image ウィザード 注記 : このブートイメージには PL ビットストリーム edt_zcu102_wrapper.bit ([Partition Type] は [Datafile] [Destination Device] は [PL] に設定 ) が必要です ブートイメージの作成時に ブートローダーの直後にビットストリームーティションを追加する必要があります また このブートイメージには R5 アプリケーションの tmr_psled_r5.elf がパーティションとして追加されます Zynq UltraScale+: エンベデッドデザインチュートリアル 147

148 第 6 章 : システムデザイン例 6. すべてのパーティションを追加したら [Create Image] をクリックします 重要 : ATF のパーティションでは [Exception Level] を [EL3] に設定して [Enable Trust Zone] をオンにし U-Boot のパーティションでは [Exception Level] を [EL2] に設定します これらの設定は その他のパーティションでは無視できます ZCU102 ボードでのイメージの実行 SD カードの準備 SD カードにイメージと実行ファイルをコピーし ボードの SD カードスロットにその SD カードを挿入します 1. BOOT.BIN ファイルと image.ub ファイルを SD カードにコピーします 注記 : BOOT.BIN は C:\edt\design1 にあります 2. Linux アプリケーションの ps_pl_linux_app.elf を同じ SD カードにコピーします このアプリケーションは次のディレクトリにあります C:\edt\edt_zcu102\edt_zcu102.sdk\ps_pl_linux_app\Debug ターゲットのセットアップ 1. SD カードを ZCU102 ボードの J100 コネクタに挿入します 2. ボードの USB-UART をホストマシンに接続します 3. Micro USB ケーブルの一端を ZCU102 ボードの Micro USB ポート J83 に接続し もう一端をホストマシンの空きの USB ポートに接続します 4. スイッチ SW6 を次の図に示すように設定し ボードを SD ブートモードに設定します X-Ref Target - Figure 6-20 図 6-20: SD ブートモードの SW6 スイッチ設定 5. 12V 電源を ZCU102 の 6 ピン Molex コネクタに接続します 6. 使用しているホストマシンに応じて Tera Term または Minicom を使用し ターミナルセッションを開始します 図 5-8 に示すように システムの COM ポートとボーレートを設定します 7. ポート設定では デバイスマネージャーで COM ポートを検証します ZCU102 ボードには 4 つの USB UART インターフェイスがあります Zynq UltraScale+: エンベデッドデザインチュートリアル 148

149 第 6 章 : システムデザイン例 8. 最も小さい番号のインターフェイスに関連付けられた COM ポートを選択します ここでは UART-0 に対して Interface-0 の COM ポートを選択します 9. 同様に UART-1 に Interface-1 の COM ポートを選択します R5 BSP は UART-1 を使用するように設定されているため R5 アプリケーションメッセージは UART-1 ターミナルの COM ポートに表示されます ターゲットへの電源投入とアプリケーションの実行 1. SW1 を使用して ZCU102 ボードに電源を投入し Linux がボードにロードされるまで待ちます UART-0 用のターミナル画面に初期ブートシーケンスメッセージが表示されます UART-1 用に設定されたターミナル画面にもメッセージが表示されます これは RPU で実行されている UART-1 インターフェイスを使用するように設定された R-5 ベアメタルアプリケーションからのメッセージです このアプリケーションは FSBL によって RPU にロードされます 2. アプリケーションが実行されます PS LED がアプリケーションによりトグルされ アプリケーションターミナルの指示に従っていることが示されます X-Ref Target - Figure 6-21 図 6-21: R5-0 ベアメタルアプリケーション Zynq UltraScale+: エンベデッドデザインチュートリアル 149

150 第 6 章 : システムデザイン例 Linux アプリケーションの実行 Linux が ZCU102 システム上で起動したら ログインに root パスワードに root を使用して Linux ターゲットにログインします これで Linux ターゲットはアプリケーションの実行を開始できます 次の手順に従って Linux アプリケーションを実行します 1. アプリケーションを SD カードのマウントポイントから /tmp にコピーします # cp /run/media/mmcblk0p1/ps_pl_linux_app.elf /tmp 注記 : この場所に SD カードの内容が見つからない場合は SD カードを手動で挿入してください # mount /dev/mmcblk0p1 /media/ アプリケーションを /tmp にコピーします # cp /media/ps_pl_linux_app.elf /tmp 2. アプリケーションを実行します # /tmp/ps_pl_linux_app.elf X-Ref Target - Figure 6-22 図 6-22: Linux ターミナル Zynq UltraScale+: エンベデッドデザインチュートリアル 150

151 第 6 章 : システムデザイン例 サンプルデザイン 2: グラフィックおよびディスプレイポートベースのサブシステムのセットアップ例 このサンプルデザインは 主に Zynq UltraScale+ MPSoC デバイスのグラフィックスプロセッシングユニット (GPU) とディスプレイポート (DP) をベースにしています この例では Zynq UltraScale+ MPSoC デバイスの GPU と DP をベースとしたデザインを実行するために必要な設定 パッケージ およびツールフローを示します このサンプルデザインは 次のセクションで構成されます 1. ハードウェアを設定 2. 次に示す必要なパッケージを含むように PetaLinux RootFS を設定 a. GPU 関連のパッケージ b. X Window System と依存性情報 3. PetaLinux を使用してブートイメージと Linux イメージをビルド 4. Mali GPU をターゲットとしたグラフィックス OpenGL ES アプリケーションをビルド このアプリケーションは X Window System をベースにしています 5. ZCU102 ボードに Linux をロードし ターゲット上でグラフィックスアプリケーションを実行して ディスプレイポートにその結果を表示 ハードウェアの設定 このセクションでは ディスプレイポートの GT レーンに Dual Lower を設定するようにプロセッシングシステムを設定します このセクションのハードウェア設定は サンプルデザイン 1: GPIO タイマー および割り込みの使用 で作成した同じ Vivado プロジェクトに基づいています Vivado IP インテグレーターでのハードウェアの設定 1. edt_zcu102 プロジェクトとブロックデザインが Vivado で開いていることを確認します 2. [Diagram] ウィンドウで ZYNQ UltraScale+ Processing System ブロックをダブルクリックし [Re-customize IP] ダイアログボックスを開きます 3. [Re-customize IP] ダイアログボックスで [I/O Configuration] [High Speed] をクリックします 4. PCIe ペリフェラルの接続をオフにします 5. 次の図に示すように [Display Port] を展開表示して [Lane Selection] を [Dual Lower] に設定します Zynq UltraScale+: エンベデッドデザインチュートリアル 151

152 第 6 章 : システムデザイン例 X-Ref Target - Figure 6-23 図 6-23: ディスプレイポートのレーンの選択 注記 : このチュートリアルのサンプルデザインで解像度 UHD@30 がサポートされるように ディスプレイポートのレーンをデュアルレーンに設定しています この設定により ディスプレイが対応するモニターに対して UHD@30 と 1080p 60 などの低解像度にロックされます 6. [OK] をクリックして [Re-customize IP] ダイアログボックス閉じます 注意 : [Run Block Automation] リンクをクリックしないでください リンクをクリックすると デザインがボードのプリセットにリセットされ このセクションで実行したデザインのアップデートが無効になります 7. [File] [Save Block Design] をクリックしてブロックデザインを保存します または Ctrl + S キーを押してブロックデザインを保存することもできます 8. [Generate Bitstream] をクリックしてデザインを再合成し ビットストリームを生成します 9. ビットストリームが正常に生成されたら [File] [Export] [Export Hardware] をクリックして ハードウェアデザインをエクスポートします 10. [Include bistream] をオンにします 11. [OK] をクリックします エクスポートされたデザインは <edt_zcu102_vivado_project_path>\edt_zcu102.sdk\edt_zcu102_wrapper.hdf にあります この例では C:\edt\edt_zcu102\edt_zcu102.sdk\edt_zcu102_wrapper.hdf に保存されます 12. HDF ファイルを Linux ホストマシンにコピーします 次のセクションでは ハードウェア設定用に Linux をビルドする手順と GPU および X Window System 用の追加ソフトウェアパッケージを含める手順を説明します Zynq UltraScale+: エンベデッドデザインチュートリアル 152

153 第 6 章 : システムデザイン例 PetaLinux を使用した設定の変更と Linux イメージのビルド 新たに変更されたハードウェアに合わせて PetaLinux BSP を再設定します このセクションでは サンプルプロジェクト : PetaLinux を使用した Linux イメージの作成 で作成された PetaLinux プロジェクトを使用します 1. 次のコマンドを使用して PetaLinux ディレクトリに移動します $ cd xilinx-zcu ハードウェアプラットフォーム edt_zcu102_wrapper.hdf を Linux ホストマシンにコピーします 3. 次のコマンドを実行して BSP を再設定します $ petalinux-config --get-hw-description=<path containing edt_zcu102_wrapper.hdf>/ [PetaLinux Configuration] ウィンドウが開きます 4. 追加の設定を実行せずにウィンドウの内容を保存して閉じます PetaLinux がプロジェクトを再設定するのを待ちます 5. ザイリンクスアンサー の手順に従って デュアルレーンディスプレイポートのデバイスツリーを変更します これらの変更が反映された system-user.dtsi は このチュートリアルのデザインファイル から入手可能です 6. 既存のブートローダーイメージを消去します これは 新しいハードウェアデザインに合わせてブートローダーを再作成するためです $ petalinux-build -c bootloader -x distclean Mali OpenGL ES アプリケーションのビルド このセクションでは Triangle-based Cubic ( 三角錐 ) アプリケーションの構築について説明します このアプリケーションは OpenGL ES で記述されており X Window System をベースにしています 詳細およびアプリケーションソースコードは このチュートリアルに付属の ZIP ファイルの design_files フォルダーにある tricube を参照してください このチュートリアルのデザインファイル を参照してください 次の手順に従って OpenGL ES アプリケーションを構築します 1. tricube のアプリケーションソースディレクトリ全体を PetaLinux プロジェクトの recipe-apps ディレクトリにある Linux ホストマシンにコピーします <PetaLinux-Project>/project-spec/meta-user/recipes-apps/tricube 2. 新しく作成した tricube を petalinux-image.bbappend に追加します これは次の場所にあります <plnx_project>/project-spec/meta-user/recipes-core/images/petalinux-image.bbappend このアプリケーションにより ファイルは次のようになります 新しいアプリケーションは太字で示しています IMAGE_INSTALL_append = " peekpoke" IMAGE_INSTALL_append = " gpio-demo" IMAGE_INSTALL_append = " tricube" 3. このアプリケーションをビルドする手順およびライブラリの詳細は tricube/tricube.bb のレシピを参照してください 上記アプリケーションのビルド時に含まれる X Window System (X11) パッケージは アプリケーションによって異なります tricube.bb レシピに含まれるライブラリは アプリケーションで使用されたパッケージに基づきます Zynq UltraScale+: エンベデッドデザインチュートリアル 153

154 第 6 章 : システムデザイン例 GPU ライブラリとその他のパッケージを RootFS で有効化 このセクションでは PetaLinux の rootfs Configuration ウィザードを使用して Mali GPU ライブラリを追加します PetaLinux には Mali GPU ライブラリと Mali GPU 用のデバイスドライバーが付属しています デフォルトでは Mali ドライバーはカーネルツリーで有効になっていますが Mali ユーザーライブラリは ( 必要に応じて ) rootfs で設定する必要があります さらに 同じウィザードを使用して X Window System ライブラリを含めます 1. PetaLinux の rootfs Configuration ウィザードを開きます $ petalinux-config -c rootfs 2. 次のようにパッケージに移動して有効にします Filesystem Packages ---> libs ---> libmali-xlnx ---> libmali-xlnx Filesystem Packages ---> libs ---> libmali-xlnx ---> libmali-xlnx-dev これらのパッケージを使用すると Zynq UltraScale+ MPSoC デバイスで Mali GPU をターゲットにした OpenGL ES アプリケーションをビルドして実行できます 3. X11 パッケージグループを追加して X ウィンドウに関連するパッケージを追加します Petalinux Package Groups > packagegroup-petalinux-x11 >packagegroup-petalinux-x11 Petalinux Package Groups > packagegroup-petalinux-x11 > packagegroup-petalinux-x11-dev 4. 前のセクションで作成した OpenGLES アプリケーションを追加します User Packages ---> [*]tricube 5. すべてのパッケージを有効にしたら 設定ファイルを保存して rootfs Configuration ウィザードを終了します 6. 次のコマンドを使用して Linux イメージをビルドします $ petalinux-build 注記 : PetaLinux をビルドできなかった場合は 次のコマンドを使用してもう一度ビルドします $ petalinux-build -x mrproper $ petalinux-build 7. Linux イメージファイル images.ub が images/linux ディレクトリに生成されていることを確認します 8. 次のようなサンプルデザインのブートイメージを生成します $ petalinux-package --boot --fsbl images/linux/zynqmp_fsbl.elf --pmufw images/linux/pmufw.elf --atf images/linux/bl31.elf --fpga images/linux/system.bit --u-boot images/linux/u-boot.elf BOOT.BIN ブートイメージが作成されます これは FSBL ブートローダー PL ビットストリーム PMU ファームウェア ATF および U-Boot で構成されています または ブートイメージの作成 の手順に従ってこのブートイメージを作成します 重要 : この例では PetaLinux のデフォルト設定である X ウィンドウシステムに基づく GPU パッケージを使用します PetaLinux のフレームバッファー fbdev ベースの GPU パッケージを有効にするには <PetaLinux_project>/project-spec/meta-user/conf/petalinuxbsp.conf に次の行を追加します DISTRO_FEATURES_remove_zynqmp = " x11" このチュートリアルのデザインファイル のサンプル eglfbdev アプリケーション (fdev ベース ) を参照してください 詳細は ザイリンクスアンサー を参照してください Zynq UltraScale+: エンベデッドデザインチュートリアル 154

155 第 6 章 : システムデザイン例 Linux をロードしてターゲットで OpenGL ES アプリケーションを実行し ディスプレイポートにその結果を表示 SD カードの準備 Linux イメージをビルドし アプリケーションもビルドしたので 次のイメージを SD カードにコピーして SD カードを ZCU102 ボードに挿入します BOOT.BIN Image.ub Linux ターゲットでのアプリケーションの実行 ターゲットをセットアップする 次の手順に従って ターゲットをセットアップします 1. SD カードを ZCU102 ボードの J100 コネクタに挿入します 2. Micro USB ケーブルの一端を ZCU102 ボードの Micro USB ポート J83 に接続し もう一端をホストマシンの空きの USB ポートに接続します 3. ディスプレイポートモニターを ZCU102 ボードに接続します DP モニターのディスプレイポートケーブルは ZCU102 ボードのディスプレイポートコネクタに接続できます 注記 : これらのイメージは UHD@30 Hz および FullHD@60 Hz ディスプレイポートに対応するモニターでテストされています 4. スイッチ SW6 を次の図に示すように設定し ボードを SD ブートモードに設定します X-Ref Target - Figure 6-24 図 6-24: SD ブートモードの SW6 スイッチ設定 5. 12V 電源を ZCU102 の 6 ピン Molex コネクタに接続します 6. 使用しているホストマシンに応じて Tera Term または Minicom を使用し ターミナルセッションを開始します 図 5-8 に示すように システムの COM ポートとボーレートを設定します 7. ポート設定では デバイスマネージャーで COM ポートを検証します ZCU102 ボードには 4 つの USB UART インターフェイスがあります 最も小さい番号のインターフェイスに関連付けられた COM ポートを選択します ここでは UART-0 に対して Interface-0 の COM ポートを選択します Zynq UltraScale+: エンベデッドデザインチュートリアル 155

156 第 6 章 : システムデザイン例 ターゲットへの電源投入とアプリケーションの実行 1. SW1 を使用して ZCU102 ボードに電源を投入し Linux がボードにロードされるまで待ちます 2. Linux がロードされたら ログインおよびパスワードに root を使用してターゲット Linux コンソールにログインします 3. 表示パラメーターを設定し Xorg を正しい深さで開始します # export DISPLAY=:0.0 # /usr/bin/xorg -depth 16& 4. tricube アプリケーションを実行します # tricube ここで 回転するマルチカラーの立方体と回転する三角形がディスプレイポートに表示されます 立方体もマルチカラーの三角形で作成されていることがわかります X-Ref Target - Figure 6-25 図 6-25: 回転する立方体と三角形 Zynq UltraScale+: エンベデッドデザインチュートリアル 156

Zynq UltraScale+ MPSoC: エンベデッド デザイン チュートリアル (UG1209)

Zynq UltraScale+ MPSoC: エンベデッド デザイン チュートリアル (UG1209) Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 効率的なエンベデッドシステムを構築するためのハンディガイド この資料は表記のバージョンの英語版を翻訳したもので 内容に相違が生じる場合には原文を優先します 資料によっては英語版の更新に対応していないものがあります 日本語版は参考用としてご使用の上 最新情報につきましては 必ず最新英語版をご参照ください 改訂履歴 次の表に

More information

Zynq UltraScale+ MPSoC: エンベデッド デザイン チュートリアル (UG1209)

Zynq UltraScale+ MPSoC: エンベデッド デザイン チュートリアル (UG1209) Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 効果的なエンベデッドシステム構築をサポートするハンディガイド この資料は表記のバージョンの英語版を翻訳したもので 内容に相違が生じる場合には原文を優先します 資料によっては英語版の更新に対応していないものがあります 日本語版は参考用としてご使用の上 最新情報につきましては 必ず最新英語版をご参照ください 改訂履歴 次の表に

More information

Zynq-7000 SoC: エンベデッド デザイン チュートリアル (UG1165)

Zynq-7000 SoC: エンベデッド デザイン チュートリアル (UG1165) Zynq-7000 SoC: エンベデッドデザインチュートリアル 効率的なエンベデッドシステムを構築するためのハンディガイド UG1165 (v2018.3) 2018 年 12 月 5 日 UG1165 (v2018.2) 2018 年 6 月 6 日 この資料は表記のバージョンの英語版を翻訳したもので 内容に相違が生じる場合には原文を優先します 資料によっては英語版の更新に対応していないものがあります

More information

Zynq-7000 All Programmable SoC : エンベデッド デザイン チュートリアル (UG1165)

Zynq-7000 All Programmable SoC : エンベデッド デザイン チュートリアル (UG1165) Zynq-7000 All Programmable SoC : エンベデッドデザインチュートリアル 効率的なエンベデッドシステム構築をサポートするハンディガイド 本資料は表記のバージョンの英語版を翻訳したもので 内容に相違が生じる場合には原文を優先します 資料によっては英語版の更新に対応していないものがあります 日本語版は参考用としてご使用の上 最新情報につきましては 必ず最新英語版をご参照ください

More information

Symantec AntiVirus の設定

Symantec AntiVirus の設定 CHAPTER 29 Symantec AntiVirus エージェントを MARS でレポートデバイスとしてイネーブルにするためには Symantec System Center コンソールをレポートデバイスとして指定する必要があります Symantec System Center コンソールはモニタ対象の AV エージェントからアラートを受信し このアラートを SNMP 通知として MARS に転送します

More information

ModelSim-Altera - RTL シミュレーションの方法

ModelSim-Altera - RTL シミュレーションの方法 ALTIMA Corp. ModelSim-Altera RTL シミュレーションの方法 ver.15.1 2016 年 5 月 Rev.1 ELSENA,Inc. 目次 1. 2. 3. はじめに...3 RTL シミュレーションの手順...4 RTL シミュレーションの実施...5 3-1. 3-2. 新規プロジェクトの作成... 5 ファイルの作成と登録... 7 3-2-1. 新規ファイルの作成...

More information

インテル(R) Visual Fortran コンパイラ 10.0

インテル(R) Visual Fortran コンパイラ 10.0 インテル (R) Visual Fortran コンパイラー 10.0 日本語版スペシャル エディション 入門ガイド 目次 概要インテル (R) Visual Fortran コンパイラーの設定はじめに検証用ソースファイル適切なインストールの確認コンパイラーの起動 ( コマンドライン ) コンパイル ( 最適化オプションなし ) 実行 / プログラムの検証コンパイル ( 最適化オプションあり ) 実行

More information

A 既製のプロジェクトがある場合

A 既製のプロジェクトがある場合 2008 年 7 月 15 日 ワゴジャパン株式会社 1 使用機器 -Siemens S7-300:CPU315F-2 PN/DP プロセッサ /PROFINET スキャナ -Siemens SIMATIC Manager STEP 7 ソフトウェア バージョン V5.4-750-333 GSD ファイル :B754_V30.GSD(FW Ver.7 以降 ) -WAGO I/O ノード構成ノード

More information

DWR-S01D Updater 取扱説明書 発行日 :2011/2/28

DWR-S01D Updater 取扱説明書 発行日 :2011/2/28 DWR-S01D Updater 取扱説明書 発行日 :2011/2/28 目次 概要概要...3 機能機能...3 準備準備するものするもの...3 本ソフトウェアソフトウェアについてについて...3 インストールインストール手順手順...4 USB ドライバーのインストールインストール手順手順...8 デバイスマネージャーデバイスマネージャーからの USB ドライバーのインストールインストール手順手順...11

More information

Microsoft Word - DWR-S01D_Updater_取扱説明書_120514A.doc

Microsoft Word - DWR-S01D_Updater_取扱説明書_120514A.doc DWR-S01D Updater 取扱説明書 発行日 :2012/5/14 目次 概要...3 機能...3 準備するもの...3 本ソフトウェアについて...3 インストール手順...4 USBドライバーのインストール手順...8 デバイスマネージャーからのUSBドライバーのインストール手順...11 アップデート手順...16 アップデート後の確認...17 アップデートに失敗した場合...17

More information

Application Note Application Note No. ESC-APN Document No.: ESC-APN adviceluna Linux デバッグ手順 (MIPS コア編 ) はじめに adviceluna Linux デバッグ手順 ( 以

Application Note Application Note No. ESC-APN Document No.: ESC-APN adviceluna Linux デバッグ手順 (MIPS コア編 ) はじめに adviceluna Linux デバッグ手順 ( 以 No. ESC-APN-026-02 Document No.: ESC-APN-026-02 adviceluna Linux デバッグ手順 (MIPS コア編 ) はじめに adviceluna Linux デバッグ手順 ( 以下 本書 ) は adviceluna にて下記 Linux 環境をデバッグする手順を説明した文書です Application Shared Library Loadable

More information

GettingStartedTK2

GettingStartedTK2 T-Kernel 2.0 Getting Started T-Engine フォーラム ダウンロード T-Engine フォーラムの web ページから T-Kernel 2.0 Software Package をダウンロード 必要なソフトウェアや開発環境が全て含まれている 2 Copyright 2011 by T-Engine Forum, All Rights Reserved. 1 ReadMe.txt

More information

クラウド内の Java - 動画スクリプト 皆さん こんにちは Steve Perry です 私たちが作成した人事アプリケーションを覚えていますか? 今回は そのアプリケーションをクラウド内で実行しましょう コードは GitHub の

クラウド内の Java - 動画スクリプト 皆さん こんにちは Steve Perry です 私たちが作成した人事アプリケーションを覚えていますか? 今回は そのアプリケーションをクラウド内で実行しましょう コードは GitHub の クラウド内の Java - 動画スクリプト 皆さん こんにちは Steve Perry です 私たちが作成した人事アプリケーションを覚えていますか? 今回は そのアプリケーションをクラウド内で実行しましょう コードは GitHub の https://github.com/makotogo/javainthecloud からダウンロードでき この動画では 次の方法を説明し WebSphere Application

More information

MotionBoard Ver. 5.6 パッチ適用手順書

MotionBoard Ver. 5.6 パッチ適用手順書 MotionBoard Ver. 5.6 パッチ適用手順書 目次 目次 目次... 2 本パッチ適用手順書について... 3 1. パッチ適用手順... 4 1-1. MotionBoard サーバー インメモリ OLAP エンジン MotionBoard RC Service の適用手順... 5 1-2. MotionBoard Agent の適用手順... 7 1-3. +Mobile アプリケーション

More information

Windows Server 2012 および Windows Server 2008 のインストール

Windows Server 2012 および Windows Server 2008 のインストール Windows Server 2012 および Windows Server 2008 のインストール この章は 次の内容で構成されています 内部ドライブへの Windows Server 2012 または Windows Server 2008 のインストール, 1 ペー ジ ブート可能 SAN LUN への Windows Server 2012 または Windows Server 2008

More information

使用する前に

使用する前に この章では Cisco Secure ACS リリース 5.5 以降から Cisco ISE リリース 2.4 システムへのデー タ移行に使用される Cisco Secure ACS to Cisco ISE Migration Tool について説明します 移行の概要 1 ページ Cisco Secure ACS から データ移行 1 ページ Cisco Secure ACS to Cisco ISE

More information

ドライバインストールガイド

ドライバインストールガイド PRIMERGY Single Port ファイバーチャネルカード (8Gbps) Dual Port ファイバーチャネルカード (8Gbps) (PG-FC205/PG-FC205L) (PG-FC206/PG-FC206L) CA092276-8938-01 ドライバインストールガイド i 目次 1. ドライバのインストール / アンインストール方法... 3 1.1. ドライバのダウンロード

More information

概要 Windows Embedded Standard 7 は Windows Embedded Standard ポートフォリオにおける次世代プラットフォームで Windows 7 オペレーティングシステムのパワー 使いやすさ 信頼性を備えており カスタマイズ可能なコンポーネント化された形で提供

概要 Windows Embedded Standard 7 は Windows Embedded Standard ポートフォリオにおける次世代プラットフォームで Windows 7 オペレーティングシステムのパワー 使いやすさ 信頼性を備えており カスタマイズ可能なコンポーネント化された形で提供 Windows Embedded Standard 7 の 使用によるアプリケーションの 開発 展開 デバッグ 目次 概要... 2 アプリケーション... 3 目的... 3 コードと環境... 3 Windows Embedded Standard 7 のイメージの準備... 6 HelloWorld アプリケーションを静的に分析... 6 1. 依存関係を解決します... 9 2. ターゲット機器の共有フォルダーを作成します...

More information

Microsoft Word - ALT0982_program_epcs_by_niosii_v10.doc

Microsoft Word - ALT0982_program_epcs_by_niosii_v10.doc ver. 1.0 2008 年 6 月 1. はじめに この資料では ホスト PC に存在する ハードウェアのコンフィギュレーション データ ファイルをホスト ファイルシステムの機能を使用して Nios II システム メモリへ転送し そのコンフィギュレーション データを Nios II を使って EPCS へプログラムする手法を紹介します この資料は Quartus II ver.7.2 SP3

More information

HP StorageWorks 9000–series Virtual Library System User Guide (抜粋)

HP StorageWorks 9000–series Virtual Library System User Guide (抜粋) nl HP StorageWorks 9000 series Virtual Library System User Guide ( 抜粋 ) 製品番号 : AG306-96029 初版 : 2010 年 9 月 ファームウェアのアップデート 注意 : ファームウェアアップデートをインストールすると VLS が自動的に再起動されます VLS ファームウェアを更新するには以下の手順に従います 1. VLS

More information

目次 第 1 章概要....1 第 2 章インストールの前に... 2 第 3 章 Windows OS でのインストール...2 第 4 章 Windows OS でのアプリケーション設定 TP-LINK USB プリンターコントローラーを起動 / 終了するには

目次 第 1 章概要....1 第 2 章インストールの前に... 2 第 3 章 Windows OS でのインストール...2 第 4 章 Windows OS でのアプリケーション設定 TP-LINK USB プリンターコントローラーを起動 / 終了するには プリントサーバー 設定 ガイド このガイドは以下のモデルに該当します TL-WR842ND TL-WR1042ND TL-WR1043ND TL-WR2543ND TL-WDR4300 目次 第 1 章概要....1 第 2 章インストールの前に... 2 第 3 章 Windows OS でのインストール...2 第 4 章 Windows OS でのアプリケーション設定...7 4.1 TP-LINK

More information

(Veritas\231 System Recovery 16 Monitor Readme)

(Veritas\231 System Recovery 16 Monitor Readme) Veritas System Recovery 16 Monitor Readme この README について Veritas System Recovery 16 Monitor でサポートされなくなった機能 Veritas System Recovery 16 Monitor について システムの必要条件 ホストコンピュータの前提条件 クライアントコンピュータの前提条件 Veritas System

More information

SAC (Jap).indd

SAC (Jap).indd 取扱説明書 機器を使用する前に本マニュアルを十分にお読みください また 以後も参照できるよう保管してください バージョン 1.7 目次 目次 について...3 ご使用になる前に...3 インストール手順...4 ログイン...6 マネージメントソフトウェアプログラムの初期画面... 7 プロジェクタの検索...9 グループの設定... 11 グループ情報画面... 12 グループの削除... 13

More information

FTDI USB-Serial Converter デバイスドライバのインストール(Rev.1.01)

FTDI USB-Serial Converter デバイスドライバのインストール(Rev.1.01) FTDI USB-Serial Converter デバイスドライバの インストール / アンインストール (Rev.1.10) 年 月 日 合同会社クラッグ電子 (1/19) 目次 1. 初めに... 3 2. デバイスドライバのインストール... 3 2-1. インターネットに接続されている環境... 4 2-2. インターネットに接続されていない環境 ( 自動 )... 6 2-3. インターネットに接続されていない環境

More information

ファイル メニューのコマンド

ファイル メニューのコマンド CHAPTER43 次のオプションは Cisco Configuration Professional(Cisco CP) の [ ファイル ] メニューから利用できます 実行コンフィギュレーションを PC に保存 ルータの実行コンフィギュレーションファイルを PC 上のテキストファイルに保存します 43-1 設定をルータに配信する 第 43 章 設定をルータに配信する このウィンドウでは Cisco

More information

発環境を準備しよう2 章開Eclipseをインストールしようそれでは Eclipseをセットアップしましょう Eclipseは Eclipse Foundationのサイトからダウンロードできます ダウンロードのページを開くと いく

発環境を準備しよう2 章開Eclipseをインストールしようそれでは Eclipseをセットアップしましょう Eclipseは Eclipse Foundationのサイトからダウンロードできます  ダウンロードのページを開くと いく 2.1 Java の開発ツールを入手しよう Java の実行環境と 開発ツールの Eclipse Android 向けアプリケー ションの開発ツール Android SDK をダウンロードしましょう 本書では Windows パソコンへのインストール方法を説明します Javaをインストールしようまず 最新のJava 実行環境を入手しましょう Javaは Java 公式サイト (http://www.java.com/ja/)

More information

< 付録A: ソフトウェアアップデート >

< 付録A: ソフトウェアアップデート > 付録 A ソフトウェアアップデート Version 7.3.0:01 版 本製品の使用前に必ず取扱説明書をお読み下さい 本取扱説明書は英文取扱説明書の一部邦文訳ですが 全てにおいて英文取扱説明書の補助手段としてご使用ください 目次 目次 ワイヤーエキスパートのソフトウェアアップデートについて... A-2 エクスポートのインストールとアップデート手順... A-2 ワイヤーエキスパートのアップデート...

More information

音声認識サーバのインストールと設定

音声認識サーバのインストールと設定 APPENDIX C 次のタスクリストを使用して 音声認識ソフトウェアを別の音声認識サーバにインストールし 設定します このタスクは Cisco Unity インストレーションガイド に記載されている詳細な手順を参照します ドキュメントに従って 正しくインストールを完了してください この付録の内容は Cisco Unity ライセンスに音声認識が含まれていること および新しい Cisco Unity

More information

Microsoft Word - Updater

Microsoft Word - Updater ホスト ソフトウェアのアップデート Midas Digital System と関連するネットワーク機器のホスト ソフトウェアのアップデートについて説明します アップデータについて PRO2 にはシステムを簡単かつ明快にアップデートする方法を提供するアップデート機能があります この機能を利用して 最新版のホスト ソフトウェアをコントロールセンターとネットワーク接続した DLnnn または Klark

More information

Microsoft Word - Android開発環境構築.doc

Microsoft Word - Android開発環境構築.doc JDK(Java Development Kit) のダウンロード インストール JDK のダウンロードサイト http://www.oracle.com/technetwork/java/javase/downloads/index.html を開き Java SE 6 Update 26(2011/07/29 現在 ) をダウンロードします ( ダウンロード対象は OS ごとに選択して下さい 例では

More information

User Support Tool 操作ガイド

User Support Tool 操作ガイド User Support Tool - 操作ガイド - User Support Tool とは? User Support Tool は ファームウェアを更新するためのユーティリティソフトウェアです 本書では User Support Tool を使用して プリンタのファームウェアを更新する方法を解説しています ご使用前に必ず本書をお読みください 1 準備する 1-1 必要なシステム環境...P.

More information

目次 1. HLA Fusion 3.0 がインストール可能な環境 HLA Fusion 3.0 のインストール HLA Fusion 3.4 のインストール 初期設定用データベース接続 ( 初めての方のみ ) 既存データベースのUpg

目次 1. HLA Fusion 3.0 がインストール可能な環境 HLA Fusion 3.0 のインストール HLA Fusion 3.4 のインストール 初期設定用データベース接続 ( 初めての方のみ ) 既存データベースのUpg 目次 1. HLA Fusion 3.0 がインストール可能な環境... 1 2. HLA Fusion 3.0 のインストール... 2 3. HLA Fusion 3.4 のインストール... 4 4. 初期設定用データベース接続 ( 初めての方のみ )... 5 5. 既存データベースのUpgrade 方法 (HLA Fusion 3~3.3 を既に使用の方 )... 7 6. インストールが成功したかの確認...

More information

AP-RZA-1A シリアルFlashROMの書き込み方法

AP-RZA-1A シリアルFlashROMの書き込み方法 AP-RZA-1A (RZ/A1H CPU BOARD) シリアル FlashROM の書き込み方法 1 版 2015 年 11 月 9 日 1. 概要... 2 1.1 概要... 2 1.2 動作環境ついて... 2 1.3 書き込み手順の概要... 3 2. 準備... 4 2.1 ソフトウェアのダウンロード... 4 3. シリアル FLASHROM の書き込み方法... 5 3.1 microsd

More information

付録

付録 Cisco HyperFlex ノードの設置 1 ページ Cisco UCS ファブリック インターコネクトのセット アップ 2 ページ WinSCP を使用してインストーラ VM に iso と img ファイルをアップロードするには 6 ページ DNS レコード 9 ページ HX サービス アカウント パスワードの更新 9 ページ Cisco HyperFlex ノードの設置 HyperFlex

More information

Eclipse&gcc install and tutorial

Eclipse&gcc install and tutorial Eclipse & Blackfin Toolchain(gcc) インストール & チュートリアル 第 1 版 ご注意 : このドキュメントは旧版となりました 下記 URL から最新版を参照ください http://kaneko-sys.co.jp/support/ 金子システム株式会社 1 ご注意 1. 本資料に記載されている内容は本資料発行時点のものであり 予告なく変更することがあります 当社製品のご購入およびご使用にあたりましては

More information

SetupVerup_dl_M

SetupVerup_dl_M 最新版プログラムのダウンロード EX-TREND 武蔵 Ver.18 シリーズ FC コンシェルジュの 最新版へのアップグレード サービスを利用して お使いの EX-TREND 武蔵シリーズ を EX-TREND 武蔵 Ver.18 シリーズ にバージョンアップする方法を解説します 1. プロテクトの更新は お済みですか? プログラムをバージョンアップした場合は プロテクトの更新が必要です まだ更新していない場合は

More information

        ALTIRIS Client Management Suite Upgrade Guide                                 Rev 年6月30日  

        ALTIRIS Client Management Suite  Upgrade Guide                                 Rev 年6月30日   ALTIRIS Client Management Suite 7 Server Management Suite 7 Quick Startup Guide Rev. 1.1 2009 年 7 月 7 日 目次 1. はじめに----------------------------------------------------------------------------------------------3

More information

第一章 LPC2478 ボードの概要...3 第二章 uclinux の初体験 SD カードのテスト USB メモリのテスト USB Devices のテスト network のテスト...6 第三章 uclinux のコンパイル...

第一章 LPC2478 ボードの概要...3 第二章 uclinux の初体験 SD カードのテスト USB メモリのテスト USB Devices のテスト network のテスト...6 第三章 uclinux のコンパイル... 株式会社日新テクニカ株式会社日新テクニカ株式会社日新テクニカ 1 ARM ARM ARM ARM7/TDMI 7/TDMI 7/TDMI 7/TDMI LPC LPC LPC LPC247 247 247 2478-uC uc uc uclinux inux inux inux マニュアルマニュアルマニュアルマニュアル株式会社日新テクニカ株式会社日新テクニカ株式会社日新テクニカ株式会社日新テクニカ

More information

MENU 키를 누르면 아래의 화면이 나타납니다

MENU 키를 누르면 아래의 화면이 나타납니다 Stand-Alone Digital Video Recorder Advanced MPEG-4 DVR 16 Channel Models クライアントソフト 再インストールマニュアル くまざわ書店専用 日本語版 1 V1.07-n307 This document contains preliminary information and subject to change without notice.

More information

『テクノス』V2プログラムインストール説明書

『テクノス』V2プログラムインストール説明書 土木積算システム テクノス V2 プログラム インストール説明書 ( 第 3 版 ) 目 次 1. テクノス V2 プログラム インストールの概要...3 2. テクノス V2 のプログラム ドライバ インストール...4 3. テクノス V2 の初期起動...10 4. アンインストール...11 5. 補足 ( 動作環境 )...11 2. 1. テクノス V2 プログラム インストールの概要

More information

Hik-Connect アカウントにデバイスを追加する方法ユーザーは Hik-Connect APP ウェブポータル ivms4500 アプリまたは ivms クライアント経由で Hik-Connect 機能を有効にすることができます 注 : iv

Hik-Connect アカウントにデバイスを追加する方法ユーザーは Hik-Connect APP   ウェブポータル ivms4500 アプリまたは ivms クライアント経由で Hik-Connect 機能を有効にすることができます 注 : iv 概要 Hik-Connect は 動的ドメイン名サービスとアラームプッシュ通知サービスを統合した Hikvision によって導入された新しいサービスです これは デバイスがインターネットに接続するための簡単な方法を提供します このマニュアルは Hik-Connect サービスを追加する方法をユーザーに示すためのガイドです 注 :: ユーザーエクスペリエンスを向上させるために ルーターとデバイスの両方で

More information

Microsoft iSCSI Software Targetを使用したクラスタへの共有ディスク・リソースの提供

Microsoft iSCSI Software Targetを使用したクラスタへの共有ディスク・リソースの提供 Microsoft iscsi Software Target を使用したクラスタへの共有ディスク リソースの提供 はじめに... 2 クラスタ ホスト エントリの作成... 3 イニシエータの設定... 7 クラスタ ノード 1 のイニシエータ... 7 クラスタ ノード 2 のイニシエータ... 7 iscsi 仮想ディスクのエクスポート... 8 iscsi デバイスの初期化... 11 Microsoft

More information

MINI2440マニュアル

MINI2440マニュアル Windows CE 6.0 マニュアル http://www.nissin-tech.com info@nissin-tech.com 2010/2/14 copyright@2010 1 第一章 VS2005 & WinCE6.0 のインストール...3 第二章 BSPのインストール...3 第三章 WinCE6.0 プロジェクタを作る...4 第四章 WinCE6.0 のコンフィグ...15

More information

DWT-B01 Updater 取扱説明書 発行日 :2011/3/23

DWT-B01 Updater 取扱説明書 発行日 :2011/3/23 DWT-B01 Updater 取扱説明書 発行日 :2011/3/23 目次 概要概要...3 機能機能...3 準備準備するものするもの...4 本ソフトウェアソフトウェアについてについて...4 インストールインストール手順手順...5 USB ドライバーのインストールンストール手順手順...9 デバイスマネージャーデバイスマネージャーからの USB ドライバーのインストールインストール手順手順...12

More information

Nios II 簡易チュートリアル

Nios II 簡易チュートリアル Nios II Ver. 7.1 2007 10 1. Nios II Nios II JTAG UART LED 8 PIO LED < > Quartus II SOPC Builder Nios II Quartus II.sof Nios II IDE Stratix II 2S60 RoHS Nios II Quartus II http://www.altera.com/literature/lit-nio2.jsp

More information

内容 Softimage のスタンドアロンライセンスのインストールとライセンス取得 Softimage セットアッププログラムを実行 エンドユーザ使用許諾契約 (EULA) に同意 インストール先のパスを指定 パッケージの選択... 6

内容 Softimage のスタンドアロンライセンスのインストールとライセンス取得 Softimage セットアッププログラムを実行 エンドユーザ使用許諾契約 (EULA) に同意 インストール先のパスを指定 パッケージの選択... 6 Autodesk Softimage 2010 スタンドアロンおよび Autodesk Softimage 2010 マルチシートスタンドアロンインストールガイド Windows 搭載システム対応 2009 年 9 月 オートデスク株式会社 プロダクトサポート本部 1 内容 Softimage のスタンドアロンライセンスのインストールとライセンス取得... 3 1. Softimage セットアッププログラムを実行...

More information

(Microsoft Word - \214\264\215e B_\217\221\202\253\215\236\202\335\225\224.docx)

(Microsoft Word - \214\264\215e B_\217\221\202\253\215\236\202\335\225\224.docx) トランジスタ技術 2009 年 3 月号特集気軽にはじめる FPGA 第 5 章マルチチャネル信号発生器信号発生器の製作 ~はんだ付け不要ロジックの自在さを生かす~ ISE WebPACK を使って FPGA にソースを書き込むまでの手順 坂本三直 プロジェクトプロジェクトの新規生成 / 読み込み : CQ 出版社の HP より本スタータキット用のプロジェクトをダウンロードしてください. パソコン上にコピーできたら,Xilinx

More information

Veritas System Recovery 16 Management Solution Readme

Veritas System Recovery 16 Management Solution Readme Veritas System Recovery 16 Management Solution Readme この README について Veritas System Recovery 16 のソフトウェア配信ポリシーのシステム要件 Veritas System Recovery 16 Management Solution のシステム要件 Veritas System Recovery 16 Management

More information

PowerPoint Presentation

PowerPoint Presentation 製品ソフトウェアのセットアップ手順 UNIX/Linux 編 1. セットアップファイルの選択開発環境 / 実行環境 / バージョン /Hotfix/ インストール先 OS 2. 対象セットアップファイルのダウンロード開発環境の場合は 2 つのファイルが対象 3. ソフトウェア要件の確認 4. ソフトウェアのインストール 5. ライセンスの認証 1 1. セットアップファイルの選択 選択項目選択肢該当チェック

More information

第 7.0 版 利用履歴管理 ETCPRO5 セットアップマニュアル (Ver5.002) カードリーダモデル変更 ( 表示付き 表示なし ) に伴い 改訂 Windows10 対応に伴い 改訂 参考ホームページサイト :

第 7.0 版 利用履歴管理 ETCPRO5 セットアップマニュアル (Ver5.002) カードリーダモデル変更 ( 表示付き 表示なし ) に伴い 改訂 Windows10 対応に伴い 改訂 参考ホームページサイト : 第 7.0 版 利用履歴管理 ETCPRO5 セットアップマニュアル (Ver5.002) カードリーダモデル変更 ( 表示付き 表示なし ) に伴い 改訂 Windows10 対応に伴い 改訂 参考ホームページサイト : http://www.denso-wave.com/download/etcp/etcpro.html 2016 年 2 月 株式会社デンソーウェーブ 目次 1. はじめに......

More information

Veritas System Recovery 16 Management Solution Readme

Veritas System Recovery 16 Management Solution Readme Veritas System Recovery 16 Management Solution Readme この README について Veritas System Recovery 16 のソフトウェア配信ポリシーのシステム要件 Veritas System Recovery 16 Management Solution のシステム要件 Veritas System Recovery 16 Management

More information

マルチ VRFCE PE-CE リンクのプロビジョ ニング

マルチ VRFCE PE-CE リンクのプロビジョ ニング CHAPTER 26 この章では Prime Fulfillment のプロビジョニングプロセスで MPLS VPN マルチ VRFCE PE-CE リンクを構成する方法を説明します MPLS VPN MVRFCE PE-CE リンクの概要 この項の内容は 次のとおりです ネットワークトポロジ (P.26-2) 前提タスク (P.26-2) Prime Fulfillment で MPLS VPN

More information

システムコマンダー8を使用したWindows とLindowOS の共存方法

システムコマンダー8を使用したWindows とLindowOS の共存方法 株式会社ライフボート システムコマンダー 8 を使用した Windows と Fedora Core3 の共存方法 以下の方法はあくまで一例となります 環境によっては共存できない場合もありますので 予めご了承ください 追加インストールを行う前に必ず既存データのバックアップを行ってください Fedora Core3 用のパーティション作成方法 Windows と Fedora Core3 を同一の PC

More information

SANS SEC401_PC設定の手引き

SANS SEC401_PC設定の手引き SEC401 PC 設定の手引き クラスでの実習の準備として クラス参加に先立って 必ず最新の Kali Linux と VMware Workstation Player をダウンロードして お使いの Windows にインストールしておいてください この手引では Windows7 で操作を進めた場合の手順を示していますが その他のバージョンで PC 設定をされる場合は 適宜画面イメージなどを読み替えて進めてください

More information

AN5101 SA-Cy500S (Cyclone V SoC CPU BOARD) スタートガイド

AN5101 SA-Cy500S (Cyclone V SoC CPU BOARD) スタートガイド R SA-Cy500S (Cyclone V SoC CPU BOARD) スタートガイド 第 2 版 2018 年 10 月 09 日 1. 概要 1.1 概要 本アプリケーションノートでは SA-Cy500S でオールインワン SD カードイメージを使用した Linux の起動方法について解説し ます 1.2 動作環境 本アプリケーションノートで紹介する手順に必要な機器を以下に示します SA-Cy500S

More information

DWR-P01DN Updater 取扱説明書 発 :2015/10/30

DWR-P01DN Updater 取扱説明書 発 :2015/10/30 DWR-P01DN Updater 取扱説明書 発 :2015/10/30 次 概要... 3 機能... 3 準備するもの... 3 本ソフトウェアについて... 3 インストール 順... 4 USB ドライバーのインストール 順... 11 デバイスマネージャーからの USB ドライバーのインストール 順... 14 アップデート 順... 19 アップデート後の確認... 20 アップデートに失敗した場合...

More information

Nios II Flash Programmer ユーザ・ガイド

Nios II Flash Programmer ユーザ・ガイド ver. 8.0 2009 年 4 月 1. はじめに 本資料は Nios II 開発環境においてフラッシュメモリ または EPCS へのプログラミングを行う際の参考マニュアルです このマニュアルでは フラッシュメモリの書き込みの際に最低限必要となる情報を提供し さらに詳しい情報はアルテラ社資料 Nios II Flash Programmer User Guide( ファイル名 :ug_nios2_flash_programmer.pdf)

More information

AN1609 GNUコンパイラ導入ガイド

AN1609 GNUコンパイラ導入ガイド GNU コンパイラ導入ガイド 2 版 2017 年 04 月 20 日 1. GNU コンパイラの導入... 2 1.1 はじめに... 2 1.2 必要なプログラムとダウンロード... 3 1.2.1 GNU ツールチェインのダウンロード... 3 1.2.2 e 2 studio のダウンロード... 5 1.3 GNU ツールチェインのインストール... 7 1.4 e 2 studio のインストール...

More information

Autodesk Softimage 7.5 スタンドアロン インストール ガイド

Autodesk Softimage 7.5 スタンドアロン インストール ガイド Autodesk Softimage 7.5 スタンドアロンおよび Autodesk Softimage 7.5 マルチシートスタンドアロンインストールガイド Windows 搭載システム対応 2009 年 2 月オートデスク株式会社プロダクトサポート本部 1 内容 Softimage のスタンドアロンライセンスのインストールとライセンス取得... 3 1. Softimage セットアッププログラムを実行...

More information

Microsoft PowerPoint - Tutorial_2_upd.ppt

Microsoft PowerPoint - Tutorial_2_upd.ppt 2 Eclipse を使った Bluemix アプリケーション開発 1 ハンズオン手順 ハンズオンの概要 Eclipse から Java アプリをデプロイする 公開されているプロジェクトをインポートする インポートしたプロジェクトをBluemixにデプロイする ここでは PostgreSQL サービスを提供する ElephantSQL というサービスを使用します デプロイしたアプリケーションを確認する

More information

TF Series with Tio1608-D System Setup Guide

TF Series with Tio1608-D System Setup Guide システムセットアップガイド 第 1 版 : 2016 年 6 月 このガイドでは ヤマハデジタルミキシングコンソール TF シリーズ と I/O ラック Tio1608-D を使用したミキシングシステムのセットアップ手順や Tio1608-D の台数に応じたシステム例を紹介します TF シリーズは単体でも使用することができますが Tio1608-D を併用することで簡単にシステムを拡張することができ

More information

Windows AIKを使用したPE2

Windows AIKを使用したPE2 Windows AIK を使用した PE2.0 ベースの起動 CD 作成方法 この資料では マイクロソフト社から提供されている Windows AIK( 自動インストールキット ) を使用して Windows PE 2.0 ベースの起動 CD を作成する方法をご紹介します Image Backup や LB コピーコマンダーなどの製品 CD やリカバリーメディアは 主に DOS や Linux 環境で動作するため

More information

DSP5Dアップグレードガイド

DSP5Dアップグレードガイド DSP5D アップグレードガイド このガイドでは DSP5D の各種ファームウェアを最新にアップデートする手順を説明します 必ずお読みください アップデート作業は お客様ご自身の責任において行なっていただきます アップデートを実行する前に 必要なデータはバックアップしておいてください PM5D とカスケード接続している場合は DSP5D をアップデートすると PM5D のアップデートも必要になる場合があります

More information

PNopenseminar_2011_開発stack

PNopenseminar_2011_開発stack PROFINET Open Seminar 開発セミナー Software Stack FPGA IP core PROFINET 対応製品の開発 2 ユーザ要求要求は多種多様 複雑な規格の仕様を一から勉強するのはちょっと.. できるだけ短期間で 柔軟なスケジュールで進めたい既存のハードウェアを変更することなく PN を対応させたい将来的な仕様拡張に対してシームレスに統合したい同じハードウェアで複数の

More information

Microsoft Word - Cubesuite+_78K0R.doc

Microsoft Word - Cubesuite+_78K0R.doc TK-78K0R シリーズ CubeSuite+ 対応追加マニュアル テセラ テクノロジー株式会社 Rev :1.0 2011/7/19-1 - 目次 1 本書の概要...3 2 PC 動作環境の説明...4 3 USB ドライバーダウンロードとインストール...6 4 CubeSuite+ プロジェクトへの変換... 11 5 設定の確認... 13 6 ビルド デバッガ起動... 15 7 78K0R

More information

Windows10 における Ac6 System Workbench for STM32 のダウンロードとインストール V /06/01 Windows10 の PC で Ac6 System Workbench for STM32 のダウンロードとインストールの方法について説明しま

Windows10 における Ac6 System Workbench for STM32 のダウンロードとインストール V /06/01 Windows10 の PC で Ac6 System Workbench for STM32 のダウンロードとインストールの方法について説明しま Windows10 における Ac6 System Workbench for STM32 のダウンロードとインストール V001 2016/06/01 Windows10 の PC で Ac6 System Workbench for STM32 のダウンロードとインストールの方法について説明します 目次 1. Ac6 System Workbench for STM32 のダウンロード... 2

More information

プログラムのデバッグ

プログラムのデバッグ TJBN005 プログラムのデバッグ TOPPERS/JSP for Blackfin プロジェクト最終更新 : 2012/Aug/27 Rev 1.0 この文書はクリエイティブ コモンズ表示 3.0 非移植ライセンスの下に提供されています プログラムのデバッグ 1 1. GDB によるデバッグ GNU ツールチェーンでビルドしたアプリケーション ソフトウェアは GDB でデバッグすることができます

More information

必要システム構成 Windows USB 搭載 ( ) で 1GHz 以上のプロセッサを搭載したパーソナルコンピュータ ) Microsoft Windows 7(HomePremium Professional Ultimate) 日本語版 512MB 以上の RAM(1GB 以上を推

必要システム構成 Windows USB 搭載 ( ) で 1GHz 以上のプロセッサを搭載したパーソナルコンピュータ ) Microsoft Windows 7(HomePremium Professional Ultimate) 日本語版 512MB 以上の RAM(1GB 以上を推 ご注意 このソフトは B+COM アップグレード対応機器専用ソフトウェアです 対応機器以外へインストールをした場合 機器を破損させる恐れ が御座いますので絶対に使用しないで下さい またインストールに関しましては 本 アップグレードインストール マニュアル を参照して下さい インストールする際には B+COM 各機器付属の専用通信ケーブル が必要になります 付属のケーブル以外ではアップグレードが行えません

More information

939061j

939061j ブルームバーグ ソフトウエア インストールガイド日本語 2012 年 10 月 26 日バージョン : 9.0 目次ブルームバーグ ソフトウエアのダウンロード... 2 ブルームバーグ シリアル番号 < 新規 > のインストール. 9 正しくインストールされたかを確認... 13 アクセス権付与に関する注意... 15 1 ブルームバーグ ソフトウエアのダウンロード Internet Explorer

More information

Microsoft Word - AW-SF100導入手順書(スタンドアローン版)_ doc

Microsoft Word - AW-SF100導入手順書(スタンドアローン版)_ doc AW-SF100 スタンドアローン版 導入手順書 Revision 0.06 2015.11.24 Professional AV Systems Business Unit Panasonic AVC Networks Company Panasonic Co., Ltd. 1. はじめに... 3 2. リモートカメラの設定... 4 2.1. AW-HE130 の設定... 4 2.2. AW-UE70/AW-HE40

More information

目次 初めに必ずお読みください ソフトウェアのインストール ソフトウェアの選択 ソフトウェアのインストール レシーバー用ドライバのインストール WindowsXP のインストール方法 Win

目次 初めに必ずお読みください ソフトウェアのインストール ソフトウェアの選択 ソフトウェアのインストール レシーバー用ドライバのインストール WindowsXP のインストール方法 Win インストール手順書 Office2010 Version 4.5.4.3 インストールの際に必ずお読みください 第 1 版 2012 年 5 月 木村情報技術株式会社 目次 初めに必ずお読みください... 3 1. ソフトウェアのインストール... 7 1-1 ソフトウェアの選択... 8 1-2 ソフトウェアのインストール... 10 2. レシーバー用ドライバのインストール... 12 2-1

More information

C1Live

C1Live C1Live 2014.01.30 更新 グレープシティ株式会社 Copyright GrapeCity, Inc. All rights reserved. C1Live 目次 i 目次 ComponentOne Studio Live 更新ユーティリティの概要 1 Studio Live について 2 Studio Live 製品グリッド... 3 Studio Live メニュー... 4 Studio

More information

ソフトウェア更新の前に お客様に より快適に LGL22 をご利用いただくため ソフトウェア更新によるアップグレードを行っております この手順書は LGL22 とパソコンを microusb ケーブルにて接続してソフトウェア更新を行う方法となります ソフトウェア更新は microusb ケーブルによ

ソフトウェア更新の前に お客様に より快適に LGL22 をご利用いただくため ソフトウェア更新によるアップグレードを行っております この手順書は LGL22 とパソコンを microusb ケーブルにて接続してソフトウェア更新を行う方法となります ソフトウェア更新は microusb ケーブルによ LGL22 パソコン接続による ソフトウェア更新手順 1 ソフトウェア更新の前に お客様に より快適に LGL22 をご利用いただくため ソフトウェア更新によるアップグレードを行っております この手順書は LGL22 とパソコンを microusb ケーブルにて接続してソフトウェア更新を行う方法となります ソフトウェア更新は microusb ケーブルによるパソコン接続のみとなります ソフトウェア更新を行うには以下の動作環境を満たすパソコンおよびインターネット接続環境をご用意ください

More information

[DS50-N A] BIOS マニュアル BIOS セットアップユーティリティとは BIOS セットアップユーティリティとは BIOS の設定を確認 変更するためのツールです セットアップユーティリティは 本体に内蔵されているマザーボード上のフラッシュメモリーに格納されています このユ

[DS50-N A] BIOS マニュアル BIOS セットアップユーティリティとは BIOS セットアップユーティリティとは BIOS の設定を確認 変更するためのツールです セットアップユーティリティは 本体に内蔵されているマザーボード上のフラッシュメモリーに格納されています このユ BIOS マニュアル BIOS セットアップユーティリティとは BIOS セットアップユーティリティとは BIOS の設定を確認 変更するためのツールです セットアップユーティリティは 本体に内蔵されているマザーボード上のフラッシュメモリーに格納されています このユーティリティで定義される設定情報は チップセット上の CMOS RAM と呼ばれる特殊な領域に格納 されます この設定情報は マザーボードに搭載されているバックアップ電池により保存されます

More information

1. 新規プロジェクト作成の準備新規プロジェクトのためのフォルダを用意して そこにプロジェクトを作成します [ 新しいフォルダー ] をクリックして希望のフォルダに新しいフォルダを作成します この例では TrST_F401N_BlinkLD2 というフォルダを作成しました TrST_F401N_Bl

1. 新規プロジェクト作成の準備新規プロジェクトのためのフォルダを用意して そこにプロジェクトを作成します [ 新しいフォルダー ] をクリックして希望のフォルダに新しいフォルダを作成します この例では TrST_F401N_BlinkLD2 というフォルダを作成しました TrST_F401N_Bl NUCLEO-F401RE の TrueSTUDIO プロジェクト構築方法 V001 2014/09/24 Atollic TrueSTUDIO for ARM Lite を使用して NUCLEO-F401RE のプロジェクトを新規に作成する方法について説明します また ビルドとデバッグについても説明しています 目次 1. 新規プロジェクト作成の準備... 2 2. 新規プロジェクトの作成... 3

More information

How to Install and Configure Panorama Panorama のインストールと設定 Panorama は Palo Alto Networks のサポートサイトからダウンロード可能な VMware イメージです 本書は Panorama のインストールと Panora

How to Install and Configure Panorama Panorama のインストールと設定 Panorama は Palo Alto Networks のサポートサイトからダウンロード可能な VMware イメージです 本書は Panorama のインストールと Panora How to Install and Configure Panorama Panorama のインストールと設定 Panorama は Palo Alto Networks のサポートサイトからダウンロード可能な VMware イメージです 本書は Panorama のインストールと Panorama でのデバイス管理に関する手順を示します 確認事項 VMware/panorama をインストールするサーバがありますか?

More information

VPN 接続の設定

VPN 接続の設定 VPN 接続の設定 AnyConnect 設定の概要, 1 ページ AnyConnect 接続エントリについて, 2 ページ ハイパーリンクによる接続エントリの追加, 2 ページ 手動での接続エントリの追加, 3 ページ ユーザ証明書について, 4 ページ ハイパーリンクによる証明書のインポート, 5 ページ 手動での証明書のインポート, 5 ページ セキュアゲートウェイから提供される証明書のインポート,

More information

ユーザーズガイド Brother Meter Read Tool JPN Version 0

ユーザーズガイド Brother Meter Read Tool JPN Version 0 ユーザーズガイド Brother Meter Read Tool JPN Version 0 著作権 Copyright 2017 Brother Industries, Ltd. All rights reserved. 本書の情報は予告なく変更されることがあります 本書に記載されているソフトウェアは 使用許諾契約書に基づいて提供されます 本ソフトウェアは 使用許諾契約書に従う場合に限り 使用または複製することができます

More information

Windows2000/XPインストール手順

Windows2000/XPインストール手順 日歯生涯研修事業 IC カード用研修受付ソフト インストール手順書 (Windows 10 用 ) 日本歯科医師会 1 IC カード用研修受付ソフト の Windows 10 へのインストール手順... 3 1. インストール前の確認事項... 3 2. インストール手順の概略説明... 4 3. 新規インストール... 5 4. 既に IC カード用研修受付ソフト がインストールされている場合...

More information

monologue Sound Librarian 取扱説明書

monologue Sound Librarian 取扱説明書 J 3 目次 はじめに... 2 monologue Sound Librarian とは?... 2 使用上のご注意... 2 動作環境... 2 インストール... 3 Mac へのインストール... 3 Windows へのインストール... 3 クイック スタート... 4 monologue Sound Librarian を起動する... 4 monologue Sound Librarian

More information

WAGO PROFIBUS バスカプラ/コントローラと、QJ71PB92Dとのコンフィグレーションマニュアル

WAGO PROFIBUS バスカプラ/コントローラと、QJ71PB92Dとのコンフィグレーションマニュアル < 概要 > WAGO-I/O-SYSTEM750 シリーズ PROFIBUS バスカプラ / コントローラと 三菱電機 製 PROFIBUS ユニット QJ71PB92D とのコンフィグレーション手順を説明しております < 使用機器接続図 > 下記機器を準備し 図の通り接続しました WAGO-I/O-SYSTEM PROFIBUS バスカプラ / コントローラ 750-xxx および I/O モジュール

More information

HDWS Update Instruction Guide

HDWS Update Instruction Guide シリーズ ノンリニア編集ワークステーション OS アップデート手順書 年 月版 はじめに 本書では HDWS シリーズに搭載の Windows 10 OS をアップデートする手順について説明しています 本書をよくお読みの上 アップデートを行っていただきますようお願いいたします アップデート対象機種 Windows 10 OS 搭載の HDWS シリーズで OS バージョンが 1809 より前のバージョンが対象機種になります

More information

Microsoft Word - Cubesuite+_V850_AM.doc

Microsoft Word - Cubesuite+_V850_AM.doc TK-850 シリーズ CubeSuite+ 対応追加マニュアル テセラ テクノロジー株式会社 Rev :1.0 2011/7/12-1 - 目次 1 本書の概要...3 2 PC 動作環境の説明...4 3 USB ドライバーダウンロードとインストール...6 4 CubeSuite+ プロジェクトへの変換... 11 5 設定の確認... 13 6 ビルド デバッガ起動... 14 7 V850

More information

始める スタート > 全てのプログラム > Cypress > PSoC Creator 2.0 > PSoC Creator 2.0 をクリックします プロジェクトを作成する / 開く Start Page の "Create New Project" をクリックし 要求されたプロジェクト情報を入

始める スタート > 全てのプログラム > Cypress > PSoC Creator 2.0 > PSoC Creator 2.0 をクリックします プロジェクトを作成する / 開く Start Page の Create New Project をクリックし 要求されたプロジェクト情報を入 PSoC Creator クイックスタートガイド インストール http://www.cypress.com/go/creator から PSoC Creator をダウンロードするか キット CD からインストールします 支援が必要な場合は Cypress Support 1-800-541-4736 へ電話して 8 を選択してください 機能 システム要件およびインストールの注意事項については http://www.cypress.com/go/creatordownloads

More information

他のOSをお使いになる方へ

他のOSをお使いになる方へ Windows 7 (32/64bit) 移行時の留意事項 (CELSIUS M720/ R920) 本テキストは 現在お使いの OS を Windows 7 Professional (32/64bit) および Windows 7 Enterprise (32/64bit)( 以下 Windows 7 (32/64bit) と記載 ) へ移行されるお客様のために 移行手順や注意事項を掲載しています

More information

Zynq + Synthesijer 入門 わさらぼ 三好 健文

Zynq + Synthesijer 入門 わさらぼ 三好 健文 Zynq + Synthesijer 入門 わさらぼ 三好 健文 2015.3.16 この資料について この資料はZynqとSynthesijerを組み合わせたシステム設計の とっかかりにしてもらことを目的にしています ターゲットボードは ZedboardおよびZyboです Linuxでの実行を想定しています Windowsではコマンドを多少読み違える必要があります Java8が必要です 例題および流れは

More information

開発環境構築ガイド

開発環境構築ガイド 開発環境構築ガイド RM-922/RM-92A/RM-92C LoRa/FSK/GFSK 通信モジュール Ver2.5 目次 1. はじめに 2. 開発環境の準備 2.1 開発に必要な環境 2.2 開発キット同胞内容 2.3 開発環境構築の流れ 2.4 方法 1の環境構築例 2.5 方法 2の環境構築例 2.6 ドライバのインストール 2.7 シリアル通信ソフトの設定 2.8 FTDI(UART/USB

More information

Microsoft Word - EFI_Framework_Debug_JP.doc

Microsoft Word - EFI_Framework_Debug_JP.doc UEFI Framework Debugging Overview UEFI Framework として一般的に知られる Unified Extensible Firmware Interface (UEFI) のための Intel Platform Innovation Framework は ソフトウェア インターフェースの設定を定義し 従来の PC に見られるレガシー BIOS を取り替える新しいファームウェア

More information

G800SE HTMLdocument update

G800SE HTMLdocument update HTML ドキュメントアップデート手順説明書 本説明書では 弊社ホームページから G800SE の HTML ドキュメントをダウンロードし アップデートを行う方法を説明しています HTML ドキュメントのアップデートを行うには 下記の操作を行ってください 操作フロー 1. ご使用のカメラのHTMLドキュメントバージョンを確認する (P.2) 2. ダウンロードしてHTMLドキュメントのファイルを準備する

More information

<4D F736F F F696E74202D20834A815B836C838B835C815B835882CC95E082AB95FB F4B2E B8CDD8AB B83685D>

<4D F736F F F696E74202D20834A815B836C838B835C815B835882CC95E082AB95FB F4B2E B8CDD8AB B83685D> カーネルソースの歩き方 RaspberryPi 演習 TOPPERS/SSP カーネルソース勉強会 アライブビジョンソフトウェア株式会社髙橋和浩 RaspberryPi 演習 1 概要 TOPEPRS/SSP 編 TOPPERS/SSP(smallest set profile) は ITRON の最小セットプロファイルに対応した 待ち 状態のないカーネルの公開ソースコードです 昨年から名古屋市工業研究所の主催で継続中のカーネルソース勉強会の成果として

More information

もくじ 1 ファームウェアのアップデート (Windows). 1 必要なシステム. 2 ファームウェアアップデーターの起動.. 3 プリンターが正しく接続されていない場合 ファームウェアのアップデート (Macintosh)... 8 必要なシステム. 9 ファームウェアアップデータ

もくじ 1 ファームウェアのアップデート (Windows). 1 必要なシステム. 2 ファームウェアアップデーターの起動.. 3 プリンターが正しく接続されていない場合 ファームウェアのアップデート (Macintosh)... 8 必要なシステム. 9 ファームウェアアップデータ ファームウェアアップデーターガイド magicolor 1690MF magicolor 4690MF A0HF-9900-02K もくじ 1 ファームウェアのアップデート (Windows). 1 必要なシステム. 2 ファームウェアアップデーターの起動.. 3 プリンターが正しく接続されていない場合... 7 2 ファームウェアのアップデート (Macintosh)... 8 必要なシステム.

More information

インテル® Parallel Studio XE 2019 Composer Edition for Fortran Windows : インストール・ガイド

インテル® Parallel Studio XE 2019 Composer Edition for Fortran Windows : インストール・ガイド インテル Parallel Studio XE 2019 Composer Edition for Fortran Windows インストール ガイド エクセルソフト株式会社 Version 1.0.0-20180918 目次 1. はじめに....................................................................................

More information

改訂日 : 2009 年 3 月 OL Cisco Phone Control and Presence プラグインのインストール プラグインが自動的にインストールされない場合は ここに示すでプラグインを直接インストールします Cisco Phone Control and P

改訂日 : 2009 年 3 月 OL Cisco Phone Control and Presence プラグインのインストール プラグインが自動的にインストールされない場合は ここに示すでプラグインを直接インストールします Cisco Phone Control and P クイックスタートガイド Cisco Phone Control and Presence 7.1 with IBM Lotus Sametime のインストールと使用 1 Cisco Phone Control and Presence プラグインのインストール 2 プラグインの設定方法 3 プラグインの使用方法 4 プラグインのアンインストール 5 関連ドキュメントの入手先 改訂日 : 2009

More information

インテル® SoC FPGA の QSPI ベアメタルアプリ・ブート (Cyclone V SoC / Arria V SoC 編)

インテル® SoC FPGA の QSPI ベアメタルアプリ・ブート (Cyclone V SoC / Arria V SoC 編) ALTIMA Company, MACNICA, Inc インテル SoC FPGA の QSPI ベアメタルアプリ ブート (Cyclone V SoC / Arria V SoC 編 ) Ver.18.1 2019 年 3 月 Rev.1 インテル SoC FPGA の QSPI ベアメタルアプリ ブート (Cyclone V SoC / Arria V SoC 編 ) 目次 はじめに...4

More information

Raspberry Pi で WEB カメラを使用 会津大学 RT ミドルウェア講習会 2017 The University of Aizu

Raspberry Pi で WEB カメラを使用 会津大学 RT ミドルウェア講習会 2017 The University of Aizu 会津大学 RT ミドルウェア講習会 2017 The University of Aizu 目次 1 コンポーネントをダウンロードする... 1 2 コンポーネントを Raspberry Pi へコピーする... 2 2.1 Raspberry Pi へコピーする... 2 3 Raspberry Pi 上でコンポーネントをビルドする... 3 3.1 コピーされたファイルを解凍する... 3 3.2

More information

データ移行ツール ユーザーガイド Data Migration Tool User Guide SK kynix Inc Rev 1.01

データ移行ツール ユーザーガイド Data Migration Tool User Guide SK kynix Inc Rev 1.01 データ移行ツール ユーザーガイド Data Migration Tool User Guide SK kynix Inc. 2014 Rev 1.01 1 免責事項 SK hynix INC は 同社の製品 情報および仕様を予告なしに変更できる権利を有しています 本資料で提示する製品および仕様は参考情報として提供しています 本資料の情報は 現状のまま 提供されるものであり 如何なる保証も行いません

More information

Quickstart Guide 3rd Edition

Quickstart Guide 3rd Edition 10 QNX QNX 1 2 3 4 5 QNX Momentics QNX Neutrino RTOS QNX Neutrino 6 7 8 QNX Neutrino 9 10 1 1 QNX Neutrino RTOS QNX Momentics Windows Vista Windows 2000 Windows XP Linux QNX Neutrino QNX Momentics CD http://www.qnx.co.jp/

More information

目 次 1. All-In-One プリンタユーティリティ概要 All-In-One プリンタユーティティについて 対応プリンタ機種 システム要件 セットアップ方法 All-In-One プリンタユーティリテ

目 次 1. All-In-One プリンタユーティリティ概要 All-In-One プリンタユーティティについて 対応プリンタ機種 システム要件 セットアップ方法 All-In-One プリンタユーティリテ SATO BARCODE PRINTER All-In-One Tool 簡易説明書 (PW208,CL4NX-J,CL6NX-J) 2015 年 8 月 24 日第 3 版 株式会社サトー 目 次 1. All-In-One プリンタユーティリティ概要... 2 1.1. All-In-One プリンタユーティティについて... 2 1.2. 対応プリンタ機種... 2 1.3. システム要件...

More information

1. USB の VCP( 仮想 COM ポート ) について USB の VCP( 仮想 COM ポート ) は USB を非同期シリアル通信として使用するための USB のドライバです PC には VCP ドライバをインストールする必要があります USB の VCP( 仮想 COM ポート )

1. USB の VCP( 仮想 COM ポート ) について USB の VCP( 仮想 COM ポート ) は USB を非同期シリアル通信として使用するための USB のドライバです PC には VCP ドライバをインストールする必要があります USB の VCP( 仮想 COM ポート ) TrueSTUDIO 用 F4D_VCP の説明 V001 2014/07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです 無料の試用版開発ツール Atollic TrueSTUDIO for ARM Lite で作成したプロジェクトです ビルド可能なプログラムのコードサイズが 32Kbyte 以内の制限があります プログラムの開始番地は 0x08000000

More information