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

Size: px
Start display at page:

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

Transcription

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

2 改訂履歴 次の表に この文書の改訂履歴を示します 日付バージョン改訂内容 2017 年 7 月 28 日 PetaLinux を使用した設定の変更と Linux イメージの構築 にザイリンクスアンサー への参照を追加 2017 年 7 月 14 日 第 5 章の ブートおよびコンフィギュレーション に USB ブートを追加 第 5 章の セキュアブートシーケンス の説明および手順を詳細に記述 Vivado Design Suite を用いた検証 プロダクションシリコンを使用して ZCU102 Rev1 ボードで手順およびデザインファイルをテスト Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 2

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

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

5 第 1 章 はじめに このガイドについて このガイドでは Zynq UltraScale+ MPSoC を使用するザイリンクス Vivado Design Suite フローについて説明します サンプルプロジェクトは ザイリンクスの ZCU102 Rev1 評価ボードをターゲットとしています 使用したツールのバージョンは の Vivado およびザイリンクスソフトウェア開発キット (SDK) です 注記 : SDK を Vivado Design Suite の一部としてインストールするには インストーラーに SDK を含めるよう選択する必要があります 8 ページの ザイリンクスのソフトウェア開発キット を参照してください このガイドのサンプルプロジェクトは 64 ビットの Windows 7 オペレーティングシステムで実行するザイリンクスツール および 64 ビットの Linux オペレーティングシステムで実行する PetaLinux を使用して作成されています ほかの Windows インストールで別バージョンのツールを実行した場合 結果が異なることがあります サンプルプロジェクトは エンベデッドデザインの次の項目について紹介することに重点を置いています 注記 : チュートリアルで説明されている ハードウェア上で Linux をブートする各手順は リリースの PetaLinux ツールに固有のものです PetaLinux ツールは このガイドの Linux 部分の演習を行うために 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 を含む一連の高速ペリフェラル Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 6

7 第 1 章 : はじめに プログラマブルロジックには プログラマブルロジックセルに加え 次に示す高性能ペリフェラルも統合されています PCI Express 用統合ブロック Interlaken 用統合ブロック 100G Ethernet 用統合ブロック システムモニター ビデオコーデックユニット Zynq UltraScale+ の PS と PL は 高性能で高帯域幅のさまざまな PS-PL インターフェイスを使用して厳密にまたは柔軟に連動させることができます このような高度な All Programmable デバイスのデザインプロセスを単純にするために ザイリンクスは Vivado Design Suite ソフトウェア開発キット (SDK) および Linux 用 PetaLinux ツールを提供しています これらのツールは FPGA を結合した SoC デバイス向けのエンベデッドシステムデザインを容易にするために必要なものをすべて提供します これらのツールを組み合わせることで ハードウェアとソフトウェアのアプリケーションの設計 デバッグ コードの実行が可能になるほか 検証や評価を目的としてデザインを実際のボードに移行できます Vivado Design Suite ザイリンクスは Vivado Design Suite と総称される開発システムツールを複数提供しています Vivado Design Suite のいくつかの Edition がエンベデッドシステム開発に使用できます このガイドでは System Edition を使用します 次の図に Vivado Design Suite の Edition の機能を示します Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 7

8 第 1 章 : はじめに X-Ref Target - Figure 1-1 その他の Vivado コンポーネント 図 1-1: Vivado Design Suite Edition Vivado のその他のコンポーネントは次のとおりです ザイリンクスエンベデッドプロセッサ用のエンベデッド / ソフト IP 資料 サンプルプロジェクト ザイリンクスのソフトウェア開発キット ソフトウェア開発キット (SDK) は Vivado を補完する統合開発環境で C/C++ エンベデッドソフトウェアアプリケーションの作成および検証に使用します SDK は Eclipse オープンソースフレームワークで構築されているため ソフトウェア設計者や設計チームにとって使い慣れた環境です Vivado Design Suite をインストールする際に インストールに含める必要のあるオプションのソフトウェアツールとして SDK を選択できます 詳細は 10 ページの インストール要件 を参照してください Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 8

9 第 1 章 : はじめに Eclipse 開発環境の詳細は を参照してください SDK のその他のコンポーネントは次のとおりです エンベデッドソフトウェア開発用のドライバーおよびライブラリ Zynq UltraScale+ プロセッシングシステム内の ARM Cortex-A53 および ARM Cortex-R5 MPCore プロセッサをターゲットにした C/C++ ソフトウェア開発用 Linaro GCC コンパイラ PetaLinux ツール PetaLinux ツールセットは エンベデッド Linux システム開発キットです このツールにより多面的な Linux ツールフローが提供され Zynq UltraScale+ を含むザイリンクス Zynq デバイス向けの完全なコンフィギュレーション ビルド および導入環境がもたらされます 詳細は ザイリンクスの PetaLinux ウェブページ [ 参照 14] を参照してください PetaLinux ツールのデザインハブは PetaLinux ツールの情報および資料へのリンクを提供します 詳細は 141 ページの 関連デザインハブ を参照してください Vivado ツールでデザインプロセスを加速 Vivado Design Suite ツールを使用してハードウェアにデザインソースを追加できます ツールには 既存のプロジェクトに IP を追加したり クロックやリセットなどのポートの接続を作成したりするプロセスを簡単にする IP インテグレーターが含まれます Vivado ツールと IP インテグレーターは 一連のハードウェアシステム開発を完了までサポートします これには Zynq UltraScale+ プロセッシングシステムの仕様 ペリフェラル および各コンポーネントの接続 ならびにそれぞれの詳細な設定が含まれます SDK はソフトウェア開発に使用され Vivado Design Suite の一部として利用できます または SDK をインストールし SDK がロードされるマシンにほかのザイリンクスツールがインストールされていなくても使用可能です SDK は ソフトウェアアプリケーションのデバッグにも使用できます Zynq UltraScale+ プロセッシングシステム (PS) は FPGA ( プログラマブルロジック (PL)) をプログラムしなくても ブートして動作させることができます ただし ファブリックでソフト IP を使用したり EMIO を用いて PS ペリフェラルを接続するには PL をプログラムする必要があります PL のプログラムには SDK まは Vivado ハードウェアマネージャーを使用できます エンベデッドデザインプロセスの詳細は Vivado Design Suite チュートリアル : エンベデッドプロセッサハードウェアデザイン (UG940) [ 参照 2] を参照してください Zynq UltraScale+ プロセッシングシステムの詳細は Zynq UltraScale+ プロセッシングシステム v1.0 製品ガイド (PG201) [ 参照 9] を参照してください Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 9

10 第 1 章 : はじめに 最初に必要なセットアップ ツールについて詳しく説明する前に ツールが適切にインストールされ 使用する環境がこのガイドの サンプルプロジェクト の記載要件に一致するかを確認します ハードウェア要件 このガイドでは 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 ケーブル インストール要件 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)] のみをオンにし ほかのソフトウェア製品の選択をオフにしてインストーラーを実行します Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 10

11 第 1 章 : はじめに 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\2017.1\bin\xsdk.bat から起動可能です PetaLinux ツール このチュートリアルの Linux 部分の演習で実行する PetaLinux ツールをインストールします PetaLinux ツールは 次のいずれかが稼働している Linux ホストシステムで実行します RHEL 7.2/7.3 (64 ビット ) CentOS 7.2/7.3 (64 ビット ) Ubuntu (64 ビット ) RHEL 6.7/6.8 (64 ビット ) 注記 : RHEL および Cent OS の 6.X の場合 回避策を用いた制限付きサポートとなります 詳細は PetaLinux ツール資料 : リファレンスガイド (UG1144) [ 参照 7] を参照してください このツールは 専用 Linux ホストシステム または Windows 開発プラットフォーム上でこれらの Linux オペレーティングシステムのいずれかが稼働している仮想マシンを使用できます PetaLinux ツールを選択したシステムにインストールするには 次を実行する必要があります PetaLinux SDK ツールを ザイリンクスのウェブサイトからダウンロードする ZCU102 PetaLinux BSP を のダウンロードページからダウンロードする 注記 : ES2 シリコンの場合 ZCU102-ZU9-ES2 Rev 1.0 BSP はここからダウンロードします Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 11

12 第 1 章 : はじめに ワークステーションまたは仮想マシンに共通のシステムパッケージおよびライブラリを追加する PetaLinux ツール資料 : リファレンスガイド (UG1144) [ 参照 7] の インストール要件 を参照してください 必要な環境 4GB RAM ( ザイリンクスツールで推奨される最小サイズ ) Pentium 4 2GHz CPU クロックまたは同等の CPU ( 少なくとも 4 つのコア ) 100GB のハードディスク空き容量 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] に記載されています ソフトウェアのライセンス ザイリンクスのソフトウェアには FLEXnet ライセンスが使用されています ソフトウェアを初めて起動する際 ライセンスの検証プロセスが実行されます ライセンス検証で有効なライセンスが検出されない場合 ライセンスウィザードに従ってライセンスを取得し インストールしたツールでそのライセンスを使用できるようにします ソフトウェアのフルバージョンが不要な場合は 評価版ライセンスを使用できます インストールの手順と詳細は Vivado Design Suite ユーザーガイド : リリースノート インストールおよびライセンス (UG973: 英語版 日本語版 ) [ 参照 3] を参照してください チュートリアルのデザインファイル このチュートリアルのデザインファイルのダウンロードについては 141 ページの このチュートリアルのデザインファイル を参照してください 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 ベースのデザインの作成手順について説明します Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 13

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

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

16 第 2 章 : Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション Vivado で Zynq UltraScale+ プロセッシングシステムを管理する Zynq MPSoC のプロセッシングシステムがデザインに追加されたので 利用可能なオプションの管理を開始できます 1. [Diagram] ウィンドウで ZYNQ UltraScale+ Processing System ブロックをダブルクリックします 次の図に示すような [Re-customize IP] ダイアログボックスが開きます デフォルトでは プロセッシングシステムにペリフェラルが接続されていないことに注意してください X-Ref Target - Figure 2-3 図 2-3: [Re-customize IP] ダイアログボックス 2. [Cancel] をクリックすると デザインが変更されずにウィザードが閉じます ヒント : [Diagram] ウィンドウで 次の図に示すようなデザインアシスタントが使用可能であることを示すメッセージが表示されます デザインアシスタントが利用可能な場合 リンクをクリックすると Vivado はデザインでステップ実行できるようになります X-Ref Target - Figure 2-4 図 2-4: デザインアシスタントのリンク Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 16

17 第 2 章 : Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション 3. ZCU102 ボード用に作成されたテンプレートを使用します [Run Block Automation] リンクをクリックします [Run Block Automation] ダイアログボックスが開きます 4. [OK] をクリックしてデフォルトのプロセッシングシステムオプションを選択し デフォルトのピン接続を作成します このコンフィギュレーションウィザードを使用して ZCU102 のボードレイアウトに従って一部の MIO (Multiplexed I/O) ピンが割り当てられている複数のペリフェラルをプロセッシングシステムで有効にします たとえば UART0 および UART1 を有効にします UART の信号が UART を経由して USB-UART コネクタを介し ZCU102 ボードの USB コンバーターチップへ接続されます 5. これを確認するには ブロック図上で Zynq UltraScale+ Processing System ブロックをダブルクリックします Zynq UltraScale+ デバイスのブロック図で各ペリフェラル名の横に表示されるチェックマークは それらの I/O ペリフェラルがアクティブであることを示します X-Ref Target - Figure 2-5 図 2-5: アクティブなペリフェラルが示された I/O ユニット Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 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 マスターインターフェイスを無効にできます 9. [AXI HPM0 FPD] ドロップダウンリストから [0] を選択します 同様に [AXI HPM1 FPD] にも [0] を設定します Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 18

