製品情報>Artix-7評価ボード>MicroblazeでLinux>SRECブートローダ

SRECブートローダ

Linuxが起動するためにはU-Bootなどのプログラムが必要です。しかし、U-Bootのサイズは500kBくらいあってとても大きいので、U-Bootをロードするための「最初のブートローダ」が必要になります。最初のブートローダは、FPGAのBitSteream(*.bitファイル)内に格納されるほどの小さなプログラムです。

本章では、その「最初のブートローダ」を作ります。

改良型SRECBOOT

XILINXの用意したSRECBOOTはパラレルフラッシュ専用!

XILINX SDKには、初期ブートローダとして使えるSRECBOOTというプログラムがテンプレートとして用意されています。しかし、SRECBOOTはパラレルフラッシュ専用なので、SPI ROMは使えません。

改良型SRECBOOT

そこで数百バイトまとめて読み出す改良型のSRECブートローダを作りました。

改良型SRECBOOTはsrecboot_tokudenというプロジェクト名です。xspiを使ってSPI ROMに格納されたプログラムをロードできます。また、xparameter.hをロードしているので、MicroBlaze内のペリフェラルのアドレスが変わったり、DRAMのアドレスや構成が変わったとしてもそのまま使えます。

 

このプログラムは、SPI ROMの0x3B0000番地からテキストとして書き込まれているSRECフォーマットのHEXファイルのデータを読み出して実行します。

なぜ、0x3B0000番地かというと、XC7A100TのBitStreamが約4MBytesで、そのBitStreamのすぐ後ろのキリの良いアドレスからSRECフォーマットのデータを格納するためです。

改良型SRECBOOTローダのソース一式は下記のリンクからダウンロードできます。

SDKでビルドボタンを押せばビルドされます。出来上がったELFファイルをBitStreamに埋め込む手順は次の節で説明します。

 


© 2017 TokushuDenshiKairo Inc. All rights reserved