ひでみのアイデア帳

くだらないことなんだけど、忘れないために・・・

ALTERA socfpga

ALTERA socfpgaの環境構築について、簡単にまとめてみた。

気軽に使いたいなら、rocketboardから環境とSDイメージをダウンロードして使用すると良いだろう。

DE1-SoC

http://rocketboards.org/foswiki/view/Documentation/TerasicDE1SoCDevelopmentAndEducationBoard

Atlas-SoC(DE0-nano-SoC)

http://rocketboards.org/foswiki/view/Documentation/AtlasSoCDevelopmentPlatform

Helio

http://rocketboards.org/foswiki/view/Documentation/MacnicaHelioSoCEvaluationKit

SDカード

socfpgaの場合、SDカードは3つのパーティションに区切って、VFAT、ext4、rawの順にする。

preloader

preloaderはZYNQでいうFSBL(First Stage Boot Loader)である。 これとu-bootはALETRA SDKでビルドすることができる。

でも、謹製のu-bootは古いから嫌のよねぇ。

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

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パーティションに書き込む。

rootfs

ルートファイルはZYNQのものを使用すれば良い。 これは第2パーティションに書き込む。

あぁ、ちなみにクロスコンパイラはXilinxのものでOKですよ。 だって、ARMのコアはZYNQもsocfpgaも同じなんだもん。

以上、これで楽しいsocfpgaライフが送れます。