ALTERA socfpgaの環境構築について、簡単にまとめてみた。
気軽に使いたいなら、rocketboardから環境とSDイメージをダウンロードして使用すると良いだろう。
http://rocketboards.org/foswiki/view/Documentation/TerasicDE1SoCDevelopmentAndEducationBoard
http://rocketboards.org/foswiki/view/Documentation/AtlasSoCDevelopmentPlatform
http://rocketboards.org/foswiki/view/Documentation/MacnicaHelioSoCEvaluationKit
socfpgaの場合、SDカードは3つのパーティションに区切って、VFAT、ext4、rawの順にする。
preloaderはZYNQでいうFSBL(First Stage Boot Loader)である。 これとu-bootはALETRA SDKでビルドすることができる。
でも、謹製のu-bootは古いから嫌のよねぇ。
最近のu-bootにはSPL(Second Boot Loader)が付いている。 これを使用するとpreloaderが必要ない。 あとはdefcofigだけボードのものに合わせれば良い。
Helioは持ってないけど、たしかALTERA謹製の評価ボードと同じはずなのでsocfpga_cyclone5_defconfigで良いはず。 Atlas-SoCはなぜか用意されているのでsocfpga_de0_nano_soc_defconfigを使う。
% git clone git://git.denx.de/u-boot.git
% cd u-boot
% make socfpga_sockit_defconfig ← DE1-SoCの場合
% make socfpga_cyclone5_defconfig ← Helioの場合
% make socfpga_de0_nano_soc_defconfig ← Atlas-SoCの場合
% make
% sudo dd if=spl/u-boot-spl.bin of=/dev/sdd3 bs=64k seek=0
% sudo dd if=u-boot-dtb.img of=/dev/sdd3 bs=64k seek=4
Linux Kernelも最新を使ってみよう。 次の手順では、4.2にしている。
% git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
% cd linux-stable
% git checkout -b linux-4.2.y origin/linux-4.2.y
% git checkout -b v4.2 v4.2
% make socfpga_defconfig
% make zImage
% make socfpga_cyclone5_sockit.dtb ← DE1-SoCの場合
% make socfpga_cyclone5_socdk.dtb ← Heiloの場合
出来上がったzImageはそのまま第1パーティションに書き、Device Treeはsocfpga.dtbに名前を変更して、第1パーティションに書き込む。
ルートファイルはZYNQのものを使用すれば良い。 これは第2パーティションに書き込む。
あぁ、ちなみにクロスコンパイラはXilinxのものでOKですよ。 だって、ARMのコアはZYNQもsocfpgaも同じなんだもん。
以上、これで楽しいsocfpgaライフが送れます。