Proceedings of the 11th Annual Meeting of Particle Accelerator Society of Japan
August 9-11, 2014, Aomori, Japan

PASJ2014-SUP106

Zynq 搭載 MTCA.4 ボードへの Linux 及び EPICS の組込み
LINUX AND EPICS EMBEDDING ON MTCA.4 FPGA(ZYNQ) BOARD
出口 久城#,A), 岩城 孝志 A), 林 和孝 A), 松本 隆太郎 A), 漁師 雅次 A)
Hisakuni Deguchi #,A), Takashi Iwaki A), Kazutaka Hayashi A), Ryutaro Matsumoto A), Masatsugu Ryoshi A)A)
Mitsubishi Electric TOKKI System Corp.
Abstract
Our present FPGA board has been adopted as many accelerator apparatus, SuperKEKB LLRF, cERL LLRF, and so on since 2009.
The board uses the Xilinx’s “Virtex5” FPGA (PowerPC440 included) in MTCA.0 standard. The user friendly interface (EPICS IOC)was made by Linux embedding on PowerPC. In recent years, embedding devices and technologies have developed greatly bysmartphones. The Linux-OS on ARM-CPU becomes a new mainstream in embedding systems. A new FPGA board has beendeveloped, which is using the Xilinx’s “Zynq” (ARM Cortex-A9 included) and conforming to the new MTCA.4 (MTCA forPhysics) standard. The Zynq evaluation kit and documents (including application notes) were helpful for embedding. Linux andEPICS embedding work has been done on this new Zynq board. The Cortex-A9 computing ability is drastically improved withpower-saving. Since each of CPU and user-logic in Zynq had been independent, the remote update using a network became veryeasy. The new FPGA board embedding Linux and EPICS will be the monitor and controller (LLRF, BPM, and so on) board for the
next generation accelerators.

1.

はじめにSTF、SuperKEKB、及び cERL の LLRF システムには、通信系のプラットフォーム規格である Micro
Telecommunications Computing Architecture 0（MTCA.
0）の FPGA ボードが採用されている[1]。このボードでは、FPGA によるリアルタイム処理を行なっており、更に、FPGA 内蔵プロセッサを利用し、Linux及び EPICS を組み込んでおり、柔軟なユーザインタフェースを実現している。すなわち、FPGA ボード 単 体 で 一 つ の EPICS Input Output Controller（IOC）を形成している。この柔軟な動作環境が加速器制御に適応しているため、先に述べた加速器において、様々な用途（フィードバック制御、チューナ制御、高速インターロック制御、リファレンス位相制御、ビーム位置モニタ）に採用されている。この FPGA ボードへの Linux 及び EPICS 組込みは、SuperKEKB 制御グループの多大なる協力の下に成されたものである[2]。
現行の（前述の）FPGA ボードは当面現役で使用されるが、一方、将来の加速器を見据えて、更なる高度かつ高速な処理、拡張性及び柔軟性も求められてきている。現行のボードでは、組込み Linux には ”Wind River Linux 2.0” を採用しているが、2012年に Wind River Linux のライセンス形態が変更され（大量生産を前提としたライセンス形態となり 1 ライセンス当りの価格が上昇）、該当バージョン（2.0）のサポートも打ち切りとなった。従って、大量生産しない開発者にとっては、（新規開発するための、または既存アプリケーションをリビルドするための）ライセンス更新（または購入）が困難となっている（ただし、Wind River Linux 2.0 を組込み済みのボードを継続使用することは可能）。この 3
年間は Wind River Linux 2.0 を従来のライセンス形態のまま（価格変更無し）で使用できるよう、メーカと調整してきたが、これも永続できるものではない。また、FPGA とその内蔵プロセッサの処理能力や省消費電力性能は、現行のボード開発時（2009年）と比べると飛躍的に伸びており、2012 年には、近年のスマートフォンに代表される組込み機器で実績のある高性能な ARM プロセッサ Cortex-A9 を内蔵した FPGA “Zynq” （Xilinx 社製）が登場した。
そこで今回、この Zynq と、近年加速器制御で注目さ れ て い る MTCA.4 規 格 を 組み合わせた新たなFPGA ボードを開発した（Figure 1）[3]。この新しいMTCA.4 FPGA ボードについても、現行のボードと同様に単体で一つの EPICS IOC となるよう、Linux及び EPICS の組込みを行なった。実際の動作環境
としては、MTCA.4 FPGA ボードを MTCA.4 規格準拠シェルフへ挿入し電源供給され、MTCA Carrier
Hub （ MCH ） を 経 由 し た Ethernet 通 信 と な る（Figure 2）[3]。