19 第 2 章 : Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション PS-PL インターフェイスは次の図のように設定します X-Ref Target - Figure 2-7 図 2-7: [PS-PL Configuration] 10. [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. [Block Design] の [Sources] ウィンドウで [Design Sources] の下にある [edt_zcu102_wrapper] を展開します 9. [edt_zcu102_i - edt_zcu102 (edt_zcu102.bd)] という名前の最上位ブロック図を右クリックし [Generate Output Products] をクリックします 次の [Generate Output Products] ダイアログボックスが開きます Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 19

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

21 第 2 章 : Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション 13. [Block Design] の [Sources] ウィンドウで [IP Sources] タブをクリックします 次の図に示すように 生成したばかりの出力ファイルが表示されます X-Ref Target - Figure 2-9 図 2-9: [IP Sources] の下に生成された出力 ハードウェアを SDK へエクスポートする この例では Vivado から SDK を起動します 1. [Vivado] ツールバーで [File] [Export] [Export Hardware] をクリックします [Export Hardware] ダイアログボックスが開きます [Export to] フィールドはデフォルトオプションの [<Local to Project>] のままにしておきます X-Ref Target - Figure [OK] をクリックします 図 2-10: ハードウェアを SDK へエクスポートする Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 21

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

23 第 2 章 : Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション X-Ref Target - Figure 2-12 図 2-12: SDK の [system.hdf] のアドレスマップ ここまでの結果 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 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+ MPSoC: エンベデッドデザインチュートリアル 23

24 第 2 章 : Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション 次に実行すること これで SDK を使用してプロジェクトのソフトウェア開発を開始できます 次のセクションでは ハードウェアプラットフォーム向けのソフトウェアアプリケーションの作成に役立つ情報を提供します サンプルプロジェクト : ARM Cortex-A53 から Hello World アプリケーションを実行する この例では ザイリンクス SDK のシステムデバッガーを使用して ボード設定の管理 ケーブル接続 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-13 図 2-13: JTAG ブートモードの SW6 スイッチ設定 4. 図 2-13 に示すスイッチを使用して ZCU102 ボードに電源を投入します Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 24

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

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

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

28 第 2 章 : Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション 3. USB ケーブルで Windows ホストマシンとターゲットボードのコネクタ J83 を接続します シリアル転送に USB を使用する際はこのように接続します 4. 図 2-14 に示すスイッチを使用して ZCU102 ボードに電源を投入します 重要 : 図 2-13 に示すとおりに SW6 スイッチが JTAG ブートモードに設定されていることを確認します 注記 : SDK が既に開いている場合は 手順 6 に進みます 5. SDK を開き プロジェクトファイルへのワークスペースパス ( この例では C:\edt\edt_zcu102\edt_zcu102.sdk) を設定します あるいは デフォルトのワークスペースを使用して SDK を開き 後でそれを正しいワークスペースに切り替えることもできます この場合 [File] [Switch Workspace] をクリックしてから ワークスペースを選択します 6. システムで割り当てられている COM ポートのシリアル通信ユーティリティを開きます SDK では チュートリアル全体で使用されるシリアルターミナルユーティリティが提供されています [Window] [Show View] [Terminal] をクリックしてこのユーティリティを開きます X-Ref Target - Figure 2-18 図 2-18: [Terminal 1] ウィンドウのヘッダーバー 7. [Connect] をクリックし シリアルコンフィギュレーションを設定して接続します 8. [Settings] をクリックして [Terminal Settings] ダイアログボックスを開きます COM ポートの詳細はホストマシンのデバイスマネージャーに表示されます UART-0 ターミナルは Interface-0 の COM ポートに対応します この例では UART-0 ターミナルがデフォルトで設定されているため COM ポートに対して Interface-0 のポートを選択します 次の図に Zynq UltraScale+ MPSoC プロセッシングシステム用の標準的な設定を示します Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 28

29 第 2 章 : Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション X-Ref Target - Figure SDK では [Debug] ウィンドウから [C/C++] ウィンドウに切り替えます これには [Window] [Open Perspective] [C/C++] をクリックします SDK で [C/C++] ウィンドウが既に表示されている場合は この手順を無視してください 10. [File] [New] [Application Project] をクリックします New Project ウィザードが開きます 図 2-19: [Terminal Settings] ダイアログボックス 11. 次の表の情報に基づいて ウィザード画面で選択操作を実行します ウィザード画面 システムプロパティ 設定または使用するコマンド Application Project Project name hello_world_r5 Use default location Hardware Platform Processor OS Platform Language オン edt_zcu102_wrapper_hw_platform_0 psu_cortexr5_0 standalone Board Support Package [Create New] をオンにして hello_world_r5_bsp と入力する Templates Available Templates Hello World SDK によって hello_world_r5 アプリケーションプロジェクトおよび hello_world_r5_bsp ボードサポートパッケージ (BSP) プロジェクトが [Project Explorer] の下に作成されます これらの両プロジェクトは自動的にコンパイルされ ELF ファイルが作成されます 12. [hello_world_r5] を右クリックして [Run as] [Run Configurations] をクリックします 13. [Xilinx C/C++ application (System Debugger)] を右クリックして [New] をクリックします C Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 29

30 第 2 章 : Zynq UltraScale+ MPSoC プロセッシングシステムのコンフィギュレーション SDK によって hello_world_r5 Debug という名前の新しい実行コンフィギュレーションが作成されます アプリケーションに関連するコンフィギュレーションは 起動コンフィギュレーションの [Main] タブに自動入力されます 14. [Target Setup] タブをクリックし 設定を確認します 初期化 Tcl ファイルへのコンフィギュレーションパスがあることに着目してください ここでは psu_init.tcl へのパスです このファイルは デザインを SDK にエクスポートした際にエクスポートされたもので プロセッシングシステムの初期化情報を含みます 15. [Run] をクリックします 次の図に示すように [Terminal 1] のシリアル通信ユーティリティに Hello World と表示されます X-Ref Target - Figure 2-20 図 2-20: シリアルターミナルへの出力 注記 : Zynq UltraScale+ 評価ボードで実行する上記ソフトウェアアプリケーション用にビットストリームをダウンロードする必要はありませんでした ARM Cortex R5 デュアルコアは既にボードに実装されています 簡単なアプリケーションを実行することを目的としたこのシステムの基本的な初期化は デバイス初期化 Tcl スクリプトで実行されます ここまでの結果 アプリケーションソフトウェアによって Hello World の文字列が PS の UART0 ペリフェラルに送信されました UART0 からホストマシンで動作しているシリアルターミナルアプリケーションへ Hello world の文字列がバイトごとに送信され 文字列として表示されます その他の情報 ボードサポートパッケージ ボードサポートパッケージ (BSP) はハードウェアプラットフォームまたはボードのサポートコードです このコードは 電源投入時の基本的な初期化に役立つだけでなく ソフトウェアアプリケーションがハードウェアプラットフォームまたはボードの最上位で実行されるようにサポートします これは ブートローダーおよびデバイスドライバーを備えるオペレーティングシステム固有のものにできます Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 30

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

32 第 3 章 PS サブシステム向けのソフトウェア構築 この章では PS サブシステム向けにソフトウェアを設定および構築する手順を示します ここでは Vivado Design Suite で設定した Zynq UltraScale + ハードウェアプラットフォーム ( ハードウェア定義ファイル ) を使用します 第 2 章では Vivado でハードウェアプラットフォームを作成し エクスポートしました このハードウェアプラットフォームには ハードウェアハンドオフファイル プロセッシングシステム初期化ファイル (psu_init) および PL ビットストリームが含まれます この章では ハードウェアプラットフォームをザイリンクス SDK および PetaLinux で使用し プロセッシングシステム用にソフトウェアを設定します この章では 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+ MPSoC: エンベデッドデザインチュートリアル 32

33 第 3 章 : PS サブシステム向けのソフトウェア構築 サンプルプロジェクト : SDK でベアメタルアプリケーションプロジェクトを作成する このサンプルプロジェクトでは ザイリンクス SDK を起動し Vivado Design Suite を用いて作成された Zynq UltraScale+ 用ハードウェアプラットフォームを使用してベアメタルアプリケーションを作成します 34 ページの図 3-1 に示す SDK の New Project ウィザードは Zynq UltraScale+ デバイスのプロセッシングサブシステム用にベアメタル ( スタンドアロン ) アプリケーションを作成するためのオプションを示しています ARM Cortex A53 ベースの APU 用 FSBL ( 第 1 段階ブートローダー ) を作成する 第 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+ MPSoC: エンベデッドデザインチュートリアル 33

34 第 3 章 : PS サブシステム向けのソフトウェア構築 X-Ref Target - Figure [Application Project] で 次のようにプロジェクトを設定します a. [Project name] に fsbl_a53 と入力します b. [Use default location] はオンのままにします c. [OS Platform] ドロップダウンリストで [standalone] を選択します 5. [Target Hardware] では 次を確認および設定します a. 第 2 章で Vivado からエクスポートされたハードウェアプラットフォームとして [Hardware Platform] に [edt_zcu102_wrapper_hw_platform_0] が選択されていることを確認します b. [Processor] で [psu_cortexa53_0] を選択します 6. [Target Software] では 次を設定します a. [Language] で [C] をオンにします b. [Compiler] で [64-bit] を選択します c. [Hypervisor Guest] で [No] を選択します 図 3-1: New Project ウィザードの [Application Project] d. [Board Support Package] の [Create New] をオンにして a53_bsp と入力します Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 34

35 第 3 章 : PS サブシステム向けのソフトウェア構築 7. [Next] をクリックします [Templates] が表示されます 8. [Available Templates] で [Zynq MP FSBL] をクリックします X-Ref Target - Figure 3-2 図 3-2: New Project ウィザードの [Templates] 9. [Finish] をクリックします SDK によってボードサポートパッケージおよび 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] をクリックします Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 35

36 第 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] をクリックすると SDK はアプリケーションを自動的に構築します 8. FSBL の実行ファイルが fsbl_a53 debug fsbl_a53.elf として保存されます この例の fsbl_a53 というアプリケーション名は FSBL が APU (ARM Cortex A53 コア ) をターゲットにしていることを示しています ARM Cortex R5 ベースの RPU 用 FSBL ( 第 1 段階ブートローダー ) を作成する 次の手順に従って ARM Cortex R5 コア用に FSBL を作成することもできます Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 36

37 第 3 章 : PS サブシステム向けのソフトウェア構築 1. [File] [New] [Application Project] をクリックして New Project ウィザードを開きます X-Ref Target - Figure 3-5 図 3-5: New Project ウィザードの [Application Project] 2. [Application Project] で 上の図に示すようにプロジェクトを設定します a. [Project name] に fsbl_r5 と入力します b. [Use default location] はオンのままにします c. [OS Platform] ドロップダウンリストで [standalone] を選択します 3. [Target Hardware] では 次を確認および設定します a. 第 2 章で Vivado からエクスポートされたハードウェアプラットフォームとして [Hardware Platform] に [edt_zcu102_wrapper_hw_platform_0] が選択されていることを確認します b. [Processor] で [psu_cortexr5_0] を選択します 4. [Target Software] では 次を設定します a. [Language] で [C] をオンにします b. [Board Support Package] の [Create New] をオンにして r5_bsp と入力します 5. [Next] をクリックします 6. [Available Templates] で [Zynq MP FSBL] をクリックします 7. [Finish] をクリックします Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 37

38 第 3 章 : PS サブシステム向けのソフトウェア構築 これにより ボードサポートパッケージ および 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] を選択して アプリケーションフォルダー構造にカスタムのアプリケーションコードをコピーまたは作成することができます アプリケーションソースコードを編集する 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: アプリケーションソースコードの抜粋 : Print コマンド 3. Ctrl + S キーを押して変更を保存します 4. test_a53 プロジェクトを右クリックして [Build Project] をクリックします Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 38

39 第 3 章 : PS サブシステム向けのソフトウェア構築 5. アプリケーションがコンパイルされ リンクが正常に確立され test_a53.elf ファイルが [test_a53] [Debug] フォルダーに生成されていることを確認します X-Ref Target - Figure 3-7 図 3-7: [CDT Build Console] ARM Cortex R5 ベースの RPU 用ベアメタルアプリケーションを作成する この例では ARM Cortex-R5 ベースの RPU 用ベアメタルアプリケーションプロジェクトを作成します このプロジェクトでは このチュートリアルでリリースされたデザインファイル (ZIP ファイル ) に含まれるアプリケーションソースファイルをインポートする必要があります これらのデザインファイルの場所は 付録 B の このチュートリアルのデザインファイル を参照してください アプリケーションプロジェクトを作成する 1. SDK で [File] [New] [Application Project] をクリックして New Project ウィザードを開きます 2. 次の表の情報に基づいて ウィザード画面で選択操作を実行します ウィザード画面 システムプロパティ 設定または使用するコマンド Application Project Project name testapp_r5 Use default location Hardware Platform Processor OS Platform Language オン edt_zcu102_wrapper_hw_platform psu_cortexr5_0 standalone Board Support Package [Use existing] をオンにして r5_bsp と入力する Templates Available Templates Empty Application C 注記 : r5_bsp のボードサポートパッケージは ARM Cortex R5 ベースの RPU 用 FSBL ( 第 1 段階ブートローダー ) を作成する の手順を実行した際に作成されています 3. [Finish] をクリックします New Project ウィザードが閉じ SDK によって testapp_r5 アプリケーションプロジェクトが [Project Explorer] の下に作成されます Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 39

40 第 3 章 : PS サブシステム向けのソフトウェア構築 4. [Project Explorer] で [testapp_r5] プロジェクトを展開します 5. [src] ディレクトリを右クリックし [Import] をクリックして [Import] ダイアログボックスを開きます 6. [Import] ダイアログボックスで [General] を展開し [File System] をクリックします 7. [Next] をクリックします 8. [Browse] をクリックし 前に保存したデザインファイルフォルダーに移動します ( 付録 B の このチュートリアルのデザインファイル 参照 ) 9. [OK] をクリックします 10. testapp.c ファイルを選択します 11. [Finish] をクリックします SDK は自動的にアプリケーションを構築し コンソールウィンドウにステータスを表示します 12. testapp.c を開いてこのアプリケーションのソースコードを確認します アプリケーションは UART 割り込みを設定し プロセッサを WFI モードに設定します このアプリケーションについては 第 5 章 ブートおよびコンフィギュレーション での実行時に再度利用し 説明します リンカースクリプトを変更する 1. [Project Explorer] で [testapp_r5] プロジェクトを展開します 2. [src] ディレクトリにある [lscript.ld] をダブルクリックしてプロジェクトのリンカースクリプトを開きます 3. リンカースクリプトの [Available Memory Regions] で psu_r5_ddr_0_mem_0 の属性を次のように変更します [Base Address]: 0x [Size]: 0x リンカースクリプトの変更を次の図に示します X-Ref Target - Figure 3-8 図 3-8: リンカースクリプトの変更 Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 40

41 第 3 章 : PS サブシステム向けのソフトウェア構築 このリンカースクリプトの変更により RPU ベアメタルアプリケーションは DDR の 0x ( おおよそ 1.79GB) のベースアドレスより上位にあり 256MB を超えないサイズとなります 4. Ctrl + S キーを押して変更を保存します 5. testapp_r5 プロジェクトを右クリックし [Build Project] をクリックします 6. アプリケーションがコンパイルされ リンクが正常に確立され testapp_r5.elf ファイルが [testapp_r5] [Debug] フォルダーに生成されていることを確認します ボードサポートパッケージを変更する 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 ファームウェアを作成する Zynq UltraScale+ デバイスはプラットフォーム管理ユニットをサポートしており SDK はこの PMU のファームウェア生成をサポートしています この例では Zynq UltraScale+ デバイスの PMU 用に PMU ファームウェアを作成します 1. [File] [New] [Application Project] をクリックします 2. [Application Project] で [Project name] に pmu_fw と入力します 3. [Use default location] はオンのままにします Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 41

42 第 3 章 : PS サブシステム向けのソフトウェア構築 4. [OS Platform] で [standalone] を選択します 5. [Target Hardware] では 次を確認および設定します a. 第 2 章で Vivado からエクスポートされたハードウェアプラットフォームとして [Hardware Platform] に [edt_zcu102_wrapper_hw_platform_0] が選択されていることを確認します b. [Processor] で [psu_pmu_0] を選択します 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] に生成されていることを確認します 11. PMU BSP も UART_1 用に設定されていることを確認します ボードサポートパッケージを変更する を参照してください サンプルプロジェクト : PetaLinux を使用して Linux イメージを作成する 前のサンプルプロジェクトでは ザイリンクス SDK を使用して APU RPU および PMU 用にブートローダーイメージとベアメタルアプリケーションを作成しました この章では Zynq UltraScale+ の ARM Cortex A53 コアベース APU 用の Linux オペレーティングシステムプラットフォームを設定および構築します PetaLinux のツールフローは ボード固有の BSP と共に Linux イメージの設定と構築に使用できます Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 42

43 第 3 章 : PS サブシステム向けのソフトウェア構築 重要 : このサンプルプロジェクトには Linux ホストマシンが必要です PetaLinux の依存性情報については PetaLinux ツール資料 : リファレンスガイド (UG1144) [ 参照 7] を参照してください 重要 : この例では ZCU102 PetaLinux BSP を使用して PetaLinux プロジェクトを作成します 11 ページの PetaLinux ツール の説明に従って PetaLinux 用の ZCU102 BSP をダウンロードしたことを確認してください 1. 次のコマンドを使用して PetaLinux プロジェクトを生成します $petalinux-create -t project -s <xilinx-zcu102-v bsp> 注記 : xilinx-v bsp は ZCU102 プロダクションシリコン Rev1.0 ボード用の PetaLinux BSP です Rev 1.0 ボードで ES2 シリコンを使用している場合は xilinx-zcu102-zu9-es2-rev1.0-v bsp を使用する必要があります 上記の手順で 次のような PetaLinux プロジェクトディレクトリが作成されます xilinx-zcu 次のコマンドを使用して PetaLinux プロジェクトディレクトリに移動します $cd xilinx-zcu ZCU102 PetaLinux-BSP はデフォルトの ZCU102 Linux BSP です この例では 第 2 章で Vivado Design Suite を使用して設定した Zynq UltraScale+ ハードウェアプラットフォームに基づいて PetaLinux プロジェクトを再度設定します 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. 設定内容を保存し Configuration ウィザードを終了します 9. PetaLinux がプロジェクトを再度構成するまで待ちます 次の手順で Linux イメージを構築し 検証してブートイメージを生成します Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 43

