JTAG-Booster for
Samsung S3C24xx
P.O: Box 1103
Kueferstrasse 8
Tel. +49 (7667) 908-0
sales@fsforth.de
•
•
•
•
D-79200 Breisach, Germany
D-79206 Breisach, Germany
Fax +49 (7667) 908-200
http://www.fsforth.de
JTAG-Booster for Samsung S3C24xx
Copyright 1995..2003:
FS FORTH-SYSTEME GmbH
Postfach 1103, D-79200 Breisach, Germany
Release of Document:
Author:
Filename:
Program Version:
September 11, 2003
Dieter Fögele
JTAG_S3C24xxa.doc
4.xx
All rights reserved. No part of this document may be copied or reproduced in any
form or by any means without the prior written consent of FS FORTH-SYSTEME
GmbH.
2
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
Table of Contents
1. General ..........................................................................................................4
1.1. Ordering Information ............................................................................5
1.2. System Requirements ..........................................................................5
1.3. Contents of Distribution Disk ................................................................6
1.4. Connecting your PC to the target system .............................................7
1.5. First Example with Samsung S3C2410.................................................9
1.6. First Example with Samsung S3C2440............................................... 11
1.7. Trouble Shooting ................................................................................ 13
1.8. Error Messages .................................................................................. 14
1.9. Initialization file JTAGxxxx.INI............................................................. 19
1.10.Supported flash devices..................................................................... 28
2. JTAGxxxx Parameter Description................................................................. 29
2.1. Program a Flash Device ..................................................................... 33
2.2. Read a Flash Device to file................................................................. 37
2.3. Verify a Flash Device with file ............................................................. 39
2.4. Dump target memory.......................................................................... 41
2.5. Program an I²C-Device....................................................................... 43
2.6. Read an I²C-Device to file................................................................... 45
2.7. Verify an I²C-Device with file............................................................... 47
2.8. Dump an I²C-Device ........................................................................... 49
2.9. Toggle CPU pins ................................................................................ 51
2.10.Polling CPU pins ................................................................................ 52
2.11.Polling CPU pins while the CPU is running ........................................ 53
2.12.Show status of all CPU pins while the CPU is running ....................... 54
3. Implementation Information .......................................................................... 57
4. Converter Program HEX2BIN.EXE............................................................... 58
5. Support for Windows NT, Windows 2000 and Windows XP ......................... 60
5.1. Installation on a clean system............................................................. 60
5.2. Installation with already installed version 5.x/6.x of Kithara................. 60
5.3. Installation with already installed version 4.x of Kithara ...................... 60
5.4. De-Installation version 5.x/6.x:............................................................ 61
JTAG_S3C24xxa.doc
3
JTAG-Booster for Samsung S3C24xx
1. General
The programs JTAG2410.EXE and JTAG2440.EXE use the JTAG port of the
Samsung S3C24xx mircocontrollers in conjunction with the small JTAG-Booster:
•
•
•
•
•
to program data into flash memory
to verify and read the contents of a flash memory
to make a memory dump
to access an I²C Device
to test CPU signals
All functions are done without any piece of software running in the target. No
firmware or BIOS must be written. Bootstrap software may be downloaded to
initially unprogrammed memories.
The JTAG-BOOSTER' s software is highly optimized to the JTAG chain of a
specific target CPU. To give support for all processors of the Samsung S3C24xx
family, there are two different programs on the distribution disk:
•
JTAG2410.EXE : Tool for Samsung S3C2410
•
JTAG2440.EXE : Tool for Samsung S3C2440
Please contact us, if you need support for other members of the Samsung
S3C24xx family.
For latest documentation please refer to the file README.TXT on the
distribution disk.
4
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
1.1.
Ordering Information
The following related products are available
•
9015 JTAG-Booster Samsung S3C24xx, 3.3V,
S3C2410 and S3C2440
DOS/Win9x/WinNT/Win2000/WinXP,
delivered with adapter type 285
1.2.
System Requirements
To successfully run this tool the following requirements must be met:
•
MSDOS, WIN3.x, WIN9x, WinNT, Win2000 or WindowsXP
(WinNT/Win2000/WindowsXP is supported with an additional tool, see
chapter 5 “Support for Windows NT, Windows 2000 and Windows XP”)
•
Intel 80386 or higher
•
205 kByte of free DOS memory
•
Parallel Port
JTAG_S3C24xxa.doc
5
JTAG-Booster for Samsung S3C24xx
1.3.
Contents of Distribution Disk
•
JTAG2410.EXE
JTAG2410.OVL
Tool for Samsung S3C2410
•
JTAG2410.INI
Template configuration file for Samsung S3C2410. See
chapter 1.9 "Initialization file JTAGxxxx.INI"
•
JTAG2440.EXE
JTAG2440.OVL
Tool for Samsung S3C2440
•
JTAG2440.INI
Template configuration file for Samsung S3C2440. See
chapter 1.9 "Initialization file JTAGxxxx.INI"
•
WinNT.zip
Support for Windows NT and Windows 2000. See
chapter 5 "Support for Windows NT, Windows 2000
and Windows XP"
•
JTAG_V4xx_FLAS
HES.pdf
List of all supported Flash devices
•
README.txt
Release notes, new features, known problems
6
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
1.4.
Connecting your PC to the target system
The JTAG-Booster can be plugged into standard parallel ports (LPT1-3) with a
DB25-Connector.
1
LPT1-3
1
Élan
SC400
Module Élan486
The target end of the cable has the following reference:
1
TCK
2*
GND
3
TMS
4
TRST#
5
NC
6
TDI
7
TDO
8
+3.3V
*PIN 2 can be detected by the thick cable.
To connect your design to the JTAG-BOOSTER you need a single row berg
connector with a spacing of 2.54mm on your PCB. The names refer to the
target: Pin 7 is the target’s TDO pin and is connected to the JTAG-Booster’s TDI
pin.
The 3.3V version of the JTAG-Booster (FS part number 285) is delivered
together with this package. Don’t use the 5V version of the JTAG-Booster (FS
part number 227) with a 3.3V target. Don’t apply 5V to the 3.3V version of the
JTAG-Booster!
Your target must be able to power the JTAG-Booster, it draws about 100mA.
Before you start the program, the JTAG-BOOSTER must be plugged to a
parallel interface of your PC and to the 8 pin JTAG connector on the target.
JTAG_S3C24xxa.doc
7
JTAG-Booster for Samsung S3C24xx
The utility is started with the general command line format: JTAGxxx
JTAGxxxx /function [filename] [/option_1] ... [/option_n].
Note that the function must be the first argument followed (if needed) by the
filename.
If you want to cancel execution of JTAGxxxx, press CTRL-Break-Key.
On any error the program aborts with an MSDOS error level of one.
8
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
1.5.
First Example with Samsung S3C2410
In the following simple example it is assumed that the JTAG-Booster is
connected to LPT1 of your PC and target power is on.
Typing
JTAG2410 /P MYAPP.BIN
at the DOS prompt results in the following output:
JTAG2410 --- JTAG utility for Samsung S3C2410
Copyright FS FORTH-SYSTEME GmbH, Breisach
Version 4.xx of mm/dd/yyyy
(1)
(2)
(3)
(4)
Configuration loaded from file JTAG2410.INI
Target: Generic Target
Using LPT at I/O-address 0378h
JTAG Adapter detected
(5)
1 Device detected in JTAG chain
Device 0: IDCODE=0032409D Samsung S3C2410, Revision 0
Sum of instruction register bits : 4
CPU position
:0
Instruction register offset
:0
Length of boundary scan reg
: 427
(6)
(7)
(8)
(9)
(10)
(11)
(12)
Looking for a known flash device. Please wait..
AMD 29LV160B, 3,3V, Boot Block Bottom detected
Bus size is 16 Bit
Erasing Flash-EPROM Block #:0 1 2 3
Programming File MYAPP.BIN
65536 Bytes programmed successfully
Erase Time
Programming Time
JTAG_S3C24xxa.doc
:
:
0.8 sec
48.1 sec
9
JTAG-Booster for Samsung S3C24xx
(1)
The initialization file JTAG2410.INI was found in the current directory.
(2)
The target identification line of the initialization file is printed here.
(3)
The resulting I/O-address of the parallel port is printed here. With
WinNT/Win2000/WinXP you must specify the option /LPT2 to access to
the standard address 378h.
(4)
A JTAG-Booster is found on the parallel port
(5)
The JTAG chain is analyzed. There may be several parts in the JTAG
chain. The chain is analyzed and all parts except the Samsung S3C2410
are switched to bypass mode.
(6)
The length of all instruction registers in the JTAG chain are added.
(7)
The position of the Samsung S3C2410 in the JTAG chain is assumed to
be zero, if not specified in the command line (see option /CPUPOS=).
(8)
The position of the JTAG instruction register of the Samsung S3C2410 is
assumed to be zero, if not specified in the command line (see option
/IROFFS=).
(9)
The real length of the boundary scan register is displayed here and
compared with the boundary scan register length of a Samsung S3C2410.
(10) A Flash AMD 29LV160B selected with GCS0# was found.
(11) The resulting data bus size is printed here.
(12) In this example 4 blocks must be erased.
10
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
1.6.
First Example with Samsung S3C2440
In the following simple example it is assumed that the JTAG-Booster is
connected to LPT1 of your PC and target power is on.
Typing
JTAG2440 /P MYAPP.BIN
at the DOS prompt results in the following output:
JTAG2440 --- JTAG utility for Samsung S3C2440
Copyright FS FORTH-SYSTEME GmbH, Breisach
Version 4.xx of mm/dd/yyyy
(1)
(2)
(3)
(4)
Configuration loaded from file JTAG2440.INI
Target: Generic Target
Using LPT at I/O-address 0378h
JTAG Adapter detected
(5)
1 Device detected in JTAG chain
Device 0: IDCODE=xxxxxxxx Samsung S3C2440, Revision ?
Sum of instruction register bits : 4
CPU position
:0
Instruction register offset
:0
Length of boundary scan reg
: xxx
(6)
(7)
(8)
(9)
(10)
(11)
(12)
Looking for a known flash device. Please wait..
AMD 29LV160B, 3.3V, Boot Block Bottom detected
Bus size is 16 Bit
Erasing Flash-EPROM Block #:0 1 2 3
Programming File MYAPP.BIN
65536 Bytes programmed successfully
Erase Time
Programming Time
JTAG_S3C24xxa.doc
:
:
0.8 sec
xx.0 sec
11
JTAG-Booster for Samsung S3C24xx
(1)
The initialization file JTAG2440.INI was found in the current directory.
(2)
The target identification line of the initialization file is printed here.
(3)
The resulting I/O-address of the parallel port is printed here.
(4)
A JTAG-Booster is found on the parallel port
(5)
The JTAG chain is analyzed. There may be several parts in the JTAG
chain. The chain is analyzed and all parts except the Samsung S3C2440
are switched to bypass mode.
(6)
The length of all instruction registers in the JTAG chain are added.
(7)
The position of the Samsung S3C2440in the JTAG chain is assumed to be
zero, if not specified in the command line (see option /CPUPOS=).
(8)
The position of the JTAG instruction register of the Samsung S3C2440is
assumed to be zero, if not specified in the command line (see option
/IROFFS=).
(9)
The real length of the boundary scan register is displayed here and
compared with the boundary scan register length of a Samsung S3C2440.
(10) A Flash AMD 29LV160B selected with GCS0# was found.
(11) The resulting data bus size is printed here.
(12) In this example four block must be erased.
12
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
1.7.
Trouble Shooting
Avoid long distances between your Host-PC and the target. If you are using
standard parallel extension cable, the JTAG-BOOSTER may not work. Don't use
Dongles between the parallel port and the JTAG-BOOSTER.
Switch off all special modes of your printer port (EPP, ECP, ...) in the BIOS
setup. Only standard parallel port (SPP) mode is allowed.
If there are problems with autodetection of the flash devices use the /DEVICE=
option. To speed up autodetection specify one of the options /8BIT /16BIT or
/32BIT.
Don't use hardware protected flash memories.
The used chip selects must be defined as output and inactive in the initialization
file (see chapter 1.9 “Initialization file JTAGxxxx.INI”). Also the address bits must
be defined as output.
Use the option /NOWRSETUP to speed up flash programming.
JTAG_S3C24xxa.doc
13
JTAG-Booster for Samsung S3C24xx
1.8.
Error Messages
•
80386 or greater required
The JTAG-BOOSTER does not work on a 8088/8086 or a 80286 platform.
•
Cable not connected or target power fail
The JTAG-Booster (or one of the simple Parallel Port JTAG adapters
selected with the options /LATTICE /WIGGLER /PLS) wasn't found. Please
check connection to parallel port and connection to target. Check target
power. Check the command line options. Check your BIOS-Setup. If you are
using this program with WinNT, Win2000 or WinXP you must specify /LPT2
or /LPT-BASE=378 to get access to the standard printer port.
•
Can't open x:\yyy\zzz\JTAGxxxx.OVL
The overlay file JTAGxxxx.OVL must be in the same directory as
JTAGxxxx.EXE.
•
Configuration file XYZ not found.
The file specified with the option /INI= wasn't found.
•
Device offset out of range
The value specified with the option /OFFSET= is greater than the size of
the detected flash device.
•
Disk full
Writing a output file was aborted as a result of missing disk space.
•
Do not specify option /NOCS with any other chip select
There is a conflict in the command line.
•
Do not specify option /BYTE-MODE. Flash device does not have a byte
mode pin.
The flash device specified with the option /DEVICE= does not support
switching between 16 (or 32) bit mode and 8 bit mode. In practice it does not
have a pin with the name BYTE#
•
Error creating file:
The output file could not be opened. Please check free disk space or write
protection.
14
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
•
Error: Pin-Name is an output only pin
The specified pin cannot be sampled. Check the command line. Check the
initialization file.
•
Error: Pin-Name is an input only pin
The specified pin cannot be activated. Check the command line. Check the
initialization file.
•
Error: Pin-Name may not be read back
The specified pin can be switched to tristate, but cannot be read back. Check
the command line.
•
illegal function:
The first parameter of the command line must be a valid function. See
chapter 2 “JTAGxxxx Parameter Description” for a list of supported functions.
•
illegal number:
The specified number couldn’t be interpret as a valid number. Check the
relevant number base.
•
illegal option:
See chapter 2 “JTAGxxxx Parameter Description” for a list of supported
options.
•
illegal Pin Type:
The name specified with the option /PIN= must be one of the list of chapter
1.9 ”Initialization file JTAGxxxx.INI”
•
illegal Flash Type:
The name specified with the option /DEVICE= must be one of the list of
chapter 1.10 ”Supported flash devices”.
•
Input file not found:
The specified file cannot be found
•
Input file is empty:
Files with zero length are not accepted
JTAG_S3C24xxa.doc
15
JTAG-Booster for Samsung S3C24xx
•
" " is undefined
Please check the syntax in your configuration file. (See chapter 1.9
“Initialization file JTAGxxxx.INI”).
•
LPTx not installed
The LPT port specified with /LPTx cannot be found. Please check the LPT
port or specify a installed LPT port. Check your BIOS setup. If you are using
this program with WinNT, Win2000 or WinXP you 1st must install the WinNT
support package as described in chapter 5"Support for Windows NT,
Windows 2000 and Windows XP
•
missing filename
Most functions need a filename as second parameter.
•
missing option /I2CCLK=
Some functions need the option /I2CCLK= to be defined.
•
missing option /I2CDAT=
Some functions need the option /I2CDAT= or the options /I2CDATO= and
/I2CDATI= to be defined.
•
missing option /LENGTH=
Some functions need the option /LENGTH= to be defined.
•
missing option /PIN=
Some functions need the option /PIN= to be defined.
•
More than 9 devices in the JTAG chain or TDO pin stuck at low level
The JTAG chain is limited to 9 parts. Check target power. Check the target’s
TDO pin.
•
No devices found in JTAG chain or TDO pin stuck at high level
A stream of 32 high bits was detected on the pin TDO. TDO may stuck at
high level. Check the connection to your target. Check the target power.
Check the target’s TDO pin.
•
Option /CPUPOS= out of range
The number specified with the option /CPUPOS= must be less or equal to
the number of parts minus 1.
16
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
•
Option /IROFFS= out of range
Please specify a smaller value
•
Part at specified position is not a Samsung S3C24xx
The option /CPUPOS= points to a part not a Samsung S3C24xx
•
Pins specified with /I2CCLK= and /I2CDAT= must have different
control cells
The pin specified with the option /I2CDAT= must be able to be switched to
high impedance while the pin specified with option /I2CCLK= is an active
output. See chapter 1.9 “Initialization file JTAGxxxx.INI”.
•
Pins specified with /I2CCLK= and /I2CDATI= must have different
control cells
The pin specified with the option /I2CDATI= must be able to be switched to
high impedance while the pin specified with option /I2CCLK= is an active
output. See chapter 1.9 “Initialization file JTAGxxxx.INI”.
•
Pins specified with /I2CDATO= and /I2CDATI= must have different
control cells
The pin specified with the option /I2CDATI= must be able to be switched to
high impedance while the pin specified with option /I2CDATO= is an active
output. See chapter 1.9 “Initialization file JTAGxxxx.INI”.
•
Specify only one of these options:
Some options are exclusive (i.e. /8BIT and /16BIT). Don't mix them.
•
Sum of instruction register bits to low. Should be at least 5 bits for a
Samsung S3C24xx
The sum of all instruction register bits in the JTAG chain does not fit to the
Samsung S3C24xx. Check the target connection. Check the target CPU
type. Check the settings for /IROFFS= and /CPUPOS= , if there are
several parts in the JTAG chain.
•
Target no longer connected
There is a cyclic check of the JTAG chain. Check target power. Check target
connection.
JTAG_S3C24xxa.doc
17
JTAG-Booster for Samsung S3C24xx
•
There are unknown parts in the JTAG chain. Please use the option
/IROFFS= to specify the instr. reg. offset of the CPU.
If there are unknown parts in the JTAG chain, the program isn’t able to
determine the logical position of the CPU’s instruction register.
•
There is no Samsung S3C24xx in the JTAG chain
No Samsung S3C24xx was found in the JTAG chain. Check the target
power. Try with option /DRIVER=4 again.
•
Value of option /FILE-OFFSET out of range
The value of the option /FILE-OFFSET= points behind end of file.
•
wrong driver #
The value specified with the option /DRIVER= is out of range.
•
Wrong Flash Identifier (xxxx)
No valid identifier found. Check the specified chip select signal and the bus
width. Try with the option /DEVICE= . Use the option /8BIT or /16BIT or
/32BIT to specify the correct data bus size.
•
Wrong length of boundary scan register. Should be 427 for a Samsung
S3C2410. (Should be ??? for a Samsung S3C2440.)
The length of the boundary scan register of the selected part (if there are
more than one in the chain) does not fit to the Samsung S3C24xx. Check the
target connection. Check the target CPU type. Check the settings for
/IROFFS= and /CPUPOS= , if there are several parts in the JTAG chain.
18
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
1.9.
Initialization file JTAGxxxx.INI
This file is used to define the default direction and level of all CPU signals. This
file must be carefully adapted to your design with the Samsung S3C24xx. The
Target-Entry is used to identify your design which is displayed with most
commands.
When the program JTAGxxxx.EXE is started it scans the current directory for an
existing initialization file named JTAGxxxx.INI. If no entry is found the default
values are used. You may also specify the initialization file with the option /INI= .
If the specified file isn't found, the program aborts with an error message.
The CPU pins can also be used with the functions /BLINK (chapter 2.9), /PIN?
(chapter 2.10) and /SAMPLE (chapter 2.11) to test the signals on your design.
The sample file below represents the values which are used for default
initialization when no initialization file could be found in the current directory and
no initialization file is specified with the option /INI=.
Changes to the structure of the file could result in errors. Remarks can be added
by using //.
JTAG_S3C24xxa.doc
19
JTAG-Booster for Samsung S3C24xx
Sample File JTAG2410.INI:
// Description file for Samsung S3C2410
Target: Generic Target, 2003/08/21
// Adapt this file carefully to your design!!
// All chip select signals are set to output and inactive.
// All signals should be defined. Undefined signals are set to their defaults.
// Pin names are defined in upper case.
// Low active signals are signed with a trailing #.
// Group 99:
//
//
//
//
//
DATA0
DATA1
DATA2
DATA3
DATA4
DATA5
DATA6
DATA7
All pins in this group must be set to the same direction
These pins are bidirectional
During flash programming these pins are switched between
input/inactive and output/active.
For Flash programming and other memory accesses
these pins should be set to Input
Inp
//
Inp
//
Inp
//
Inp
//
Inp
//
Inp
//
Inp
//
Inp
//
// Group 82:
//
//
//
//
//
DATA8
DATA9
DATA10
DATA11
DATA12
DATA13
DATA14
DATA15
All pins in this group must be set to the same direction
These pins are bidirectional
During flash programming these pins are switched between
input/inactive and output/active.
For Flash programming and other memory accesses
these pins should be set to Input
Inp
//
Inp
//
Inp
//
Inp
//
Inp
//
Inp
//
Inp
//
Inp
//
20
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
// Group 65:
//
//
//
//
//
DATA16
DATA17
DATA18
DATA19
DATA20
DATA21
DATA22
DATA23
All pins in this group must be set to the same direction
These pins are bidirectional
During flash programming these pins are switched between
input/inactive and output/active.
For Flash programming and other memory accesses
these pins should be set to Input
Inp
//
Inp
//
Inp
//
Inp
//
Inp
//
Inp
//
Inp
//
Inp
//
// Group 48:
//
//
//
//
//
DATA24
DATA25
DATA26
DATA27
DATA28
DATA29
DATA30
DATA31
All pins in this group must be set to the same direction
These pins are bidirectional
During flash programming these pins are switched between
input/inactive and output/active.
For Flash programming and other memory accesses
these pins should be set to Input
Inp
//
Inp
//
Inp
//
Inp
//
Inp
//
Inp
//
Inp
//
Inp
//
// Group 138: All pins in this group must be set to the same direction
//
These pins are tristateable, but can not be read back
//
For Flash Programming these pins must be set to output
ADDR1
Out,Lo //
ADDR2
Out,Lo //
ADDR3
Out,Lo //
ADDR4
Out,Lo //
ADDR5
Out,Lo //
ADDR6
Out,Lo //
ADDR7
Out,Lo //
ADDR8
Out,Lo //
ADDR9
Out,Lo //
ADDR10
Out,Lo //
JTAG_S3C24xxa.doc
21
JTAG-Booster for Samsung S3C24xx
ADDR11
ADDR12
ADDR13
ADDR14
ADDR15
Out,Lo
Out,Lo
Out,Lo
Out,Lo
Out,Lo
//
//
//
//
//
// The following pins are tristateable, but can not be read back
// For Flash Programming these pins must be set to output
ADDR0
Out,Lo // GPA0
ADDR16
Out,Lo // GPA1
ADDR17
Out,Lo // GPA2
ADDR18
Out,Lo // GPA3
ADDR19
Out,Lo // GPA4
ADDR20
Out,Lo // GPA5
ADDR21
Out,Lo // GPA6
ADDR22
Out,Lo // GPA7
ADDR23
Out,Lo // GPA8
ADDR24
Out,Lo // GPA9
ADDR25
Out,Lo // GPA10
ADDR26
Out,Lo // GPA11
// The following pins are tristateable, but can not be read back
GCS5#
Out,Hi // GPA16
GCS4#
Out,Hi // GPA15
GCS3#
Out,Hi // GPA14
GCS2#
Out,Hi // GPA13
GCS1#
Out,Hi // GPA12
// Group 166: All pins in this group must be set to the same direction
//
These pins are tristateable, but can not be read back
GCS7#
Out,Hi // SCS1#
GCS6#
Out,Hi // SCS0#
SCLK1
Out,Lo // SDRAM Clock Output
SCLK0
Out,Lo // SDRAM Clock Output
SRAS#
Out,Hi //
SCAS#
Out,Hi //
22
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
// Group 153: All pins in this group must be set to the same direction
//
These pins are tristateable, but can not be read back
GCS0#
Out,Hi //
SCKE
Out,Hi // SDRAM Clock Enable
WE#
Out,Hi // Write Enable
OE#
Out,Hi // Output Enable
BE0#
Out,Lo // WBE0#:DQM0, Byte Enable
BE1#
Out,Lo // WBE1#:DQM1, Byte Enable
BE2#
Out,Lo // WBE2#:DQM2, Byte Enable
BE3#
Out,Lo // WBE3#:DQM3, Byte Enable
// The following pins are complete bidirectional pins.
// The direction of each pin can be set independent of the other pins.
// Each pin can be used as an input.
LEND
Inp
// GPC0/STH, TFT Line End Signal
VCLK
Inp
// GPC1/LCD_HCLK, STN/TFT LCD clock signal
VLINE
Inp
// GPC2/HSYNC:CPV, STN LCD line signal
VFRAME
Inp
// GPC3/VSYNC:STV, STN Frame signal
VM
Inp
// GPC4/VDEN:TP, STN alternate polarity
LCDVF0
Inp
// GPC5, SEC_TFT Timing control signal
LCDVF1
Inp
// GPC6, SEC_TFT Timing control signal
LCDVF2
Inp
// GPC7, SEC_TFT Timing control signal
VD0
Inp
// GPC8, STN/TFT/SEC_TFT Data Bus
VD1
Inp
// GPC9
VD2
Inp
// GPC10
VD3
Inp
// GPC11
VD4
Inp
// GPC12
VD5
Inp
// GPC13
VD6
Inp
// GPC14
VD7
Inp
// GPC15
VD8
Inp
// GPD0
VD9
Inp
// GPD1
VD10
Inp
// GPD2
VD11
Inp
// GPD3
VD12
Inp
// GPD4
VD13
Inp
// GPD5
VD14
Inp
// GPD6
VD15
Inp
// GPD7
VD16
Inp
// GPD8
VD17
Inp
// GPD9
VD18
Inp
// GPD10
VD19
Inp
// GPD11
VD20
Inp
// GPD12
JTAG_S3C24xxa.doc
23
JTAG-Booster for Samsung S3C24xx
VD21
VD22
VD23
I2SLRCK
I2SSCLK
CDCLK
I2SDI
I2SDO
SDCLK
SDCMD
SDDAT0
SDDAT1
SDDAT2
SDDAT3
SPIMISO0
SPIMOSI0
SPICLK0
EINT0
EINT1
EINT2
EINT3
EINT4
EINT5
EINT6
EINT7
EINT8
EINT9
EINT10
EINT11
EINT12
EINT13
EINT14
EINT15
EINT16
EINT17
EINT18
EINT19
EINT20
EINT21
EINT22
EINT23
UCLK
CLKOUT0
24
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
// GPD13
// GPD14/SS1#, SPI chip select slave
// GPD15/SS0#, SPI chip select slave
// GPE0, IIS-bus channel select
// GPE1, IIS-bus serial clock
// GPE2, CODEC system clock
// GPE3/SS0#, IIS-bus serial data input
// GPE4/I2SSDI, IIS-bus serial data output
// GPE5, SD clock
// GPE6, SD receive responce/transmit command
// GPE7, SD receive/transmit data
// GPE8
// GPE9
// GPE10
// GPE11
// GPE12
// GPE13
// GPF0
// GPF1
// GPF2
// GPF3
// GPF4
// GPF5
// GPF6
// GPF7
// GPG0
// GPG1
// GPG2/SS0#
// GPG3/SS1#
// GPG4/LCD_PWREN
// GPG5/SPIMISO1
// GPG6/SPIMOSI1
// GPG7/SPICLK1
// GPG8
// GPG9
// GPG10
// GPG11/TCLK1
// GPG12/XMON, touch
// GPG13/XPON#
// GPG14/YMON
// GPG15/YPON#
// GPH8, UART clock signal
// GPH9
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
CLKOUT1
CTS0#
RTS0#
TXD0
RXD0
TXD1
RXD1
TXD2
RXD2
TOUT0
TOUT1
TOUT2
TOUT3
TCLK0
XBACK#
XBREQ#
XDACK1#
XDREQ1#
XDACK0#
XDREQ0#
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
Inp
// GPH10
// GPH0
// GPH1
// GPH2
// GPH3
// GPH4
// GPH5
// GPH6/RTS1#
// GPH7/CTS1#
// GPB0, Timer Output
// GPB1, Timer Output
// GPB2, Timer Output
// GPB3, Timer Output
// GPB4, External timer clock input
// GPB5, Bus Hold Acknowledge Output
// GPB6, Bus Hold Request Input
// GPB7, External DMA Acknowledge Output
// GPB8, External DMA Request Input
// GPB9, External DMA Acknowledge Output
// GPB10, External DMA Request Input
// The following pins are open drain types, may be inverted!!
// The direction of each pin can be set independent of the other pin.
// Each pin can be used as an input.
IICSCL
Inp
// GPE14
IICSDA
Inp
// GPE15
// The following pins are output only pins.
// Setting to input (tristate) one of these pins results in an error.
PWREN
Out,Hi // Core Power Enable
FCE#
Out,Hi // GPA22, Nand Flash Chip Enable
RSTOUT#
Out,Hi // GPA21, Reset Output
FRE#
Out,Hi // GPA20, Nand Flash Read Enable
FWE#
Out,Hi // GPA19, Nand Flash Write Enable
ALE
Out,Lo // GPA18, Nand Flash Address Enable
CLE
Out,Lo // GPA17, Nadn Flash Command Latch Enable
JTAG_S3C24xxa.doc
25
JTAG-Booster for Samsung S3C24xx
// The following pins are input only.
// Setting to output of one of these pins results in an error.
// Declaration of the direction of these pins is optional.
CON0#
Inp
// ???
CON1#
Inp
//
BATT_FLT#
Inp
// Probe for battery state
RESET#
Inp
// Reset Input
EXTCLK
Inp
// External clock source
WAIT#
Inp
//
26
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
Sample File JTAG2440.INI:
In preparation
JTAG_S3C24xxa.doc
27
JTAG-Booster for Samsung S3C24xx
1.10. Supported flash devices
Type JTAGxxxx /LIST [optionlist]
to get a online list of all flash types which could be used with the /DEVICE=
option.
See separate file JTAG_V4xx_FLASHES.pdf to get a complete list of supported
flash types.
28
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
2. JTAGxxxx Parameter Description
When you start JTAGxxxx.EXE without any parameters the following help
screen with all possible functions and options is displayed:
JTAGxxxx --- JTAG utility for Samsung S3C24xx
Copyright © FS FORTH-SYSTEME GmbH, Breisach
Version 4.xx of mm/dd/yyyy
Programming of Flash-EPROMs and hardware tests on targets with the
Samsung S3C24xx.
The JTAG-Booster is needed to connect the parallel port of the PC
to the JTAG port of the Samsung S3C24xx.
Usage: JTAGxxxx /function [filename] [/option_1] ... [/option_n]
Supported functions:
/P
: Program a Flash Device
/R
: Read a Flash Device to file
/V
: Verify a Flash Device with file
/DUMP
: Make a target dump
/PI2C
: Program an I2C Device with file
/RI2C
: Read an I2C Device to file
/VI2C
: Verify an I2C Device with file
/DUMPI2C : Make a dump of an I2C Device
/BLINK
: Toggle a CPU pin
/PIN?
: Test a CPU pin
/SAMPLE : Test a CPU pin while the CPU is running
/SNAP
: Test all CPU pins while CPU is running
/LIST
: Print a list of supported Flash devices
JTAG_S3C24xxa.doc
29
JTAG-Booster for Samsung S3C24xx
Supported Options:
/CS0
/CS1
/CS5
/CS6
/NOWRSETUP /TOP
/P
/NODUMP
/WIGGLER
/PLS
/LPT-BASE= /32BIT
/LENGTH=
L=
/O=
/DELAY=
/IROFFS=
/CPUPOS=
/I2CDAT=
/I2CDATI=
/OUT=
/INI=
/CS2
/CS3
/CS7
/BIG
/BYTE-MODE
/BM
/NOERASE
/ERASEALL
/LPT1
/LPT2
/16BIT
/8BIT
/FILE-OFFSET= /FO=
/DEVICE-BASE= /DB=
/DEVICE=
/PIN=
/I2CDATO=
I2CBIG
/REP
/CS4
/NOCS
/PAUSE
/LATTICE
/LPT3
/NOMAN
/OFFSET=
/DRIVER=
/I2CCLK=
/WATCH=
The following options are valid for most functions:
/BIG
This option switches the byte ordering to big endian mode. This option must fit to
the target's endianess. Normally the target is configured to the right endianess
after reset. In some cases, the endianess can be changed within the
configuration file.
Default:
Little Endian
/DRIVER=x with x = 1,2,3,4
A driver for the interface to the JTAG-BOOSTER on the parallel port may be
specified. /DRIVER=1 selects the fastest available driver, /DRIVER=4 selects
the slowest one. Use a slower driver if there are problems with JTAGBOOSTER.
Default:
/DRIVER=3
/INI=file
An initialization file may be specified. By default the current directory is searched
for the file JTAGxxxx.INI. If this file is not found and no initialization file is
specified in the command line, default initialization values are used (see also
chapter 1.9 “Initialization file JTAGxxxx.INI”).
Note: The initialization file is not loaded for the functions /SAMPLE (chapter
2.11) and /SNAP (chapter 2.12).
Default:
/INI=JTAGxxxx.INI
30
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
/LATTICE /WIGGLER /PLS
Besides the standard JTAG-Booster interface there are several simple "ParallelPort-JTAG" interfaces supported. With this interfaces the programming
performance, of course, is reduced.
/LPT1 /LPT2 /LPT3
A printer port may be specified where the JTAG-Booster resides. If you are
using this program with WinNT, Win2000 or WinXP you must specify /LPT2 or
/LPT-BASE=378 to get access to the standard printer port.
Default:
/LPT1
/LPT-BASE
The physical I/O-Address of printer port may be specified instead of the logical
printer name. Useful option, if you work with WinNT, Win2000 or WinXP,
because the standard printer port is mapped as LPT2 here. Use the option
/LPT-BASE=378 to get a command line which works independent of the
operation system.
/OUT=file_or_device
All screen outputs are redirected to the specified file or device. Note that you
can't redirect to the same parallel port where the JTAG-Booster resides.
Default:
/OUT=CON
/PAUSE
With the option /PAUSE you can force the program to stop after each screen.
Please do not use this option if you redirect the output to a file.
Abbreviation:
/P
/WATCH=
With the option /WATCH= a pin can be specified, which is toggled twice per
second, while the program is active. This pin may be the trigger of a watchdog.
This pin must be specified as output in the initialization file.
/IROFFS=
Specifies the position of the Samsung S3C24xx instruction register within the
JTAG chain. In most cases this option is not needed.
Default:
/IROFFS=0
JTAG_S3C24xxa.doc
31
JTAG-Booster for Samsung S3C24xx
/CPUPOS=
Specifies the position of the Samsung S3C24xx within the JTAG chain.
Default:
/CPUPOS=0
32
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
2.1.
Program a Flash Device
Usage:
JTAGxxxx /P filename [optionlist]
The specified file is programmed into the flash memory. The flash status is
polled after programming of each cell (cell=8, 16 or 32 bit, depending on current
data bus width). In case of a programming error, the contents of the flash
memory is written to a file with the extension DMP.
If you want a complete verify after programming, please use an additional
command line with the verify function. See chapter 2.3 “Verify a Flash Device
with file”. In most cases this additional verify step is not needed.
The type of the flash device is normally detected by the software. When
autodetection fails you should use the /DEVICE= option together with /8BIT or
/16BIT or /32BIT to set the right flash device and configuration. The known flash
devices are shown in chapter 1.10 “Supported flash devices”.
Options:
/DEVICE=devicename
The flash device is detected automatically by switching to autoselect mode. In
case of trouble you should select the flash device by using this parameter to
avoid autodetection. Combine this option with one of the following options which
specify the data bus width and the option /BYTE-MODE if applicable.
/8BIT /16BIT /32BIT
Specifies the data bus width to the target flash device. You can speed up
autodetection, if you specify the correct data bus size. You need this option
together with the option /DEVICE= to explicit specify a specific flash
configuration.
/BYTE-MODE
If there is a flash device connected to the CPU which does have a byte mode pin
(8 bit and 16/32 bit bus mode), you can force it to be used as 8 bit mode with the
option /BYTE-MODE. In most cases this option will not be needed.
JTAG_S3C24xxa.doc
33
JTAG-Booster for Samsung S3C24xx
/NOMAN
If you use a flash device which is identical to one of the supported parts, but is
from a different manufacturer, with this option you can suppress the comparison
of the manufacturer identification code. We recommend to use this option
together with the /DEVICE= option to avoid failures in autodetection.
/DEVICE-BASE=hhhhhh1
Here you can specify a flash device starting address. In most cases, where the
flash device is selected with one of the CPUs chip select pins, this parameter is
not needed. But if there is any decoding logic in your hardware, this option will
be needed. Especially, if there are several flash banks connected to one chip
select and a sub decoding logic generates chip selects for these flash banks,
this option can be used to select a specific flash bank.
Default:
/DEVICE-BASE=0
Abbreviation:
/DB=
/OFFSET=hhhhhh
The programming starts at an offset of hhhhhh relative to the start address of
the flash device. If the offset is negative, the offset specifies an address relative
to the end of the flash device. See also option /TOP
Default:
/OFFSET=0
Abbreviation:
/O=
/TOP
If the option /TOP is used the option /OFFSET= specifies the address where the
programming ends (plus one) instead of the starting address. This option is very
important for Intel CPU architectures, because target execution always starts at
the top of the address space.
/FILE-OFFSET=hhhhhh
If FILE-OFFSET is specified, the first hhhhhh bytes of the file are skipped and
not programmed to target.
Default:
/FILE-OFFSET=0
Abbreviation:
/FO=
1
hhhhhh=number base is hex
34
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
/LENGTH=hhhhhh
The number of programmed bytes may be limited to LENGTH. If no LENGTH is
specified the whole file is programmed.
Default:
/LENGTH=4000000 (64 MByte)
Abbreviation:
/L=
/NODUMP
In case of a verify error the contents of the flash memory is written to a file with
the extension .DMP. With /NODUMP you can suppress this feature.
/ERASEALL
Erase the whole flash device. If this option isn't set, only those blocks are erased
where new data should be written to.
/NOERASE
This option prevents the flash device from being erased.
/CS0 /CS1 /CS2 /CS3 /CS4 /CS5 /CS6 /CS7
This options may be used to specify one or more chip select signals to the flash
memory. The used chip selects must be defined as output and inactive in the
initialization file. (See chapter 1.9 “Initialization file JTAGxxxx.INI”.)
Default:
/CS0
/NOCS
Use this option to switch off all chip select signals. This may be necessary if the
device's chip select is generated via a normal decoder instead of using the
Samsung S3C24xx chip select unit.
/NOWRSETUP
By default write cycles to the Flash EPROM are realized with three steps: 1. set
address/data 2. write strobe active 3. write strobe inactive. In most cases it is
possible to set the write strobe coincident with setting of address and data by
specifying the option /NOWRSETUP. This increases the programming speed
by 50%.
JTAG_S3C24xxa.doc
35
JTAG-Booster for Samsung S3C24xx
Examples:
JTAGxxxx /P ROMDOS.ROM /L=20000 /TOP
This example programs up to 128 Kbytes of the file ROMDOS.ROM (with i.e.
512 Kbytes) to the top of the boot flash memory.
JTAGxxxx /P CE.ROM /32BIT /CS1
This example programs the file CE.ROM to the 32 Bit Flash-EPROM connected
to CS1#.
36
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
2.2.
Read a Flash Device to file
Usage:
JTAGxxxx /R filename [optionlist]
The contents of a flash device is read and written to a file.
The type of the flash device is normally detected by the software. When
autodetection fails you should use the /DEVICE= option together with /8BIT or
/16BIT or /32BIT to set the right flash device and configuration. The known
devices are shown in chapter 1.10 “Supported flash devices”.
Options:
/DEVICE=devicename
See function /P (Chapter 2.1)
/8BIT /16BIT /32BIT
See function /P (Chapter 2.1)
/BYTE-MODE
See function /P (Chapter 2.1)
/NOMAN
See function /P (Chapter 2.1)
/DEVICE-BASE=hhhhhh2
See function /P (Chapter 2.1)
/OFFSET=hhhhhh
Reading of the flash memory starts at an offset of hhhhhh relative to the start
address of the flash device. If the offset is negative, the offset specifies a
address relative to the end of the flash device.
See also option /TOP.
Default:
/OFFSET=0
Abbreviation:
/O=
2
hhhhhh=number base is hex
JTAG_S3C24xxa.doc
37
JTAG-Booster for Samsung S3C24xx
/TOP
If the option /TOP is used the option /OFFSET= specifies the address where
reading ends (plus one) instead of the starting address.
/LENGTH=hhhhhh
The number of read bytes may be limited to LENGTH. If no LENGTH is specified
the whole flash device is read (if no offset is specified).
/CS0 /CS1 /CS2 /CS3 /CS4 /CS5 /CS6 /CS7
See function /P (Chapter 2.1)
/NOWRSETUP
See function /P (Chapter 2.1)
Please note: In the function /R write cycles are needed to detect the type of the
flash memory.
Example:
JTAGxxxx /R BIOS.ABS /L=10000 /TOP
This example may be used to read the upper most 64 Kbyte of the flash memory
to the file BIOS.ABS.
38
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
2.3.
Verify a Flash Device with file
Usage:
JTAGxxxx /V filename [optionlist]
The contents of a flash device is compared with the specified file. If there are
differences the memory is dumped to a file with the extension DMP.
The type of flash device is normally detected by the software. When autodetect
fails you should use the /DEVICE= option together with /8BIT or /16BIT or
/32BIT to set the right flash device and configuration. The known devices are
shown in chapter 1.10 “Supported flash devices”.
Options:
/DEVICE=devicename
See function /P (Chapter 2.1)
/8BIT /16BIT /32BIT
See function /P (Chapter 2.1)
/BYTE-MODE
See function /P (Chapter 2.1)
/NOMAN
See function /P (Chapter 2.1)
/DEVICE-BASE=hhhhhh
See function /P (Chapter 2.1)
/OFFSET=hhhhhh
See function /P (Chapter 2.1)
/TOP
See function /P (Chapter 2.1)
/FILE-OFFSET=hhhhhh
See function /P (Chapter 2.1)
JTAG_S3C24xxa.doc
39
JTAG-Booster for Samsung S3C24xx
/LENGTH=hhhhhh
See function /P (Chapter 2.1)
/NODUMP
See function /P (Chapter 2.1)
/CS0 /CS1 /CS2 /CS3 /CS4 /CS5 /CS6 /CS7
See function /P (Chapter 2.1)
/NOWRSETUP
See function /P (Chapter 2.1)
Please note: In the function /V write cycles are needed to detect the type of the
flash memory.
Example:
JTAGxxxx /V ROMDOS.ROM /L=20000 /TOP
This example may be used to verify the upper most 128 Kbytes of the flash
memory with the file ROMDOS.ROM (with i.e. 512 Kbytes).
40
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
2.4.
Dump target memory
Usage:
JTAGxxxx /DUMP [optionlist]
A Hex-Dump of the target memory is printed on the screen, if not redirected to
file or device.
Options:
/8BIT /16BIT /32BIT
Default:
/32BIT
/OFFSET=hhhhhh
The memory dump starts at an offset of hhhhhh plus the device start address
(see option /DEVICE-BASE=).
Default:
/OFFSET=0
Abbreviation:
/O=
/DEVICE-BASE=hhhhhh3
The device start address is used as an additional offset. This gives the function
/DUMP the same behavior as function /P /V and /R.
Default:
/DEVICE-BASE=0
Abbreviation:
/DB=
/TOP
If the option /TOP is used the option /OFFSET= specifies the address where
the dump ends (plus one) instead of the starting address
/LENGTH=hhhhhh
Default:
/LENGTH=100
Abbreviation:
/L=
/CS0 /CS1 /CS2 /CS3 /CS4 /CS5 /CS6 /CS7
See function /P (Chapter 2.1)
Default:
/CS0
3
hhhhhh=number base is hex
JTAG_S3C24xxa.doc
41
JTAG-Booster for Samsung S3C24xx
Example:
JTAGxxxx /DUMP
This example makes a memory dump of the first 256 bytes of the Boot-EPROM.
42
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
2.5.
Program an I²C-Device
Usage:
JTAGxxxx /PI2C filename [/I2CBIG] [optionlist]
The specified file is programmed to an I²C-Device (i.e. a serial EEPROM)
connected to pins of the CPU. Finally a complete verify is done. If the verify fails,
the contents of the I²C-Device is written to a file with the extension DMP.
Two methods to connect the I²C-Device to the CPU are supported. The first
method is to use two CPU pins, one pin for clock output (I2CCLK) and one pin
for serial data input and output (I2CDAT). The second method is to use one pin
for clock output (I2CCLK), one for serial data input (I2CDATI) and one for serial
data output (I2CDATO).
Options:
/I2CBIG
Specify this option if there is a device which needs a three byte address instead
of a two byte address.
This option must be the first option after the filename.
/DEVICE-BASE=hhhhhh
This option specifies an I²C device starting address. The default values are
chosen to access an serial EEPROM.
Default:
/DEVICE-BASE=5000
(if option /I2CBIG omitted)
Default:
/DEVICE-BASE=500000
(if option /I2CBIG specified)
/OFFSET=hhhhhh
The programming starts at an offset of hhhhhh relative to the start address of
the I²C-Device.
Default:
/OFFSET=0
Abbreviation:
/O=
/FILE-OFFSET=hhhhhh
If FILE-OFFSET is specified, the first hhhhhh bytes of the file are skipped and
not programmed to target.
Default:
/FILE-OFFSET=0
Abbreviation:
/FO=
JTAG_S3C24xxa.doc
43
JTAG-Booster for Samsung S3C24xx
/LENGTH=hhhhhh
The number of programmed bytes may be limited to LENGTH. If no LENGTH is
specified the whole file is programmed.
Abbreviation:
/L=
/NODUMP
In case of a verify error the contents of the I²C-Device is written to a file with the
extension .DMP. With option /NODUMP you can suppress this feature.
/I2CCLK=pin_name
Specifies the CPU pin used for serial clock output.
/I2CDAT=pin_name
Specifies the CPU pin used for serial data input and output. Pin_name must
specify a bidirectional pin otherwise an error message occurs. Instead of one
bidirectional pin one pin for serial data input and one for serial data output may
be used. See option /I2CDATO= and /I2CDATI= .
/I2CDATO=pin_name
Specifies the CPU pin used for serial data output. Pin_name must specify a
output pin otherwise an error message occurs.
/I2CDATI=pin_name
Specifies the CPU pin used for serial data input. Pin_name must specify a input
pin otherwise an error message occurs.
Example:
JTAGxxxx /PI2C EEPROM.CFG /I2CCLK=FLAG0 /I2CDAT=FLAG1
This example loads the file EEPROM.CFG to a serial EEPROM connected to the
pins FLAG0 and FLAG1 of the Samsung S3C24xx
44
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
2.6.
Read an I²C-Device to file
Usage:
JTAGxxxx /RI2C filename [/I2CBIG] /L=hhhhhh [optionlist]
The contents of an I²C-Device (i.e. a serial EEPROM) is read and written to a
file. The option /LENGTH= must be specified.
Options:
/I2CBIG
This option must be the first option after the filename.
See function /PI2C (Chapter 2.5)
/DEVICE-BASE=hhhhhh
See function /PI2C (Chapter 2.5)
/OFFSET=hhhhhh
Reading of the I²C-Device starts at an offset of hhhhhh relative to the start
address of the I²C-Device.
Default:
/OFFSET=0
Abbreviation:
/O=
/LENGTH=hhhhhh
The number of read bytes must be specified otherwise an error message occurs.
Abbreviation:
/L=
/I2CCLK=pin_name
See function /PI2C (Chapter 2.5)
/I2CDAT=pin_name
See function /PI2C (Chapter 2.5)
/I2CDATO=pin_name
See function /PI2C (Chapter 2.5)
/I2CDATI=pin_name
See function /PI2C (Chapter 2.5)
JTAG_S3C24xxa.doc
45
JTAG-Booster for Samsung S3C24xx
Example:
JTAGxxxx /RI2C EEPROM.CFG /I2CCLK=GP26 /I2CDAT=GP27 /L=100
This example reads 256 bytes from a serial EEPROM to the file EEPROM.CFG.
The serial EEPROM is connected to the pins CP26 and GP27 of the Samsung
S3C24xx.
46
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
2.7.
Verify an I²C-Device with file
Usage:
JTAGxxxx /VI2C filename [/I2CBIG] [optionlist]
The contents of an I²C-Device (i.e. a serial EEPROM) is compared with the
specified file. If there are differences the contents of the I²C -Device is written to
a file with the extension DMP.
Options:
/I2CBIG
This option must be the first option after the filename.
See function /PI2C (Chapter 2.5)
/DEVICE-BASE=hhhhhh
See function /PI2C (Chapter 2.5)
/OFFSET=hhhhhh
See function /PI2C (Chapter 2.5)
/FILE-OFFSET=hhhhhh
See function /PI2C (Chapter 2.5)
/LENGTH=hhhhhh
See function /PI2C (Chapter 2.5)
/NODUMP
See function /PI2C (Chapter 2.5)
/I2CCLK=pin_name
See function /PI2C (Chapter 2.5)
/I2CDAT=pin_name
See function /PI2C (Chapter 2.5)
/I2CDATO=pin_name
See function /PI2C (Chapter 2.5)
JTAG_S3C24xxa.doc
47
JTAG-Booster for Samsung S3C24xx
/I2CDATI=pin_name
See function /PI2C (Chapter 2.5)
Example:
JTAGxxxx /VI2C EEPROM.CFG /I2CCLK=GP26 /I2CDAT=GP27
This example verifies 256 bytes from a serial EEPROM with the file
EEPROM.CFG. The serial EEPROM is connected to the pins CP26 and GP27 of
the Samsung S3C24xx.
48
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
2.8.
Dump an I²C-Device
Usage:
JTAGxxxx /DUMPI2C [/I2CBIG] [optionlist]
A Hex-Dump of an I²C-Device is printed on the screen, if not redirected to file or
device.
Options:
/I2CBIG
This option must be the first option.
See function /PI2C (Chapter 2.5)
/DEVICE-BASE=hhhhhh
See function /PI2C (Chapter 2.5)
/OFFSET=hhhhhh4
The memory dump starts at an offset of hhhhhh.
Default:
/OFFSET=0
Abbreviation:
/O=
/LENGTH=hhhhhh
Default:
/LENGTH=100
Abbreviation:
/L=
/I2CCLK=pin_name
Specifies the CPU pin used for serial clock output.
/I2CDAT=pin_name
Specifies the CPU pin used for serial data input and output. Pin_name must
specify a bidirectional pin otherwise an error message occurs. Instead of one
bidirectional pin one pin for serial data input and one for serial data output may
be used. See option /I2CDATO= and /I2CDATI= .
/I2CDATO=pin_name
Specifies the CPU pin used for serial data output. Pin_name must specify a
output pin otherwise an error message occurs.
4
hhhhhh=number base is hex
JTAG_S3C24xxa.doc
49
JTAG-Booster for Samsung S3C24xx
/I2CDATI=pin_name
Specifies the CPU pin used for serial data input. Pin_name must specify a input
pin otherwise an error message occurs.
Example:
JTAGxxxx /DUMPI2C /I2CCLK=FLAG0 /I2CDAT=FLAG1
This example makes a memory dump of the first 100h bytes of a serial
EEPROM connected to the CPU.
50
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
2.9.
Toggle CPU pins
Usage:
JTAGxxxx /BLINK /PIN=pinname [optionlist]
This command allows to test the hardware by blinking with LEDs or toggling
CPU signals. Faster signals can be generated by setting the delay option to
zero. This can be a very helpful feature to watch signals on an oscilloscope.
The signal on the defined pin has an duty cycle of 1/2: The level is 67% high and
33% low.
Please Note: Not every pin of the Samsung S3C24xx may be specified as an
output pin.
Options:
/PIN=pin_name
CPU pin to toggle. If the option /PIN= is not specified an error message occurs.
Most pins of the list in chapter 1.9 “Initialization file JTAGxxxx.INI” can be used.
If you type /PIN= without any pin declaration a list of the CPU pins is displayed.
/DELAY=dddddd5
Time to wait to next change of signal. This option can be adjusted to get
optimum signals for measures with the oscilloscope.
Default:
/DELAY=10000
Example:
JTAGxxxx /BLINK /PIN=FLAG3 /DELAY=0
This example toggles the FLAG3 pin very fast which can be followed by the use
of an oscilloscope.
5
dddddd=number base is decimal
JTAG_S3C24xxa.doc
51
JTAG-Booster for Samsung S3C24xx
2.10. Polling CPU pins
Usage:
JTAGxxxx /PIN? /PIN=pinname [optionlist]
This command allows to test the hardware by polling CPU signals.
Please Note: Not every pin of the Samsung S3C24xx may be specified as an
input pin.
Options:
/PIN=pin_name
CPU pin to poll. If the option /PIN= is not specified an error message occurs.
Most pins of the list in chapter 1.9 “Initialization file JTAGxxxx.INI” can be used.
If you type /PIN= without any pin declaration a list of the CPU pins is displayed.
Example:
JTAGxxxx /PIN? /PIN=RESET#
This example samples the reset pin of the Samsung S3C24xx.
52
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
2.11.
Polling CPU pins while the CPU is running
Usage:
JTAGxxxx /SAMPLE /PIN=pinname [optionlist]
This command is similar to the function /PIN?. But with this function any pin can
be observed, independent of the pin direction. Furthermore the CPU remains in
normal operation.
Options:
/PIN=pin_name
CPU pin to poll. If the option /PIN= is not specified an error message occurs.
All pins of the list in chapter 1.9 “Initialization file JTAGxxxx.INI” can be used. If
you type /PIN= without any pin declaration a list of the CPU pins is displayed.
Example:
JTAGxxxx /SAMPLE /PIN=FLAG3
This example samples the state of the port pin FLAG3 while the Samsung
S3C24xx is running.
JTAG_S3C24xxa.doc
53
JTAG-Booster for Samsung S3C24xx
2.12. Show status of all CPU pins while the CPU is running
Usage:
JTAGxxxx /SNAP [optionlist]
This function is similar to the function /SAMPLE, but displays the status of all
CPU pins on the screen. The CPU remains in normal operation.
The behavior of the function /SNAP depends on the option /REP: With this
option specified, the JTAG-Booster samples and displays the state of the CPU
pins repetitive. Without this option the status of the pins is displayed only once.
Options:
/PAUSE
Use this option to stop the output after each displayed screen. Don't use this
option together with the option /REP or if the output is redirected to a file.
Abbreviation
/P
/REP
If this option is specified the status of the pins is sampled and displayed
repetitive. In case of many signals the display is separated into several screens.
Therefor we recommend to use a video mode with 43 or 50 lines. Use the '+' and
the '-' key to switch between different screens. Any other key terminates the
program.
54
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
Sample output:
This is a sample output for a Samsung S3C2410
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 LEND
1 VFRAME
1 VD0
1 VD4
1 VD8
1 VD12
1 VD16
0 VD20
1 I2SLRCK
1 I2SDO
1 SDDAT1
1 SPIMOSI0
1 EINT8
1 EINT12
1 EINT16
1 EINT20
1 CLKOUT0
1 EINT0
1 EINT4
1 UCLK
1 RXD0
1 RXD2
1 RESET#
1 FWE#
1 GCS7#
1 GCS3#
1 SCKE
0 OE#
1 BE3#
0 ADDR1
1 ADDR5
1 ADDR9
0 ADDR13
0 ADDR17
0 ADDR21
0 ADDR25
1 DATA2
1 DATA6
1 DATA10
1 DATA14
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 VCLK
1 LCDVF0
1 VD1
1 VD5
1 VD9
1 VD13
1 VD17
0 VD21
1 I2SSCLK
1 SDCLK
1 SDDAT2
1 SPICLK0
1 EINT9
1 EINT13
1 EINT17
1 EINT21
1 CLKOUT1
1 EINT1
1 EINT5
1 CTS0#
1 TXD1
1 BATT_FLT#
1 EXTCLK
0 ALE
1 GCS6#
1 GCS2#
0 SCLK1
1 BE0#
1 SRAS#
0 ADDR2
0 ADDR6
0 ADDR10
0 ADDR14
0 ADDR18
0 ADDR22
0 ADDR26
1 DATA3
1 DATA7
1 DATA11
1 DATA15
JTAG_S3C24xxa.doc
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 VLINE
1 LCDVF1
1 VD2
1 VD6
1 VD10
1 VD14
1 VD18
0 VD22
1 CDCLK
1 SDCMD
1 SDDAT3
1 IICSCL
1 EINT10
1 EINT14
1 EINT18
1 EINT22
1 CON1#
1 EINT2
1 EINT6
1 RTS0#
1 RXD1
1 RSTOUT#
1 FCE#
0 CLE
1 GCS5#
1 GCS1#
0 SCLK0
1 BE1#
1 SCAS#
0 ADDR3
0 ADDR7
0 ADDR11
0 ADDR15
0 ADDR19
0 ADDR23
0 DATA0
1 DATA4
1 DATA8
1 DATA12
0 DATA16
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 VM
1 LCDVF2
1 VD3
1 VD7
1 VD11
1 VD15
1 VD19
0 VD23
0 I2SDI
1 SDDAT0
1 SPIMISO0
1 IICSDA
1 EINT11
1 EINT15
1 EINT19
1 EINT23
1 CON0#
1 EINT3
1 EINT7
1 TXD0
1 TXD2
1 PWREN
1 FRE#
1 WAIT#
1 GCS4#
0 GCS0#
1 WE#
1 BE2#
0 ADDR0
1 ADDR4
1 ADDR8
0 ADDR12
0 ADDR16
0 ADDR20
0 ADDR24
0 DATA1
1 DATA5
1 DATA9
1 DATA13
0 DATA17
55
JTAG-Booster for Samsung S3C24xx
|
|
|
|
|
|
|
0 DATA18
1 DATA22
1 DATA26
1 DATA30
1 TOUT2
1 XBREQ#
1 XDREQ0#
56
|
|
|
|
|
|
0 DATA19
1 DATA23
1 DATA27
1 DATA31
1 TOUT3
1 XDACK1#
|
|
|
|
|
|
0 DATA20
1 DATA24
1 DATA28
1 TOUT0
1 TCLK0
1 XDREQ1#
|
|
|
|
|
|
0 DATA21
1 DATA25
1 DATA29
1 TOUT1
0 XBACK#
1 XDACK0#
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
3. Implementation Information
This chapter summarizes some information about the implementation of the
JTAG-Booster and describes some restrictions.
•
The JTAG-Booster currently uses Boundary Scan to perform Flash
programming. The EmbeddedICE macrocell of the ARM920 core is not used.
•
Programming of NAND-Flash is currently not supported.
•
The software assumes the following scheme for connecting the FlashEPROM to the Samsung S3C24xx. Please contact us, if you have used a
different method.
S3C2410 signal
GCS0# GCS1#
GCS2# GCS3#
GCS4# GCS5#
GCS6# GCS7#
OE#
WE#
ADDR0
ADDR1
ADDR2..26
DATA0..7
DATA0..15
DATA0..31
8 Bit Flash
CS#
16 Bit Flash
CS#
32 Bit Flash
CS#
OE#
WE#
A0
A1
A2..26
D0..7
-
OE#
WE#
A1
A2..26
D0..15
-
OE#
WE#
A2..26
D0..31
1.) All other signals are hold static during flash programming. The state
of these signals is defined in the Initialization file.
JTAG_S3C24xxa.doc
57
JTAG-Booster for Samsung S3C24xx
4. Converter Program HEX2BIN.EXE
Since the JTAG-Booster software is not able to handle Intel-HEX or Motorola SRecord files, an separate converter tool is delivered with this product package.
Five types of HEX formats can be converted to BIN file:
•
I
•
D : Digital Research
•
M : MOTOROLA S HEX format (BYTE oriented)
•
T : TEKTRONICS HEX format (BYTE oriented)
•
H : Intel HEX-32
: INTEL HEX format (BYTE oriented)
th
Maximum conversion size is 256 kBytes. A 4 parameter for starting address
can be specified to skip out the leading garbage and you will maintain a small
size of output binary file.
If you start the HEX2BIN without any additional parameter all necessary
parameters will be asked for in a prompt mode:
HEX2BIN
Input HEX file name: MYAPP.H86
Output BIN file name[MYAPP.BIN]:
HEX file format
ntel /otorola /igital Research /ektronics /[H] Intel HEX-32[I] : H
Input CODE segment start address[0000000]: 10000
Input CODE segment end address[FFFFFFF]:
Unused bytes will be 00 FF [1] : 2
Instead of using the prompt mode, you can directly specify all necessary
parameters in the command line. This is essential for making batch files:
HEX2BIN MYAPP.H86 MYAPP.BIN H 0010000 FFFFFFF 2
It is very important to fill unused bytes with 0xFF, because this are simply
skipped by the JTAG-Boosters software and so it speeds up the programming
performance.
58
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
Please Note: "CODE segment start address" is interpreted as a Intel x86
architecture segment address: You have to specify a start address of 10000 to
start the conversion at 1 MByte.
This converter is a relatively old DOS tool and therefor it has problems with non
DOS compliant file and directory names. Avoid names with spaces, limit names
to eight characters. Otherwise the converter does not convert the input file,
without any error message!!
JTAG_S3C24xxa.doc
59
JTAG-Booster for Samsung S3C24xx
5. Support for Windows NT, Windows 2000 and Windows XP
A configured run time version of the "Kithara DOS Enabler, Version 6.x" is used
to give support for some of our DOS based tools (like the JTAG-Booster) for
Windows NT, Windows 2000 and Windows XP. After installation of the "DOS
Enabler" the accesses to the LPT ports are allowed for the all programs listed in
file Readme_WinNT.txt
Note: Accesses to the ports are only allowed for the programs listed in file
Readme_WinNT.txt. If you rename one of our tools, the DOS Enabler does not
work.
Important: You need administrator rights to install or de-install this program.
5.1.
Installation on a clean system
If you have a clean system without having installed a previous version of the
"Kithara Tool Center", this tool is really simple to install. Extract the ZIP file to a
new folder and start KSETUP.EXE. Everything is done within a few seconds. No
additional input is needed. Now reboot your PC.
5.2.
Installation with already installed version 5.x/6.x of Kithara
If you have already installed an older WinNT support (Kithara Version 5.x or 6.x),
st
you have to de-install it 1 as described in chapter 5.4.
After rebooting your PC you can install the Kithara 6.x as described above.
5.3.
Installation with already installed version 4.x of Kithara
Important!! If you have already installed an older WinNT support, you have to
deinstall it completely!!!
•
Start kcenter
•
Select Register "Einstellungen" (=Settings)
and deactivate "VDD benutzen"
and "speziellen seriellen Treiber benutzen".
•
Stop Kernel
60
JTAG_S3C24xxa.doc
JTAG-Booster for Samsung S3C24xx
•
exit the kcenter program
•
Now you can deinstall the Kithara Package with:
Settings - Control Panel.
All unused parts must be removed.
•
Reboot your PC
•
Now you can install the Kithara 6.x as described above.
5.4.
De-Installation version 5.x/6.x:
For deinstallation of the runtime version of the "Kithara DOS-Enabler Version
5.x/6.x":
•
use: Settings - Control-Panel - Add/Remove Programs
and remove the
“FS FORTH-SYSTEME WinNT Support”
and/or
“WinNT Support for JTAG-Booster and FLASH166”
•
Reboot your PC
JTAG_S3C24xxa.doc
61