___________________________________________#

hi-deguchi@west.melos.co.jp- 1315 -Zynq

Slot of SD card
Figure 1: MTCA.4 FPGA(Zynq) Board
MCHMTCA.4 Board

Figure 2: Installing the board into MTCA.4 shelf

Proceedings of the 11th Annual Meeting of Particle Accelerator Society of Japan
August 9-11, 2014, Aomori, Japan

PASJ2014-SUP106

本稿では、Zynq 搭載 MTCA.4 ボードへの Linux及び EPICS 組込みにおける実行内容、成果及び今後の課題について報告する。

EPICS IOC としての機能は、現行のボードから変更が無い。すなわち、FPGA の処理に対してパラメータ設定やモニタの必要がある。これは、Linuxカーネルレベルでのデバイス・ドライバ（FPGA の2. 開発環境の構築レジスタ・アクセス）の実装となる[7]。基本機能は今回の Linux 及び EPICS の組込みは、Zynq 内蔵 変更が無い（レジスタの物理アドレスが変更されるの ARM プロセッサ Cortex-A9 がターゲット CPU と のみ）ため、現行のボードでのソースコードを再利なる。従って、ARM 用クロス開発環境を構築した。 用し、それを ARM 用にビルドした。ビルドツール
チェーンには、カーネルの make 環境と合わせるた2.1 Linuxめ、PetaLinux を使用した。このデバイス・ドライ
バは、以降、レジスタ・アクセス・ドライバと呼称
現行のボードの FPGA には ”Virtex5” （Xilinx 社する。
製）を採用しており、Virtex5 との組合せにおけるサポートの充実度により、Wind River Linux を採用
3. Linux ポーティング
していたが、今回の Linux 組込みにおいては Wind
River Linux を使用せず、別の組込み Linux を使用
3.1 起動の仕組みすることが求められた。理由は、1. 節で述べたように、新規開発のためのライセンス購入が困難なた
現行のボードは単体では Linux を起動できず、起めであり、かつ ARM + Linux の場合、多くの事例動のために専用のサーバ PC（サービス）が必要でがあるためである。そこで今回採用したのが、あった。すなわち、以下の 2 点についてである。
Xilinx 社が提供している組込み Linux[4]（以降、 u-boot が TFTP により Ethernet 経由で LinuxXilinx Linux と仮称する）である。Xilinx Linuxカーネルをダウンロードするため、TFTP サー（カーネルバージョン：3.9.0-xilinx）には以下の 2バが必要であった。
つの利点がある。
 Linux カーネルがルートファイルシステムを
 ライセンスフリー（無償提供）である。
NFS マウントするため、NFS サーバが必要で マニュアルが豊富である。
あった。
欠点としては、サポートが無いことであるが、今回の開発においては、豊富なマニュアルで十分カバー可能であった。
Xilinx Linux はカーネルソース（デバイスツリー含む）である。Linux 組込みには他に、ブートローダ、ルートファイルシステムが必要である。これらも共に Xilinx 社が提供しており、無償で使用することが可能である（ブートローダは u-boot である）。
ビルドツールチェーンについては、Xilinx Linux のマニュアルに従い、”PetaLinux”[5]を使用した。
PetaLinux はカーネルソースだけでなく、ブートローダ（u-boot）やルートファイルシステム、デバイス・ドライバの開発環境まで含まれる統合的な組込み Linux 開発環境である。今回は、その中のツールチェーンのみを使用した。各々Web からダウンロードし、クロス開発環境用の Linux PC へインストールする。