44 第 3 章 : PS サブシステム向けのソフトウェア構築 10. UART1 Heartbeat LED SW19 プッシュボタンを無効にするようにデバイスツリーを変更します これは 次のディレクトリ system-user.dtsi で実行します <PetaLinux-project>/project-spec/meta-user/recipes-bsp/device-tree/files/system-use r.dtsi 11. system-user.dtsi で次のように追加します /include/ "system-conf.dtsi" / { gpio-keys { sw19 { compatible = "gpio-keys"; label = "sw19"; status = "disabled"; }; }; leds { compatible = "gpio-leds"; heartbeat_led { label = "heartbeat"; linux,default-trigger = "heartbeat"; status = "disabled"; }; }; }; &uart1 { }; status = "disabled"; 12. 次のコマンドを使用して Linux イメージを構築します $petalinux-build 13. 上記の文が正常に実行されたら 次のコマンドを使用して PetaLinux プロジェクトフォルダーの images ディレクトリ内にあるイメージとタイムスタンプを検証します $cd images/linux/ $ls-al 14. 次のコマンドを使用して ブートイメージを生成します $petalinux-package --boot --fsbl zynqmp_fsbl.elf --u-boot これで 次のディレクトリに BOOT.bin イメージファイルが作成されます <petalinux-project>/images/linux/boot.bin 注記 : ログは 上記コマンドで PMU_FW および ATF が BOOT.bin に含まれることを示しています また上記コマンドで --pmufw <PMUFW_ELF> および --atf <ATF_ELF> を追加することもできます 詳細は $petalinux-package --boot --help を参照してください ZCU102 ボードでイメージを検証する イメージを検証するには次を実行します 1. BOOT.bin ファイルと image.ub ファイルを SD カードにコピーします Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 44

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

46 第 3 章 : PS サブシステム向けのソフトウェア構築 QSPI フラッシュ用に PetaLinux を使用して Linux イメージを作成する 前のサンプルプロジェクトでは SD カードからブートするための Linux イメージとブートイメージの作成について説明しました ここでは QSPI フラッシュ用の Linux イメージを生成するために PetaLinux を設定する方法について説明します PetaLinux の依存性情報については PetaLinux ツール資料 : リファレンスガイド (UG1144) [ 参照 7] を参照してください 1. サンプルプロジェクトを開始する前に 次のコマンドを使用して SD カードのセットアップ用に作成されたブートイメージのバックアップを作成してください $ cd <Petalinux-project-path>/xilinx-zcu /images/linux/ $ mkdir sd_boot $ cp zynqmp_fsbl.elf sd_boot/ $ cp bl31.elf 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 ブートモードのブートイメージの作成に使用されます 8. 設定内容を保存し Configuration ウィザードを終了します Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 46

47 第 3 章 : PS サブシステム向けのソフトウェア構築 9. Petalinux-build コマンドを使用して再構築します 注記 : および PetaLinux の場合は ザイリンクスアンサー を参照するか または platform-top.h で次の値を指定して CONFIG_ENV_SPI_MAX_HZ を定義する必要があります #define CONFIG_ENV_SPI_MAX_HZ u-boot.elf およびその他のイメージのバックアップをとります これらは第 5 章で使用します 注記 : 詳細は PetaLinux ツール資料 : リファレンスガイド (UG1144) を参照してくだい [ 参照 7] この章では ザイリンクスツールを使用して Zynq UltraScale+ デバイスのソフトウェアブロックを設定およびコンパイルする方法を説明しました 第 6 章ではこれらのイメージを使用して 特定のサンプルデザイン用にブートイメージを作成します 第 4 章 SDK を使用したデバッグ では ザイリンクス SDK を使用して Zynq UltraScale+ デバイスのソフトウェアをデバッグします Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 47

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

49 第 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: エンベデッドデザインチュートリアル 49

50 第 4 章 : SDK を使用したデバッグ SDK を使用してソフトウェアをデバッグする この例では hello world アプリケーションのデバッグを実行します APU または RPU で実行する hello world アプリケーションがまだ作成されていない場合は 38 ページの 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] Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 50

51 第 4 章 : SDK を使用したデバッグ [Confirm Perspective Switch] ダイアログボックスが表示されたら [Yes] をクリックします [Debug] ウィンドウが開きます 注記 : [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: エンベデッドデザインチュートリアル 51

52 第 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: エンベデッドデザインチュートリアル 52

53 第 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 Tools] [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: エンベデッドデザインチュートリアル 53

54 第 4 章 : SDK を使用したデバッグ X-Ref Target - Figure 4-5 図 4-5: ターゲットのリスト 7. PSU のターゲットを選択します ARM APU および RPU クラスターは PSU の下にグループ化されています xsct% targets -set -filter {name=~ PSU } target コマンドはターゲットをリストし 選択されたターゲットをアスタリスク (*) マークで強調表示します または次の図に示すように ターゲット番号を使用してターゲットを選択することもできます X-Ref Target - Figure 4-6 図 4-6: 選択した PSU ターゲット 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 のパスは中かっこなしでも機能するため 普通のスラッシュ / を使用します Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 54

55 第 4 章 : SDK を使用したデバッグ 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 シリアルターミナルインターフェイス ) を設定します シリアルターミナルの設定 1. 使用しているホストマシンに応じて Tera Term または Minicom を使用し ターミナルセッションを開始します COM ポートとボーレートを次の図に示すように設定します X-Ref Target - Figure 4-7 図 4-7: COM ポートのセットアップ Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 55

56 第 4 章 : SDK を使用したデバッグ 2. ポート設定では デバイスマネージャーで COM ポートを検証します ZCU102 ボードでは 4 つの USB UART インターフェイスが使用されています 最も小さい番号のインターフェイスに関連付けられた COM ポートを選択します したがってこの場合 UART-0 については COM ポートに対して Interface-0 を選択します 3. 同様に UART-1 の場合は COM ポートに対して Interface-1 を選択します 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 5. ソースコードの行をステップ実行し スタックトレースを表示します xsct% nxt Info: Cortex-R5 #0 (target 6) Stopped at 0x (Step) xsct% bt help コマンドを使用すると ほかのオプションを検索できます Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 56

57 第 4 章 : SDK を使用したデバッグ X-Ref Target - Figure 4-8 図 4-8: XSCT ヘルプのカテゴリ help running コマンドを使用すると XSCT を使用してアプリケーションを実行またはデバッグするためのオプションを一覧で表示できます X-Ref Target - Figure 4-9 図 4-9: プログラム実行のデバッグに使用する XSCT ヘルプ Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 57

58 第 4 章 : SDK を使用したデバッグ 6. これで コードを実行できます xsct% con ここで UART-1 ターミナルに R5 アプリケーションのメッセージが表示されます Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 58

59 第 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+ MPSoC: エンベデッドデザインチュートリアル 59

60 第 5 章 : ブートおよびコンフィギュレーション システムソフトウェア この章のブートおよびコンフィギュレーションの説明の大部分は ここで挙げるシステムソフトウェアブロックについてです 詳細なブートフローおよびさまざまなブートシーケンスについては Zynq UltraScale+ MPSoC: ソフトウェア開発者向けガイド (UG1137) [ 参照 6] の システムブートおよびコンフィギュレーション の章を参照してください 第 1 段階ブートローダー (FSBL) 非セキュアブートモードでは プラットフォーム管理ユニット (PMU) はコンフィギュレーションセキュリティユニットのリセットを解除した後 PMU サーバーモードに移行して電力を監視します この段階で コンフィギュレーションセキュリティユニットは FSBL ( 第一段階ブートローダー ) をオンチップメモリ (OCM) にロードします FSBL は RPU または APU から実行できます この例では FSBL は APU をターゲットとしています 第 1 段階ブートローダー (FSBL) は プロセッシングサブシステム内の重要なブロックを初期化します これには プロセッサのリセットのクリアや クロック メモリ および UART の初期化などが含まれます その後 DDR の次のパーティションの制御を RPU または APU に渡します この例では FSBL は DDR にベアメタルアプリケーションをロードしてロックステップモードで RPU R5 にハンドオフし 同様に U-Boot をロードして これを APU A53 コア 0 が実行します 詳細は Zynq UltraScale+ MPSoC: ソフトウェア開発者向けガイド (UG1137) [ 参照 6] を参照してください この章では 第 3 章で作成した FSBL 実行ファイルを使用できます プラットフォーム管理ユニットファームウェア 複数ステージからなるブートプロセスは プラットフォーム管理ユニット (PMU) とコンフィギュレーションセキュリティユニット (CSU) により管理および実行されます プリコンフィギュレーションステージは主に PMU が制御し PMU ROM を実行してシステムをセットアップします リセットおよび復帰に関するプロセスはすべて PMU が処理します SDK では PMU ファームウェアを PMU 上で動作するように構築できます プラットフォーム管理および PMU ファームウェアの詳細は Zynq UltraScale+ MPSoC: ソフトウェア開発者向けガイド (UG1137) [ 参照 6] を参照してください 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 イメージを使用できます このチュートリアルのデザインファイルのダウンロードについては 141 ページの このチュートリアルのデザインファイル を参照してください Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 60

61 第 5 章 : ブートおよびコンフィギュレーション ARM トラステッドファームウェア ARM トラステッドファームウェア (ATF) は APU の EL3 ( 例外レベル 3) で実行される透過的なベアメタルアプリケーションレイヤーです ATF には セキュアワールドと非セキュアワールドを切り替えるためのセキュアモニターレイヤーが含まれます セキュアモニターの呼び出しと TBBR (Trusted Board Boot Requirements) の実装により Zynq UltraScale+ の APU に Linux をロードするには ATF レイヤーが欠かせません FSBL は APU で実行される ATF をロードします ATF は EL3 で動作し続けてサービス要求を待ちます さらに FSBL は APU で実行される U-Boot を DDR にロードします U-Boot は SMP モードで Linux OS を APU にロードします ATF (bl31.elf) はデフォルトで PetaLinux に含まれており PetaLinux プロジェクトの image ディレクトリにあります ATF の詳細は Zynq UltraScale+ MPSoC: ソフトウェア開発者向けガイド (UG1137) [ 参照 6] の セキュリティ の章にある ARM トラステッドファームウェア を参照してください 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 APU の Linux に加えて この例では ベアメタルアプリケーションがロックステップモードで RPU R5 にロードされます この例では 39 ページの ARM Cortex R5 ベースの RPU 用ベアメタルアプリケーションを作成する で作成した testapp_r5 アプリケーションを参考にしてください また このチュートリアルに付属するデザインファイルに testapp_r5.elf 実行ファイルがあります このチュートリアルのデザインファイルのダウンロードについては 141 ページの このチュートリアルのデザインファイル を参照してください Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 61

62 第 5 章 : ブートおよびコンフィギュレーション SD ブートのブートシーケンス 各イメージの準備が完了したので ブートイメージを作成して Zynq UltraScale+ にこれらのコンポーネントをすべてロードします これは SDK の Create Boot Image ウィザードを使用して 次の手順に従って実行できます 1. SDK で [Xilinx Tools] [Create Boot Image] をクリックします 2. この章の前のセクションで説明したすべてのパーティションを選択し 次の図に示すように設定します X-Ref Target - Figure 5-1 図 5-1: SD ブートモードの Create Boot Image ウィザード Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 62

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

64 第 5 章 : ブートおよびコンフィギュレーション PMU および ATF ファームウェアパーティションを追加します 1. [Add] をクリックして 次の図に示す [Add partition] ダイアログボックスを開きます X-Ref Target - Figure 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] を [ARM A53 0] に設定します 図 5-3: PMUFW パーティションの追加 d. [Exception Level] で [EL3] を選択し [Enable Trust Zone] をオンにします Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 64

65 第 5 章 : ブートおよびコンフィギュレーション X-Ref Target - Figure 5-4 図 5-4: ATF パーティションの追加 7. [OK] をクリックします R5 実行ファイルを追加し これをロックステップモードで有効にします 1. [Add] をクリックして R5 ベアメタル実行ファイルを追加します X-Ref Target - Figure [Destination Device] を [PS] に設定します 図 5-5: RPU イメージパーティションの追加 Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 65

66 第 5 章 : ブートおよびコンフィギュレーション 3. [Destination CPU] を [R5 Lockstep] に設定します これにより RPU R5 コアがロックステップモードで実行されるように設定されます 4. [Exception Level] ドロップダウンリストは無視し [Enable Trust Zone] はオフのままにしておいてください 5. [OK] をクリックします u-boot.elf パーティションを追加します sd_boot モードの u-boot.elf は <PetaLinux_project>/images/linux/sd_boot にあります 1. [Add] をクリックして u-boot.elf パーティションを追加します 2. U-Boot の場合は [Destination Device] で [PS] を選択します 3. [Destination CPU] で [A53 0] を選択します 4. [Exception Level] で [EL2] を選択します X-Ref Target - Figure 5-6 図 5-6: U-Boot パーティションの追加 5. [OK] をクリックして Create Boot Image ウィザードに戻ります 6. [Create Image] をクリックすると ウィザードが閉じ ブートイメージが作成されます また BIF 属性と Bootgen コマンドを使用して BOOT.bin イメージを作成することもできます このコンフィギュレーションでは BIF ファイルには次の属性が含まれます //arch = zynqmp; split = false; format = BIN the_rom_image: { [fsbl_config]a53_x64 [bootloader]c:\edt\edt_zcu102\edt_zcu102.sdk\fsbl_a53\debug\fsbl_a53.elf Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 66

