2
\$\begingroup\$

I would like to know whether we can use the Boundary Scan functionality of JTAG for programming an onboard Flash device without initializing the core CPU/processor (JTAG compliant Processor).

During the initial board bring up, we need to program the onboard empty flash using the JTAG interface. But we don't want to use the processor core logic for programming flash, since after initial assembly we will not be sure if it is working correctly.

So, is it possible to program onboard (boot & Code) flash(NAND/NOR/SPI) using the JTAG interface on the processor, without initializing processor core logic?

\$\endgroup\$
  • 3
    \$\begingroup\$ You could at least mention which processor you're talking about. \$\endgroup\$ – stevenvh Jun 28 '12 at 10:25
2
\$\begingroup\$

Assuming the processor you are referring to has boundary-scan cells behind the pins that are connected to the Flash device you want to program, you should be able to program the Flash with JTAG/boundary scan without involvement of the processor's core. There are also some other JTAG based programming methodologies that can help to speed up the programming compared to boundary-scan based Flash programming (which is relatively slow).

\$\endgroup\$
2
\$\begingroup\$

I've done boundary-scan flash programming via JTAG. It works, but you'll really want to have a device that can clock out JTAG bits fast. Back when I did it (around 2006), I used a hand-built parallel-port bit-banger. It worked, but running it in Windows was about a third the speed of running it from DOS, so I used the latter (I booted from floppy in 2006!) Speed under DOS was a bit over one megabit per second, and JTAG has a lot of redundancy, which meant that programming a 64K chip took over a minute. Nowadays, I'd probably use a microcontroller which could clock out data at 8-10mbps or so.

\$\endgroup\$
0
\$\begingroup\$

Yes. However this is somewhat difficult. See if your JTAG software supports the memory chip you are using.

JTAG is actually easier when the processor is not running. You would have to halt a running processor if you want to use JTAG.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.