新しいボードにおいては、上記内容を改善し、ボード単体で Linux 起動までを可能とした。ボード単体で Linux まで起動させるためには、u-boot、Linux カーネル及びルートファイルシステムをボード本体（不揮発性のメモリ等）へ書き込む必要がある。今回の組込みにおいては SD カード（Figure 1）へそれらを書き込み、SD カードブートの仕組みを実装した。Flash メモリ等への書き込みとは異なり、手順が非常に簡単であり（単純なファイルコピー）、作業工数を短縮できることも大きな利点である。一方、EPICS のアプリケーション・レイヤーは、頻繁に変更することとなるため SD カードへ書き込むことは得策ではない。従って、EPICS については NFSマウントし起動することとした（Figure 3）。

2.2 EPICSEPICS の ARM 用ビルドツールチェーンには、Mentor Graphics 社の ”Sourcery CodeBench Lite
2013.05-24 (gcc 4.7.3)” [6]（以降、CodeBench と呼称する）を使用した。Xilinx Linux 同様、ライセンスフリーのビルドツールチェーンである。EPICS のmake 環境においては、CodeBench のディレクトリ構成が標準であり、メイクファイルの修正が容易であったため、CodeBench を使用した。CodeBench についても、Web からダウンロードし、クロス開発環境用の Linux PC へインストールする。
2.3

デバイス・ドライバ

Figure 3: Boot-up configuration of MTCA.4 Board
また、ボードへ電源供給してから EPICS 起動ま- 1316 -Proceedings of the 11th Annual Meeting of Particle Accelerator Society of Japan
August 9-11, 2014, Aomori, Japan

PASJ2014-SUP106での一連の動作については、自動的に行なうものである（現行のボードと変わらない）。自動起動の仕組みについては、ルートファイルシステムを編集し実装した。実装内容としては、以下の 5 つである。
 Linux 自動ログイン
 Ethernet アクティブ（詳細は 3.2 小節を参照）
及び IP アドレスの決定 レジスタ・アクセス・ドライバの自動インストール
 自動 NFS マウント（EPICS 開発ディレクトリを NFS マウントする）
 EPICS（起動スクリプト）自動起動
ソフトウェアとしての、SD カードブートの実現
方法は、Xilinx 社提供のアプリケーション・ノート（リファレンス・デザイン）”XAPP1082” [8] を利用した。ハードウェアとしては、Zynq の開発評価ボードである ”ZC706” をリファレンスとしてボード設計を行ない、SD カードブート可能な回路構成とした。
3.2利用した。XAPP1082 では、Linux カーネルのローダブル・モジュールとして、EMIO 経由 1000BASEX Ethernet ドライバが実装されている。XAPP1082には XAPP1082 環境のパッチファイルが含まれており、そのパッチを Xilinx Linux に適用しビルドすることにより、EMIO 経由 1000BASE-X Ethernet ドライバが利用可能となる。このドライバを Linux 起動後にインストールすることにより、Ethernet がアクテ ィ ブ と な る 。 ま た 、 現 行 の ボ ー ド で は 、 CPUMedia Access Controller（MAC）間の Ethernet データのインタフェースが First In First Out（FIFO）形式であった。新しいボードでは、このインタフェースをDirect Memory Access（DMA）転送形式（Figure 4）に改善し、性能向上を図った。

4.

成果

4.1

起動

ここで改めて起動の仕組みを整理すると、特徴としては以下の 2 つにまとめられる。

Ethernet ドライバ