67 第 5 章 : ブートおよびコンフィギュレーション [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\sd_boot\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 ZCU102 ボードでイメージを実行する 1. SD カードに BOOT.bin と image.ub のイメージをコピーし ボードの SD カードスロットにその SD カードを挿入します 2. BOOT.bin ファイルと image.ub ファイルを SD カードにコピーします 3. SD カードを ZCU102 ボードの J100 コネクタに取り付けます 4. Micro USB ケーブルの一端を ZCU102 ボードの Micro USB ポート J83 に接続し もう一端をホストマシンの空きの USB ポートに接続します これは USB UART 接続用です 5. スイッチ SW6 を次の図に示すように設定して ボードを SD ブートモードに設定します X-Ref Target - Figure 5-7 図 5-7: SD ブートモードの SW6 スイッチ設定 6. 12V 電源を ZCU102 の 6 ピン Molex コネクタに接続します Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 67

68 第 5 章 : ブートおよびコンフィギュレーション 7. 使用しているホストマシンに応じて Tera Term または Minicom を使用し ターミナルセッションを開始します システムの COM ポートとボーレートを次の図に示すように設定します X-Ref Target - Figure 5-8 図 5-8: COM ポートのセットアップ 8. ポート設定では デバイスマネージャーで COM ポートを検証します ZCU102 ボードでは 4 つの USB UART インターフェイスが使用されています 9. 最も小さい番号のインターフェイスに関連付けられた COM ポートを選択します この場合の UART-0 には COM ポートに対して Interface-0 を選択します 10. 同様に UART-1 の場合は COM ポートに対して Interface-1 を選択します R5 BSP は UART-1 を使用するように設定されているため R5 アプリケーションメッセージは UART-1 ターミナルの COM ポートに表示されます 11. 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+ MPSoC: エンベデッドデザインチュートリアル 68

69 第 5 章 : ブートおよびコンフィギュレーション X-Ref Target - Figure 5-10 図 5-10: Zynq UltraScale+ ブートシーケンス時の APU からのメッセージ Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 69

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

71 第 5 章 : ブートおよびコンフィギュレーション QSPI ブートモードのブートシーケンス ZCU102 ボードには 最大 128MB のデュアルパラレル QSPI フラッシュも搭載されています この例では QSPI ブートモードで ブートイメージを作成して UltraScale+ にロードします イメージは SDK の Create Boot Image ウィザードを使用して設定できます これは 次の手順に従って実行できます 注記 : このセクションでは QSPI フラッシュ用に PetaLinux を使用して Linux イメージを作成する の手順に従って QSPI ブートモードで PetaLinux イメージを作成したものと想定しています 1. SDK が起動していない場合は起動し 第 3 章で説明したようにワークスペースパスを設定します 2. [Xilinx Tools] [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+ MPSoC: エンベデッドデザインチュートリアル 71

72 第 5 章 : ブートおよびコンフィギュレーション ブートパーティションを追加します 1. [Add] をクリックして [Add Partition] ダイアログボックスを開きます 2. [Add Partition] ダイアログボックスで [Browse] をクリックして FSBL 実行ファイルを選択します a. FSBL の場合 [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+ MPSoC: エンベデッドデザインチュートリアル 72

73 第 5 章 : ブートおよびコンフィギュレーション X-Ref Target - Figure 5-14 図 5-14: PMU パーティションの追加 5. 追加される次のパーティションは ATF ファームウェアです これには [Partition type] を [datafile] に設定します a. ATF 実行ファイル b131.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+ MPSoC: エンベデッドデザインチュートリアル 73

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

75 第 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. image.ub の場合は 次のように設定します - [Partition type] を [datafile] に設定します - [Destination Device] を [PS] に設定します - [Destination CPU] を [ARM A53 0] を設定します c. [Offset] に 0x1E40000 と入力します d. [Load] に 0x と入力します e. [Exception Level] ドロップダウンリストは無視し [Enable Trust Zone] はオフのままにしておいてください 注記 : パーティションは DDR 内のこのロケーションに書き込まれます U-Boot を使用してイメージを DDR にロードする場合は必要ありません この例では FSBL と U-Boot の両方でイメージが DDR にコピーされています イメージのロードに FSBL または U-Boot を使用するかは BIF ファイルで partition_owner = U-Boot ( または FSBL) フラグを設定して選択できます ヒント : このオフセット値に設定する理由は QSPI フラッシュ用に PetaLinux を使用して Linux イメージを作成する を参照してください 9. [OK] をクリックして Create Boot Image ウィザードに戻ります 10. [Create Image] をクリックして qspi_boot.bin イメージを作成します また BIF 属性と Bootgen コマンドを使用して BOOT.bin イメージを作成することもできます このコンフィギュレーションの BIF 属性は [Preview BIF Changes] をクリックして表示できます Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 75

76 第 5 章 : ブートおよびコンフィギュレーション このコンフィギュレーションでは BIF ファイルには次の属性が含まれます //arch = zynqmp; split = false; format = BIN the_rom_image: { [fsbl_config]a53_x64 [bootloader]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\qspi_boot\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 に BOOT.bin イメージをロードします または ザイリンクス SDK で XSDB デバッガーを使用することもできます 1. ザイリンクス SDK で [Xilinx Tools] [Program Flash] をクリックします 2. [Program Flash Memory] ダイアログボックスで [Browse] をクリックして このサンプルプロジェクトの一環で作成された qspi_boot.bin イメージファイルを選択します 3. [Flash Type] で [qspi_dual_parallel] を選択します 4. [Offset] を 0 に設定して [FSBL File] で FSBL ELF ファイルを選択します 5. 次の手順に従って ZCU102 ターゲットの USB-JTAG コネクタとホストマシンの USB ポートが USB ケーブルで接続されていることを確認します a. SW6 ブートモードスイッチを次の図に示すように設定します b. ボードの電源を投入します Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 76

77 第 5 章 : ブートおよびコンフィギュレーション X-Ref Target - Figure 5-18 図 5-18: JTAG ブートモードの SW6 スイッチ設定 6. [Program] をクリックすると BOOT.bin イメージで QSPI フラッシュをプログラムするプロセスが開始されます X-Ref Target - Figure 5-19 図 5-19: [Program Flash Memory] ダイアログボックス 次の図に示すように SDK コンソールに Flash Operation Successful というメッセージが表示されるまで待ちます Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 77

78 第 5 章 : ブートおよびコンフィギュレーション 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. ポート設定では デバイスマネージャーで COM ポートを検証します ZCU102 では 4 つの USB UART インターフェイスが使用されています 6. 最も小さい番号のインターフェイスに関連付けられた COM ポートを選択します この場合の UART-0 には COM ポートに対して Interface-0 を選択します Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 78

79 第 5 章 : ブートおよびコンフィギュレーション 7. 同様に UART-1 の場合は COM ポートに対して Interface-1 を選択します 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+ MPSoC: エンベデッドデザインチュートリアル 79

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

81 第 5 章 : ブートおよびコンフィギュレーション 9. Linux がボードにロードされるまで待ちます X-Ref Target - Figure 5-25 図 5-25: カーネルのロードおよびスタートシーケンス Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 81

82 第 5 章 : ブートおよびコンフィギュレーション JTAG を用いた QSPI ブートモードのブートシーケンス Zynq UltraScale+ MPSoC は ブートイメージをロードするさまざまな方法をサポートしています その 1 つが JTAG インターフェイスを使用する方法です この XSCT セッションの例では XSDB デバッガーを使用して SPI に BOOT.image ファイルをダウンロードする方法を示します 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 Tools] [XSCT Console] をクリックして XSCT コンソールを開くこともできます 4. XSCT コンソールで 次の connect コマンドを使用して JTAG 経由でターゲットに接続します xsct% connect connect コマンドは 接続のチャネル ID を返します 5. target コマンドにより 使用可能なターゲットがリストされ 各 ID を使用してターゲットを選択できます ターゲットには JTAG チェーンで検出されたものとして ID が割り当てられているため この ID はセッションごとに変更できます Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 82

83 第 5 章 : ブートおよびコンフィギュレーション 注記 : スクリプト記述などの非対話型の使用法では ID を使用してターゲットを選択するのではなく -filter オプションを利用してターゲットを選択できます xsct% targets 次の図に示すように ターゲットは一覧表示されます X-Ref Target - Figure 5-27 XSCT/XSDB を使用して U-Boot をロードする 1. 次のコマンドを使用して ARM A53 コア 0 に U-Boot アプリケーションをダウンロードします セキュリティゲートを無効にして PMU MB ターゲットをデバッガーに認識させます xsct% targets -set -filter {name =~ "PSU"} xsct% mwr 0xffca0038 0x1ff PMUFW をロードして実行します 図 5-27: XSCT ターゲット 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 MPSoC が JTAG ブートモードで起動すると すべての A53 コアおよび R5 コアがリセット状態に保持されるためです これらのコアでデバッグを実行する前に 各コアのリセットをクリアする必要があります リセットは XSCT の rst コマンドでクリアできます Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 83

84 第 5 章 : ブートおよびコンフィギュレーション 注記 : 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 および U-Boot をロードして実行します xsct% dow {C:\edt\design_files\sd_boot\u-boot.elf} xsct% dow {C:\edt\design_files\sd_boot\bl31.elf} 2. シリアルターミナル (Tera Term Minicom または UART-0 USB シリアル接続用の SDK シリアルターミナルインターフェイス ) を設定します 3. シリアルターミナルの設定については 図 3-12 を参照してください X-Ref Target - Figure 5-28 図 5-28: ZCU102 ボードでイメージを検証する 4. XSDB で con コマンドを使用して U-Boot を実行します xsct% con 5. ターゲットのシリアルターミナルで 任意のキーを押して U-Boot の自動ブートを停止します 6. XSDB で stop コマンドを使用してコアを停止します xsct% stop XSDB を使用して DDR に BOOT.bin をロードする 1. ZCU102 の DDR に BOOT.bin バイナリをダウンロードします QSPI ブートモード用に作成された同じ BOOT.bin を使用します xsct% dow -data {C:\edt\edt_zcu102\qspi_BOOT.bin} 0x XSDB で con コマンドを使用して U-Boot を再開します xsct% con Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 84

85 第 5 章 : ブートおよびコンフィギュレーション U-Boot を使用して QSPI に BOOT.bin イメージをロードする 1. ターゲットターミナルの U-Boot コンソールで次のコマンドを実行します これらのコマンドによって QSPI が消去され BOOT.bin イメージが DDR から QSPI に書き込まれます U-Boot-PetaLinux> sf probe U-Boot-PetaLinux> sf erase 0 0x U-Boot-PetaLinux> sf write 0x x イメージが QSPI に書き込まれたら ZCU102 ボードの電源を切断し 78 ページの 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 の変更はほとんどありません FSBL プロジェクトがこのチュートリアル全体で広く使用されていることを考慮し 既存の FSBL プロジェクトを変更することはありません 同様の理由で このセクションでは新しい FSBL プロジェクトを利用します ARM Cortex A53 ベースの APU 用 FSBL ( 第 1 段階ブートローダー ) を作成する 1. SDK で [File] [New] [Application Project] をクリックして New Project ウィザードを開きます 2. 次の表の情報に基づいて ウィザード画面で選択操作を実行します Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 85

86 第 5 章 : ブートおよびコンフィギュレーション 表 5-1: ウィザードのプロパティおよびコマンド ウィザード画面システムプロパティ設定または使用するコマンド Application Project 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. 同様に 次のラインを xfsbl_hw.h に追加します #define XPAR_PSU_USB_0_DEVICE_ID XPAR_XUSBPSU_0_DEVICE_ID 8. Ctrl + S キーを押して変更を保存します 9. FSBL を再構築します Project name Use default location Hardware Platform Processor OS Platform Language Compiler Hypervisor Guest fsbl_usb_boot オン edt_zcu102_wrapper_hw_platform_0 psu_cortexa53_0 standalone C 64-bit Board Support Package [Use existing] をオンにして a53_bsp と入力する Templates Available Templates Zynq MP FSBL No USB ブート用にブートイメージを作成する このセクションでは ブートイメージを作成して DFU ユーティリティを使用して USB 経由でロードします Device Firmware Upgrade (DFU) は ファームウェアを USB を介して接続されたデバイスへダウンロードまたはそこからアップロードすることを目的としています このブートモードでは bootrom によってロードされるブートローダー (FSBL) と PMUFW が DFU ユーティリティを使用してホストマシンの USB ポートから Zynq UltraScale+ のオンチップメモリ (OCM) にコピーされます OCM のサイズに制限があるため FSBL と PMUFW のみが最初の BOOT.bin に統合され OCM へコピーされます 残りのブートパーティションは 別のブートイメージに統合されて DDR メモリにコピーされます DDR は この段階で既にロードされて実行されている FSBL によりロードされます 次の手順に従って このブートモードのブートイメージを作成します 1. SDK で [Xilinx Tools] [Create Boot Image] をクリックします 2. fsbl_usb_boot.elf および pmu_fw.elf のパーティションを選択し 次の図に示すように設定します Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 86

87 第 5 章 : ブートおよびコンフィギュレーション X-Ref Target - Figure 5-29 図 5-29: USB ブートモードの Create Boot Image ウィザード 3. PMUFW パーティションが bootrom によってロードされるよう設定されていることを確認します 4. [Create Image] をクリックして BOOT.bin を生成します 次の手順は 残りのパーティションで構成される usb_boot.bin を作成する方法を示しています 注記 : DFU_RAM コマンドをサポートするには PetaLinux の U-Boot を変更する必要があります ザイリンクスアンサー に示す手順 3 ~ 8 に従って ( このチュートリアルでは手順 1 および 2 は無視して問題ない ) DFU コマンドを用いて PetaLinux の U-Boot を編集して再構築し u-boot.elf を生成します この新しく生成された U-Boot を C:\edt\usb-edt\ にコピーします u-boot.elf は このチュートリアルの このチュートリアルのデザインファイル のリンクから提供されているデザインファイルにあります 1. SDK で [Xilinx Tools] [Create Boot Image] をクリックします 2. FSBL および残りのパーティションを選択し 次の図に示すように設定します これには SD ブートシーケンスから BIF ファイルをインポートすることもできます Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 87

88 第 5 章 : ブートおよびコンフィギュレーション 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 ユーティリティによって個別にロードされます USB ブートを使用したブート このセクションでは DFU ユーティリティを使用して ZCU102 ターゲットにブートイメージをロードします 開始する前に 次のようにボード接続を設定します 1. SW6 (1 - OFF 2 - OFF 3 - OFF 4 - ON) を次の図に示すように設定して ZCU102 を USB ブートモードに設定します X-Ref Target - Figure 5-31 図 5-31: USB ブートモードの SW6 設定 Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 88

89 第 5 章 : ブートおよびコンフィギュレーション 2. 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\2017.1\tps\lnx64\dfu-util-0.9 にあります または 使用する Linux ディストリビューションでサポートされているパッケージマネージャーを利用して DFU ユーティリティを Linux にインストールすることも可能です Linux ホストマシンのブートコマンド 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 が問題なくロードされていることをシリアルターミナルで確認します 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 Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 89

90 第 5 章 : ブートおよびコンフィギュレーション 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 Tools] [Launch Shell] をクリックします 2. シェルが起動したら DFU が USB ターゲットを検出可能かどうかを確認します > dfu-util.exe -l 注記 : dfu-util.exe は <SDK_Installation_path>\SDK\2017.1\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 と入力して自動ブートを終了します R5 アプリケーションも問題なくロードされていることを UART1 で確認します 注記 : ここで zadig ツールを使用して デバイス ID 03fd:0300 の Usb download gadget 向けにドライバーをインストールします このドライバーがない場合 ターゲットで U-Boot を起動した後に zadig ツールに Xilinx DFU Downloader が表示されません 8. U-Boot コンソールで DFU_RAM を開始して Linux イメージのダウンロードを有効にします U-boot> dfu_ram Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 90

91 第 5 章 : ブートおよびコンフィギュレーション 9. ホストマシンターミナルから次のコマンドを実行して Linux イメージの image.ub をダウンロードします $ dfu-util.exe -d 03fd:0050 -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: 物理的な複製防止機能 ) を用いたブラックキーの格納 この セキュアブートシステムデザインにおける決定 では デザイン開発の早い段階で実行すべきハイレベルなセキュアブートの判断について概説します ハードウェアによる信頼のルート では ブートにおける信頼のルート (RoT) の使用について説明します ブートイメージの機密性 では AES 暗号化を使用する機密性の保護手法について説明します DPA 保護を有効にする では DPA 攻撃への対策としての操作キーとキーローリング手法の使用について説明します AES キーを変更することで キーとそのキーで保護されているデータが脅威にさらされる危険性が低くなります レッドキーは非暗号化フォーマットのキーです ブラックキーの格納 では 暗号化 ( ブラック ) フォーマットで AES キーを格納する方法について説明します ブラックキーの格納では Physically Unclonable Function (PUF) をキーの暗号化キー (KEK) として使用します セキュアブートでの実用法 では AES 暗号化および RSA 認証を使用するシステムの開発およびテスト手順を説明します Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 91

