View Single Post
Old 2020-10-05, 08:34   #11
Romulan Interpreter
LaurV's Avatar
Jun 2011

22×3×5×163 Posts

Almost all devices that include a not-the-lowest-performance processor, say they have at least one 32-bit or 16-bit "brain" (like CPU, MCU, chipset, FPGA, all kind of controllers, etc) have a JTAG or similar (SWD, SWIM), interface. But unless the documentation is provided, nobody know how to use it, except the designers/manufacturers.

JTAG per se, is a very simple thing, just a VERY-VERY big serial shift register (google: shift register). Imagine all bits inside of your CPU, all registers, all internal settings, input and output pin values, etc., placed in a very-very long string/queue. You can clock them out bit by bit and read them, or you can clock them in bit by bit and set them into the CPU, just by using three lines, one "data input", one "data output" and one "clock" line. Every pulse you give on the clock line will shift in a bit on DI, and shift out a bit on DO. You can shift in a number of bits till they "align" with internal registers, then set them all in the same time. Or read all internal registers at once, them shift them out one by one and see what they contain. That's all.

But the alignment, you have no way to guess, until the manufacturer provides you with the datasheet.

We use JTAG interfaces in our daily work, and could not do half of out job without them. They are used to program and debug almost all the hardware we make. Very few we make public.

We don't think jvang needs JTAG access to his toys, unless he kills the BIOS and needs flash rewrite by external artillery (programmer/debugger, etc). The BIOS of the mobo itself, and high-level utilities (i.e. run from OS) to play with that BIOS, should provide all the tools needed to do what he wants.

Last fiddled with by LaurV on 2020-10-05 at 08:41
LaurV is offline   Reply With Quote