ブート プロセスには、オプションでセカンダリ ブート デバイスを含めることもできます。この場合、プライマリ ブート デバイスからロードした PLM およびその他の初期イメージを使用してブート プロセスが開始します。次に、残りのイメージが PLM によって設定されたセカンダリ ブート デバイスからロードされます。セカンダリ ブート デバイスには PDI が格納され、この中にはセカンダリ ブート デバイスからロードする必要のあるイメージとコンフィギュレーション データが含まれます。このセカンダリ ブート デバイスには、PLM やブート ヘッダーは含まれません。POR/システム リセットが実行されると、ブート プロセスはプライマリ ブートから開始します。このプロセスは、プライマリ ブート プロセスと同じです。
- BootROM
-
- ブート モード レジスタを読み出し、プライマリ ブート デバイスを決定する
- 指定されたプライマリ ブート デバイスから PPU RAM に PLM をロードする
- PPU のリセットを解除して PLM を実行する注記: セカンダリ ブート プロセスは、PDI メタ ヘッダーのフィールドにセカンダリ ブート デバイスが指定されている場合に実行されます。
- PLM
-
- PDI メタ ヘッダーのフィールドを読み出し、指定されたセカンダリ ブートデバイスを決定する
- 指定されたセカンダリ ブート デバイスを使用して、PDI コンテンツの残りをロードする
セカンダリ ブート デバイスのオプションを次に示します。
- eMMC0、eMMC1 注記: コントローラーは、eMMC0 と eMMC1 の 2 つがあります。各コントローラーに 2 つの異なる MIO セットを割り当てるか、1 つの EMIO を割り当てることができます。eMMC0 および eMMC1 上でセカンダリ ブートをサポートするには、これらのデバイス用にコンフィギュレーションされた MIO が、ほかのブート デバイスの MIO ピンと競合しないようにする必要があります。
- イーサネット 注記: イーサネットがセカンダリ ブート デバイスとして使用される場合、プライマリ ブート デバイスで Versal デバイスが起動され、次に U-Boot が起動されます。その後、U-Boot がイーサネットを使用してブート プロセスを完了できます。
- OSPI
-
PCIe®
インターフェイス
- まず、指定されたプライマリ ブート デバイスから PPU RAM に PLM がロードされます。
- 次に、PLM が実行されて PCIe Endpoint (EP) モードの CCIX (Cache Coherent Interconnect for Accelerators) PCIe Gen4 モジュール (CPM) ブロックを初期化します。
- 最後に、PCIe ホストがセカンダリ ブート デバイスとして、残りのイメージをロードします。 注記: PCIe インターフェイスはセカンダリ ブート デバイスとしてのみサポートされます。
- QSPI
- SD0、SD1
- USB: セカンダリ PDI は dfu_util を使用して固定 DDR メモリ アドレス (
0x50000000
) にダウンロードされます。dfu_util は、Windows および Linux 用に提供されているオープンソース ユーティリティです。その後、PLM が PDI を処理します。USB をセカンダリ ブート モードとして示すには、BIF ファイルで USB を
boot_device
属性として指定します。 - SelectMAP (SMAP): SelectMAP をセカンダリ ブート モードにするには、BIF ファイルで
smap
をブート デバイス属性として指定します。 - Image Store: BIF ファイルで
imagestore
属性と PDI ID を指定することで、セカンダリ ブート デバイスのソースとして使用できます。
セカンダリ ブートの組み合わせ例
- SD/eMMC 以外の任意のプライマリ ブートと、セカンダリ ブート モードの SD/eMMC
- eMMC ブート パーティション 1/2 のプライマリ ブートと、eMMC ユーザー領域のセカンダリ ブート