92 第 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+ MPSoC: エンベデッドデザインチュートリアル 92

93 第 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 のどちらかが続くパーティションを検証します プライマリおよびセカンダリの秘密 / 公開キーペアが使用されます プライマリ秘密 / 公開キーの機能は セカンダリ秘密 / 公開キーペアを認証することです セカンダリキーの機能はパーティションの署名 / 検証です X-Ref Target - Figure 5-32 Signing - Bootgen Verification ROMCode, FSBL, U-Boot Partition Data Partition Data RSA Signature Public Key 384 Bit Hash Public Key 384 Bit Hash = 384 Bit Hash RSA Signature 図 5-32: Zynq UltraScale+ の RSA 認証 Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 93

94 第 5 章 : ブートおよびコンフィギュレーション パーティションに署名を入れるため Bootgen はまずパーティションデータの SHA3 を計算します 384 ビットのハッシュが 秘密キーで RSA 暗号化されます 結果の RSA 署名が認証証明に追加されます つまり 署名された各パーティションにパーティションデータがあり その後に RSA 署名を含む認証証明が続くというイメージです FSBL の検証は CSU ROM コードで実行されます 後続のパーティションについては FSBL または U-Boot が xilsecure ライブラリを使用して検証します ブートイメージの機密性と DPA 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 で提供されています そのうちの一例を セキュアブートでの実用法 で説明します 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) で復号化されます PUF をブラックキーの格納に使用するには 2 つの手順に従います まず PUF 登録ソフトウェアを使用して PUF ヘルパーデータと PUF KEK を生成します この PUF 登録データを使用することで PUF は KEK を生成するごとに同一のキーを再生成できるようになります PUF 登録ソフトウェアの使用の詳細は PUF の登録 - ブートヘッダーモード を参照してください Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 94

