I have a jtag programmer for xilinx devices ,is this a standard interface ?
Can i use this device to program other devices with a JTAG interface (eg
ARM ) ?
Or do i need a dedicated tjag interface for every Jtag device i intend to
use ? (whats the use of a JTAG standard then ?)

The standard JTAG interface is for test (JTAG stands for 'Joint Test
Action Group'). The IEEE 1149.1 standard is for that. The 1532 standard
[IEEE Standard for Boundary-Scan-based In System Configuration of
Programmable Devices (IEEE 1532)] athttp://grouper.ieee.org/groups/1532/ specifies using the JTAG interface
in a standard way for such things as ISP FPGAs.

The method used by various cores may or may not actually program that
device - often it loads RAM or programs attached flash. There are
'standards' for these interfaces in terms of protocol (ARM uses a
particular [wiggler] interface for this and debug functionality, MIPS
uses EJTAG, for instance).

At the physical layer, these devices are all roughly the same for the
JTAG portion (with the notable exception of TRST on Xilinx and a
number of other mfr's devices) but those other functions (accessing
internal debug registers for runtime ICE, for instance) requires other
pins. ARM requires the reset signal to be operated by the JTAG
debugger, as yet another example.

Note that the JTAG standard is a standard. It's all the things built on
top of it that aren't.

Yes, but you will need specific software for the ARM/Flash device
combination you use. Go to http://www.gnuarm.com and click on
one of the advertisement links. They have software for JTAG + ARM
that can program a wide range of flash devices for a very reasonable
price.

The JTAG is actually a back door into the processor
core. From its standpoint the Flash chip is an
external device.

A complete JTAG cell is able to drive the external
lines of the processor chip, but the ARM implementation
saves a latch and multiplexer in the cell, and this
makes it very difficult, if not impossible, to run the
external pins from the JTAG directly.

The rescue is to use the JTAG to load Flash writer
code to the system RAM, along with the data to
write to the Flash, and start the writer using the
JTAG interface. Often the RAM is not large enough,
so the Flash image has to be loaded in pieces.

The Flash loader code is very dependent on the
memory address space layout in the system and
on the Flash chip type, so it usually has to be
tailored for the target system.