More of the newer data sheets contain everything you need to know to program over JTAG. Older data sheet didn't, although back in 2001 or thereabouts I worked at a place where we wanted to program AVRs in-circuit via JTAG, and at the time Atmel was willing to hand over the programming information if you signed an NDA with them.
Hence if anything I'd say Atmel is one of the easier parts to use if you want to program via JTAG.
That being said, the JTAG standard itself is a bit more complicated than SPI, so given the option, I'd chose the later.
I am still curious if debugging is possible as well, using free tools like OpenOcd. Price is not a great issue, but as I am running Linux, I hesitate to buy tools that can be run under Windows only.
Same here. I have an ARM-board here, where programming via JTAG is annoyingly slow.
SPI seems to be the fastest way to program an AVR, besides parallel programming, which I never tried. But some USB- and serial Programmers manage to make SPI unusuable slow, because their serial communication with the SPI-Master is 19k2 only...
Falk PS: An almost free AVR-Development board is described here:
Originally it is a blood sugar meter, containing a dot-matrix OLED-Display, all needed voltage converters, three pushbuttons, a controller atmega168p, a 32768kHz crystal and an IrDa-Interface. One of them is serving now as a pocket watch for a mentally handicapped person, who has an idea of "time of day" but is unable to understand the hands on a clock. The display now says "It is a quarter to six o'clock" which means that her favourite TV-show will start soon ;-) The idea was stolen from