こ こ で 言 う Ethernet ド ラ イ バ と は 、 デ バ イ ス（ハードウェア）に直結するものであり、u-boot におけるドライバ及び Linux カーネルレベルのドライバ で あ る 。 現 行 の ボ ー ド で は 、 u-boot に お け る
Ethernet ド ラ イ バ （ TFTP 実行のために必要）とLinux カーネルレベルの Ethernet ドライバを実装している。一方、新しいボードは SD カードブートであるため、u-boot においては Ethernet 機能が不要、すなわち u-boot における Ethernet ドライバが不要であり、Linux カーネルレベルの Ethernet ドライバのみの実装となる。これは、開発工数の大幅な削減となる。ドライバはデバイスとのインタフェースとなるため、デバイスの回路構成により、実装もそれに合わせて変更する必要がある。新しいボードの回路
構 成 は Extended Multiplexed I/O （ EMIO ） 経 由
1000BASE-X （Figure 4）[8]であるため、EMIO 経由
1000BASE-X Ethernet ドライバを実装した。

 Linux 起動までを MTCA.4 ボード単体で自動的に行なう。
 EPICS のみを NFS マウントにより動作させる（アプリケーション変更時にフレキシブルな対応が可能）。
ここまで述べた内容を MTCA.4 ボードへインプリメントし、EPICS が起動することを確認できた。
4.2

設定とモニタEPICS IOC の機能確認として、CSS-BOY[9]を用いて設定とモニタを行なった。アプリケーションとしてフィードバック制御の FPGA ロジックと EPICS
IOC を実装し、各 EPICS レコードを CSS-BOY で実装した OPeration Interface（OPI）上から設定、モニタできることを確認した（Figure 5）。

Figure 5: OPI on CSS-BOY
4.3

Figure 4: Zynq Ethernet interface
EMIO 経由 1000BASE-X Ethernet ドライバの実装
方法は、SD カードブートと同じく、XAPP1082 を大容量データの転送

現行のボードでは、EPICS（CPU）がボード上のメモリから 256MBytes のデータを取得し、それをEthernet 経由で転送し、転送先にてファイル出力す- 1317 -Proceedings of the 11th Annual Meeting of Particle Accelerator Society of Japan
August 9-11, 2014, Aomori, JapanPASJ2014-SUP106Time necessary to transfer 256M
Bytes data (typical)
180 seconds

た SD カードへ cp コマンドで FPGA ロジックのファイルをコピーするだけでよい。あとは、ログインしたシェル上で reboot コマンドを実行し、Linuxを再起動すれば、書き換えた FPGA ロジックが起動する。現行のボード（Virtex5）は、Zynq のような構造ではなく SD カードブートでないため、FPGAロジックの書き換えのためには専用のインタフェース（プログラム）を準備しなければならないが、新しいボードは、Linux の既存機能のみで、FPGA の書き換えから再起動まで全てリモートで行なうことが可能なのである。

20 seconds

6.

る機能を実装していた。新しいボードにおいても同様の機能を実装し、転送性能の比較を行なった。新しいボードは、現行のボードの約 9 倍の性能という結果を得られた（Table 1）。20 秒という結果についても、運用に耐えうる性能である。
Table 1: Performance of transferring large-volume data
Kind of boards
Present board@SuperKEKB
MTCA.4 board

性能向上の要因として、以下の 3 つが挙げられる。
 CPU がボード上のメモリからデータを取得するインタフェース（CPU の内部バス）に、Advanced eXtensible Interface 4（AXI-4）バスを使用した[3]。現行のボードでは Processor Local
Bus（PLB）を使用していた。
 CPU-MAC 間の Ethernet データのインタフェー
スを DMA 転送形式とした（Figure 4）。現行のボードでは FIFO 形式であった。
 プロセッサが高性能な ARM となった。現行のボードでは、PowerPC440（Virtex5 内蔵）であった。
4.4

応用まとめ

