FC2カウンター FPGAの部屋 Ultra96用Yocto Linuxのビルドの続き2(u-boot.elf と bl32.elf の作成)
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Ultra96用Yocto Linuxのビルドの続き2(u-boot.elf と bl32.elf の作成)

Ultra96用Yocto Linuxのビルドの続き1(fsbl.elf と pmufw.elf の作成)”の続き。

前回は、SDK を使って、sbl.elf と pmufw.elf の作成を行った。今回は、u-boot.elf と bl32.elf をビルドしよう。

なお、ここでやっていることは、石原ひでみさんの「超苦労したFPGAの薄い本」Yocto Project と立ち上げ編を参照しています。

まずは、Xilinx のGitHub から Vivado 2018.2 用のU-boot をクローンする。
git clone git://github.com/Xilinx/u-boot-xlnx -b xilinx-v2018.2
Ultra96_Yocto_31_180914.png

cd u-boot-xlnx/
make xilinx_zynqmp_zcu100_revC_defconfig

Ultra96_Yocto_32_180914.png

make
Ultra96_Yocto_33_180914.png

gcc が古いということでエラーに鳴ってしまった。エラーの全内容を示す。

masaaki@masaaki-H110M4-M01:~/HDL/Ultra96/u-boot-xlnx$ make
scripts/kconfig/conf  --silentoldconfig Kconfig
  CHK     include/config.h
  CFG     u-boot.cfg
cc1: warning: unknown register name: x18
  GEN     include/autoconf.mk
  GEN     include/autoconf.mk.dep
cc1: warning: unknown register name: x18
  CFG     spl/u-boot.cfg
cc1: warning: unknown register name: x18
  GEN     spl/include/autoconf.mk
  CHK     include/config/uboot.release
  CHK     include/generated/version_autogenerated.h
  CHK     include/generated/timestamp_autogenerated.h
  UPD     include/generated/timestamp_autogenerated.h
  CC      lib/asm-offsets.s
cc1: warning: unknown register name: x18
cc1: error: bad value (‘armv8-a’) for ‘-march=’ switch
cc1: note: valid arguments to ‘-march=’ switch are: nocona core2 nehalem corei7 westmere sandybridge corei7-avx ivybridge core-avx-i haswell core-avx2 broadwell skylake skylake-avx512 bonnell atom silvermont slm knl x86-64 eden-x2 nano nano-1000 nano-2000 nano-3000 nano-x2 eden-x4 nano-x4 k8 k8-sse3 opteron opteron-sse3 athlon64 athlon64-sse3 athlon-fx amdfam10 barcelona bdver1 bdver2 bdver3 bdver4 znver1 btver1 btver2
Kbuild:43: recipe for target 'lib/asm-offsets.s' failed
make[1]: *** [lib/asm-offsets.s] Error 1
Makefile:1337: recipe for target 'prepare0' failed
make: *** [prepare0] Error 2


Ubuntu 16.04 を Ubuntu 18.04 にアップグレードした。(注:Vivado などがUbuntu 18.04 に未対応なので、やらないほうが良いです

もう一度 make したら、またエラーだった。
Ultra96_Yocto_34_180914.png

検索すると、”u boot porting on rpi-3: getting error as “cc1: error: bad value (‘armv8-a’) for ‘-march=’ switch”.”が見つかった。
それによると、gcc-aarch64-linux-gnu をインストールして、それを使うようにするとのことだった。
sudo apt-get install gcc-aarch64-linux-gnu
export CROSS_COMPILE=aarch64-linux-gnu-
make

Ultra96_Yocto_35_180914.png
Ultra96_Yocto_36_180914.png

これで、u-boot.elf ができた。
Ultra96_Yocto_40_180916.png

でも、u-boot のビルドがエラーになったのは、source /opt/Xilinx/Vivado/2018.2/settings64.sh を忘れていたためかもしれない?


BL32.elf のビルドは、”@ikwzmさんのUltraZed 向け Debian GNU/Linux の構築をやってみる4(BL31を作る)”を参照した。

git clone https://github.com/Xilinx/arm-trusted-firmware.git
Ultra96_Yocto_37_180915.png

arm-trusted-firmware ディレクトリに入って、make を行った。
cd arm-trusted-firmware
make CROSS_COMPILE=aarch64-linux-gnu- PLAT=zynqmp RESET_TO_BL31=1

Ultra96_Yocto_38_180915.png

bl32.elf がビルドされた。
Ultra96_Yocto_39_180915.png
  1. 2018年09月16日 07:35 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/4299-a4632c05
この記事にトラックバックする(FC2ブログユーザー)