When I attempt to connect with XMD to a Spartan-3 4000, I receive a message that says the instruction length is incorrect.
There are two options to resolve this issue:
You can find a list of the devices and their ID values in the "$XILINX_EDK/data/xmd" directory in a file called "devicetable.1st". You should reset the value for the Spartan-3 4000 from 0x0140093 to 0x01448093.
In the XMD Debug Options, you can manually enter the JTAG chain by unchecking the Auto-Discover option and entering in the JTAG configuration chain information with the corrected value (0x01448093) for the Spartan-3 4000.
This is scheduled to be fixed in 8.2i.