Forums

Using the JTAG interface of C6416

Started by shem...@yahoo.com April 5, 2008
Hi,

I need to connect the Boundary Scan Register between TDI and TDO.
Does anybody know where to find the binary codes of the JTAG instructions PRELOAD, SAMPLE and EXTEST, and the way of using them to scan serial data to access the external flash of the chip?

Thank you,
Ivan
Ivan,

On Sat, Apr 5, 2008 at 11:38 AM, wrote:
> Hi,
>
> I need to connect the Boundary Scan Register between TDI and TDO.
> Does anybody know where to find the binary codes of the JTAG instructions
> PRELOAD, SAMPLE and EXTEST, and the way of using them to scan serial data to
> access the external flash of the chip?

This is one of those tasks that 'sounds so easy', but may take a bit of work.
1. First we need more information. Are you trying to get to a JTAG
port on the Flash OR are you trying to program the Flash from the
6416??
2. You will need boundary scan hardware and software. Do you have this??
3. Normally you will need an adapter to go from you boundary scan
cable to the TI 14 pin JTAG connector. The more expensive tools
provide this adapter, others tell you how to build it. You will need
to pullup nTRST to 3.3v to enable the JTAG TAP on the 6416 to
function. You will need to pulldown EMU0 and EMU1 to enable boundary
scan.
4. To get the command info [SAMPLE and EXTEST are used on the 6416 -
I'm not sure about PRELOAD], pin mapping, and other stuff that you
need, you can goto ti.com. Search for 'TMS320C6416', look for
'product folder' in the match list [it is usually near the top], goto
the product folder and look near the bottom of the page for something
like 'BSDL file'. Download the zip file ana 'unzip it'. This will
give you a place to start.

mikedunn
>
> Thank you,
> Ivan
>

--
www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
Mike,

I don’t have any boundary scan hardware or software. I must do everything by direct control of the JTAG pins, without using external software.

The board with the DSP is a part of our system. This board is already designed. It works properly and passed the tests. No any hardware modifications are supposed to be done at this point.
What else needs to be implemented is an ability for in-circuit firmware upgrade. The DSP flash memory image will be transferred via Ethernet.

The JTAG is the only interface available on the board IO connector and my task is to find a way to use it to reprogram the flash. It can be done using a JTAG debugger uploading an "Updater" application into SDRAM of the DSP. This application accesses the COFF file with the flash image via JTAG and programs the flash.
The JTAG debugger does it, hence it should possible to be done directly by the system microprocessor working on TDI, TDO, TMS and TCK.
The problem is I couldn’t find any information how to wiggle the JTAG signals in this mode and I gave up.

Then I decided to use a simpler approach: shift appropriate data into Boundary Scan Register to access the flash memory control lines and address/data buses using the EXTEST instruction. I know this approach is slower but I have no choice.
According to the IEEE1149 standard the instructions EXTEST and SAMPLE/PRELOAD are public instructions. Anyway I didn’t succeed to get any information about their binary codes and the way of connecting the Boundary Scan Register between TDI and TDO.

You mention a 'BSDL file' with command info about JTAG, located in the product folder of TMS320C6416. I couldn't find it either. Could you please give me a link to it?

Thank you,
Ivan
On 4/6/08, s...@yahoo.com wrote:
> Mike,
>
> I don't have any boundary scan hardware or software. I must do everything by direct control of the JTAG pins, without using external software.
>

[mld]This is quite an undertaking. I would suggest doing some research
on open source software for JTAG access. You can [at least you could
in the past] find sw that talks to a parallel port and 'bit bangs' the
JTAG sequences. You should be able to also find schematics for a
simple parallel port-to-JTAG adapter [it has one IC - a buffer chip
for the signals]. This will allow you to learn/figure out the proper
sequences.

> The board with the DSP is a part of our system. This board is already designed. It works properly and passed the tests. No any hardware modifications are supposed to be done at this point.
> What else needs to be implemented is an ability for in-circuit firmware upgrade. The DSP flash memory image will be transferred via Ethernet.

[mld] Can you add 'bootp' support to your Flash??
If so, it would be much easier to download the code to upgrade.

>
> The JTAG is the only interface available on the board IO connector and my task is to find a way to use it to reprogram the flash. It can be done using a JTAG debugger uploading an "Updater" application into SDRAM of the DSP. This application accesses the COFF file with the flash image via JTAG and programs the flash.
> The JTAG debugger does it, hence it should possible to be done directly by the system microprocessor working on TDI, TDO, TMS and TCK.

[mld] Yes, it is possible if these pins can be controlled.

> The problem is I couldn't find any information how to wiggle the JTAG signals in this mode and I gave up.

[mld]There is a lot of info on this subject. Sometimes it is specific
to a particular micro, but the basic sequences are the same.

>
> Then I decided to use a simpler approach: shift appropriate data into Boundary Scan Register to access the flash memory control lines and address/data buses using the EXTEST instruction. I know this approach is slower but I have no choice.
> According to the IEEE1149 standard the instructions EXTEST and SAMPLE/PRELOAD are public instructions. Anyway I didn't succeed to get any information about their binary codes and the way of connecting the Boundary Scan Register between TDI and TDO.
>
> You mention a 'BSDL file' with command info about JTAG, located in the product folder of TMS320C6416. I couldn't find it either. Could you please give me a link to it?
[mld] My search took me to the product folder:
http://focus.ti.com/docs/prod/folders/print/tms320c6416.html
The 'simulation models' link at the top took me to:
BSDL Model
C6414, C6415, C6416 GLZ BSDL Model (Silicon Revision 2.0) (sprm138.zip, 11 KB)
19 Dec 2003 zip
The 'zip' file is at:
http://www.ti.com/litv/zip/sprm138

mikedunn
>
> Thank you,
> Ivan
>
>
--
www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
Ivan-

> I don't have any boundary scan hardware or software. I must do everything
> by direct control of the JTAG pins, without using external software.
>
> The board with the DSP is a part of our system. This board is already
> designed. It works properly and passed the tests. No any hardware
> modifications are supposed to be done at this point.
> What else needs to be implemented is an ability for in-circuit firmware
> upgrade. The DSP flash memory image will be transferred via Ethernet.
>
> The JTAG is the only interface available on the board IO connector and
> my task is to find a way to use it to reprogram the flash. It can be
> done using a JTAG debugger uploading an "Updater" application into SDRAM
> of the DSP. This application accesses the COFF file with the flash image
> via JTAG and programs the flash.
> The JTAG debugger does it, hence it should possible to be done directly
> by the system microprocessor working on TDI, TDO, TMS and TCK.

Yes, but the "JTAG debugger does it" is a process controlled by CCS, which is complex
software, developed over many years by TI, at expense of multi-millions of dollars.

> The problem is I couldn't find any information how to wiggle the JTAG
> signals in this mode and I gave up.

As Mike said, you can find JTAG signal information on the web. But the method used
by CCS is proprietary TI information.

> Then I decided to use a simpler approach: shift appropriate data into
> Boundary Scan Register to access the flash memory control lines and
> address/data buses using the EXTEST instruction. I know this approach
> is slower but I have no choice.
> According to the IEEE1149 standard the instructions EXTEST and
> SAMPLE/PRELOAD are public instructions. Anyway I didn't succeed to get
> any information about their binary codes and the way of connecting
> the Boundary Scan Register between TDI and TDO.
>
> You mention a 'BSDL file' with command info about JTAG, located in the
> product folder of TMS320C6416. I couldn't find it either. Could you
> please give me a link to it?

As Mike said, the boundary scan method may be do-able, but would be a lot of work.
This may be one of those cases where management says "use the JTAG connector because
it's there" but then ends up spending time and money that way exceeds finding another
method. I see from your posts on comp.dsp that your Flash chip is a Spansion
AM29LV160B, an older device that doesn't support JTAG or "other way in".

A few questions:

1) First, how does the Flash chip get programmed the first time? You guys always use
CCS and run a DSP program before the board is shipped?

