RZ/G OpenOCD Information
← RZ-G
Introduction
This page provides a guide to use OpenOCD and compatible JTAG debugger devices on RZ/G2 platforms.
Target Device
- RZ/G2L SMARC evaluation board
- RZ/G2E Rev C (or newer)
- RZ/G2M-N-H HiHope rev3 (or newer)
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 devices can have slightly different procedure.
As an example, following guidance is for:
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, for example the Olimex ARM-JTAG-20-10. The following pictures illustrates how to setup the environment with a Flyswatter2 and a EK874 (RZ/G2E) board. The setup is similar if other JTAG debuggers and/or devices are used.
Hardware setup
After connecting the devices as per guide in the previous section, follow below instructions to use OpenOCD and JTAG debugger. User must change the switches setting on development board to enable the JTAG debugging feature. The switches setting may be different for each development board. Please refer to the relevant board manual or user guide for detailed information.
SMARC RZ/G2L board
Change switches as per below.
- SW1: OFF - OFF
EK874 RZ/G2E board
Change switches as per below. Note that board version 3 (Rev C) 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
HiHope RZ/G2M-N-H board
Change switches as per below. Note that board version 3 (Rev C) or later must be used.
- SW1003: change bit 4 to OFF to enable JTAG
- SW305: change to (2-3) side
- SW2405: 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
Error: Ana adapter speed is not selected in teh init script. Insert a call to "adapter speed" or "jtag_rclk" to proceed.
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
$ sudo bin/openocd -f share/openocd/scripts/interface/ftdi/flyswatter2.cfg -c "set SOC E3" -f share/openocd/scripts/target/renesas_rcar_gen3. cfg Open On-Chip Debugger 0.10.0+dev-01383-gd46f28c-dirty (2020-08-31-17: 22) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html adapter speed: 15000 kHz E3 E3 - 0 CA57(s), 1 CA53(s), 1 CR7(s) Boot Core - CA53 Info : auto-selecting first available session transport "jtag". To override use 'transport select <transport>. Info : Listening on port 6666 for tcL connections Info : Listening on port 4444 for telnet connections Info : ftdi : if you experience problems at higher adapter clocks, try the comamnd "ftdi_tdo_sample_ edge falling" Info : clock speed 15000 kHz Info : JTAG tap: r8a77990.cpu tap/device found: Ox5ba00477 (mfg: Ox23b (ARM Ltd.), part: 0xba00, ver: 0x5) Info : r8a77990. a53.0: hardware has 6 breakpoi-nts, 4 watchpoints Info : starting gdb server for r8a77990.A53.0 on 3333 Info : Listening on port 3333 for gdb connections Info : starting gdb server for r8a77990.r7 on 3334 Info : Listening on port 3334 for gdb connections Info : accepting 'gdb' connection on tcp/3333 Info : r8a77990.a53.0 cluster 0 core 0 multi-core r8a77990.a53.0 halted in AArch64 state due to debug-request, current mode: EL1H cpsr: 0x600003c5 pc: Ox5002fd6c MMU: enabled, D-Cache: enabled, I-Cache: enabled Info : New GDB Connection: 1, Target r8a77990.a53.0, state: halted Warn : Prefer GDB command "target extended-remote 3333" instead of "target remote 3333"
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 GNU gdb (Ubuntu 7.11.1-0ubuntu1~16 5) 7.11.1 Copyright (C) 2016 Free Software Foundation, Inc License GPLv3+ GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> Thus is free software: you are free to change and redustribute it. There us NO WARRANTY, to the extent permitted by Law. Type "show copying" and "show warranty for details. This GDB was configured as "x86 64-1inux gnu". Type "show configuratuon" for configuratuon details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentatuon/> For help, type "help". Type "apropos word" to search for commands related to "word". (gdb) target remote Localhost: 3333 Remote debugging using localhost: 3333 warning: while parsing target description (at lune 4): Target description specified unknown architecture " aarch64" warning: Could not load XML target description, ignoring Oxbde17ecO in ?? ( ) (gdb)