UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 18843

10.1 EDK - During XMD, values returned from the registers appear to be invalid

Description

When debugging our system using XMD, I receive strange values from the registers. It seems the instruction is not being seen and the value of the registers is unintelligible. Why does this happen?

Solution

To read each register, XMD has to "stuff" one instruction for each register to move its value into a debug register (DBDR) which can be read from the host by XMD. If the instructions are not executed, the DBDR might be invalid, which can result in the wrong behavior of the same values for all registers. 

 

Through the PowerPC JTAG port, using the JTAG "scanIR" operation, you can write an instruction into a "register" called the JISB (JTAG Instruction Stuff Buffer). Once the JISB register is written to, PowerPC will execute the instruction. For reading registers, usually an instruction such as "add DBDR, R0, <reg>" is "stuffed," and the reg value is moved into the DBDR, which can be read from the host via JTAG. 

 

There is a DBSR to check the status of whether or not the "instruction stuff" succeeded; this is not checked after every operation, only on first connection, etc. The above problem is caused by a failure of the "instruction stuff." This failure occurs if the PPC is suspended or unable to register instructions.

AR# 18843
Date Created 09/03/2007
Last Updated 05/16/2014
Status Archive
Type General Article