95 第 5 章 : ブートおよびコンフィギュレーション ヘルパーデータおよび暗号化されたユーザーキーは共に PUF efuse のときは efuse に PUF ブートヘッダーモードのときはブートヘッダーに格納する必要があります PUF ブートヘッダーモードの手順は ブートヘッダーモードの PUF の使用 で説明します セキュアブートでの実用法 このセクションでは Zynq UltraScale+ システムでセキュアブートを開発する手順を概説します セキュアなエンベデッドシステムを構築するには 2 段階のプロセスが必要です 第 1 段階では 暗号化キーを生成して NVM にプログラムします 第 2 段階では セキュアシステムを開発してテストします どちらの段階でもザイリンクスのソフトウェア開発キット (SDK) を使用し ソフトウェアプロジェクトの作成 イメージの生成 およびイメージのプログラムを実行します 第 2 段階のテストシステムは fsbl.elf および hello.elf ファイルとして単純にできます このセクションは AES および RSA キーの生成方法を示すことから始めます キーの生成に続き 高度な AES および RSA 手法を用いたシステムを開発し テストします このセクションで生成されるキーは このチュートリアルでリリースされた このチュートリアルのデザインファイル にも含まれています AES 機能の開発に使用する手法は 次の各項目に関する説明でも触れられています BBRAM の AES キー キーローリング 操作キー efuse の AES キー Physically Unclonable Function (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 メッセージが表示されます FSBL デバッグメッセージには 各パーティションで実行された暗号化操作が示されます 付録 A セキュアブートでの問題のデバッグ では セキュアブートテストが失敗した場合に実行する手順を説明します セキュリティを有効にしてブートイメージを作成する この例では 暗号化と認証を有効にしてブートイメージを作成する方法について説明します このセクションでは SD ブートのブートシーケンス で使用されているものと同じイメージを使用しますが このイメージはセキュアブートシーケンスの一環でセキュア属性が有効に設定されています Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 95

96 第 5 章 : ブートおよびコンフィギュレーション キーの生成 まず セキュアなパーティションの認証に使用する AES キーとキーペアを作成する必要があります この例では プライマリおよびセカンダリのキーを PEM フォーマットで作成します キーは Bootgen のコマンドラインオプションを使用して生成されます OpenSSL といった外部ツールを使用してキーを交互に作成できます 次の手順に従って AES キーを作成します 1. テキストエディターを使用して 次の内容の generate_aes_key.bif を作成します generate_aes_key: { [aeskeyfile] c:\edt\secureboot_sd\bbram.nky [bootloader, encryption=aes] C:\edt\edt_zcu102\edt_zcu102.sdk\fsbl_a53\Debug\fsbl_a53.elf } 2. generate_aes_key.bif ファイルを保存します 3. [Xilinx Tools] [Launch Shell] をクリックします 4. c:\edt_secureboot_sd\ で次を実行します bootgen image generate_aes_key.bif w o test.bin encrypt bbram p xczu9eg 5. AES キー bbram.nky が生成されていることを確認します 注記 : AES 暗号化のキーファイルは OpenSSL といった外部ツールを使用して生成できます または ザイリンクス SDK でブートイメージを作成するときに nky キーを生成することもできます ブートイメージを作成する際に nky ファイルのパスとデバイスの名称を設定します 同じ名前の *.nky ファイルでなければ *.nky ファイルは同一パスに作成されます RSA 秘密 / 公開キーペアを作成する 次の手順に従って RSA 秘密 / 公開キーペアを作成します まず SDK のシェルを起動します 1. [Xilinx Tools] [Launch Shell] をクリックします 2. 次の内容の generate_pem.bif という名前のファイルを生成します generate_pem: { [pskfile]c:\edt\secureboot_sd\keys\psk0.pem [sskfile]c:\edt\secureboot_sd\keys\ssk0.pem } このファイルは プライマリ PEM キーとセカンダリ PEM キーが作成される場所を示します 注記 : PEM キーを作成するために 指定した場所に *.PEM ファイルが存在しないことを確認します この BIF ファイル内の FSBL パーティションには BIF ファイルに存在するパーティションのみを含めます FSBL は PEM ファイルの生成には影響しません 3. generate_pem.bif ファイルを C: edt secureboot_sd keys に保存します Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 96

97 第 5 章 : ブートおよびコンフィギュレーション 4. この BIF ファイルを含むフォルダーに移動します cd C:\edt\secureboot_sd\keys 5. 次の Bootgen コマンドを実行してキーを生成します bootgen -generate_keys auth pem -arch zynqmp -image generate_pem.bif 注記 : 欠落しているパーティションに関する警告は無視してもかまいません 6. BIF ファイルに記述されている場所にキーが生成されていることを確認します C:\edt\secureboot_sd\keys 認証キーが生成されます これは OpenSSL を使用して作成するか またはハードウェアセキュリティモジュール (HSM) から使用できます RSA 秘密 / 公開キーペアで公開キーの SHA3 を生成する 次に示す手順は efuse モードの RSA 認証でのみ実行する必要があり ブートヘッダーモードの RSA 認証ではスキップできます sha3.txt からの 384 ビットを efuse にプログラムして efuse モードの RSA 認証に使用できます ( このチュートリアルでは詳細に説明しない ) 次の手順に従って Bootgen を使用してプライマリ公開キー (PPK) のハッシュを計算します 1. 次のように テキストエディターを使用して C:\edt\secureboot_sd\keys\ に generate_hash_ppk.bif ファイルを作成します generate_hash_ppk: { [pskfile] C:\edt\secureboot_sd\keys\psk0.pem [sskfile] C:\edt\secureboot_sd\keys\ssk0.pem [bootloader, destination_cpu=a53-0, authentication=rsa] C:\edt\edt_zcu102\edt_zcu102.sdk\fsbl_a53\Debug\fsbl_a53.elf } 2. generate_hash_ppk.bif ファイルを C: edt secureboot_sd keys に保存します 3. bootgen コマンドを使用して PPK のハッシュを計算します bootgen image generate_hash_ppk.bif arch zynqmp w o test.bin efuseppkbits sha3.txt 4. テキストエディターで sha3.txt を開き sha3.txt ファイルに 384 ビットが含まれていることを確認します 追加の RSA 秘密 / 公開キーペア このセクションでは キーの取り消しに必要なセカンダリ RSA 秘密 / 公開キーペアを生成する手順を示します キーの取り消しには efuse をプログラムする必要がありますが このチュートリアルでは詳細は説明しません キーの取り消しを使用する予定がない場合は このセクションをスキップできます 2 つ目の RSA 秘密 / 公開キーペアを作成し この PPK の SHA3 を生成するには RSA 秘密 / 公開キーペアを作成する および RSA 秘密 / 公開キーペアで公開キーの SHA3 を生成する の手順を繰り返して実行する必要があります 1. C:\edt\secureboot_sd\keys にある generate_pem1.bif で 0 appendix を 1 に変更します generate_pem1.bif は次のようになります generate_pem: { [pskfile]c:\edt\secureboot_sd\keys\psk1.pem [sskfile]c:\edt\secureboot_sd\keys\ssk1.pem } Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 97

98 第 5 章 : ブートおよびコンフィギュレーション 2. RSA 秘密 / 公開キーペアの作成で Bootgen コマンドを再実行して これらのキーを生成します bootgen -generate_keys auth pem -arch zynqmp -image generate_pem1.bif 3. generate_hash_ppk.bif で 0 appendix を 1 に変更すると 次のようになります generate_hash_ppk: { [pskfile] C:\edt\secureboot_sd\keys\psk1.pem [sskfle] C:\edt\secureboot_sd\keys\ssk1.pem [bootloader, destination_cpu=a53-0, authentication=rsa] C:\edt\edt_zcu102\edt_zcu102.sdk\fsbl_a53\Debug\fsbl_a53.elf } 4. RSA 秘密 / 公開キーペアの公開キーの SHA3 の生成で Bootgen コマンドを再実行して PPK 1 の SHA3 を生成します 次のコマンドでは sha3.txt が sha3_1.txt に変更されています bootgen -image generate_hash_ppk.bif -arch zynqmp -w -o test.bin -efuseppkbits sha3_1.txt イメージの機密性を有効にする イメージの機密性については ブートイメージの機密性と DPA で説明します このセクションでは AES 暗号化を使用してブートイメージの機密性を有効にしたブートイメージを作成します AES 暗号化の使用 このセクションでは AES 暗号化の使用手順を示します これらの手順は 使用するキーソースにより異なります BBRAM 内の AES キーを使用した暗号化手順は次のとおりです 1. SDK が開いていない場合は起動し [Xilinx Tools] [Create Boot Image] をクリックします 2. [Architecture] で [Zynq MP] を選択して [Create new BIF file] をオンにします 3. [Basic] タブの [Output BIF file path] で C:\edt\secureboot_sd\aes\aes_encrypt_boot.bif と設定します X-Ref Target - Figure 5-33 図 5-33: BIF の設定 4. [Security] タブをクリックして [Encryption] タブをクリックし [Use Encryption] をオンにします 5. [Key store] ドロップダウンリストで [BBRAM RED] を選択します 6. [Key file] で [Browse] をクリックして c:\edt\secureboot_sd\bbram.nky を選択します Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 98

99 第 5 章 : ブートおよびコンフィギュレーション X-Ref Target - Figure 5-34 注記 : bbram.nky キー ( キーの生成 で作成 ) が指定場所に存在するため [Part name] は淡色表示されます このキーは GUI モードで作成することもできます このモードでは キーが指定場所にない場合 SDK により生成されます この場合 たとえば xzcu9eg といったデバイス ID を入力する必要があります 7. FSBL パーティションを追加します 図 5-34: 暗号化の設定 a. [Add] をクリックして [Add partition] ダイアログボックスを開きます b. [Add partition] ダイアログボックスで [Browse] をクリックして FSBL 実行ファイルを選択します c. FSBL の場合 ツールによって [Partition type] に [bootloader] が選択され [Destination CPU] が正しく選択されていることを確認します ツールは FSBL 実行ファイルに基づいてこのように選択するよう設定されています 8. [Encryption] で [aes] を設定し [OK] をクリックします X-Ref Target - Figure 5-35 図 5-35: AES 認証を有効にしてブートイメージパーティションを追加する Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 99

100 第 5 章 : ブートおよびコンフィギュレーション 9. SD ブートのブートシーケンス の説明に従って 残りのパーティションを追加します 今回は U-Boot を除きすべてのパーティションに対して AES 暗号化を設定する必要がある点が異なります 最後に 次の図にリストされているすべてのパーティションが追加されていることと すべてのパーティションに対して AES が設定されていることを確認します ATF のパーティションの場合 [Exception Level] で [EL-3] を設定して [Enable Trust Zone] をオンにし U-Boot のパーティションの場合は [Exception Level] で [EL-2] を設定します 最終的な設定は次の図のようになります X-Ref Target - Figure 5-36 PMU ファームウェアが bootrom によってロードされると この設定は無効となるため PMU の暗号化と認証の設定は不明確となります この場合 (bootrom によってロードされた PMU) ブートローダー (FSBL) の設定は PMU ファームウェアにデフォルトで適用されます 10. [Create Image] をクリックします 11. [OK] をクリックして BOOT.bin を生成します 図 5-36: 暗号化を有効にしてブートイメージを作成する 次の手順に従って BBRAM で AES キーをプログラムします ブートイメージを実行する前に キーの生成 で作成した暗号化キー bbram.nky を BBRAM にロードする必要があります 次のセクションでは ユーザーキーを BBRAM に書き込むアプリケーションを作成する方法について説明します このキーは 暗号化されたイメージを復号化するために AES エンジンが最終的に使用します SDK で xilskey ライブラリが含まれるように a53_bsp を次のように変更します 1. [a53_bsp] を右クリックし [Board Support Package Settings] をクリックします 2. 次の図に示すように ザイリンクスセキュアキーライブラリを有効にします ([xilskey] をオンにする ) Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 100

101 第 5 章 : ブートおよびコンフィギュレーション X-Ref Target - Figure 5-37 図 5-37: BSP 設定で xilskey ライブラリを有効にする 3. [OK] をクリックして設定を保存し [Board Support Package Settings] ダイアログボックスを閉じます 4. [Project Explorer] で [a53_bsp] を展開し [system.mss] をダブルクリックします X-Ref Target - Figure 5-38 図 5-38: BSP の system.mss ファイルを開く 5. system.mss ファイルのライブラリセクションまでスクロールダウンし xilskey 6.2 ライブラリの [Import Examples] をクリックします Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 101

102 第 5 章 : ブートおよびコンフィギュレーション X-Ref Target - Figure 5-39 図 5-39: xilskey ライブラリサンプルアプリケーションのインポート 6. [xilskey_bbramps_zynqmp_example] をオンにします 7. [OK] をクリックしてこのサンプル選択を確定し [Examples for xilskey] ダイアログボックスを終了します これで 新しいアプリケーション a53_bsp_xilskey_bbramps_zynqmp_example_1 が [Project Explorer] に追加されます 8. 簡単に参照できるように このアプリケーションを右クリックし 名前を bbram_app に変更します 9. [xilskey_bbramps_zynqmp_example.c] を開きます 10. XSK_ZYNQMP_BBRAMPS_AES_KEY (256 ビットキー ) を設定します キーは 16 進数フォーマットで入力され 次の手順に従って AES キーを作成します で生成した bbram.nky ファイルのキーと同じものである必要があります 次のサンプルキーを見つけることができます CA A044D DE1BD6274CAE61A3D9D0490A6928BA69E4DCD5A0 注記 : このキーはコピーしないでください ユーザーキーについては bbram.nky ファイルを参照してください 次に ブートイメージを作成して BBRAM にキーをプログラムします 1. [Xilinx Tools] [Create Boot Image] をクリックします 2. 次の図に示すように設定して ブートイメージを作成します 3. FSBL と bbram_app.elf ( デスティネーション CPU = A53) パーティションを次の図に示すようにブートイメージに追加します Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 102

103 第 5 章 : ブートおよびコンフィギュレーション X-Ref Target - Figure 5-40 この BOOT.bin を ZCU102 で実行し BBRAM にキーをロードします 1. BOOT.bin を SD カードにコピーします 2. SD カードを ZCU102 ボードの J100 コネクタに取り付けます 3. ボードの USB-UART をホストマシンに接続します 図 5-40: BBRAM ブートイメージのロード 4. Micro USB ケーブルの一端を ZCU102 ボードの Micro USB ポート J83 に接続し もう一端をホストマシンの空きの USB ポートに接続します 5. スイッチ SW6 を図 5-7 に示すように設定して ボードを SD ブートモードに設定します 6. 12V 電源を ZCU102 の 6 ピン Molex コネクタに接続します 7. 使用しているホストマシンに応じて Tera Term または Minicom を使用し ターミナルセッションを開始します システムの COM ポートとボーレートを図 5-8 に示すように設定します 8. ポート設定では デバイスマネージャーで COM ポートを検証します 9. ZCU102 ボードでは 4 つの USB UART インターフェイスが使用されています Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 103

104 第 5 章 : ブートおよびコンフィギュレーション 10. 最も小さい番号のインターフェイスに関連付けられた COM ポートを選択します この場合の UART-0 には COM ポートに対して Interface-0 を選択します 11. SW1 を使用して ZCU102 ボードの電源を入れ ターミナルに表示されるメッセージを確認します X-Ref Target - Figure 理想は アプリケーションが 状態で終了することです これ以外では プログラムでエラーが発生したことを示します 次の手順に従って AES 暗号化を使用したイメージを実行します 1. BOOT.bin で作成した 暗号化を有効にしたセキュアブートイメージを SD カードにコピーします このイメージは C:\edt\secureboot_sd\aes\Boot.bin にあります 2. この例では ZCU102 ボードでイメージを実行する で使用されたのと同じ image.ub ファイルを使用できます image.ub を SD カードにコピーします 3. ボードの SD カードスロットに SD カードを挿入します 4. ZCU102 ボードでイメージを実行する に記載の残りの手順を繰り返し イメージがターゲットにロードされていることを確認します 5. 非セキュア SD ブートシーケンスの FSBL ログと暗号化を有効にしたブートシーケンスの FSBL ログを比較します ロードされたすべてのパーティションでパーティションが使用されていることを確認します 詳細は Zynq UltraScale+ MPSoC テクニカルリファレンスマニュアル (UG1085) [ 参照 5] のこのセクションと Zynq UltraScale+ MPSoC: ソフトウェア開発者向けガイド (UG1137) [ 参照 6] の ブート時のセキュリティ を参照してください DPA 保護を有効にする このセクションでは 差分電力解析への対策に有効な操作キーとキーローリングの使用手順を示します 操作キーを作成する 図 5-41: ZCU102 の BBRAM アプリケーション 次の手順に従って 新しいキー (operational.nky) を次の場所に生成します C:\edt\secureboot_sd\aes_opt\operational.nky 1. テキストエディターを使用して 次の内容の generate_opt_key.bif を作成します generate_opt_key: { [aeskeyfile]c:\edt\secureboot_sd\aes_opt\operational.nky [keysrc_encryption]bbram_red_key [fsbl_config]opt_key [bootloader, destination_cpu=a53-0, encryption = aes]c:\edt\edt_zcu102\edt_zcu102.sdk\fsbl_a53\debug\fsbl_a53.elf } 2. Generate_opt_key.bif ファイルを次の場所に保存します C:\edt\secureboot_sd\aes_opt\ Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 104

105 第 5 章 : ブートおよびコンフィギュレーション 3. [Xilinx Tools] [Launch Shell] をクリックします 4. C:\edt\secureboot_sd\aes_opt\ で次を実行します bootgen image generate_opt_key.bif -arch zynqmp w o test.bin encrypt bbram p xczu9eg 5. 操作キー operational.nky が生成されていることを確認します 6. operational.nky を開いて Key 0 を前に生成した bbram.nky の Key 0 に置き換えます 注記 : 上記の手順 6 は 新しいキーで BBRAM が再プログラムされないようにするためのものです 実際の開発 / プロダクションフローでは 選択肢として 新しい *.nky を作成し この nky の Key 0 と同じものを BBRAM/eFUSE にプログラムできます 操作キーを使用した暗号化 1. AES 暗号化の使用 の手順 1 ~ 8 を繰り返します ここでは operational.nky を使用します 2. BIF ファイルを C:\edt\secureboot_sd\aes_opt\aes_operational.bif として保存します 3. 手順 5 の後 操作キーをチェックします 4. AES 暗号化の使用 の手順 9 を繰り返し 操作キーを使用してブートイメージを作成します 5. 次の手順に従って AES 暗号化を使用したイメージを実行します の手順を繰り返してボードでこのイメージをテストし ターゲットが問題なく起動して Linux OS と RPU アプリケーションがロードされていることを確認します キーローリングを使用した暗号化 1. AES 暗号化の使用 の手順 1 ~ 9 を繰り返します BIF ファイルを作成またはインポートして C:\edt\secureboot_sd\aes_keyrolling\aes_keyrolling.bif として保存します 2. [Create Image] をクリックして BOOT.bin を生成します 次のように各パーティションのブロック属性 ( ブロック = ) を追加するために aes_keyrolling.bif を手動で変更します 3. aes_encrypt_keyrolling.bif ファイルの内容が次のようになっていることを確認します //arch = zynqmp; split = false; format = BIN; key_part_name = xczu9eg the_rom_image: { [aeskeyfile]c:\edt\secureboot_sd\aes_keyrolling\multiple_keys.nky [keysrc_encryption]bbram_red_key [fsbl_config]opt_key [bootloader, destination_cpu=a53-0, encryption = aes,blocks=4096;4096;1024;8196]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 [encryption = aes, destination_cpu = a53-0,blocks=4096;4096;1024;8196,exception_level = el-3, trustzone]c:\edt\design_files\sd_boot\bl31.elf [encryption = aes, destination_cpu = r5-lockstep,blocks=4096;4096;1024;8196]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 } 4. BIF ファイルを保存し 閉じます Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 105

106 第 5 章 : ブートおよびコンフィギュレーション 5. テキストエディターを使用して 次に示す 256 ビットキーと初期化ベクターを複数用いた multiple_keys.nky を作成します multiple_keys.nky のキーの数が BIF 内のブロックの数を超えた場合 超過した分のキーは無視されます multiple_keys.nky のキーの数がブロックの数よりも少ない場合 multiple_keys.nky 内の最後のキーが残りのブロックすべてに使用されます X-Ref Target - Figure 5-42 前のセクションと同様に multiple_keys.nky 内の Key 0 ( および IV 0) が bbram.nky 内の Key 0 ( および IV) と同じであることを確認します ( 基本的に BBRAM でプログラムしたものと同じキー ) Device xczu9eg; Key 0 CA A044D DE1BD6274CAE61A3D9D0490A6928BA69E4DCD5A0; Key C023E238AC9039EA984D49AA A98C124AE890ACEF ; IV B80C7CA66A912BDB68 IV FDE0867rA28DC6ED8E7; Key Opt FC8C285364D4C82D7E164C6196FBB6CFF8C673DBEB38AF15E D96DF962; 6. SDK で [Xilinx Tools] [Create Boot Image] をクリックします 7. [Import from existing BIF file] をオンにします 8. 変更した aes_keyrolling.bif ファイルを選択します 9. [Create Image] をクリックすると ウィザードが閉じ ブートイメージが作成されます 10. 次の手順に従って AES 暗号化を使用したイメージを実行します の手順を繰り返してボードでこのイメージをテストし ターゲットが問題なく起動して Linux OS と RPU アプリケーションがロードされていることを確認します 前述のとおり AES キーは efuse にプログラムすることもできます BBRAM に AES キーをプログラムする際と同様に efuse にプログラムするためのアプリケーション例が SDK により提供されます この例では efuse キーは不変のものであるためプログラム対象ではありません ハードウェアによる信頼のルート (HROT) を使用する RSA 認証を使用する Zynq UltraScale+ では ブートヘッダーモードと efuse モードの 2 つの RSA 認証モードがサポートされています この例では ブートヘッダーモードを使用した RSA 認証に焦点を当てています このセクションでは まず最初にブートヘッダーにプログラムされたプライマリ公開キーを使用し ロードされた各パーティションに対して RSA 認証を実行します 次の手順に従って ブートヘッダーの PPK のハッシュを使用します 1. SDK が開いていない場合は起動し [Xilinx Tools] [Create Boot Image] をクリックします 2. [Architecture] を [Zynq MP] に変更します 3. [Create new BIF file] をクリックし [Output BIF file path] で [Browse] をクリックして次のパスを選択します C:\edt\secureboot_sd\rsa_auth\rsa_auth_boot_bh.bif 4. [Security] タブをクリックします 図 5-42: 複数キーが存在するファイル Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 106

107 第 5 章 : ブートおよびコンフィギュレーション 5. [Authentication] タブをクリックします 6. GUI に 公開キーまたは秘密キーのいずれを使用するかを選択するオプションが表示されます 公開キーのオプション ([PPK]) はダイアログボックスの左側にあります 秘密キーのオプション ([PSK]) はダイアログボックスの右側にあります 公開キーは キーの処理に用いる独立したハードウェアセキュリティモジュール (HSM) がある場合に使用します このキーの管理方法により 内部攻撃からキーを保護することができます 7. [Browse] をクリックして C:\edt\secureboot_sd\keys を選択し 次の図に示すようにプライマリおよびセカンダリのパスにそれぞれ \psk0.pem および \ssk0.pem を追加します X-Ref Target - Figure [Use BH Auth] をオンにします 図 5-43: RSA キーペアの追加 9. SD ブートのブートシーケンス の説明に従って パーティションを追加します 今回の異なる点は すべてのパーティションに対して RSA 認証を設定する必要があることです 10. Bootgen GUI で 次の内容で設定されていることを確認します X-Ref Target - Figure 5-44 図 5-44: ブートイメージのパーティション - RSA 認証 11. [Create Image] をクリックします 12. PC に SD カードを取り付け BOOT.bin および image.ub を SD カードにコピーします 13. ZCU102 ターゲット上の IO キャリアカードの SD カードスロットへ SD カードを挿入します Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 107

108 第 5 章 : ブートおよびコンフィギュレーション 14. ボードに電源を投入します 15. FSBL ログファイルで 認証が完了したこと U-Boot/Linux イメージがロードされていることを確認します 注記 : 上記の手順では 開発フローで利用可能なブートヘッダーベースの認証が使用されています プロダクションターゲットの場合 efuse モードでの RSA 認証が推奨されます この認証の場合 ブートイメージの作成で [Use BH Auth] をオフにし efuse プログラム用の SDK アプリケーション例を使用して efuse をプログラムします ( プログラムできるのは 1 回のみ ) efuse モードの RSA 認証については このチュートリアルでは説明しません キー取り消しの使用 キーの取り消しにより ユーザーは RSA のプライマリ公開キーまたはセカンダリ公開キーを無効にできます キーの使用時間が超過した またはキーへの不正アクセスが検出された場合 キーの取り消しが適用されます プライマリおよびセカンダリキーの取り消しは ワンタイムプログラマブルな efuse によって制御されます ザイリンクスセキュアキーライブラリをキーの取り消しに使用すると フィールド展開されているデバイスに対するキーの取り消しが可能になります キーの取り消しの詳細は Zynq UltraScale+ MPSoC テクニカルリファレンスマニュアル (UG1085) [ 参照 5] で説明しています PUF の使用 このセクションでは PUF を PUF ブートヘッダーモードでブラックキーの格納に使用します PUF を使用する場合は RSA 認証が必要です ここでは PUF を使用して BIF を作成する方法を説明します まず RSA 認証を使用する で説明した bh_auth.bif のような ベースラインとなる puf_0.bif を作成することから始めます puf_0.bif をテキストエディターで変更し puf_bh.bif を生成します PUF の登録 - ブートヘッダーモード PUF 登録ソフトウェアは kilskey ライブラリに含まれています このソフトウェアはブートヘッダーモードまたは efuse モードで動作します ブートヘッダーモードでは OTP の efuse をプログラムすることなく開発が可能です efuse モードは プロダクションフローで使用されます このチュートリアルでは ブートヘッダーモードでの PUF の登録までを実行します PUF 登録ソフトウェアはレッド ( 非暗号化 ) キーを入力として受け取り CHASH と AUX も含むシンドロームデータ ( ヘルパーデータ ) およびブラック ( 暗号化 ) キーを出力します PUF ブートヘッダーモードでは この出力はブートヘッダーに挿入されます PUF efuse モードでは この出力は efuse にプログラムされます 1. SDK で [a53_bsp] を右クリックし [Board Support Package Settings] をクリックします 2. [Supported Libraries] で [xilskey] および [xilsecure] を必ずオンにします Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 108

109 第 5 章 : ブートおよびコンフィギュレーション X-Ref Target - Figure 5-45 図 5-45: [Supported Libraries] で [xilskey] および [xilsecure] をオンにする 3. [OK] をクリックします [Project Explorer] で [a53_bsp] を展開して [system.mss] をダブルクリックします 4. [Libraries] セクションまでスクロールダウンします xilskey 6.2 の [Import Examples] をダブルクリックします 5. [Examples for xilskey] で [xilskey_puf_registration] をオンにします [OK] をクリックします X-Ref Target - Figure 5-46 図 5-46: PUF 登録サンプルのインポート 6. [Project Explorer] で [a53_bsp_xilskey_puf_registration_1] を右クリックします [Rename] をクリックすると [Rename Resource] ダイアログボックスが開くので [New name] に puf_registration と入力して [OK] をクリックします Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 109

110 第 5 章 : ブートおよびコンフィギュレーション X-Ref Target - Figure 5-47 図 5-47: 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 リンクの作成 で生成した bbram.nky ファイルのキーと同じものである必要があります 次のサンプルキーを確認できます #define XSK_PUF_AES_KEY "CA A044D DE1BD6274CAE61A3D9D0490A6928BA69E4DCD5A0" 注記 : このキーはコピーしないでください ユーザーキーについては bbram.nky ファイルを参照してください d. XSK_PUF_IV を次のように設定します 初期化ベクター (IV) はユーザーが選択する 12 バイトデータです #define XSK_PUF_IV "945435B80C7CA66A912BDB68" X-Ref Target - Figure 5-48 図 5-48: ブートヘッダーモードの PUF 登録 9. ファイルを保存して終了します 10. [Project Explorer] で [puf_registration project] を右クリックし [Build Project] をクリックします 11. SDK で [Xilinx Tools] [Create Boot Image] をクリックします 12. [Architecture] で [Zynq MP] を選択します Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 110

111 第 5 章 : ブートおよびコンフィギュレーション 13. [Output BIF file path] で次のように指定します C:\edt\secureboot_sd\puf_registration\puf_registration.bif 14. [Output path] で次のように指定します C:\edt\secureboot_sd\puf_registration\BOOT.bin 15. [Boot image partitions] で [Add] をクリックします 次のパーティションを追加します 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 16. [Create Image] をクリックして PUF 登録用のブートイメージを作成します X-Ref Target - Figure SD カードを PC の SD カードスロットに挿入します 18. C:\edt\secureboot_sd\puf_registration\BOOT.bin を SD カードにコピーします 19. SD カードを PC の SD カードスロットから抜き ZCU102 のカードスロットへ挿入します 20. 使用しているホストマシンに応じて Tera Term または Minicom を使用し ターミナルセッションを開始します システムの COM ポートとボーレートを図 3-12 に示すように設定します 21. 通信ターミナルのメニューバーで [File] [Log] をクリックします ダイアログボックスに C:\edt\secureboot_sd\puf_registration\puf_registration.log と入力します 22. ボードの電源を切って入れ直します 図 5-49: PUF 登録ソフトウェア 23. puf_registration ソフトウェアが実行されたら 通信ターミナルを終了します 24. puf_registration.log の内容は PUF を使用したブートヘッダー手法の演習 2 で使用されます テキストエディターで puf_registration.log を開きます 25. App:PUF Syndrome data Start!!! の後から App:PUF Syndrome data End!!! まで ( ただし これは含まない ) の PUF シンドロームデータを helperdata.txt というファイルに保存します 26. App: Black Key IV で識別されるブラックキーを black_iv.txt というファイルに保存します 27. ブラックキーを black_key.txt というファイルに保存します 28. helperdata.txt および black_iv.txt は C:\edt\secureboot_sd\aes_puf\ に保存可能です Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 111

112 第 5 章 : ブートおよびコンフィギュレーション ブートヘッダーモードの PUF の使用 次の手順に従って PUF を使用して AES 暗号化用のブートイメージを作成します このセクションでは PUF 登録プロセスで作成したシンドロームデータとブラックキーを使用します 1. PUF の登録 - ブートヘッダーモード では シンドロームデータとブラックキーを含むテキストファイルが C:\edt\secureboot_sd\aes_puf ディレクトリに生成されています 2. SDK で [Xilinx Tools] [Create Boot Image] をクリックします 3. aes_using_puf.bif に対してから [Create new BIF file] をオンにします 4. [Security] タブをクリックします 5. [Authentication] タブをクリックして [Use Authentication] をオンにします 6. SD ブートのブートシーケンス の説明のとおり パーティションを追加します 今回の異なる点は すべてのパーティションに対して RSA 認証を設定し U-Boot を除くすべてのパーティションに対して AES 暗号化を設定する必要があることです 7. Create Boot Image ウィザードでは 次のように入力します X-Ref Target - Figure 5-50 図 5-50: ブートイメージのパーティション X-Ref Target - Figure 5-51 図 5-51: 認証および RSA キーペア Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 112

113 第 5 章 : ブートおよびコンフィギュレーション X-Ref Target - Figure [Encryption] の [Key store] は無視します これは 後の手順で変更します 9. [Create Image] をクリックします 10. テキストエディターを使用して aes_using_puf.bif を変更します シンドロームデータを含む PUF をブートヘッダーで使用します //arch = zynqmp; split = false; format = BIN the_rom_image: { [pskfile]c:\edt\secureboot_sd\keys\psk0.pem [sskfile]c:\edt\secureboot_sd\keys\ssk0.pem [auth_params]ppk_select = 0 [aeskeyfile]c:\edt\secureboot_sd\bbram.nky [keysrc_encryption] bh_blk_key [bh_keyfile]black_key.txt [bh_key_iv]black_iv.txt [puf_file] helperdata.txt [fsbl_config] pufhd_bh, shutter=0x e, bh_auth_enable, puf4kmode [bootloader, destination_cpu=a53-0, encryption = aes, authentication = rsa]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 [encryption = aes, authentication = rsa, destination_cpu = a53-0, exception_level = el-3, trustzone]c:\edt\design_files\sd_boot\bl31.elf [encryption = aes, authentication = rsa, destination_cpu = r5-lockstep]c:\edt\edt_zcu102\edt_zcu102.sdk\testapp_r5\debug\testapp_r5.elf [authentication = rsa, destination_cpu = a53-0, exception_level = el-2]c:\edt\design_files\sd_boot\u-boot.elf } 11. キーファイルとヘルパーデータファイルが C:\edt\secureboot_sd\aes_puf に保存されていることを確認します 12. [Xilinx Tools] [Launch Shell] をクリックします 13. ディレクトリを C:\edt\secureboot_sd\aes_puf に変更し 次のコマンドを実行します bootgen -image aes_using_puf.bif -arch zynqmp -o BOOT.BIN -w 14. PC のカードスロットに SD カードを挿入し BOOT.bin を SD カードにコピーします IO キャリアカードの SD カードスロットへ SD カードを挿入します 15. IO キャリアカードに電源を投入します 16. 通信ターミナルで U-Boot がロードされていることを確認します 注記 : 上記の手順は efuse モードの PUF でも実行できます その場合は efuse モードの PUF を使用して 前述の手順を繰り返します その際 BIF は efuse の暗号化キーを使用するように変更する必要があります efuse が永続的にプログラムされることがないように このチュートリアルでは efuse モードの PUF については説明しません 注記 : [keysrc_encryption]efuse_blk_key 図 5-52: 暗号化の設定 Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 113

114 第 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 ベアメタルアプリケーションが同時に実行されるように設定されています ハードウェアを設定する このデザインの最初のステップとして PS セクションと PL セクションを設定します これは Vivado IP インテグレーターで実行できます まず Vivado IP カタログから必要な IP を追加してから PS サブシステムのブロックにコンポーネントを接続します 1. Vivado Design Suite が既に開いている場合は 図 2-2 に示すブロック図から開始して手順 4 へ進みます 2. 作成した Vivado プロジェクトを開きます C:/edt/edt_zcu102/edt_zcu102.xpr Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 114

115 第 6 章 : システムデザイン例 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. カタログで [AXI Timer] をクリックし Ctrl + Q キーを押して IP の詳細を表示します 次の図に示すように [IP Details] に情報が表示されます X-Ref Target - Figure 6-2 図 6-2: [IP Details] の情報 2. [AXI Timer] をダブルクリックしてデザインに追加します Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 115

116 第 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 の別のインスタンスを追加します 8. axi_gpio_0 をダブルクリックし GPIO の [Board Interface] ドロップダウンリストから [push button 5bits] を選択します Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 116

117 第 6 章 : システムデザイン例 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+ MPSoC: エンベデッドデザインチュートリアル 117

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

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

120 第 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] をクリックします 次のような [Generate Output Products] ダイアログボックスが開きます X-Ref Target - Figure 6-10 図 6-10: [Generate Output Products] ダイアログボックス 注記 : Linux ホストマシンで Vivado Design Suite を実行している場合は [Run Settings] の下に追加オプションが表示されることがあります その場合は デフォルトの設定で継続します 8. [Generate] をクリックします Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 120

