1. はじめに
この記事では、Nios® V プロセッサー(以降 Nios® V)向けのアプリケーション・プログラムを自動起動させるための Boot 方式について紹介します。
Boot 方式としては、Boot Copier、Execute in Place、SDM Boot に対応しており、Generic Serial Flash interface(以降 GSFI)を使用することで、全ての Quad SPI(QSPI)Flash memory から Boot することが可能です。
この記事では Nios® V で使用可能な Boot Option と各種設定方法を紹介します。
2. Boot 方式の種類
Nios® V を Boot する方法として下記の Boot 方式があります。
- Boot Copier
- プログラムをブートソース(QSPI Flash など)から RAM へダウンロードして実行する方式
- プログラムをブートソース(QSPI Flash など)から RAM へダウンロードして実行する方式
-
Execute In Place(以降 XIP)
- プログラムをダウンロードせずに、ブートソースから適時読み出しながら実行する方式
- プログラムをダウンロードせずに、ブートソースから適時読み出しながら実行する方式
- SDM Boot
- SDM ファームウェアの機能を用いて、プログラムを RAM へダウンロードして実行する方式
それぞれの特徴を【表1】に示します。
【表1】各 Boot option の特徴
Boot 方式 | 特徴 |
Boot Copier |
・XIP と比較した場合 Cache ミスヒット時の実行速度が速い。 ・Boot Copier を編集することによる柔軟性。 ・Application コードを展開するための RAM 領域が必要。 |
XIP |
・即時起動が可能。 ・ RAM 領域の節約が可能。 ・Boot Copier と比較した場合 Cache ミスヒット時の実行速度が遅い。 |
・Stratix® 10 や Agilex™ 7 等の SDM 搭載デバイスで対応。 ・Bootloader 用の RAM と Application 用の RAM が必要。 ・RAM に展開する必要があるため、展開後の動作は Boot Copier と変わらない。 |
2-1. Boot Copier について
Boot Copier は On-Chip RAM もしくは External RAM に、Application コードを展開して実行する方法です。
Nios® V では GSFI を使用することを推奨しており、Flash ROM に Application コードを保存して、Nios® V のリセット解除を契機に以下のフローで Nios® V が Boot します。
- Nios® V のリセットを解除
- Reset Vector に設定している Flash ROM 上の Boot Copier を Nios® V が実行
- Boot Copier により Application コードを RAM にコピー
- RAM 上の Application コードを Nios® V が実行
【図1】Boot Copier 利用時のシステム構成図
2-2. XIP について
XIP は Application コードを Flash Controller に割り当てて、Flash ROM 上で Nios® V を動作させる Boot 方式です。
注記:
Linker srcipt で設定する .rwdata セクション、.heap セクション、.stack セクションのような読み書き可能なデータ領域は Flash の書き換えを伴うため、XIP の構成で使用する場合であっても必ず RAM に配置する必要があります。
GSFI に接続している Boot Memory に Application コードを保存して、リセット解除を契機に以下のフローで Nios® V が実行されます。
- Nios® V のリセットを解除
- Reset Vector に設定している Boot Memory 上の Application コードを Nios® V が実行
【図2】XIP 利用時のシステム構成図
2-3. SDM Boot について
SDM Boot は Stratix® 10 FPGA や Agilex™ 7 FPGA 等、SDM を搭載したデバイスを対象に、SDM に接続されている Boot Memory に Application コードを格納して Nios® V を起動する方法です。
SDM とはセキュア・デバイス・マネージャーの略称であり、セキュリティ機能の強化を目的としたモジュールです。詳細は下記をご参照ください。
SDM ブートは以下のフローで実行されます。
- Nios® V のリセットを解除
- Nios® V は On-Chip Memory から SDM bootloader を実行
- SDM に接続された Boot ROM に格納されている Application コードを、SDM bootloader が On-Chip RAM や External RAM にコピー
- On-Chip RAM もしくは External RAM 上の Application コードを Nios® V が実行
【図3】SDM Boot 利用時のシステム構成図
3. 各 Boot Option の紹介
Boot 方式と Boot Memory の組み合わせによって、Nios® V を Boot させる方法は 4 種類に分かれます。
Boot Option の種類ごとに記事が用意されていますので【表2】のリンクからご参照ください。
【表2】Boot Option の種類
Boot Option | Boot Memory |
Application (ブートソース) |
Application 実行時の場所 |
Boot Copier |
User Guide Link |
QSPI Flash Memory |
QSPI Flash |
RAM |
GSFI bootloader | ||
QSPI Flash Memory |
QSPI Flash |
QSPI Flash Memory |
alt_load() 関数 | ||
QSPI Flash Memory |
QSPI Flash Memory |
RAM |
SDM bootloader | User Guide | |
On-Chip Memory |
On chip RAM | On chip RAM | Boot Copier なし | User Guide |
下記の参考資料に各種設定のサマリーが記載されていますのでこちらもご参照ください。
参考資料:Nios® V Embedded Processor Design Handbook 4.3. Nios® V Processor Booting Methods
おわりに
この記事では Nios® V で使用可能な Boot Option と各種設定方法をご紹介しました。
この記事を参考に Boot Copier、XIP、SDM Boot の特徴をご理解頂いたうえで、お客様の仕様に合った方法をご検討いただけますと幸いです。
Nios® V プロセッサーに関する情報については、下記メーカーのページより詳細をご確認いただけますので併せてご参照ください。