メモ置き場

メモ置き場です.開発したものや調べたことについて書きます.

[tex: ]

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として保存しておく.