RZ-G/RZG2 openocd

From eLinux.org
< RZ-G
Revision as of 13:12, 16 April 2021 by Rz-soc (talk | contribs)
Jump to: navigation, search

Introduction

This document provides a guide to use OpenOCD and compatible JTAG debugger devices on RZ/G2 platforms.

Target Device

  • RZ/G2E Rev C

Overview

OpenOCD is an opensource software that provides on-chip programming and debugging feature, with support from compatible JTAG hardware debugger devices.

Prerequisites
A compatible JTAG hardware debugger device is required. Different JTAG device can have different procedure.
As an example, following guidance is writing for Flyswatter2 device from Tin Can Tools, LLC. https://www.tincantools.com/flyswatter2/

flyswatter2




Environment

Below illustration shows how user should connect RZ/G2 platform with JTAG debugger and OpenOCD (run on a Linux Host PC). Note that most RZ/G2 development board has 10 pin JTAG header, so a JTAG converter (20pin-10pin) is required. Example: https://www.mouser.com/ProductDetail/Olimex-Ltd/ARM-JTAG-20-10?qs=sGAEpiMZZMu3sxpa5v1qruKJnqf7E2bHKCQxSxTTkuc%3D

Openocd env1.png










Usage

After connect devices as guide in section 2, follow below instruction to use OpenOCD and JTAG debugger.

Hardware setup
User must change the switches setting on development board to enable JTAG debugging feature. The switches setting is different between each development board. Please refer to its board manual or user guide for the detail information. For EK874 RZ/G2E board, change switches as below. Note that board version 3 or later must be used.

• SW12: change bit 4 and 5 to OFF to enable JTAG
• SW50: change to (2-3) side
• SW51: change to (1-2) side

























Attach JTAG
Make sure you have all the necessary packages installed:

$sudo apt-get install libtool pkg-config texinfo libusb-dev libusb-1.0.0-dev libftdi-dev autoconf

Download OpenOCD (if not available yet
User can get latest OpenOCD software from https://github.com/ntfreak/openocd

$ git clone https://github.com/ntfreak/openocd
$ cd openocd

Next, follow instruction from github to build openocd.

$ ./bootstrap
$ ./configure --prefix ${PWD}/installdir
$ make
$ make install

In configuration, use may need to add option “--enable-ftdi” to ensure ftdi related function (which Flyswatter2 uses) will be built.

Run openocd
OpenOCD provides many setting scripts for many JTAG debugger and development boards under directory share/openocd/scripts/. Users must find two suitable scripts to use for their environment, one for Debugger and one for the development board. For debug with Flyswatter2 on RZ/G2 development boards, below scripts are suitable:

  • Flyswatter2: interface/ftdi/flyswatter2.cfg
  • RZ/G2 board: target/renesas_rcar_gen3.cfg
For EK874 RZ/G2E board: set SOC E3

renesas_rcar_gen3.cfg is the most suitable configure file for RZ/G2. In this configure, “E3” SOC config is the most suitable config for EK874 RZ/G2E. Thus, the run command to attach JTAG with OpenOCD is:

$ sudo bin/openocd -f share/openocd/scripts/interface/ftdi/flyswatter2.cfg -c “set SOC E3” -f share/openocd/scripts/target/renesas_rcar_gen3.cfg

Note: If below error appears

Openocd error.png













User has to modify flyswatter2.cfg configure file to fix missing “adater speed”. Just add below line to the end of that file, then rerun the command:

Adapter speed 15000

If openocd command succeeds, message like bellow will appear

Openocd run.png



















Note that “E3” and “r8a77990” in these messages are not correct for RZ/G2 platform. They are shown because configure renesas_rcar_gen3.cfg was used.

Start debugging

Now that openocd command has succeeded, user can run GDB on Linux Host PC and attach to GDB Server created by OpenOCD (the port is shown in OpenOCD log, default is 3333).

$ gdb
(gdb) target remote localhost:3333

After that, gdb and openocd will show message like below.
This mean GDB has connected successfully. After this, user can control and debug device by GDB (refer to GDB guide https://sourceware.org/gdb/current/onlinedocs/gdb/).

Gdb run.png
Openocd run2.png