2) Your task is for purposes of "field upgrade"? After the board has been shipped?

3) You have an external processor that will receive the updated DSP program via
Ethernet, then has access to the JTAG connector? It has direct access to the JTAG
signals as the DSP board is currently designed? Or the user will need to connect a
cable?

4) What does this DSP board do? It doesn't have any other IO connectors besides
JTAG? That would be odd for a DSP board. I ask because it's almost always possible
to instruct the DSP program to go into an "update mode" (idle, with other I/O
disabled), transfer the new program to it using one the standard 6416 interfaces
(serial port, HPI, UTOPIA, etc), then the DSP programs the Flash.

It's very rare that field upgrade involves programming the Flash with the DSP in
non-running mode and with the board installed in an actual system (i.e. not being
tested separately). You would be doing this if you use BDSL. If you do that, you
have to pay attention to all other circuitry and board I/O connected to the DSP, and
make sure you don't damage anything.

-Jeff
Jeff,

On 4/7/08, Jeff Brower wrote:
>
> Ivan-
>
> > I don't have any boundary scan hardware or software. I must do
> everything
> > by direct control of the JTAG pins, without using external software.
> >
> > The board with the DSP is a part of our system. This board is already
> > designed. It works properly and passed the tests. No any hardware
> > modifications are supposed to be done at this point.
> > What else needs to be implemented is an ability for in-circuit firmware
> > upgrade. The DSP flash memory image will be transferred via Ethernet.
> >
> > The JTAG is the only interface available on the board IO connector and
> > my task is to find a way to use it to reprogram the flash. It can be
> > done using a JTAG debugger uploading an "Updater" application into SDRAM
> > of the DSP. This application accesses the COFF file with the flash image
> > via JTAG and programs the flash.
> > The JTAG debugger does it, hence it should possible to be done directly
> > by the system microprocessor working on TDI, TDO, TMS and TCK.
>
> Yes, but the "JTAG debugger does it" is a process controlled by CCS, which
> is complex
> software, developed over many years by TI, at expense of multi-millions of
> dollars.
>
> > The problem is I couldn't find any information how to wiggle the JTAG
> > signals in this mode and I gave up.
>
> As Mike said, you can find JTAG signal information on the web. But the
> method used
> by CCS is proprietary TI information.
>
> > Then I decided to use a simpler approach: shift appropriate data into
> > Boundary Scan Register to access the flash memory control lines and
> > address/data buses using the EXTEST instruction. I know this approach
> > is slower but I have no choice.
> > According to the IEEE1149 standard the instructions EXTEST and
> > SAMPLE/PRELOAD are public instructions. Anyway I didn't succeed to get
> > any information about their binary codes and the way of connecting
> > the Boundary Scan Register between TDI and TDO.
> >
> > You mention a 'BSDL file' with command info about JTAG, located in the
> > product folder of TMS320C6416. I couldn't find it either. Could you
> > please give me a link to it?
>
> As Mike said, the boundary scan method may be do-able, but would be a lot
> of work.
> This may be one of those cases where management says "use the JTAG
> connector because
> it's there" but then ends up spending time and money that way exceeds
> finding another
> method. I see from your posts on comp.dsp that your Flash chip is a
> Spansion
> AM29LV160B, an older device that doesn't support JTAG or "other way in".
>
> A few questions:
>
> 1) First, how does the Flash chip get programmed the first time? You guys
> always use
> CCS and run a DSP program before the board is shipped?
>
> 2) Your task is for purposes of "field upgrade"? After the board has been
> shipped?
>
> 3) You have an external processor that will receive the updated DSP
> program via
> Ethernet, then has access to the JTAG connector? It has direct access to
> the JTAG
> signals as the DSP board is currently designed? Or the user will need to
> connect a
> cable?
>
> 4) What does this DSP board do? It doesn't have any other IO connectors
> besides
> JTAG? That would be odd for a DSP board.
>
[mld] FYI -
Jeff, keep in mind that what is 'odd' for one user may be routine for
others.
I have worked with a few clients that had many DSPs on a board for
processing only. Like a system with multiple PCI cards - each card
contained 18 c6x devices. Of course most that I have seen contain 4-8 c6x
devices.

