電気回路/zynq の変更点

更新


* 2018.3 による作業履歴 [#kc37dfd8]

Petalinux 2018.3 で z-turn という zynq ボードに Ubuntu 18.04LTS ベースの開発環境を整え、外部からブラウザアクセスで zynq 内のレジスタを制御できるところまでなんとかこぎ着けました。

fpga-region, device tree overlay, uio, axi_gpio など使いました。

#ref(電気回路/zynq/httpを用いたデバイス制御/form-styled.png,,50%);

~

以下で作成した汎用コードは MIT ライセンスにて公開しています。~
https://github.com/osamutake/zynq-utils/

- [[電気回路/zynq/Petalinux2018.3環境を整える]]
-- VirtualBox へ Ubuntu 16.04LTS をインストール
-- Petalinux 2018.3 のインストール

- [[電気回路/zynq/Petalinux2018.3によるzynq-7000ブート用SDカード作成]]
-- BOOT.BIN
--- fsbl.elf : vivado で作成
--- u-boot.elf : petalinux で作成
-- uEnv.txt : 手で書いた
-- uImage : petalinux で作成 カーネルバージョンは 4.14.0
-- system.dtb : petalinux で作成
-- rootfs : Ubuntu 18.04LTS を導入
--- LAN 接続時に時刻合わせ

- [[電気回路/zynq/Petalinux2018.3でPLとDevice Treeを動的に変更する]]
-- Device Tree Overlay で再起動なく Device Tree を変更する
--- [[Device Tree書き換え用スクリプト>電気回路/zynq/Petalinux2018.3でPLとDevice Treeを動的に変更する#b87fd39f]]
-- FPGA Region で再起動なくプログラマブルロジックを書き換える
--- [[PL書き換え用スクリプト>電気回路/zynq/Petalinux2018.3でPLとDevice Treeを動的に変更する#gb07ac62]]
-- Device Tree Overlay をしやすいように system.dtb にシンボルを埋め込む 

- [[電気回路/zynq/Petalinux2018.3でaxi_gpio]]
-- vivado で IP の設定&接続
-- axi_gpio ドライバを用いた入出力
--- デバイスツリーの設定
--- /sys/class/gpio/gpio*/value による単純入出力
--- 割り込みの使い方(未検証)
-- generic_uio を用いた入出力
--- デバイスツリーの設定
--- [[uio汎用制御プログラム>電気回路/zynq/Petalinux2018.3でaxi_gpio#ma01034d]]

- [[電気回路/zynq/Petalinux2018.3でキャラクタLCD制御(ST7032i)]]
-- i2c-1 を使って ST7032i を制御する
-- LAN 接続時に dhcp で得た IP アドレスを LCD に表示する

- [[電気回路/zynq/自動起動の設定]]
-- 起動時に /boot/design_1_wapper.bin および /boot/dtso/*.dtso を読み込む
-- /boot/fpga_init.d/* に start を付けて実行する

- [[電気回路/zynq/httpを用いたデバイス制御]]
-- cgi から uio コマンドを呼ぶ形で、ブラウザから http 経由でレジスタを読み書きする


* 2016.4 による作業履歴 [#c24d6c93]

z-turn ボードというのを買いまして、そこに載っている zynq 7020 
の動かし方を調べる、という流れで勉強しています

- [[電気回路/z-turn/基本事項]]
-- z-turn ボード付属の SD カードのロジック部分を書き換え、
ソフトウェアを追加して動作させるための基本手順を勉強しました
-- 付属 DVD の led チカ サンプルを動作させることができました
-- generic-uio で自作 IP へアクセスできました(次の [AXI バスを利用] の内容ともかぶっています)
- [[電気回路/HDL/VivadoでAXIバスを利用]]
-- AXI-Lite Slave, AXI-Stream master を自作 IP に実装して、
Linux から使う方法を勉強しました
- [[電気回路/z-turn/linux kernel のビルド]]
-- Xilinx Linux カーネルをビルドしてみましたが、常用させられるほどの安定性を得られませんでした
-- 下で Petalinux をいじった際に判明した対処でさらなる安定動作を狙える可能性もありますが、
こちらで頑張るより Petalinux を追う方がメリットが大きそうだったので、とりあえず中断
-- ここでの試行錯誤で得た知識は Petalinux のビルドにずいぶん役立ちました
- [[電気回路/z-turn/Linuxの設定]]
-- z-turn ボードに付属の Linux カーネルを、新規にインストールした Debian
ディストリビューション (jessie) とともに使う方法を調べました
- [[電気回路/zynq/Petalinux のビルド]]
-- Xilinx の Linux パッケージングシステム Peta Linux で、
とりあえず z-turn ボードを起動可能な SD カードを作れるところまで作業しました
- [[電気回路/zynq/Petalinux のカスタマイズ]]
-- BOOT.BIN + uEnv.txt + uImage + system.bit.bin + devicetree.dtb の構成にしました
-- ディストリビューションも Ubuntu に差し替えています
- [[電気回路/zynq/Device Tree Overlay]]
-- Linux の再起動をせずに Device Tree を書き換えることができるようになりました~
~
- [[電気回路/zynq/Linux に平行してベアメタルプログラムを走らせる]]
-- Petalinux のインストールはこの布石でした
-- まだ道半ばです

* 以下、関連ページ一覧です [#n7d0396c]

** zynq [#w80db1ac]

#ls2(電気回路/zynq);

** z-turn [#y6d3c621]

#ls2(電気回路/z-turn);

** vivado [#kfb30f5d]

#ls2(電気回路/HDL/Vivado);

Counter: 9477 (from 2010/06/03), today: 5, yesterday: 0