前回からいろいろブートファイルを作り直して、どうにかu-bootが立ち上がるようになった。
そして zedroid_device_xilinx_zedboard-kernel
を少し変更する必要があったが、U-bootでの動作は始まったようだ。
- zynq-zed-adv7511.dtsi
diff --git a/arch/arm/boot/dts/zynq-zed-adv7511.dtsi b/arch/arm/boot/dts/zynq-zed-adv7511.dtsi index 1209b8c..4afed32 100644 --- a/arch/arm/boot/dts/zynq-zed-adv7511.dtsi +++ b/arch/arm/boot/dts/zynq-zed-adv7511.dtsi @@ -106,6 +106,10 @@ audio-codec = <&adau1761>; cpu-dai = <&axi_i2s_0>; }; + efuse@f800d000 { + compatible = "xlnx,zynq-efuse"; + reg = <0xf800d000 0x20>; + }; }; leds {
しかしAndroid(というかLinux)が起動するまでに以下のようなエラーメッセージを吐いてカーネルパニックになっている。
通常通りにブートしても、Linuxを起動するときの最初のプロセスにあたるinitが存在せず、カーネルパニックになってしまっていると思われる。
init
は、/dev/sdb1 (SDカードのパーティション0)に格納したuramdisk.image.gzに入っているはずだ。これはLinux起動時に展開されるはずなので、
以下のようにしてU-bootのコマンドラインで指定すればよいと思う。
setenv bootargs console=ttyPS0,115200 root=/dev/ram rw earlyprintk init=/init boot # 起動
しかし今度は以下のエラーメッセージで止まってしまう。良く分からないなあ。。。
No filesystem could mount root, tried: ext3 ext2 ext4 vfat msdos Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0) CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.6.0 #1
うーん、これは何だろう?