for GNU Debugger, BDI2000 (ARM11/Cortex-A8)User Manual 4
1 Introduction
bdiGDB enhances the GNU debugger (GDB), with JTAG debugging for ARM11 and Cortex-A8 based
targets. With the builtin Ethernet interface you get a very fast download speed of up to 200 Kbytes/
sec. No target communication channel (e.g. serial line) is wasted for debugging purposes. Even better, you can use fast Ethernet debugging with target systems without network capability. The host to
BDI communication uses the standard GDB remote protocol.
An additional Telnet interface is available for special debug tasks (e.g. force a hardware reset,
program flash memory).
The following figure shows how the BDI2000 interface is connected between the host and the target:
Target System
ARM
JTAG Interface
UNIX / PC Host
GNU Debugger
(GDB)
Ethernet (10 BASE-T)
1.1 BDI2000
The BDI2000 is the main part of the bdiGDB system. This small box implements the interface between the JTAG pins of the target CPU and a 10Base-T ethernet connector. The firmware and the
programable logic of the BDI2000 can be updated by the user with a simple Windows / Linux configuration program. The BDI2000 supports 1.8 – 5.0 Volts target systems (3.0 – 5.0 Volts target systems
with Rev. A/B).
.
for GNU Debugger, BDI2000 (ARM11/Cortex-A8)User Manual 5
1.2 BDI Configuration
As an initial setup, the IP address of the BDI2000, the IP address of the host with the configuration
file and the name of the configuration file is stored within the flash of the BDI2000.
Every time the BDI2000 is powered on, it reads the configuration file via TFTP.
Following an example of a typical configuration file:
; bdiGDB configuration for ARM Integrator CM1136JF-S
; -------------------------------------------------;
[INIT]
WM32 0x1000000C 0x00000005 ;REMAP=1, MISC LED ON
;
[TARGET]
CPUTYPE ARM1136
CLOCK 1 ;JTAG clock (0=Adaptive,1=16MHz,2=8MHz,3=4MHz, ...)
POWERUP 3000 ;start delay after power-up detected in ms
ENDIAN LITTLE ;memory model (LITTLE | BIG)
VECTOR CATCH 0x1f ;catch D_Abort, P_Abort, SWI, Undef and Reset
BREAKMODE HARD ;SOFT or HARD
;
SCANPRED 0 0 ;no JTAG devices before the ARM1136
SCANSUCC 1 4 ;the ETMBUF after the ARM1136 core
;
[HOST]
IP 151.120.25.119
FILE E:\cygwin\home\demo\pid7t\fibo.x
FORMAT ELF
LOAD MANUAL ;load file MANUAL or AUTO after reset
[FLASH]
WORKSPACE 0x00001000 ;workspace in target RAM for fast programming algorithm
CHIPTYPE AM29BX8 ;Flash type (AM29F | AM29BX8 | AM29BX16 | I28BX8 | I28BX16)
CHIPSIZE 0x100000 ;The size of one flash chip in bytes
BUSWIDTH 32 ;The width of the flash memory bus in bits (8 | 16 | 32)
FILE $arm1136.cfg
FORMAT BIN 0x00010000
[REGS]
FILE$reg1136.def
Based on the information in the configuration file, the target is automatically initialized after every reset.
for GNU Debugger, BDI2000 (ARM11/Cortex-A8)User Manual 6
2 Installation
2.1 Connecting the BDI2000 to Target
The enclosed cables to the target system are designed for the ARM Development Boards. In case
where the target system has the same connector layout, the cable (14 pin or 20 pin) can be directly
connected.
!
In order to ensure reliable operation of the BDI (EMC, runtimes, etc.) the target cable length must not
exceed 20 cm (8").
Rev. A
Target System
BDI2000
AAAAbbbbaaaattttrrrroooonnnn AAAAGGGG
Rev. B/C
Target System
BDI2000
AAAAbbbbaaaattttrrrroooonnnn AAAAGGGG
ARM
ARM
1
2
BDI TRGT MODE BDI MAIN BDI OPTION
ee
SSSSwwwwiiiissssssss MMMMaaaaddddee
The green LED «TRGT» marked light up when target is powered up
1
2
BDITRGT MODE TARGET A TARGET B
ee
SSSSwwwwiiiissssssss MMMMaaaaddddee
The green LED «TRGT» marked light up when target is powered up
for GNU Debugger, BDI2000 (ARM11/Cortex-A8)User Manual 7
BDI MAIN / TARGET A Connector Signals
PinNameDescribtion
1reservedThis pin is currently not used.
2TRST
3+5GND
4TCK
6TMS
7RESET
8TDI
9Vcc Target
10TDO
JTAG Test Reset
This open-drain / push-pull output of the BDI2000 resets the JTAG TAP controller on the
target. Default driver type is open-drain.
System Ground
JTAG Test Clock
This output of the BDI2000 connects to the target TCK line.
JTAG Test Mode Select
This output of the BDI2000 connects to the target TMS line.
This open collector output of the BDI2000 is used to reset the target system.
JTAG Test Data In
This output of the BDI2000 connects to the target TDI line.
1.8 – 5.0V:
This is the target reference voltage. It indicates that the target has power and it is also used
to create the logic-level reference for the input comparators. It also controls the output logic
levels to the target. It is normally fed from Vdd I/O on the target board.
3.0 – 5.0V with Rev. A/B :
This input to the BDI2000 is used to detect if the target is powered up. If there is a current
limiting resistor between this pin and the target Vdd, it should be 100 Ohm or less.
JTAG Test Data Out
This input to the BDI2000 connects to the target TDO line.
The BDI2000 works also with targets which have no dedicated TRST
pin. For this kind of targets, the
BDI cannot force the target to debug mode immediately after reset. The target always begins execution of application code until the BDI has finished programming the Debug Control Register.
Before you can use the BDI2000 with an other target processor type (e.g. ARM <--> PPC), a new
setup has to be done (see chapter 2.5). During this process the target cable must be disconnected
from the target system. The BDI2000 needs to be supplied with 5 Volts via the BDI OPTION connector (Rev. A) or via the POWER connector (Rev. B/C). For more information see chapter 2.2.1
«External Power Supply»).
To avoid data line conflicts, the BDI2000 must be disconnected from the target system while
programming the logic for an other target CPU.
for GNU Debugger, BDI2000 (ARM11/Cortex-A8)User Manual 8
for GNU Debugger, BDI2000 (ARM11/Cortex-A8)User Manual 9
2.1.2 Adaptive Clocking
Adaptive clocking is a feature which ensures that the BDI2000 never loses synchronization with the
target device, whatever the target clock speed is. To achieve this, BDI2000 uses two signals TCK and
RTCK. When adaptive clocking is selected, BDI2000 issues a TCK signal and waits for the Returned
TCK (RTCK) to come back. BDI2000 does not progress to the next TCK until RTCK is received. For
more information about adaptive clocking see ARM documentation.
Note :
Adaptive clocking is only supported with BDI2000 Rev.B/C and a special target cable. This special
cable can be ordered separately from Abatron.
Rev. B/C
Target System
BDI2000
AAAAbbbbaaaattttrrrroooonnnn AAAAGGGG
ARM
SSSSwwwwiiiissssssss MMMMaaaaddddee
1
2
BDITRGT MODE TARGET A TARGET B
ee
The green LED «TRGT» marked light up when target is powered up
151
16
20 pin Multi-ICE
Connector
19
20
2
1 - Vcc Target
2 - NC
3 - TRST
4 - NC
5 - TDI
6 - NC
7 - TMS
8 - GROUND
9 - TCK
10 - GROUND
11 - RTCK
12 - NC
13 - TDO
14 - NC
15 - RESET
16 - NC
17 - NC
18 - NC
19 - NC
20 - NC
For TARGET B connector signals see table on next page.
for GNU Debugger, BDI2000 (ARM11/Cortex-A8)User Manual 10
BDI TARGET B Connector Signals:
PinNameDescribtion
1TDO
2reserved
3TDI
4reserved
5RTCKReturned JTAG Test Clock
6Vcc Target1.8 – 5.0V:
7TCKJTAG Test Clock
8TRST
JTAG Test Data Out
This input to the BDI2000 connects to the target TDO line.
JTAG Test Data In
This output of the BDI2000 connects to the target TDI line.
This input to the BDI2000 connects to the target RTCK line.
This is the target reference voltage. It indicates that the target has power and it is also used
to create the logic-level reference for the input comparators. It also controls the output logic
levels to the target. It is normally fed from Vdd I/O on the target board.
3.0 – 5.0V with Rev. A/B :
This input to the BDI2000 is used to detect if the target is powered up. If there is a current
limiting resistor between this pin and the target Vdd, it should be 100 Ohm or less.
This output of the BDI2000 connects to the target TCK line.
JTAG Test Reset
This open-drain / push-pull output of the BDI2000 resets the JTAG TAP controller on the
target. Default driver type is open-drain.
9TMSJTAG Test Mode Select
This output of the BDI2000 connects to the target TMS line.
10reserved
11reserved
12GROUNDSystem Ground
13RESET
14reseved
15reseved
16GROUNDSystem Ground
System Reset
This open-drain output of the BDI2000 is used to reset the target system.
for GNU Debugger, BDI2000 (ARM11/Cortex-A8)User Manual 11
2.2 Connecting the BDI2000 to Power Supply
2.2.1 External Power Supply
The BDI2000 needs to be supplied with 5 Volts (max. 1A) via the BDI OPTION connector (Rev. A)
or via POWER connector (Rev. B/C). The available power supply from Abatron (option) or the enclosed power cable can be directly connected. In order to ensure reliable operation of the BDI2000,
keep the power supply cable as short as possible.
!
For error-free operation, the power supply to the BDI2000 must be between 4.75V and 5.25V DC.
The maximal tolerable supply voltage is 5.25 VDC. Any higher voltage or a wrong polarity
might destroy the electronics.
Rev. A
The green LED «BDI» marked light up when 5V power is connected to the BDI2000
Rev. B/C
Rev. B Version
BDI TRGT MODE BDI MAIN BDI OPTION
GND 3
4
RS232 POWER LI TX RX 10 BASE-T
13
14
1 Vcc
2
Vcc
GND
BDI OPTION
Connector
1 - NOT USED
2 - GROUND
3 - NOT USED
1
2
4 - GROUND
5 - NOT USED
6 - GROUND
7 - NOT USED
8 - GROUND
9 - NOT USED
10 - GROUND
11 - NOT USED
12 - Vcc (+5V)
13 - Vcc Target (+5V)
14 - Vcc (+5V)
POWER
Connector
1 - Vcc (+5V)
2 - VccTGT
3 - GROUND
4 - NOT USED
BDI TRGT MODE TARGET A TARGET B
The green LED «BDI» marked light up when 5V power is connected to the BDI2000
Please switch on the system in the following sequence:
for GNU Debugger, BDI2000 (ARM11/Cortex-A8)User Manual 12
2.2.2 Power Supply from Target System
The BDI2000 needs to be supplied with 5 Volts (max. 1A) via BDI MAIN target connector (Rev. A) or
via TARGET A connector (Rev. B/C). This mode can only be used when the target system runs with
5V and the pin «Vcc Target» is able to deliver a current up to 1A@5V. For pin description and layout
see chapter 2.1 «Connecting the BDI2000 to Target». Insert the enclosed Jumper as shown in figure
below. Please ensure that the jumper is inserted correctly.
!
For error-free operation, the power supply to the BDI2000 must be between 4.75V and 5.25V DC.
The maximal tolerable supply voltage is 5.25 VDC. Any higher voltage or a wrong polarity
might destroy the electronics.
Rev. A
BDI OPTION
Connector
Rev. B/C
BDI TRGT MODE BDI MAINBDI OPTION
1
2
1
2
13
14
Jumper
Jumper
The green LEDs «BDI» and «TRGT» marked light up when target is powered up
and the jumper is inserted correctly
3
4
RS232 POWER LI TX RX 10 BASE-T
BDI TRGT MODE TARGET A TARGET B
1 - NOT USED
2 - GROUND
3 - NOT USED
4 - GROUND
5 - NOT USED
6 - GROUND
7 - NOT USED
8 - GROUND
9 - NOT USED
10 - GROUND
11 - NOT USED
12 - Vcc (+5V)
13 - Vcc Target (+5V)
14 - Vcc BDI2000 (+5V)
POWER
Connector
1 - Vcc BDI2000 (+5V)
2 - Vcc Target (+5V)
3 - GROUND
4 - NOT USED
The green LEDs «BDI» and «TRGT» marked light up when target is powered up
and the jumper is inserted correctly
for GNU Debugger, BDI2000 (ARM11/Cortex-A8)User Manual 14
2.4 Connecting the BDI2000 to Host
2.4.1 Serial line communication
Serial line communication is only used for the initial configuration of the bdiGDB system.
The host is connected to the BDI through the serial interface (COM1...COM4). The communication
cable (included) between BDI and Host is a serial cable. There is the same connector pinout for the
BDI and for the Host side (Refer to Figure below).
for GNU Debugger, BDI2000 (ARM11/Cortex-A8)User Manual 15
2.4.2 Ethernet communication
The BDI2000 has a built-in 10 BASE-T Ethernet interface (see figure below). Connect an UTP (Unshilded Twisted Pair) cable to the BD2000. For thin Ethernet coaxial networks you can connect a
commercially available media converter (BNC-->10 BASE-T) between your network and the
BDI2000. Contact your network administrator if you have questions about the network.
Rev. A
18
10 BASE-T
Connector
1 - TD+
2 - TD 3 - RD+
4 - NC
5 - NC
6 - RD-
7 - NC
8 - NC
RS232 LI TX RX10 BASE-T
Rev. B/C
18
Target System
ARM
RS232POWERLI TX RX 10 BASE-T
BDI2000
PC Host
AAAAbbbbaaaattttrrrroooonnnn AAAAGGGG
Ethernet (10 BASE-T)
The following explains the meanings of the built-in LED lights:
LEDNameDescription
LILinkWhen this LED light is ON, data link is successful between the UTP
port of the BDI2000 and the hub to which it is connected.
TXTransmitWhen this LED light BLINKS, data is being transmitted through the UTP
port of the BDI2000
SSSSwwwwiiiissssssss MMMMaaaaddddee
ee
RXReceiveWhen this LED light BLINKS, data is being received through the UTP
for GNU Debugger, BDI2000 (ARM11/Cortex-A8)User Manual 16
2.5 Installation of the Configuration Software
On the enclosed diskette you will find the BDI configuration software and the firmware required for
the BDI2000. For Windows NT users there is also a TFTP server included.
The following files are on the diskette.
b20a11gd.exeWindows configuration program
b20a11gd.hlpWindows help file for the configuration program
b20a11gd.xxxFirmware for the BDI2000
armjed20.xxxJEDEC file for the BDI2000 (Rev. A/B) logic device
armjed21.xxxJEDEC file for the BDI2000 (Rev. C) logic device
tftpsrv.exeTFTP server for WindowsNT/ Windows95 (WIN32 console application)
*.cfgConfiguration files
*.defRegister definition files
bdisetup.zipZIP Archive with the Setup Tool sources for Linux / UNIX hosts.
Overview of an installation / configuration process:
• Create a new directory on your hard disk
• Copy the entire contents of the enclosed diskette into this directory
• Linux only: extract the setup tool sources and build the setup tool
• Use the setup tool to load/update the BDI firmware/logic
Note: A new BDI has no firmware/logic loaded.
• Use the setup tool to transmit the initial configuration parameters
- IP address of the BDI.
- IP address of the host with the configuration file.
- Name of the configuration file. This file is accessed via TFTP.
The BDI can get the network configuration and the name of the configuration file also via BOOTP.
For this simple enter 0.0.0.0 as the BDI’s IP address (see following chapters). If present, the subnet
mask and the default gateway (router) is taken from the BOOTP vendor-specific field as defined in
RFC 1533.
With the Linux setup tool, simply use the default parameters for the -c option:
The MAC address is derived from the serial number as follows:
MAC: 00-0C-01-xx-xx-xx , repace the xx-xx-xx with the 6 left digits of the serial number
Example: SN# 93123457 ==>> 00-0C-01-93-12-34
for GNU Debugger, BDI2000 (ARM11/Cortex-A8)User Manual 17
2.5.1 Configuration with a Linux / Unix host
The firmware / logic update and the initial configuration of the BDI2000 is done with a command line
utility. In the ZIP Archive bdisetup.zip are all sources to build this utility. More information about this
utility can be found at the top in the bdisetup.c source file. There is also a make file included.
Starting the tool without any parameter displays information about the syntax and parameters.
!
To avoid data line conflicts, the BDI2000 must be disconnected from the target system while
programming the logic for an other target CPU (see Chapter 2.1.1).
Following the steps to bring-up a new BDI2000:
1. Build the setup tool:
The setup tool is delivered only as source files. This allows to build the tool on any Linux / Unix host.
To build the tool, simply start the make utility.
[root@LINUX_1 bdisetup]# make
cc -O2 -c -o bdisetup.o bdisetup.c
cc -O2 -c -o bdicnf.o bdicnf.c
cc -O2 -c -o bdidll.o bdidll.c
cc -s bdisetup.o bdicnf.o bdidll.o -o bdisetup
2. Check the serial connection to the BDI:
With "bdisetup -v" you may check the serial connection to the BDI. The BDI will respond with information about the current loaded firmware and network configuration.
Note: Login as root, otherwise you probably have no access to the serial port.
With "bdisetup -u" the firmware is loaded and the CPLD within the BDI2000 is programmed. This configures the BDI for the target you are using. Based on the parameters -a and -t, the tool selects the
correct firmware / logic files. If the firmware / logic files are in the same directory as the setup tool,
there is no need to enter a -d parameter.
[root@LINUX_1 bdisetup]# ./bdisetup -u -p/dev/ttyS0 -b57 -aGDB -tARM11
Connecting to BDI loader
Erasing CPLD
Programming firmware with ./b20armgd.103
Programming CPLD with ./armjed21.102