Skip to main content.

6.1. BDI2000 Installation and Configuration

6.1.1. Build Linux command line config tool:

bash$ cd gdbcop21-1.16-6xx-7xx-82xx-2003-04-01
bash$ mkdir bdisetup
bash$ cd bdisetup
bash$ unzip ../bdisetup.zip 
Archive:  ../bdisetup.zip
  inflating: bdidll.c    
  inflating: bdisetup.c
  inflating: bdicmd.h
  inflating: bdidll.h
  inflating: bdierror.h
  inflating: makefile
  inflating: bdicnf.c
  inflating: bdicnf.h
bash$ make
gcc -O  -c -o bdicnf.o bdicnf.c
gcc -O  -c -o bdidll.o bdidll.c
gcc -O  -c -o bdisetup.o bdisetup.c
gcc -o ./bdisetup ./bdicnf.o ./bdidll.o ./bdisetup.o   -s
bash$ cp -p bdisetup /usr/local/bin/bdisetup

6.1.2. Usage:

bash$ bdisetup 
Usage of BDI setup program V1.10:
bdisetup -v [-pP] [-bB] [-s]
  -v  Read current versions
   P  Port e.g. /dev/ttyS0
   B  Baudrate 9, 19, 38, 57 or 115
  -s  if present, exit loader and start firmware

bdisetup -e [-pP] [-bB]
  -e  Erase firmware and logic
   P  Port e.g. /dev/ttyS0
   B  Baudrate 9, 19, 38, 57 or 115

bdisetup -u [-pP] [-bB] [-aA] [-tT] [-dD]
  -u  Update firmware and/or logic
   P  Port e.g. /dev/ttyS0
   B  Baudrate 9, 19, 38, 57 or 115
   A  Application type STD,GDB,ADA,TOR,ACC
   T  Target type: PPC400,MPC500,PPC600,PPC700,MPC800,MPC8200,MPC7400,MPC7450
                   CPU32,ARM,TRICORE,MCF,HC12,MCORE,MIPS,MIPS64,XSCALE
   D  Directory with the firmware/logic files

bdisetup -c [-pP] [-bB] [-iI] [-hH] [-mM] [-gG] [-fF]
  -c  Program network configuration
   P  Port e.g. /dev/ttyS0
   B  Baudrate 9, 19, 38, 57 or 115
   I  BDI IP address e.g. 100.100.100.100
   H  Host IP address
   M  Subnet mask (default: 255.255.255.255)
   G  Gateway IP address (default: 255.255.255.255)
   F  Configuration file name

6.1.3. Example: Install firmware for MPC82xx processors

(Note: this is a simple tool. It does not perform any device locking, so root permissions are required to access the serial port.)

bash# bdisetup -u -p/dev/ttyS0  -b115 -aGDB -tMPC8200 -d.
Connecting to BDI loader
Firmware is already up to date
CPLD is already up to date

6.1.4. Setting Configuration Parameters:

bash# bdisetup -c -p/dev/ttyS0 -h10.0.0.11 \
> -i10.0.0.10 -m255.0.0.0 -f/tftpboot/ATC/ATC.cfg
Connecting to BDI loader
Writing network configuration
Writing init list and mode
Configuration passed
bash# bdisetup -v -p/dev/ttyS0 -b115 -s
BDI Type : BDI2000 Rev.C (SN: 93202220)
Loader   : V1.05
Firmware : V1.16 bdiGDB for PPC6xx/PPC7xx
Logic    : V1.02 PPC6xx/PPC7xx
MAC      : 00-0c-01-93-20-22
IP Addr  : 10.0.0.10
Subnet   : 255.0.0.0
Gateway  : 255.255.255.255
Host IP  : 10.0.0.11
Config   : /tftpboot/ATC/ATC.cfg

6.1.5. Quick Test:

bash$ telnet bdi
Trying 10.0.0.10...
Connected to bdi.denx.de (10.0.0.10).
Escape character is '^]'.
BDI Debugger for Embedded PowerPC
=================================

PHYS  <address>              converts an effective to a physical address
MD    [<address>] [<count>]  display target memory as word (32bit)
MDD   [<address>] [<count>]  display target memory as double word (64bit)
MDH   [<address>] [<count>]  display target memory as half word (16bit)
MDB   [<address>] [<count>]  display target memory as byte (8bit)
DUMP  <addr> <size> [<file>] dump target memory to a file
MM    <addr> <value> [<cnt>] modify word(s) (32bit) in target memory
MMD   <addr> <value> [<cnt>] modify double word(s) (64bit) in target memory
MMH   <addr> <value> [<cnt>] modify half word(s) (16bit) in target memory
MMB   <addr> <value> [<cnt>] modify byte(s) (8bit) in target memory
MC    [<address>] [<count>]  calculates a checksum over a memory range
MV                           verifies the last calculated checksum
RD    [<name>]               display general purpose or user defined register
RDUMP [<file>]               dump all user defined register to a file
RDSPR <number>               display special purpose register
RDSR  <number>               display segment register
RDVR  [<number>]             display vector register
RM    {<nbr>|<name>} <value> modify general purpose or user defined register
RMSPR <number>   <value>     modify special purpose register
RMSR  <number>   <value>     modify segment register
RMVR  <nbr><val val val val> modify vector register (four 32bit values)
DCACHE <addr | set>          display L1 data cache content
UPMS  <MCR-addr> <MDR-addr>  set address of register MCR and MDR
UPMA                         display UPMA setup
UPMB                         display UPMB setup
BOOT                         reset the BDI and reload the configuration
RESET [HALT | RUN [time]]    reset the target system, change startup mode
BREAK [SOFT | HARD]          display or set current breakpoint mode
GO    [<pc>]                 set PC and start target system
TI    [<pc>]                 trace on instuction (single step)
TC    [<pc>]                 trace on change of flow
HALT                         force target to enter debug mode
BI  <addr>                   set instruction hardware breakpoint
CI  [<id>]                   clear instruction hardware breakpoint(s)
BD  [R|W] <addr>             set data watchpoint via DABR (DABR[BT]=0)
BDT [R|W] <addr>             set data watchpoint via DABR (DABR[BT]=1)
CD  [<id>]                   clear data watchpoint(s)
INFO                         display information about the current state
LOAD   [<offset>] [<file> [<format>]] load program file to target memory
VERIFY [<offset>] [<file> [<format>]] verify a program file to target memory
PROG   [<offset>] [<file> [<format>]] program flash memory
                                      <format> : SREC, BIN, AOUT or ELF
ERASE  [<address> [<mode>]]  erase a flash memory sector, chip or block
                   <mode>  : CHIP, BLOCK or SECTOR (default is sector)
ERASE  <addr> <step> <count> erase multiple flash sectors
UNLOCK <addr> <step> <count> unlock multiple flash sectors
FLASH  <type> <size> <bus>   change flash configuration
HOST   <ip>                  change IP address of program file host
PROMPT <string>              defines a new prompt string
CONFIG                       display BDI configuration
HELP                         display command list
QUIT                         terminate the Telnet session

*** TARGET: Init JTAG communication failed
# PPC: target has no power
*** TARGET: target powerfail detected
- TARGET: waiting for target Vcc
- TARGET: waiting for target Vcc
- TARGET: waiting for target Vcc
ATC>q
Connection closed by foreign host.
6. Using the BDM/JTAG Debugger, BDI2000, Part 1 1. Embedded Linux Training course 6.2. U-Boot Download Details
Prev Home Next