Edited at

Python で FPGA/Zybo Linux を立ち上げる


Zybo Linux を立ち上げる

Zybo での Linux 環境は先人が作ってくれたうえで公開してくれてます。ありがとう。

https://github.com/ikwzm/FPGA-SoC-Linux


なんとなく Linux をインストール

この辺を見ながら Linux をインストール

https://github.com/ikwzm/FPGA-SoC-Linux/blob/master/doc/install/zynq-zybo.md


とりあえずそのまま立ち上げる

すると、もともとあった design_1_wrapper.bit が立ち上がります。4つの LED が点滅します。


design_1_wrapper.bit を入れ替え

するとうまく LED0 だけが点滅します。

image.png


あれ~~ Linux が立ち上がらない

image.png

う~ん。たぶん、期待している dts と違っているのでしょうか?ただ dts をみても特別に違うような感じはしませんでした。bitfile を元に戻すとうまくいきます。

image.png

単純にはうまくいきませんでした。


これはどうやら UART の設定 (2019.3.29 追記)

これはどうやら UART の設定のようです。dts に 2つ UART を動作するように書いたのですが、これにより UART のデバイス番号がずれて、ちゃんと立ち上がっているのにも拘わらず、TeraTerm からは見れないという現象のようです。これを回避するには単純で dts の UART 順番を変えます。簡単!!


Zynq の IP コアを追加

全く何もしない Zynq 用の processing_system7_0 を追加することにしました。よく見ると(見なくても)DDR とか FIXED_IO とかありますね。いままで気にも留めなかったのですが。でも Linux 動作時に fpga の入れ替えもできるので、なぜ、本質的にこれが必要かわかりません。そういえば、64bit の Zynq では PL の電源を off にすることができますから、本質的には PS と PL は切れているはず。

image.png


Linux たちあがる

ということで、Linux も立ち上がり、ほぼ、ARM 側と関係のない IP コアの世界を構築することが出来ました(意味あるかどうかは不明)。

image.png