もくじ
はじめに
この記事では、インテル® Arria® 10 SoC をターゲットに Arm® Development Studio 5 Intel® SoC FPGA Edition(以後、DS-5)デバッガーから、2019.04 以降の U-Boot を起動する方法について解説します。
参考:
この記事では U-Boot のビルド手順は扱いません。予め以下のページを参考にビルドを済ませておいてください。
SoC EDS v19.1 std / v19.3 pro から変更された新しいブートローダー生成フローの動作確認(Arria® 10 SoC 編) 参考:
Cyclone® V SoC または、Arria® V SoC をご使用の方は、以下の記事ページをご参照ください。
DS-5 デバッガ―で新しい U-Boot(v2019.04 以降)を起動する方法(Cyclone® V SoC/Arria® V SoC 編)
基本的には、Cyclone® V SoC/Arria® V SoC 向けの記事ページ(上記)に掲載されている手順と同じ流れとなりますが、Arria® 10 SoC 向けには以下の点にご注意ください。

U-Boot の実行には、FPGA 側回路をコンフィグレーションする必要があります。
External FPGA Configuration 有効/無効 のオプションに応じて、事前に以下の対応を行ってください。特に Hard Processor System(HPS)用のブートデバイス(SDカード、QSPI Flash、NAND Flash)へのアクセスが上手くいっていない場合には、デバッグ対象の U-Boot を生成する際に、BSP Editor のオプションの External FPGA Configuration を有効にしてご確認ください。。
- External FPGA Configuration 有効の場合:
デバッグ開始前に .sof で FPGA 側をコンフィグレーションしてください。
- External FPGA Configuration 無効の場合:
あらかじめブートデバイス上に適切な配置で .rbf を書き込んでおいてください。
以下、手順の説明に入ります。
1. DS-5 の起動
Linux OS 上で作業する場合は、まず最初に端末(ターミナル)を起動します。
続けて、ターミナル上で 「embedded_command_shell.sh」 を実行することで SoC EDS 用の環境変数設定が行われたシェル環境が立ち上がるので、そのまま「eclipse &」と入力した上で Enter キーを入力します。

【図 1】 eclipse & と入力して DS-5 を起動
DS-5 のスプラッシュ画面が表示された後に ワークスペース の選択画面が表示されるので、提案されたディレクトリー(図 2 の例では、/home/<user>/DS-5-Workspace)または、任意のディレクトリーを指定します。

【図 2】 ワークスペース選択画面
DS-5 をはじめて起動したときに表示される「ようこそ」画面はすぐに閉じて構いません。
はじめて指定した ワークスペースの場合は、以下のようにプロジェクトが空の状態で起動します。

【図 3】 はじめて指定した ワークスペース の Eclipse 画面
2. プロジェクトの作成
次に U-Boot 用の DS-5 プロジェクトを作成します。
「ファイル」メニューから「新規」→「Makefile Project with Existing Code」を選択してください。

【図 4】 「Makefile Project with Existing Code」を選択
「新規プロジェクト」ウィンドウが表示されるので、"プロジェクト名" (図 5 の例では、a10_uboot_project)を指定し、"既存のコードの場所" の項目に U-Boot を含む BSP プロジェクトの所在を指定します。
所在は[参照...]ボタンをクリックして別ウィンドウで指定可能です。
図 5 の例では下記の別記事ページで、Arria® 10 SoC 用 SD カードブート向けの U-Boot を作成した場所(/home/<user>/a10_example.sdmmc/a10_soc_devkit_ghrd/software/bootloader)を指定しています。SoC EDS v19.1 std / v19.3 pro から変更された新しいブートローダー生成フローの動作確認(Arria® 10 SoC 編)
図 5 の例では下記の別記事ページで、Arria® 10 SoC 用 SD カードブート向けの U-Boot を作成した場所(/home/<user>/a10_example.sdmmc/a10_soc_devkit_ghrd/software/bootloader)を指定しています。SoC EDS v19.1 std / v19.3 pro から変更された新しいブートローダー生成フローの動作確認(Arria® 10 SoC 編)
その他の項目は編集不要です。所在の指定が終わったら[終了]ボタンをクリックします。

【図 5】 新規プロジェクトの作成
図 6 のように、プロジェクト・エクスプローラー内にプロジェクト(青枠)が追加されれば、プロジェクトの作成は成功です。
但し、プロジェクト内にもともと含まれている uboot.ds デバッグスクリプト・ファイルでは、DS-5 による U-Boot のデバッグを正しく行うことができません。
但し、プロジェクト内にもともと含まれている uboot.ds デバッグスクリプト・ファイルでは、DS-5 による U-Boot のデバッグを正しく行うことができません。
この記事では、v2019.04 以降の新しい U-Boot に対応したデバッグスクリプト・ファイル uboot.ds と preloader.ds のサンプルを添付しています。
これらのデバッグスクリプト・ファイルをダウンロードしていただき、作成したプロジェクトにドラッグ&ドロップして上書きコピーしてください。