mikedunn

> I ask because it's almost always possible
> to instruct the DSP program to go into an "update mode" (idle, with other
> I/O
> disabled), transfer the new program to it using one the standard 6416
> interfaces
> (serial port, HPI, UTOPIA, etc), then the DSP programs the Flash.
>
> It's very rare that field upgrade involves programming the Flash with the
> DSP in
> non-running mode and with the board installed in an actual system (i.e.
> not being
> tested separately). You would be doing this if you use BDSL. If you do
> that, you
> have to pay attention to all other circuitry and board I/O connected to
> the DSP, and
> make sure you don't damage anything.
>
> -Jeff

--
www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
Mike-
> [mld] FYI -> Jeff, keep in mind that what is 'odd' for one user may be routine for
others.> I have worked with a few clients that had many DSPs on a board for
processing only. Like a system with multiple PCI cards - each card contained 18 c6x
devices. Of course most that I have seen contain 4-8 c6x devices.
Maybe, but I've seen all the cases, and it's doubtful there's not another way in.
Most DSP cards -- with some exceptions such as farm cards you mention -- inherently
have a lot of I/O, that's part of their purpose.

In the farm card situation you describe a) there's not likely to be a Flash, code
would be downloaded via PCI bus. If not and self-boot is required, then each DSP is
not going to have it's own Flash; instead there would likely be a PLD of some type
connecting shared resources (like the Flash) to the DSP farm. Either way, still
various paths to get to either the Flash or the DSP itself.

