ZYBO-Z7-20でUbuntu 16.04 LTSを動かす(3) : U-BootとuEnv.txtの作成
ZYBO-Z7でUbuntu 16.04 LTSを動かす - メモ置き場
第3回目.
FSBLの後に読み込まれるU-Bootを作成する.クロスコンパイル環境が必要になるので,
ZYBO-Z7-20でUbuntu 16.04 LTSを動かす(1) : PetaLinux 2018.2とDevice Tree Compilerのインストール - メモ置き場
を参考にツールをインストールしておく.
Xilinxが提供しているZynq用のU-Bootレポジトリはこちら.
github.com
xilinx-wiki.atlassian.net
qiita.com
このドキュメントを参考に勧めていく.
ソースのfetch
レポジトリからソースを取ってきて,一応ローカルブランチを切っておく.
git clone https://github.com/Xilinx/u-boot-xlnx.git
git checkout -b zybo-z7
U-Bootビルドの設定
こちらの記事を参考に設定を勧めていく.
まずconfigs/zynq_zyboz7_config
の最終行にCONFIG_OF_EMBED=y を追加しzynq_zyboz7_defconfigとして保存する.
次に,arch/arm/dts/zynq-zybo.dts
を次のように修正する.
--- a/arch/arm/dts/zynq-zybo.dts +++ b/arch/arm/dts/zynq-zybo.dts @@ -19,7 +19,8 @@ memory@0 { device_type = "memory"; - reg = <0x0 0x20000000>; + reg = <0x0 0x40000000>; }; chosen { @@ -35,7 +36,8 @@ }; &clkc { - ps-clk-frequency = <50000000>; + ps-clk-frequency = <33333333>; }; &gem0 {
前回の記事で作成したdtsファイルの設定と,PSのクロックの設定を踏まえて修正した.
U-Bootのビルド
実際にビルドする.
export CROSS_COMPILE=arm-linux-gnueabihf- export ARCH=arm make zynq_zyboz7_defconfig make
u-bootというバイナリファイルが生成される.名前をu-boot.elfに変更しておく.
mv u-boot u-boot.elf
uEnv.txtの作成
Qiitaの記事を参考にして,
uenvcmd=fatload mmc 0 0x03000000 uImage && fatload mmc 0 0x02A00000 devicetree.dtb && bootm 0x03000000 - 0x02A00000
という中身でuEnv.txt
として保存しておく.