121 第 6 章 : システムデザイン例 9. [Generate Output Products] の処理が完了したら [OK] をクリックします 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+ MPSoC: エンベデッドデザインチュートリアル 121

122 第 6 章 : システムデザイン例 3. [Run Implementation] をクリックして [OK] をクリックします この場合も プロセスがバックグラウンドで実行されていることが ステータスバーによって示されます インプリメンテーションが完了すると [Implementation Completed] ダイアログボックスが開きます 4. [Generate Bitstream] をクリックして [OK] をクリックします ビットストリームの生成が完了すると [Bitstream Generation Completed] ダイアログボックスが開きます 5. [Cancel] をクリックしてウィンドウを閉じます 6. ビットストリームの生成が完了したら ハードウェアを SDK にエクスポートします ハードウェアを SDK へエクスポートする この例では Vivado から SDK を起動します 1. [Vivado] ツールバーで [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+ MPSoC: エンベデッドデザインチュートリアル 122

123 第 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+ MPSoC: エンベデッドデザインチュートリアル 123

124 第 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 イメージを作成します Linux イメージは このデザインのハードウェア設定に合わせて作成する必要があります また SD ブート用のイメージを作成するために PetaLinux を設定する必要があります 第 3 章の サンプルプロジェクト : PetaLinux を使用して Linux イメージを作成する を参照し 手順 2 ~ 手順 12 を繰り返してデバイスツリーを更新し PetaLinux を使用して Linux イメージを構築します または このチュートリアルで共有している Linux イメージファイルを使用することもできます このセクションのイメージは <design_files>/design にあります 手順 13 に従ってイメージを検証します 次のステップでは ARM cortex R5 ベースの RPU をターゲットとしたベアメタルアプリケーションを作成します このサンプルデザインでは このチュートリアルでリリースされたデザインファイル (ZIP) に含まれるアプリケーションソースファイルをインポートする必要があります これらのデザインファイルの場所については 付録 B の このチュートリアルのデザインファイル を参照してください Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 124

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

126 第 6 章 : システムデザイン例 3. リンカースクリプトの [Available Memory Regions] で 次に示す psu_r5_ddr_0_mem_0 の属性を変更します [Base Address]: 0x [Size]: 0x リンカースクリプトの変更を次の図に示します X-Ref Target - Figure 6-16 図 6-16: リンカースクリプトの変更 このリンカースクリプトの変更により RPU ベアメタルアプリケーションは DDR の 0x ( 約 1.79GB) のベースアドレスより上位にあり 256MB を超えないサイズとなります 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+ MPSoC: エンベデッドデザインチュートリアル 126

127 第 6 章 : システムデザイン例 Linux アプリケーションプロジェクトを作成する 1. SDK で [File] [New] [Application Project] をクリックします New Project ウィザードが開きます 2. 次の表の情報に基づいて ウィザード画面で選択操作を実行します ウィザード画面 システムプロパティ 設定または使用するコマンド Project name ps_pl_linux_app Use default location オン Application Project Processor psu_cortexa53 OS Platform Linux Language C Templates Available Templates Empty Application 3. [Finish] をクリックします New Project ウィザードが閉じ SDK によって 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] をクリックし 前に保存したデザインファイルフォルダーに移動します ( 付録 B の このチュートリアルのデザインファイル 参照 ) 9. [OK] をクリックします 10. ps_pl_linux_app.c ファイルを追加します 注記 : pthread ライブラリへの参照がないため アプリケーションの構築でエラーが発生することがあります 次のセクションでは pthread ライブラリを追加する方法を示します Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 127

128 第 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 ライブラリの追加 SDK は自動的にアプリケーションを構築し コンソールウィンドウにステータスを表示します Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 128

129 第 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 Tools] [Create Boot Image] をクリックします 4. Create Boot Image ウィザードでの設定については 次の図を参照してください 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+ MPSoC: エンベデッドデザインチュートリアル 129

130 第 6 章 : システムデザイン例 6. すべてのパーティションを追加したら [Create Image] をクリックします 重要 : ATF のパーティションの場合 [Exception Level] で [EL-3] を設定して [Enable Trust Zone] をオンにし U-Boot のパーティションの場合は [Exception Level] で [EL-2] を設定します これらの設定は その他のパーティションで無視しても問題ありません 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 を使用し ターミナルセッションを開始します システムの COM ポートとボーレートを図 5-8 に示すように設定します Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 130

131 第 6 章 : システムデザイン例 7. ポート設定では デバイスマネージャーで COM ポートを検証します ZCU102 ボードでは 4 つの USB UART インターフェイスが使用されています 8. 最も小さい番号のインターフェイスに関連付けられた COM ポートを選択します この場合の UART-0 には COM ポートに対して Interface-0 を選択します 9. 同様に UART-1 の場合は COM ポートに対して Interface-1 を選択します 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+ MPSoC: エンベデッドデザインチュートリアル 131

132 第 6 章 : システムデザイン例 Linux アプリケーションを実行する Linux が ZCU102 システム上で起動したら 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 X-Ref Target - Figure 6-22 これでシステム全体が稼動します 図 6-22: Linux ターミナル Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 132

133 第 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+ MPSoC: エンベデッドデザインチュートリアル 133

134 第 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+ MPSoC: エンベデッドデザインチュートリアル 134

135 第 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. 既存のブートローダーイメージを消去します これは 新しいハードウェアデザインに合わせてブートローダーを再度作成するためです $ petalinux-build -c bootloader -x distclean 6. ザイリンクスアンサー の手順に従って デュアルレーンディスプレイポートのデバイスツリーを変更します system-user.dtsi ( これらの変更が反映されている ) は このチュートリアルのデザインファイル から入手可能です 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+ MPSoC: エンベデッドデザインチュートリアル 135

136 第 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. 新しいパッケージグループとパッケージを追加します Filesystem Packages > misc > packagegroup-petalinux-x11 > packagegroup-petalinux-x11 Filesystem Packages > misc > packagegroup-petalinux-x11 > packagegroup-petalinux-x11-dev User Packages > tricube 4. すべてのパッケージを有効にしたら 設定ファイルを保存して rootfs Configuration ウィザードを終了します 5. 次のコマンドを使用して Linux イメージを構築します $ petalinux-build 6. Linux イメージファイル images.ub が images/linux ディレクトリに生成されていることを確認します 7. 次のようなサンプルデザインのブートイメージを生成します $ petalinux-package --boot --fsbl images/linux/zynqmp_fsbl.elf --fpga images/linux/edt-zcu102_wrapper.bit --u-boot BOOT.bin ブートイメージが作成されます これは FSBL ブートローダー PL ビットストリーム および U-Boot で構成されています PMU ファームウェアおよび ATF も BOOT.bin に含まれています 注記 : 別の方法として ブートイメージを作成する の手順を参照してブートイメージを作成することもできます Linux をロードし ターゲットで OpenGL ES アプリケーションを実行して ディスプレイポートにその結果を表示する SD カードを準備する Linux イメージが構築され アプリケーションも構築されたので 次のイメージを SD カードにコピーして SD カードを ZCU102 ボードに挿入します また runtricube.sh ( このチュートリアルのデザインファイル から入手可能 ) スクリプトも SD カードにコピーします BOOT.bin Image.ub runtricube.sh Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 136

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

138 第 6 章 : システムデザイン例 4. runtricube.sh スクリプトを実行して tricube アプリケーションを実行します # chmod 755 /media/runtricube.sh # /media/runtricube.sh ここで 回転するマルチカラーの立方体と回転する三角形がディスプレイポートに表示されます 立方体もマルチカラーの三角形で作成されていることがわかります X-Ref Target - Figure 6-25 図 6-25: 回転する立方体と三角形 Zynq UltraScale+ MPSoC: エンベデッドデザインチュートリアル 138

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

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

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

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

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

