[LinuxBIOS] In System Flash Programming [Was: BIOS Saver RD1]

Ken Fuchs kfuchs at winternet.com
Tue Aug 16 22:13:40 CEST 2005

> Ken Fuchs wrote:

> > It would even be possible to use the JTAG connector to flash the
> > system BIOS.  All Opteron mainboards must include "JTAG" 
> > circuits, but

Jeff Carr wrote:

> You don't say!

Yes, AMD requires all Opteron (probably uniprocessor AMD64 too)
mainboards have the "JTAG" debugging circuits so AMD's Hardware Debug
Tool (HDT - requies a host with MS Windows 2000/XP & NDA) will run on
them.  Any Opteron mainboard without "JTAG" circuits would have to be
developed without AMD's support, so such mainboards probably don't

> > usually don't include the two JTAG headers.  Adding the headers is
> > quite easy.  

> Hmmm. two headers? Interesting.

Yes, one per Opteron processor.  Obviously only one would be needed to
flash the BIOS.

> > An open source Opteron JTAG flash programmer probably
> > won't happen any time soon, 

Sorry, I was just being pessimistic here.  I'm not even sure the
Opteron JTAG chains support flashing the BIOS device, but I would be
surprised if it didn't.

> Holy (**& that's fantastic. It sure might happen soon! OK, I might be
> getting ahead of myself. Are you sure the Opteron doesn't 
> require a ITP
> or similar debugging port? Or in other words: Can you single step/halt
> the processor/dump registers using the JTAG port. Lets hope so;
> otherwise you might not be able to do much via the JTAG port.

AMD requires a special JTAG port be used for the Opteron (AMD64).  The
AMD64 JTAG header is 2x13 with 0.05" spacing between pins.

The HDT software running on a MS Windows 2000/XP host can be used to
single step/halt the processor, dump registers and a whole lot more.

The American Arium ECM-50 can be attached using an Opteron Personality
Module via the JTAG (HDT) port.  Provides nice source level debugging.

> JTAG is a fantastic standard -- I'd expect it to be adopted 
> for any new chip entering the market.

It has been used for several years, AFAIK.

> > although it shouldn't be too difficult to do.  Anyone aware of
> > an open source JTAG flash programmer of any kind?

> Yes, there are at least two projects. I added a JTAG programming
> page to the FAQ: http://linuxbios.org/index.php/JTAG/BSDL_Guide

Thank you!

Macraigor Systems produces and sells the Raven or OCDemon device that
is required to attach to the AMD Opteron JTAG.  They also have GNU
software that allows one to use their OCD adapters (Raven & OCDemon):


> So here are some questions then:

> Do you know of any motherboards that leave the JTAG 
> connections populated?

I don't think any motherboards include JTAG headers, except possibly
Reference Design mainboards produced by chipset makers to demonstate
their chipsets to mainboard manufacturers.  However, even my nVidia
CK8-04 CRB mainboard did not come with JTAG headers.  However, the
toggle switch that enables JTAG access to one or both CPUs was
included.  Those 2x13 .05" headers must be expensive.

> Do you have instructions for populating them on some 
> motherboard I could pick up?

There are only two 2x13 .05" pads for the headers, so it should be
easy to see where they.  If the headers are keyed (have a missing
pin), one may need to look at the mainboard schematic to get the right
orientation.  You would need that in any case to get the ribbon cables
attached to the header with the proper orientation.

> Do you have links to the Opteron JTAG docs (these docs will tell you
> what you can and can't do from the JTAG port)?

Clearly, the Opteron JTAG docs are available on the AMD NDA web site,
but I suspect that the more basic JTAG information is available
without need for an NDA from 

> We will need the BSDL files for the Opteron. Now if only that was the
> case for the Pentium M...

The closest I could find was BSDL files for K6:


Maybe, if the right person nicely asks the right person at AMD, they
would provide the BSDL files for the Opteron.  Couldn't hurt to try.


Ken Fuchs <kfuchs at winternet.com>

More information about the coreboot mailing list