Petalinux2018.3でPLとDevice Treeを動的に変更する のバックアップソース(No.1)

更新

[[公開メモ]]

* 再起動せずにプログラマブルロジック及び Device Tree を更新する [#m94ce4dd]

Device Tree Overlay を使うと Device Tree を更新できる~
- https://okchan08.hateblo.jp/entry/2019/02/05/000000

FPGA Region という機能を使うとプログラマブルロジックを更新できるらしい
- https://okchan08.hateblo.jp/entry/zynq-fpga_region

* Device Tree Overlay [#v5d9c94b]

[[電気回路/zynq/Device Tree Overlay]] ではまだできなかった、
configfs を用いた方法が使えるようになっているみたいだ。

** カーネル設定 [#j404620e]

[[電気回路/zynq/Petalinux2018.3によるzynq-7000ブート用SDカード作成#t9b088e3]] の続きから、

 LANG:console
 $ cd ~/petalinux/zturn-v2018.3/kernel-source
 $ make ARCH=arm menuconfig
  Device Tree and Open Firmware support  ---> 
      [*]   Device Tree overlays
      [*]   Device Tree Overlay ConfigFS interface

Petalinux からカーネルソースを取ってきた場合には
これらは元々チェックが付いていた。

** やりかた [#j424db65]

ブート直後、すでに /sys/kernel/config が使えるようになっていた。

 LANG:console
 $ mount | grep configfs
  configfs on /sys/kernel/config type configfs (rw,relatime)

あとは、

https://okchan08.hateblo.jp/entry/zynq-device_tree_overlay#ConfigFS%E3%81%AE%E6%BA%96%E5%82%99

などを参考にすればいいはず。

** dtc [#s635620b]

 LANG:console
 $ dtc --version
  Version: DTC 1.4.5
 $ dtc --help
  ...
  -@, --symbols
        Enable generation of symbols
  ...

ということで、-@ も使えるようになっていた。

シンボルを使った dts も使えるみたい。

後で試す。

* FPGA Region によるプログラマブルロジック書き換え [#qc05dbec]

** カーネル設定 [#f82da98e]

[[電気回路/zynq/Petalinux2018.3によるzynq-7000ブート用SDカード作成#t9b088e3]] の続きから、

 LANG:console
 $ cd ~/petalinux/zturn-v2018.3/kernel-source
 $ make ARCH=arm menuconfig
  Device Drivers  ---> 
      FPGA Configuration Framework  --->    
          <*> FPGA Region
          <*> Xilinx Zynq FPGA
          <*> FPGA Bridge Framework
          <*> Xilinx LogiCORE PR Decoupler

となっていれば良いらしいのだけれど、Petalinux からカーネルソースを取ってきた場合には
これらは元々チェックが付いているようだ。

** Device Tree 設定 [#mc0ccfe8]

Counter: 2149 (from 2010/06/03), today: 1, yesterday: 0