JTAG programming of Flash connected to 21065L

Started by John Henry November 4, 2005
Hi,
Did a search on the dsp site, and couldn't find an article that
matched my issue specifically.
I have an in house designed board with a 21065L and the JTAG connector
made available. Similar to the eval board.
On the 21065L, we have connected a RT49LV4096A flash. We may even go
up in size, or another one, but the HW interconnect between the 21065L
and the flash is as follows:
The flash is set up for byte accesses. (BYTE pin set for byte)
DSP BMS => Flash CE (using DMA with BMI set to enable this)
DSP A0 => Flash D15
DSP A1 => Flash A0, up through
DSP A17 => Flash A18.
DSP D0 => Flash D0, etc for all D pins on Flash
All of the above is perfectly fine, and works with code that I program
into the flash, my custom boot loader, and the optional product codes
to run when the boot loader boots and pulls the specific product code
from flash as needed.

Now, we want to utilize JTAG to program a blank flash, in system
programming, from a test PC in the factory.

I have found "similar" setups, but not one that utilizes a JTAG to do
the switching required for the BMS pin and the addressing off by 1
bit. (note, the addressing off by one bit is also due to the byte
ordering, and the way data is read from the flash, long story, so
these two things won't change.)

My question,
Has anyone utilized a JTAG programming in a similar manner? with a
couple of peculiarities as shown above?
If so, can you point me into a direction of a vendor that provides a
software package for a WinXP PC that will do this, and also a possible
cable/connector?

Thanks very much in advance.

John Henry
KI4JPL


On Fri, 4 Nov 2005, John Henry wrote:

> Hi,
> Did a search on the dsp site, and couldn't find an article that
> matched my issue specifically.
> I have an in house designed board with a 21065L and the JTAG connector
> made available. Similar to the eval board.
> On the 21065L, we have connected a RT49LV4096A flash. We may even go
> up in size, or another one, but the HW interconnect between the 21065L
> and the flash is as follows:
> The flash is set up for byte accesses. (BYTE pin set for byte)
> DSP BMS => Flash CE (using DMA with BMI set to enable this)
> DSP A0 => Flash D15
> DSP A1 => Flash A0, up through
> DSP A17 => Flash A18.
> DSP D0 => Flash D0, etc for all D pins on Flash
> All of the above is perfectly fine, and works with code that I program
> into the flash, my custom boot loader, and the optional product codes
> to run when the boot loader boots and pulls the specific product code
> from flash as needed.
>
> Now, we want to utilize JTAG to program a blank flash, in system
> programming, from a test PC in the factory.
>
> I have found "similar" setups, but not one that utilizes a JTAG to do
> the switching required for the BMS pin and the addressing off by 1
> bit. (note, the addressing off by one bit is also due to the byte
> ordering, and the way data is read from the flash, long story, so
> these two things won't change.)
>
> My question,
> Has anyone utilized a JTAG programming in a similar manner? with a
> couple of peculiarities as shown above?
> If so, can you point me into a direction of a vendor that provides a
> software package for a WinXP PC that will do this, and also a possible
> cable/connector?
>

The jtag talks to the 21065 right? So write a 21065 loader that will
write data from internal ram to the flash. Just specify which sectors or
addresses and do as much as you can in one shot. It will probably take
several transfers to do a whole flash chip. You can use dma to write one
byte at a time. It's a pain, but it works (I've done eeproms that way).

Your basic operation will be to download the program and data each time,
but the data can be different. No need to have the PC do the work, the
21065 can do it for you.

Patience, persistence, truth,
Dr. mike


--- In adsp@adsp..., Mike Rosing <eresrch@e...> wrote:
>
> On Fri, 4 Nov 2005, John Henry wrote:
>
> > Hi,
> > Did a search on the dsp site, and couldn't find an article that
> > matched my issue specifically.
> > I have an in house designed board with a 21065L and the JTAG connector
> > made available. Similar to the eval board.
> > On the 21065L, we have connected a RT49LV4096A flash. We may even go
> > up in size, or another one, but the HW interconnect between the 21065L
> > and the flash is as follows:
> > The flash is set up for byte accesses. (BYTE pin set for byte)
> > DSP BMS => Flash CE (using DMA with BMI set to enable this)
> > DSP A0 => Flash D15
> > DSP A1 => Flash A0, up through
> > DSP A17 => Flash A18.
> > DSP D0 => Flash D0, etc for all D pins on Flash
> > All of the above is perfectly fine, and works with code that I program
> > into the flash, my custom boot loader, and the optional product codes
> > to run when the boot loader boots and pulls the specific product code
> > from flash as needed.
> >
> > Now, we want to utilize JTAG to program a blank flash, in system
> > programming, from a test PC in the factory.
> >
> > I have found "similar" setups, but not one that utilizes a JTAG to do
> > the switching required for the BMS pin and the addressing off by 1
> > bit. (note, the addressing off by one bit is also due to the byte
> > ordering, and the way data is read from the flash, long story, so
> > these two things won't change.)
> >
> > My question,
> > Has anyone utilized a JTAG programming in a similar manner? with a
> > couple of peculiarities as shown above?
> > If so, can you point me into a direction of a vendor that provides a
> > software package for a WinXP PC that will do this, and also a possible
> > cable/connector?
> >
>
> The jtag talks to the 21065 right? So write a 21065 loader that will
> write data from internal ram to the flash. Just specify which
sectors or
> addresses and do as much as you can in one shot. It will probably take
> several transfers to do a whole flash chip. You can use dma to
write one
> byte at a time. It's a pain, but it works (I've done eeproms that way).
>
> Your basic operation will be to download the program and data each time,
> but the data can be different. No need to have the PC do the work, the
> 21065 can do it for you.
>
> Patience, persistence, truth,
> Dr. mike
>

Hi Mike,

Thanks, I had thought of this way, and am pretty sure that I could do
this, but I wanted to see if anyone had found an off the shelf product
that did the programming of a completely blank part on a board via
JTAG through the 21065L standard JTAG I/F using boundary scan.
If I can't find what I'm looking for, then I will write a loader as
you mention.
I already have a loader that does what I want, but I need the emulator
to run this loader at the moment on a board that has an unprogrammed
flash. THEN I don't need the emulator anymore. Anyway, a method that
works, but looking for a fast factory method.

Thanks,
John Henry
KI4JPL