今回、Xilinx 社製の FPGA である Zynq を搭載した MTCA.4 ボードを開発し、そこへ Linux 及びEPICS を組み込んだ。ターゲット CPU は、Zynq 内蔵の ARM プロセッサ Cortex-A9 である。組込みLinux には、Xilinx Linux（Xilinx 社無償提供）を使用 し た 。 Ethernet ドライバの実装には XAPP1082（Xilinx 社無償提供のリファレンス・デザイン）を利用した。Linux 起動に必要なデータを、MTCA.4ボードに実装した SD カードへ書き込み、Linux 起動までを MTCA.4 ボード単体で自動的に行なえるにした。EPICS のみ NFS マウントとすることにより、EPICS のアプリケーション・レイヤー変更時にフレキシブルな対応を可能とした。EPICS IOC としての機能は、CSS-BOY で実装した OPI により確認した。
256MBytes のデータ転送性能は現行のボードの約 9倍という結果が得られ、運用に耐えうるものであることを確認できた。また、Zynq の特性を活かし、Ethernet 経由による FPGA ロジックの書き換え（リモートアップデート）を実現した。

新しいボードの応用・今後の課題としては、やはり、ARM プロセッサ Cortex-A9 の能力を発揮させるアプリケーション開発である。例えば、現行のボードの EPICS では、4096 点の I,Q 及び振幅位相データを Waveform レコードとしてモニタしているが、新しいボードでは、これに加えて FFT 処理を 参考文献
EPICS で行なうことも考えられる。また、CW 加速器の振幅位相のフィードバック制御は FPGA ロジッ [1] M. Ryoshi et al., “LLRF Board in Micro-TCAPlatform”, Proceedings of the 7th Annual Meeting ofクで行なっているが、短いパルス運転の加速器では、Particle Accelerator Society of Japan, Himeji, Aug.,
パルス内での制御は FPGA ロジックでも間に合わな2010.
いため、パルス間でのフィードバック制御を上位シ[2]J. Odagiri et al., “Fully Embedded EPICS-Basedステムで行なっている。これをボード上の EPICS
Controlof Low Level RF System for SuperKEKB”,
で行ない、よりフレキシブルな環境を構築できる可Proceedingsof the IPAC’10, Kyoto, Japan, May,能性がある。
2010.
[3] M. Ryoshi et al., “MTCA.4 FPGA(Zynq) Board”, in
5. リモートアップデート
this meeting.
最後に、Zynq の特性を活かした機能について述 [4] http://www.wiki.xilinx.com/Getting+Started
べる。Zynq は、Processing System（PS）と呼ばれる [5] http://www.wiki.xilinx.com/PetaLinuxシ ス テ ム （ CPU を含めたハードウェア）部分と [6] http://www.mentor.com/embedded-software/sourceryProgrammable Logic（ PL ） と 呼 ば れ る ユ ー ザ ・ ロ
tools/sourcery-codebench/editions/lite-edition/
ジック部分とに完全に分離された構造となっている [7] H. Deguchi et al., “EPICS Embedding for[10]。この特性により、CPU が起動した状態のまま、SuperKEKB LLRF System”, Proceedings of the 8th
FPGA ロジックの書き換えが可能なのである。更に、
Annual Meeting of Particle Accelerator Society ofSD カードブート機能と組み合わせることにより、Japan, Tsukuba, Aug., 2011.
Ethernet 経由で FPGA ロジックを簡単に書き換える [8] http://www.xilinx.com/support/documentation/applicことができる。FPGA ロジックはファイルとしてation_notes/xapp1082-zynq-eth.pdf
SD カードに保存されているため、ボードへ telnet [9] http://www-linac.kek.jp/cont/epics/css/
等でログインし、ファイルシステムにマウントされ [10] http://www.xilinx.com/support/documentation/user_-- 1318 -Proceedings of the 11th Annual Meeting of Particle Accelerator Society of Japan
August 9-11, 2014, Aomori, Japan

PASJ2014-SUP106

guides/ug585-Zynq-7000-TRM.pdf- 1319 -