PolarFire SoC Icicle キットの Embedded FlashPro6 アップデート

(更新

Memorandum about updating Embedded FlashPro6 on the PolarFire SoC Icicle Kit.

備忘録です。この情報、ネットで一生懸命探しても見つけるのが困難なので、以下に参考 URL をメモしておきます。Microchip は、PolarFire SoC を売る気があまりないのか、ドキュメンテーションがうまくまとまっていないような気がします。(PolarFire SoC をずっと応援してきたので、ちょっと残念。)

私もまだ試していませんが、近いうちにアップデートしてみたいと思っています。

後記(2021/10/05)

以下のアップデートで、オンボードの embedded FlashPro6 で OpenOCD は動くようになりますが、FPExpress v2021.2 による FPGA の書き込みは、Error: Failed to open eFP6 HID handle. というエラーが出てダメでした。(リリースノートにある workaround も参考にしたのですが、ダメ。)

アップデートしてみました

以下に手順を簡単にまとめておきます。

  1. まず、Microchip SoftConsole v2021.1 [PDF] を参考にして、Libero SoC v12.5 SP1 Release Notes をダウンロードします。
  2. そのリリースノートにある、セクション 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

    となっていれば新しいバージョン(アップデートは不要)です。

  3. 次に、上記ドキュメントにあるように job ファイルと README を入手します。README.pdf を読みます。
  4. README.pdf の説明は十分丁寧なので、すぐにやり方は分かると思います。ここで FPExpress が必要になります。私は、以前にインストールした Libero SoC v12.5 同梱の FPExpress を使いましたが、うまくいきました。
    注意点として、このバージョンの FPExpress は FlashPro5 には対応していますが、Embedded FP6 には対応していないようです。つまり、外付けの FlashPro5 経由で Embedded FP6(用の FPGA である
    SmartFusion2 SoC)をアップデートすることはできますが、Embedded FP6 とお話する機能はない、ということになります。
    私の今回の目的は、Embedded FP6 のバージョンを「b」に上げることなので、これで良しとします。
  5. Icicle Kit 上のジャンパスイッチを変更します。今までは外付け FlashPro5 を使っていましたが、今後はオンボードの Embedded FP6 を使いたいからです。そのためには、Icicle Kit のユーザーガイドを参考に、ジャンパ J9 をオープンからショート(close)に変更します。
  6. 続いて、SoftConsole から Embedded FP6 経由で OpenOCD が起動できるか確認します。私が以前インストールした SoftConsole v6.4 は Embedded FP6 に対応していないようなので、SoftConsole v2021.1 をインストールしました。
  7. インストール後の注意点としては、/etc/udev/rules.d/ への対応が必要なことです。(つまり、デフォルトでは root しか USB 経由で Embedded FP6 にアクセスできないのです。)SoftConsole v2021.1 Release Notes  の Post installation steps を参考に、/etc/udev/rules.d/ を修正してください。
  8. 最後に、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

今日はここまで。

お問い合わせはお気軽に!

お問い合わせを頂いた後、継続して営業活動をしたり、ニュースレター等をお送りしたりすることはございません。
御返答は 24時間以内(営業時間中)とさせて頂いております。必ず返信致しますが、時々アドレス誤りと思われる返信エラーがございます。返答が届かない場合、大変お手数ではございますが別のメールアドレスで督促頂けますと幸いです。