OpenOCD: ターゲットデバイスとの通信を確立させる (Microsemi)

OpenOCDコマンドを直接実行する時は、

  • Device
  • Interface
  • Target

などを指定し、ボードと通信します

openocd --command "set DEVICE M2S150" --file interface/microsemi-flashpro.cfg --file target/microsemi-cortex-m3.cfg

--command-c--file-f は同じです。

指定されたファイルは、 OpenOCD Search path から探します。オプションは -s

Device

set DEVICE を使って、ターゲットとなるデバイスの指定をする。上記例では M2S150 Microsemi SmartFusion 2 FPGA 150K logic 品です。間違ったデバイスを指定すると

Info : JTAG tap: M2S010.tap tap/device found: 0x1f8061cf (mfg: 0x0e7 (GateField), part: 0xf806, ver: 0x1)
Warn : JTAG tap: M2S010.tap       UNEXPECTED: 0x1f8061cf (mfg: 0x0e7 (GateField), part: 0xf806, ver: 0x1)
Error: JTAG tap: M2S010.tap  expected 1 of 1: 0x0f8031cf (mfg: 0x0e7 (GateField), part: 0xf803, ver: 0x0)
Error: Trying to use configured scan chain anyway...
Warn : Bypassing JTAG setup events due to errors

と言われます。

表示されている HEX番号は JTAG ID。 0x1f8061cf が M2S150、 x0f8031cf はエラー出すためにいれた M2S010。

Configuration files

.cfg ファイルは OpenOCD の配下にあります

  • Linux で OpenOCD パッケージをインストールした場合: /usr/share/openocd/scripts
  • 自分でソースからビルドした場合: tcl/
  • SoftwareConsole version 6.2 の場合: C:\Microsemi\SoftConsole_v6.2\openocd\share\openocd\scripts\

Microsemi

Upstream の OpenOCD には microsemi 系の config ファイルは入っていない場合があります。 Upstream の OpenOCD を使っていて Microsemi 系のデバイスを使いたい場合は、 Microsemi の OpenOCD の scripts/ 以下をサーチパスに指定すると良いです。

ファイルの指定順番は大事です。たとえば microsemi-flashpro.cfg で宣言されている FPGA_TAP という変数が target/microsemi-cortex-m3.cfg で使われたりします。先に target/microsemi-cortex-m3.cfg を指定すると Unknown FPGA_TAP と言われてエラーになります。