目次 第 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

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

SAC (Jap).indd

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

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

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

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

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

使用する前に

使用する前に この章では 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

939061j

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

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

第 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

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

PowerPoint Presentation

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

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

発環境を準備しよう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

概要 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

(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

第一章 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

インテル® 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

(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

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

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

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

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

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

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

More information

任意の間隔での FTP 画像送信イベントの設定方法 はじめに 本ドキュメントでは AXIS ネットワークカメラ / ビデオエンコーダにおいて任意の間隔で画像を FTP サー バーへ送信するイベントの設定手順を説明します 設定手順手順 1:AXIS ネットワークカメラ / ビデオエンコーダの設定ページ

任意の間隔での FTP 画像送信イベントの設定方法 はじめに 本ドキュメントでは AXIS ネットワークカメラ / ビデオエンコーダにおいて任意の間隔で画像を FTP サー バーへ送信するイベントの設定手順を説明します 設定手順手順 1:AXIS ネットワークカメラ / ビデオエンコーダの設定ページ はじめに 本ドキュメントでは AXIS ネットワークカメラ / ビデオエンコーダにおいて任意の間隔で画像を FTP サー バーへ送信するイベントの設定手順を説明します 設定手順手順 1:AXIS ネットワークカメラ / ビデオエンコーダの設定ページにアクセスする 1.Web ブラウザを起動します FW v6.50 以下の場合は Internet Explorer を FW v7.10 以降の場合は

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

ユーザーズガイド 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

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

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

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

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

SLCONFIG の操作 JF1PYE Ⅰ. PC と slconfig の通信設定 Ⅱ. Slconfig の操作 Ⅲ. 端末ソフトによる Command 機能 Ⅳ. slconfig 実行形式プログラムの作成 Ⅴ. 端末ソフト Tera Term のダウンロード インストー

SLCONFIG の操作 JF1PYE Ⅰ. PC と slconfig の通信設定 Ⅱ. Slconfig の操作 Ⅲ. 端末ソフトによる Command 機能 Ⅳ. slconfig 実行形式プログラムの作成 Ⅴ. 端末ソフト Tera Term のダウンロード インストー SLCONFIG の操作 2011.03.02 JF1PYE Ⅰ. PC と slconfig の通信設定 Ⅱ. Slconfig の操作 Ⅲ. 端末ソフトによる Command 機能 Ⅳ. slconfig 実行形式プログラムの作成 Ⅴ. 端末ソフト Tera Term のダウンロード インストール 設定 Soliloc-10G Slconfig の開発 提供ならびに本書を作成するに当たり情報提供を頂いた

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

Z MBSD 勉強会検証用仮想サーバセットアップ資料 三井物産セキュアディレクション株式会社 2017 年 2 月 1 MBSD 勉強会検証用仮想サーバセットアップ資料 当資料では 以下の 3 ステップで勉強会で利用する環境のセットアップ手順を解説いたします Step1 Step2 Step3 当資料では Windows7(64bit 版 )PC におけるインストール方法を解説しています 他の OS をご利用の方は適宜読み替えてセットアップにお役立てください

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

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

ドライバインストールガイド 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

目 次 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

Microsoft Word - Updater

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

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

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

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

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 ï½žéł»å�’å–¥æœ�ㇷㇹㅃㅀ㇤ㅳㇹㅋㅼㅫ曉逃.ppt [äº™æ‘łã…¢ã…¼ã…›]

Microsoft PowerPoint ï½žéł»å�’å–¥æœ�ㇷㇹㅃㅀ㇤ㅳㇹㅋㅼㅫ曉逃.ppt [äº™æ‘łã…¢ã…¼ã…›] 電子入札システムクライアント V4 インストール手順 平成 30 年 3 月 富山市財務部契約課 注意事項 平成 30 年 3 月以降は現在インストールしていただいている 電子入札システムクライアント V3 は使用できなくなります 本手順に従い必ず 電子入札システムクライアント V4 をインストールしてください Windows10 の標準ブラウザ Microsoft Edge は富山市電子入札システムを使用できません

More information

VPN 接続の設定

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

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

HDWS Update Instruction Guide

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

More information

2. インストールの方法 インストールの手順は まずインストーラーをサイトからダウンロードし イールドブック カリキュレーターと Java Web Start をインストールします 次にイールドブック カリキュレーターを起動してサーバー接続し Java のファイルをダウンロードします 以下の手順に従

2. インストールの方法 インストールの手順は まずインストーラーをサイトからダウンロードし イールドブック カリキュレーターと Java Web Start をインストールします 次にイールドブック カリキュレーターを起動してサーバー接続し Java のファイルをダウンロードします 以下の手順に従 The Yield Book Calculator インストールガイド 本ガイドの内容 1. 必要システム. 1 2. インストールの方法. 2 3. Java Web Start / Java Runtime Environment (JRE). 8 4. プロキシの設定. 9 5. 言語の設定. 10 6. アンインストールの方法. 11 1.. 必要システム イールドブック カリキュレーターのインストールと動作に必要なシステムは以下のとおりです

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

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

Phaser 6250 カラーレーザープリンタ リファレンスガイド

Phaser 6250 カラーレーザープリンタ リファレンスガイド ここでは次の項目について説明します 動作要件 (3-36 ページ ) EtherTalk の使用可能設定と使用 (3-36 ページ ) TCP/IP の使用可能設定と使用 (3-37 ページ ) Mac OS 9.x のクィックインストール手順 (3-37 ページ ) Mac OS X バージョン10.1 のクィックインストール手順 (3-40 ページ ) Mac OS X バージョン10.2 のクィックインストール手順

More information

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

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

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

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

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

プリンタドライバのインストール. Windows で使用する場合 Windows プリンタドライバのインストール方法は 接続方法や使用するプリンタドライバによって異なります また コンピュータの OS によってインストール方法が異なります お使いのコンピュータの OS に合わせて 以下の参照ページを

プリンタドライバのインストール. Windows で使用する場合 Windows プリンタドライバのインストール方法は 接続方法や使用するプリンタドライバによって異なります また コンピュータの OS によってインストール方法が異なります お使いのコンピュータの OS に合わせて 以下の参照ページを プリンタドライバのインストール.1 プリンタドライバの種類と対応 OS 本プリンティングシステムを使用するためには プリンタドライバのインストールが必要です プリンタドライバとは 出力するデータの処理などを制御するプログラムで 使用する前に付属の CD からコンピュータにインストールします 付属の CD に含まれるプリンタドライバと 対応しているコンピュータの OS は以下のとおりです 必要なプリンタドライバをインストールしてください

More information

STEP 02 開発環境の構築 学習内容 パソコンに ARM の開発環境を構築します インストールは以下の手順で行います 1. CCS のダウンロード 2. CCS のインストール 3. TI-RTOS のインストール 4. USB ドライバのインストール 1. CCS のダウンロード 以下の手順で

STEP 02 開発環境の構築 学習内容 パソコンに ARM の開発環境を構築します インストールは以下の手順で行います 1. CCS のダウンロード 2. CCS のインストール 3. TI-RTOS のインストール 4. USB ドライバのインストール 1. CCS のダウンロード 以下の手順で 学習内容 パソコンに ARM の開発環境を構築します インストールは以下の手順で行います 1. CCS のダウンロード 2. CCS のインストール 3. TI-RTOS のインストール 4. USB ドライバのインストール 1. CCS のダウンロード 以下の手順で CCS のインストーラをダウンロードしてください 1 Ti 社のサイトの CCS 紹介ページを開く http://www.tij.co.jp/tool/jp/ccstudio

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

SetupVerup_dl_M

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

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

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

プログラムのデバッグ

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

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

開発環境構築ガイド

開発環境構築ガイド 開発環境構築ガイド 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 - nvsi_100207jp_quantumi40.doc

Microsoft Word - nvsi_100207jp_quantumi40.doc Article ID: NVSI-100207JP Created: 2010/02/03 Revised: - Quantum Scalar i40/netvault Backup 動作検証 1. 概要 Quantum i40 は小中規模のビジネス向けのテープ ライブラリです 優れた管理機能を有し 操作も非常に簡単です Quantum i40 と NetVault Backup(NVBU) を使用することで最適なバックアップ

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

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

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

Corporate Document

Corporate Document ブルームバーグ ソフトウエア インストールガイド新ブルームバーグプロフェッショナルインストーラー (InstallAware) 日本語 2018 年 6 月 18 日バージョン : 1.0 1 目次ブルームバーグ ソフトウエアのダウンロード... 2 ブルームバーグ シリアル番号のインストール. 8 正しくインストールされたかを確認... 12 アクセス権付与に関する注意... 14 2 ブルームバーグ

More information

付録

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

More information

図 1.SDK でインストールするパッケージ選択ができたら [Install] ボタンをクリックしますダウンロードとインストールが始まります インストールが終わると [close] ボタンが表示されるので クリックしてとじて下さい Google USB Driver package, revisio

図 1.SDK でインストールするパッケージ選択ができたら [Install] ボタンをクリックしますダウンロードとインストールが始まります インストールが終わると [close] ボタンが表示されるので クリックしてとじて下さい Google USB Driver package, revisio NyARToolKit の環境構築について 森岡克典 手順 1. JDKの環境構築まず Java の実行環境ともいえる ランタイムをインストールします http://www.oracle.com/technetwork/java/javase/downloads/index.html Java Platform,Standard Edition の[Download JRE] からダウンロードここで

More information

自宅でJava言語の開発環境を作る方法

自宅でJava言語の開発環境を作る方法 自宅で Android アプリ 開発環境を作る方法 2011 年 3 月 8 日現在 あいあいスクール代表 畠茂雄 ( はたけしげお ) もくじ はじめに... 3 第 1 章 : 開発に必要なソフトウェアのインストール... 4 (1)Java SE Development Kit (JDK) のインストール... 5 (2)Android SDK のインストール... 11 (3) 統合開発環境

More information

Hyper-V 仮想マシンの設定

Hyper-V 仮想マシンの設定 この章の内容は 次のとおりです Microsoft Hyper-V マネージャでの VM の作成, 1 ページ VF ドライバのインストール, 3 ページ ポートプロファイルの接続, 3 ページ Microsoft Hyper-V マネージャでの VM の作成 この手順は Microsoft Hyper-V マネージャの [New Virtual Machine Wizard] を使用して VM を作成します

More information

ZVH_VIEWER

ZVH_VIEWER R&S FSH4View 操作手順書 Rev 1 ローデ シュワルツ ジャパン株式会社 1 ローデ シュワルツ ジャパン FSH4View 操作手順書 1 FSH4View 操作手順 1.FSH4Viewの起動 2.FSHとPCの接続 3.FSHメモリ内データの転送 4. 測定画像の操作 5. 測定データを数値データへ変換 6. クイック ネーミング機能の設定 2 ローデ シュワルツ ジャパン FSH4View

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

Microsoft Word - Android_実習環境

Microsoft Word - Android_実習環境 Android 実習環境 Android アプリケーションを実習するために必要となる環境について説明します 1 パソコン教室の環境 OS: Windows7 Professional 32 ビット CPU:Intel Core i5 メモリ : 4GB 生徒個人フォルダ : Z ドライブ ( サーバ ) JDK(Java Development Kit) Android SDK ADT(Android

More information

G800SE HTMLdocument update

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

More information

Agileイベント・フレームワークとOracle BPELを使用したPLMワークフローの拡張

Agileイベント・フレームワークとOracle BPELを使用したPLMワークフローの拡張 Agile イベント フレームワークと Oracle BPEL を使用した PLM ワークフローの拡張 チュートリアル Jun Gao Agile PLM Development 共著 2009 年 10 月 目次 概要... 4 このチュートリアルについて... 4 目的および範囲... 4 使用ソフトウェア... 4 はじめに... 5 必要な環境の準備... 5 Agile PLM ワークフロー機能の拡張...

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

Application Note Application Note No. ESC-APN 文書番号 : ESC-APN Tcl link library インストールガイド はじめに Tcl link library インストールガイド ( 以下 本書 ) では Act

Application Note Application Note No. ESC-APN 文書番号 : ESC-APN Tcl link library インストールガイド はじめに Tcl link library インストールガイド ( 以下 本書 ) では Act No. ESC-APN-006-05 文書番号 : ESC-APN-006-05 Tcl link library インストールガイド はじめに Tcl link library インストールガイド ( 以下 本書 ) では ActiveState Software Inc.( 以下 ActiveState 社 ) のフリーソフトウェアである Active Tcl と microview-plus

More information

TeamViewer マニュアル – Wake-on-LAN

TeamViewer マニュアル – Wake-on-LAN TeamViewer マニュアル Wake-on-LAN Rev 11.1-201601 TeamViewer GmbH Jahnstraße 30 D-73037 Göppingen www.teamviewer.com 目次 1 Wake-on-LANのバージョン情報 3 2 要件 5 3 Windowsのセットアップ 6 3 1 BIOSの設定 6 3 2 ネットワークカードの設定 7 3 3

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

McAfee Firewall for Linux リリース ノート

McAfee Firewall for Linux リリース ノート リリースノート McAfee Firewall for Linux 8.0.0 目次このリリースについて機能インストール既知の問題製品マニュアルの検索 このリリースについて この資料には このリリースに関する重要な情報が含まれていますので ぜひご一読いただくようお願いいたします プレリリース版のソフトウェアは自動アップグレードの対象外です リリースされたソフトウェア製品にアップグレードするには 既存のバージョンを削除する必要があります

More information

Scripting Tools for Windows PowerShell リリースノート

Scripting Tools for Windows PowerShell リリースノート Scripting Tools for Windows PowerShell リリースノート BIOS コマンドレット v1.0.0.1 部品番号 : 823062-192 2016 年 4 月第 1 版 Copyright 2015-2016 Hewlett Packard Enterprise Development LP. 本書の内容は 将来予告なしに変更されることがあります Hewlett

More information

Oracle Business Intelligence Standard Edition One のインストール

Oracle Business Intelligence Standard Edition One のインストール Oracle Business Intelligence Standard Edition One のインストール 第 1 版 作成日 :2007 年 7 月 31 日 更新日 :2007 年 7 月 31 日 目次 はじめに... 3 Ⅰ. インストール作業... 4 Ⅱ. 起動状況の確認... 8 Ⅱ-1. Oracle BI Administration Tool の起動... 8 Ⅱ-2.

More information

ADZBT1 Hardware User Manual Hardware User Manual Version 1.0 1/13 アドバンスデザインテクノロジー株式会社

ADZBT1 Hardware User Manual Hardware User Manual Version 1.0 1/13 アドバンスデザインテクノロジー株式会社 Hardware User Manual Version 1.0 1/13 アドバンスデザインテクノロジー株式会社 Revision History Version Date Comment 1.0 2019/4/25 新規作成 2/13 アドバンスデザインテクノロジー株式会社 目次 1 Overview... 4 2 Block Diagram... 5 3 機能説明... 6 3.1 Power

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

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

<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

PNopenseminar_2011_開発stack

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

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