フォト
無料ブログはココログ

« 改訂新版 定本 トロイダル・コア活用百科 | トップページ | なぜマネジメントは壁につきあたるのか »

2012年6月13日 (水)

urJTAG(1)

urJTAGでバウンダリスキャンしてみる
LCMXO2280とFT2232Hが載っているLCMXO2280 break out board(LCMXO228-BB-ENV)を買ってみた。
Lcmxo2280_bb_env

LCMXO2280C-B-ENVをurJTAGでバウンダリスキャンするまでのメモ

  1. ダウンロード
    urJTAGのページ
    から最新版をダウンロードしてインストール
  2. 実行
    インストールディレクトリのjtag.exeを実行すると、メッセージが表示された後に、プロンプト( jtag> ) が表示され、コマンドが入力できるようになる。
    helpコマンドで使えるコマンドが表示される。また、"help コマンド"でコマンドの詳細が表示される
    UrJTAG 0.10 #1502
    Copyright (C) 2002, 2003 ETC s.r.o.
    Copyright (C) 2007, 2008, 2009 Kolja Waschk and the respective authors

    UrJTAG is free software, covered by the GNU General Public License, and you are
    welcome to change it and/or distribute copies of it under certain conditions.
    There is absolutely no warranty for UrJTAG.

    WARNING: UrJTAG may damage your hardware!
    Type "quit" to exit, "help" for help.

    jtag> help Command list:

    quit          exit and terminate this session
    help          display this help
    frequency     setup JTAG frequency
    cable         select JTAG cable
    reset         reset JTAG chain
    discovery     discovery of unknown parts in the JTAG chain
    idcode        Read IDCODEs of all parts in a JTAG chain
    detect        detect parts on the JTAG chain
    signal        define new signal for a part
    scan          read BSR and show changes since last scan
    salias        define an alias for a signal
    bit           define new BSR bit
    register      define new data register for a part
    initbus       initialize bus driver for active part
    print         display JTAG chain list/status
    part          change active part for current JTAG chain
    bus           change active bus
    instruction   change active instruction for a part or declare new instruction
    shift         shift data/instruction registers through JTAG chain
    dr            display active data register for a part
    get           get external signal value
    test          test external signal value
    shell         shell cmmd
    set           set external signal value
    endian        set/print endianess
    peek          read a single word
    poke          write a single word
    pod           Set state of POD signal(s)
    readmem       read content of the memory and write it to file
    writemem      write content of file to the memory
    detectflash   detect parameters of flash chips attached to a part
    flashmem      burn flash memory with data from a file
    eraseflash    erase flash memory by number of blocks
    script        run command sequence from external file
    include       include command sequence from external repository
    addpart       manually adds parts on the JTAG chain
    usleep        Sleep some number of microseconds
    svf           execute svf commands from file
    bsdl          manage BSDL files
    debug         debug jtag program

    Type "help COMMAND" for details about a particular command.
    jtag>
  3. ケーブルの選択
    urjtag>help cableで使用できるケーブルのリストが表示される。
    このボードにはFT2232Hが載っているのでFT2232(Generic FTDI FT2232 Cable)を使う。urjtag>cable ft2232 helpでFT2232ドライバのパラメータが表示される。

    jtag> help cable Usage: cable DRIVER [DRIVER_OPTS]
    Select JTAG cable type.

    DRIVER      name of cable
    DRIVER_OPTS options for the selected cable

    Type "cable DRIVER help" for info about options for cable DRIVER.

    List of supported cables:
    ARCOM         Arcom JTAG Cable
    ByteBlaster   Altera ByteBlaster/ByteBlaster II/ByteBlasterMV Parallel Port Down
    load Cable
    UsbBlaster    Altera USB-Blaster Cable
    FT2232        Generic FTDI FT2232 Cable
    JTAGkey       Amontec JTAGkey (FT2232) Cable
    ARM-USB-OCD   Olimex ARM-USB-OCD[-TINY] (FT2232) Cable
    gnICE         Analog Devices Blackfin gnICE (FT2232) Cable (EXPERIMENTAL)
    OOCDLink-s    OOCDLink-s (FT2232) Cable (EXPERIMENTAL)
    Signalyzer    Xverve DT-USB-ST Signalyzer Tool (FT2232) Cable (EXPERIMENTAL)
    Turtelizer2   Turtelizer 2 Rev. B (FT2232) Cable (EXPERIMENTAL)
    USB-to-JTAG-IF USB to JTAG Interface (FT2232) Cable (EXPERIMENTAL)
    Flyswatter    TinCanTools Flyswatter (FT2232) Cable
    usbScarab2    KrisTech usbScarabeus2 (FT2232) Cable
    DLC5          Xilinx DLC5 JTAG Parallel Cable III
    EA253         ETC EA253 JTAG Cable
    EI012         ETC EI012 JTAG Cable
    IGLOO         Excelpoint IGLOO JTAG Cable
    KeithKoep     Keith & Koep JTAG cable
    Lattice       Lattice Parallel Port JTAG Cable
    MPCBDM        Mpcbdm JTAG cable
    TRITON        Ka-Ro TRITON Starterkit II (PXA255/250) JTAG Cable
    WIGGLER       Macraigor Wiggler JTAG Cable
    WIGGLER2      Modified (with CPU Reset) WIGGLER JTAG Cable
    xpc_int       Xilinx Platform Cable USB internal chain
    xpc_ext       Xilinx Platform Cable USB external chain
    jlink         Segger/IAR J-Link, Atmel SAM-ICE and others.

    jtag> cable ft2232 help Usage: cable FT2232 [vid=VID] [pid=PID] [desc=DESC] [driver=DRIVER]

    VID        vendor ID (hex), defaults to 0000
    PID        product ID (hex), defaults to 0000
    DESC       Some string to match in description or serial no.
    DRIVER     usbconn driver, either ftdi-mpsse or ftd2xx-mpsse
               defaults to ftd2xx-mpsse if not specified

    jtag> cable ft2232 Connected to libftd2xx driver.
    jtag>

     

    FTDIのFT2232を使ったケーブルはたいてい使えるようだ。他にAlteraのUSB-Blasterにも対応している。
     
  4. デバイスの識別
    IDCODEを表示させて、デバイスを自動識別させる(jtag> detect)が識別されない。
    jtag> cable ft2232 Connected to libftd2xx driver.
    jtag> idcode
    Reading 0 bytes if idcode
    Read 01000011 11010000 00101000 00000001 00000000 00000000 00000000 00000000
    jtag> detect IR length: 8
    Chain length: 1
    Device Id: 00000001001010001101000001000011 (0x000000000128D043)
      Manufacturer: Lattice Semiconductors
      Unknown part!
    chain.c(149) Part 0 without active instruction
    chain.c(200) Part 0 without active instruction
    chain.c(149) Part 0 without active instruction
    jtag>

    DeviceIDは取得できているが、urJTAGにはデフォルトでLCMXO2280Cが登録されていないので、Unknown part!となる。
    自動機別させるためにはjrJTAGにLCMXO2280を登録する必要がある。
     
  5. デバイスの登録
    LCM2280C-B-ENVに使用されているチップは ftBGA256なので、以下のcaBGAはftBGAに読み替えること。(2012/7/19)

     LatticeのサポートページからLCMXO2280C caGBA256のBSDLファイル(lcmxo2280c_cabga256.bsm)をダウンロードする。
    lcmxo2280_cabga256.bsmをエディタで開いて”IDCODE_REGISTER”を探すと、detectコマンドで表示されたDeviceIDがCompany code, Device specific number, Version numberに分かれていることが分かる。この情報を元に識別用の情報をurJTAGに登録する。
     
    ---lcmxo2280c_cabga256.bsm---
        :
    --IDCODE and USERCODE register definition
        attribute IDCODE_REGISTER of LCMXO2280C_XXB256 : entity is
            "0000" &    --Version number
            "0001001010001101" &    --Device specific number
            "000001000011";    --Company code

        :

    Company Codeは、~\urJTAG\data\MANUFACTURERSに既に登録されている。LCMXO2280C-caBGA256の登録方法は次のとおり
    1. ~\urJTAG\data\lattice\PARTSの編集
      PARTSの最終行にlcmxo2280c-cabga256とDevice specific number を登録する。
      ---PARTS---
      0001001010001101  lcmxo2280c-cabga256   LCMXO2280-caBGA256
       
    2. ~\urJTAG\data\lattice\lcmxo2280c-cabga256ディレクトリの作成
      ~\urJTAG\data\lattice\lcmxo2280c-cabga256ディレクトリを作って、その中にSTEPPINGSとlcmxo2280c-cabga256を作る。
      STEPPINGSにはVersion numberを記述する。
      ---STEPPING---
      # bits 31-28 of the Device Identification Register
      0000    lcmxo2280c-cabga256    0


      lcmxo2280c-cabga256には内部レジスタとピンの情報を記述する。
       
    3. ~\urJTAG\data\lattice\lcmxo2280c-cabga256\lcmxo2280c-cabga256の作成
      bsdlコマンドを使用すると自動的にbsdlファイルからinstructionコマンド、signalコマンド、bitコマンドを作成してくれる。
      urjtag> bsdl dump lcmxo2280c_cabga256.bsm
                         (dump が抜けていた! 2013/10/2)
      の結果をlcmxo2280c-cabga256にコピペする。urJTAG.exeを起動後プロパティで画面バッファサイズを大きくしておかないとコマンド実行結果が全てコピペできない。

      または、bsdlコマンドを記述したbsdl.txtを作り、lcmxo2280c_cabga256.bsmと同じディレクトリに置いて、
      ---bsdl.txt---
      bsdl dump lcmxo2280c_cabga256.bsm

      c:\hoge> urJTAG\jtag.exe bsdl.txt > lcmxo2280c-cabga256


      で作る。先頭数行のwarnigは削除しておく。
       
  6. 自動識別
    detectコマンドで自動識別させてみる。
    jtag> cable ft2232 Connected to libftd2xx driver.
    jtag> detect IR length: 8
    Chain length: 1
    Device Id: 00000001001010001101000001000011 (0x000000000128D043)
      Manufacturer: Lattice Semiconductors
      Part(0):         LCMXO2280-caBGA256
      Stepping:     0
      Filename:     c:\program files\urjtag\data/lattice/lcmxo2280c-cabga256/lcmxo2280c-cabga256

    jtag>

このブログので長文&&HTMLレベルの編集をしようとすると大変だ。
その都度修正ということで...


竹本浩さんのページUrJtagを使うを参考にしました。

 

« 改訂新版 定本 トロイダル・コア活用百科 | トップページ | なぜマネジメントは壁につきあたるのか »

JTAG」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: urJTAG(1):

« 改訂新版 定本 トロイダル・コア活用百科 | トップページ | なぜマネジメントは壁につきあたるのか »