Will be interesting to see if the OP comes back and says what his card does and what
I/O it's got.

-Jeff
Michael Dunn wrote:

> Jeff,
> On 4/7/08, Jeff Brower wrote:
>
> Ivan-
>
> > I don't have any boundary scan hardware or software. I must do
> everything
> > by direct control of the JTAG pins, without using external software.
> >
> > The board with the DSP is a part of our system. This board is already
> > designed. It works properly and passed the tests. No any hardware
> > modifications are supposed to be done at this point.
> > What else needs to be implemented is an ability for in-circuit firmware
>
> > upgrade. The DSP flash memory image will be transferred via Ethernet.
> >
> > The JTAG is the only interface available on the board IO connector and
> > my task is to find a way to use it to reprogram the flash. It can be
> > done using a JTAG debugger uploading an "Updater" application into
> SDRAM
> > of the DSP. This application accesses the COFF file with the flash
> image
> > via JTAG and programs the flash.
> > The JTAG debugger does it, hence it should possible to be done directly
>
> > by the system microprocessor working on TDI, TDO, TMS and TCK.
>
> Yes, but the "JTAG debugger does it" is a process controlled by CCS,
> which is complex
> software, developed over many years by TI, at expense of multi-millions
> of dollars.
>
> > The problem is I couldn't find any information how to wiggle the JTAG
> > signals in this mode and I gave up.
>
> As Mike said, you can find JTAG signal information on the web. But the
> method used
> by CCS is proprietary TI information.
>
> > Then I decided to use a simpler approach: shift appropriate data into
> > Boundary Scan Register to access the flash memory control lines and
> > address/data buses using the EXTEST instruction. I know this approach
> > is slower but I have no choice.
> > According to the IEEE1149 standard the instructions EXTEST and
> > SAMPLE/PRELOAD are public instructions. Anyway I didn't succeed to get
> > any information about their binary codes and the way of connecting
> > the Boundary Scan Register between TDI and TDO.
> >
> > You mention a 'BSDL file' with command info about JTAG, located in the
> > product folder of TMS320C6416. I couldn't find it either. Could you
> > please give me a link to it?
>
> As Mike said, the boundary scan method may be do-able, but would be a lot
> of work.
> This may be one of those cases where management says "use the JTAG
> connector because
> it's there" but then ends up spending time and money that way exceeds
> finding another
> method. I see from your posts on comp.dsp that your Flash chip is a
> Spansion
> AM29LV160B, an older device that doesn't support JTAG or "other way in".
>
> A few questions:
>
> 1) First, how does the Flash chip get programmed the first time? You guys
> always use
> CCS and run a DSP program before the board is shipped?
>
> 2) Your task is for purposes of "field upgrade"? After the board has been
> shipped?
>
> 3) You have an external processor that will receive the updated DSP
> program via
> Ethernet, then has access to the JTAG connector? It has direct access to
> the JTAG
> signals as the DSP board is currently designed? Or the user will need to
> connect a
> cable?
>
> 4) What does this DSP board do? It doesn't have any other IO connectors
> besides
> JTAG? That would be odd for a DSP board.
>
> [mld] FYI -Jeff, keep in mind that what is 'odd' for one user may be routine for
> others.I have worked with a few clients that had many DSPs on a board for
> processing only. Like a system with multiple PCI cards - each card contained 18
> c6x devices. Of course most that I have seen contain 4-8 c6x devices.
>
> mikedunn
>
> I ask because it's almost always possible
> to instruct the DSP program to go into an "update mode" (idle, with other
> I/O
> disabled), transfer the new program to it using one the standard 6416
> interfaces
> (serial port, HPI, UTOPIA, etc), then the DSP programs the Flash.
>
> It's very rare that field upgrade involves programming the Flash with the
> DSP in
> non-running mode and with the board installed in an actual system (i.e.
> not being
> tested separately). You would be doing this if you use BDSL. If you do
> that, you
> have to pay attention to all other circuitry and board I/O connected to
> the DSP, and
> make sure you don't damage anything.
>
> -Jeff
>