【図 6】 uboot.ds と preloader.ds をプロジェクトにドラッグ & ドロップして上書きコピー
3. デバッグの構成設定
デバッグ用の設定を行うために、「実行」メニューから「デバッグの構成...」を選択してください(プロジェクト・エクスプローラーの右クリックメニューからも選択可能です)。

【図 7】 「実行」メニューから「デバッグの構成...」を選択
「デバッグ構成」ウィンドウが起動したら、ウィンドウ左側のメニューにある「DS-5 デバッガ」を右クリックして「新規」を選択してください。この操作により新規の構成が生成されます。

【図 8】 新規デバッグ構成の作成
設定項目が多数のタブメニューに分かれていますが、今回の作業で設定が必要となる項目は、「接続」タブと「デバッガ」タブの 2つのみです。
以下、各タブの設定内容を示します。
3-1. 「接続」タブの設定
“ターゲットの選択” を「Intel SoC FPGA ⇒ Arria 10 SoC ⇒ Bare Metal Debug ⇒ Debug Cortex-A9_0」とします。
その他、赤枠内の項目全てをデバッグ対象の環境に合わせて設定します。
注記:
“接続” の指定は[参照...]ボタンをクリックして、別ウィンドウに表示されるリストから選択しますが、事前にターゲットボードをインテル® FPGA ダウンロード・ケーブル(USB-Blaster)で接続して、電源を ON にしておく必要があります。
注記:
Linux OS 環境で インテル® FPGA ダウンロード・ケーブル(USB-Blaster)を使用する場合は、
udev に USB デバイスの識別ルール(ID)を登録する必要があります。
参考:
USB-Blaster Driver for Linux (Driver Setup on RedHat Linux Enterprise 5 and Above)

“接続” の指定は[参照...]ボタンをクリックして、別ウィンドウに表示されるリストから選択しますが、事前にターゲットボードをインテル® FPGA ダウンロード・ケーブル(USB-Blaster)で接続して、電源を ON にしておく必要があります。

Linux OS 環境で インテル® FPGA ダウンロード・ケーブル(USB-Blaster)を使用する場合は、
udev に USB デバイスの識別ルール(ID)を登録する必要があります。

USB-Blaster Driver for Linux (Driver Setup on RedHat Linux Enterprise 5 and Above)
尚、“名前”(下図の青線部分)の編集により、新規作成したコンフィグレーションに任意の名前を指定可能です(この例では、a10_uboot_debug と指定しています)。

【図 9】 「接続」タブの設定
3-2. 「デバッガ」タブの設定
下記の画面イメージ(赤枠)と同じ内容に設定してください。
“デバッガスクリプト” の指定と、“ソース検索ディレクトリ” の指定は、いずれも[ワークスペース...]ボタンから指定できます。
“デバッガスクリプト” の指定と、“ソース検索ディレクトリ” の指定は、いずれも[ワークスペース...]ボタンから指定できます。
設定が終わったら[適用]ボタンをクリックして設定内容を保存します。コンフィグレーションの名前を変更している場合は、保存契機でウィンドウ左側の表示項目(青枠)にも変更後の名前が反映されます。

【図 10】 「デバッガ」タブの設定
4. デバッグ開始

“External FPGA Configuration” 有効の場合は、この時点で .sof の書き込みを行って FPGA 側のコンフィグレーションを完了させてください(“External FPGA Configuration” 無効の場合も、事前にブートデバイスに .rbf を書き込んでおくことを忘れないように注意してください)。
[デバッグ]ボタンをクリックするとデバッグを開始します。

【図 11】 [デバッグ]ボタンをクリック
デバッグ・パースペクティブ(デバッグ用の画面配置)への切替え確認メッセージが出るので[はい]をクリックします。

【図 12】 デバッグ・パースペクティブへの切替え確認メッセージ
デバッグ・パースペクティブに切り替わり、ターゲットとの接続が開始したら接続完了を待ちます。
進行状況は、“コマンド” ビューのログおよびプログレスバーで確認してください。

【図 13】 ターゲットとの接続進行状況
5. デバッグ接続完了
正常に接続が完了すると、関数:board_init_r の先頭付近のブレークポイントで停止します。

【図 14】 デバッガーとの接続完了状態
この時点で、UART のターミナルには以下のようなログが表示されます。

【図 15】 UART のターミナルログ
まとめ
以上の手順で DS-5 から U-Boot をロードして実行開始させることができます。あとは、デバッガーを操作してデバッグを行ってください。
DS-5 上のデバッグ制御ウィンドウの ”続行”

最後に U-Boot コマンドの一覧(HELP 表示)を掲載しておきます。利用可能なコマンド操作の参考にしてください。

【図 16】 U-Boot コマンドの一覧(HELP 表示)
関連記事へのリンク
ブートローダー、U-Boot に関連して、以下の記事も参考にしてください:
添付サンプル
この記事の説明で使用した、Arria® 10 SoC 向け U-Boot デバッグスクリプトのサンプルファイルです。
コメント
0件のコメント
サインインしてコメントを残してください。