FPGA+SoC+LinuxでFPGA Managerを試してみた(まとめ2)

## 注意(2017年7月29日追記)

この記事は Linux Kernel 4.4 時点に投稿したものであり、古い内容が含まれています。Linux Kernel 4.10 以降、FPGA 関連は大きく進歩しました。詳しくは[「Linux Kernel 4.10 でのFPGAのサポート事情」](http://qiita.com/ikwzm/items/2ff7d5429da8ace7c0bd)を参照してください。

## はじめに

次の記事で紹介したように、Linux  Kernel 4.4.4 からFPGA Manager Framework が追加されました。

* [「FPGA+SoC+LinuxでFPGA Managerを試してみた」@Qiita](http://qiita.com/ikwzm/items/9eb4d49545636162057e)


実際にどのようになっているのか、どうのように使うのかを調べるために、人柱的な感じで試用してみました。これらの実施例は次の記事を参考にしてください。

* [「FPGA+SoC+Linux+Device Tree Overlay+FPGA Manager(ブートイメージの提供)」@Qiita](http://qiita.com/ikwzm/items/cdeb3c9c352776eac683)
* [「FPGA+SoC+Linux+Device Tree Overlay+FPGA Manager(ZYBO-Examples)」@Qiita](http://qiita.com/ikwzm/items/61ea3c5a037b83006f17)
* [「FPGA+SoC+Linux+Device Tree Overlay+FPGA Manager(DE0-Nano-SoC-Examples)」@Qiita](http://qiita.com/ikwzm/items/ca6229d4e32fb421b0a9)


そして2016年5月の時点で __時期尚早__ という結論を出しました。詳細は次の記事に書きました。

* [「FPGA+SoC+LinuxでFPGA Managerを試してみた(まとめ)」@Qiita](http://qiita.com/ikwzm/items/393d483131bcf6ad7cb0)

この記事ではその後ちょっと気になる情報を入手したので紹介します。


## Linux Kernel for ARM Processors メーリングリストの記事

その後(2016年7月)、Linux Kernel for ARM Processors のメーリングリストに次のようなやりとりがありました。

* [FPGA manager user space interface](http://www.spinics.net/lists/arm-kernel/msg517417.html), _Florian Fainelli_
  + [Re: FPGA manager user space interface](http://www.spinics.net/lists/arm-kernel/msg517563.html), _Michal Simek_
  + [Re: FPGA manager user space interface](http://www.spinics.net/lists/arm-kernel/msg517648.html), _atull_
    - [Re: FPGA manager user space interface](http://www.spinics.net/lists/arm-kernel/msg517654.html), _Florian Fainelli_
      * [Re: FPGA manager user space interface](http://www.spinics.net/lists/arm-kernel/msg517906.html), _atull_
        + [Re: FPGA manager user space interface](http://www.spinics.net/lists/arm-kernel/msg517906.html), _Florian Fainelli_

atull (Alan Tull) という方は FPGA Manager の作者です。次のような資料も書いてらっしゃいます。

 - [「Reprogrammable Hardward under Linux」Alan Tull Altera Corp Embedded Linux Group ELC Dublin 2015](http://events.linuxfoundation.org/sites/events/files/slides/FPGAs-under-Linux-Alan-Tull-v1.00.pdf)


で、この方の返信に次のような記述があったのが気になりました。

> Sysfs and char driver interfaces have been proposed and shot down
> a few times already.

「SysFS と Char Driver interface が提案されたけど、すでに数回、撃墜されています(shot down)」

> There will be use cases that will need various userspace interfaces.
> It's been hard to get people who are already using FPGAs to agree
> on using any one interface because they would have to change the
> code they already have running.

「様々なユーザー空間インターフェースが必要なユースケースがあります。彼らが実行しているコードを変更する必要があるので、既にいずれかの FPGAのインターフェースを使用している人々の同意を得るのは困難です。」


## 所感

作者の投稿をみると、どうやら Linux Kernel の本家に FPGA manager user space interface が導入される見込みは低いようです。

個人的は Linux Kernel 本家が正式にフルサポートするのを期待していただけに非常に残念です。

現状では、FPGA manager はカーネル内からしか使えません。FPGA manager を使うためにはカーネルプログラム(デバイスドライバ)を書く必要があります。

どうしても使ってみたいと言う方は次の記事を参考にしてください。ユーザー空間から FPGA manager を制御する簡易的なデバイスドライバと使用例を提供しています。

* [「FPGA+SoC+LinuxでFPGA Managerを試してみた」@Qiita](http://qiita.com/ikwzm/items/9eb4d49545636162057e)
* [「FPGA+SoC+Linux+Device Tree Overlay+FPGA Manager(ブートイメージの提供)」@Qiita](http://qiita.com/ikwzm/items/cdeb3c9c352776eac683)
* [「FPGA+SoC+Linux+Device Tree Overlay+FPGA Manager(ZYBO-Examples)」@Qiita](http://qiita.com/ikwzm/items/61ea3c5a037b83006f17)
* [「FPGA+SoC+Linux+Device Tree Overlay+FPGA Manager(DE0-Nano-SoC-Examples)」@Qiita](http://qiita.com/ikwzm/items/ca6229d4e32fb421b0a9)
* [http://github.com/ikwzm/fpgacfg](http://github.com/ikwzm/fpgacfg)
* [http://github.com/ikwzm/FPGA-SoC-Linux](http://github.com/ikwzm/FPGA-SoC-Linux)