« JTAG出力基板の完成へ | トップページ | 試算表を作ってみる »

2022.11.28

TrenzElectronic社のTE0802用に自分でLinuxをビルド成功

TrenzElectronic社のTE0802用に自分でLinuxをビルドしていたのですが、はじめて、FSBLからU-Bootからデバイスツリーから全部作ってLinuxを動作させることに成功しました。

Petalinuxは一切使用していません。

Myte0802linux

要点はいくつかあるのですが、

  • Ubuntuのバイナリは、armhf用(つまり32bit)でも64bitのARMは動く
  • Linuxカーネルはもちろんコンパイルしなおす

カーネルをコンパイルするコマンドは、

make ARCH=arm64 UIMAGE_LOADADDR=0x8000

です。

uImageを作るコマンドは

mkimage -n 'TE0802hoge' -A arm64 -O linux -C none -T kernel -a 0x3000000 -e 0x3000000 -d arch/arm64/boot/Image uImage 

です。-n 'TE0802hoge'は名前なので、何でもよいのかもしれません。-a や -e でアドレスを指定していますが、このアドレスがどういう影響があるのかはわかりません。

  • hsiを使って、Vivadoが吐き出したハードウェアエクスポートからデバイスツリーを作るときのカスタマイズは下記のとおり。

まず、system-top.dtsに自分のハードウェアの特色を出したい部分を書きます。(起動時のメッセージとか)

/dts-v1/;
#include "zynqmp.dtsi"
#include "zynqmp-clk-ccf.dtsi"
#include "pcw.dtsi"
/ {
model = "### TOKUDEN Trenz TE0802 v1.1 ###";
chosen {
bootargs = "console=ttyPS0,115200, root=/dev/mmcblk0p2 rw earlyprintk rootfstype=ext4 rootwait devtmpfs.mount=1 earlycon";
stdout-path = "serial0:115200n8";
};
aliases {
ethernet0 = &gem3;
i2c0 = &i2c0;
i2c1 = &i2c1;
serial0 = &uart0;
spi0 = &qspi;
sdhc0 = &sdhci0;
};
memory {
device_type = "memory";
reg = <0x0 0x0 0x0 0x3ff00000>;
};
cpus {
/delete-node/ cpu@2 ;
/delete-node/ cpu@3 ;
};
};
&sdhci0 {
clock-frequency = <187500000>;
status = "okay";
no-1-8-v;
disable-wp;
xlnx,mio-bank = <0x0>;
};

sdhci0にdisable-wpを付けるのは重要です。ハードウェアの構成上、WP(ライトプロテクト)が無いので、WPが無いことを明示的に示しておかないと、なぜか、Linuxの起動時にクラッシュします。それくらいのことで・・と思うのですが仕方ありません。

hsiで作ったUltraScale+用のデバイスツリーのソースをコンパイルするときには、dtcでそのまま変換することはできませんでした。

C言語風のinclude文などが、大量にひっかかっています。

どうやら、dtcに食わせる前にgccを使って変換してからでないといけないようです。それにはLinuxのカーネルをコンパイルしたディレクトリを用いて、

gcc -E -P -x assembler-with-cpp -I $(LINUX_KERNEL_SRCDIR)/arch/arm/boot/dts -I $(LINUX_KERNEL_SRCDIR)/include system-top.dts | dtc -I dts -O dtb -i $(LINUX_KERNEL_SRCDIR)/arch/arm/boot/dts -o hoge.dtb

とコマンドを与えるようです。

 

 

 

それから、真贋判定装置の中継基板の設計を進めました。右側8個のコネクタにも同じように配線を行い、基板上側のコネクタに接続しました。

Np11451128

ここからがなかなか難しい。

 

|

« JTAG出力基板の完成へ | トップページ | 試算表を作ってみる »

コメント

コメントを書く



(ウェブ上には掲載しません)




« JTAG出力基板の完成へ | トップページ | 試算表を作ってみる »