Memorandum about updating Embedded FlashPro6 on the PolarFire SoC Icicle Kit.
備忘録です。この情報、ネットで一生懸命探しても見つけるのが困難なので、以下に参考 URL をメモしておきます。Microchip は、PolarFire SoC を売る気があまりないのか、ドキュメンテーションがうまくまとまっていないような気がします。(PolarFire SoC をずっと応援してきたので、ちょっと残念。)
- PolarFire Icicle Kit FlashPro6 Programming not work with SoftConsole project | Microchip
- Microchip SoftConsole v2021.1 [PDF]
私もまだ試していませんが、近いうちにアップデートしてみたいと思っています。
後記(2021/10/05)
以下のアップデートで、オンボードの embedded FlashPro6 で OpenOCD は動くようになりますが、FPExpress v2021.2 による FPGA の書き込みは、Error: Failed to open eFP6 HID handle. というエラーが出てダメでした。(リリースノートにある workaround も参考にしたのですが、ダメ。)
アップデートしてみました
以下に手順を簡単にまとめておきます。
- まず、Microchip SoftConsole v2021.1 [PDF] を参考にして、Libero SoC v12.5 SP1 Release Notes をダウンロードします。
- そのリリースノートにある、セクション 1.2 Support for Embedded FlashPro6 on iCicle Kit を参考に、搭載の Icicle Kit 上の Embedded FlashPro6(以下 FP6)のファームウェア(ビットストリーム)のバージョンを確認します。私は Linux 上で lsusb を実行しましたが分からなかったので、dmesg コマンドで確認しました。
usb 1-1.2: Product: Embedded FP6
のようなメッセージが出ている場合は、古いファームウェアです。
usb 1-1.2: Product: Embedded FP6b
となっていれば新しいバージョン(アップデートは不要)です。
- 次に、上記ドキュメントにあるように job ファイルと README を入手します。README.pdf を読みます。
- README.pdf の説明は十分丁寧なので、すぐにやり方は分かると思います。ここで FPExpress が必要になります。私は、以前にインストールした Libero SoC v12.5 同梱の FPExpress を使いましたが、うまくいきました。
注意点として、このバージョンの FPExpress は FlashPro5 には対応していますが、Embedded FP6 には対応していないようです。つまり、外付けの FlashPro5 経由で Embedded FP6(用の FPGA である
SmartFusion2 SoC)をアップデートすることはできますが、Embedded FP6 とお話する機能はない、ということになります。
私の今回の目的は、Embedded FP6 のバージョンを「b」に上げることなので、これで良しとします。 - Icicle Kit 上のジャンパスイッチを変更します。今までは外付け FlashPro5 を使っていましたが、今後はオンボードの Embedded FP6 を使いたいからです。そのためには、Icicle Kit のユーザーガイドを参考に、ジャンパ J9 をオープンからショート(close)に変更します。
- 続いて、SoftConsole から Embedded FP6 経由で OpenOCD が起動できるか確認します。私が以前インストールした SoftConsole v6.4 は Embedded FP6 に対応していないようなので、SoftConsole v2021.1 をインストールしました。
- インストール後の注意点としては、/etc/udev/rules.d/ への対応が必要なことです。(つまり、デフォルトでは root しか USB 経由で Embedded FP6 にアクセスできないのです。)SoftConsole v2021.1 Release Notes の Post installation steps を参考に、/etc/udev/rules.d/ を修正してください。
- 最後に、OpenOCD を起動してみました。
$HOME/Microchip/SoftConsole-v2021.1/openocd/bin/openocd \ --command "set DEVICE MPFS" \ --file board/microsemi-riscv.cfg
無事に起動したようです。
xPack OpenOCD (Microchip SoftConsole build), x86_64 Open On-Chip Debugger 0.10.0+dev-00859-g95a8cd9b5-dirty (2020-10-21-21:16) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html MPFS Info : only one transport option; autoselect 'jtag' Info : Hardware thread awareness created do_board_reset_init Info : Listening on port 6666 for tcl connections Info : Listening on port 4444 for telnet connections Info : Embedded FlashPro6 (revision B) found (USB_ID=1514:200b path=/dev/hidraw0) Info : Embedded FlashPro6 (revision B) CM3 firmware version: F4.0 Info : clock speed 6000 kHz Info : JTAG tap: mpfs.cpu tap/device found: 0x0f81a1cf (mfg: 0x0e7 (GateField), part: 0xf81a, ver: 0x0) Info : datacount=2 progbufsize=16 Info : Disabling abstract command reads from CSRs. Info : Core 0 could not be made part of halt group 1. Info : Examined RISC-V core; found 5 harts Info : hart 0: XLEN=64, misa=0x8000000000101105 Info : hart 1: currently disabled Info : hart 2: currently disabled Info : hart 3: currently disabled Info : hart 4: currently disabled
今日はここまで。