Xilskey: Modified JtagWrite API
According to IEEE 1149.1 programming will start after TCK toggle at higher edge of clock and will be ended at RTI state change and followed TCK toggle. So JtagWrite API is modified accordingly. Signed-off-by: VNSL Durga <vnsldurg@xilinx.com> Reviewed-by: Harini Katakam <harinik@xilinx.com>
This commit is contained in:
parent
601ba781fb
commit
f421c75450
1 changed files with 19 additions and 8 deletions
|
@ -51,6 +51,10 @@
|
|||
* 2.1 kvn 04/01/15 Fixed warnings. CR#716453.
|
||||
*
|
||||
* 3.00 vns 31/07/15 Added efuse functionality for Ultrascale.
|
||||
* 4.00 vns 09/10/15 Modified JtagWrite API as per IEEE 1149.1 standard
|
||||
* added TCK toggle after RTI state change where programming
|
||||
* will start and toggled TCK again at exit of RTI state to
|
||||
* stop programming. CR#885421.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -1089,24 +1093,31 @@ void JtagWrite(unsigned char row, unsigned char bit)
|
|||
jtag_navigate (g_port, JS_DRUPDATE);
|
||||
|
||||
//Go to RTI and stay in RTI EXACTLY Tpgm = 12 us (tbd) and immediately exit to SDS
|
||||
time_start = XilSKey_Efuse_GetTime();
|
||||
|
||||
jtag_navigate (g_port, JS_IDLE);
|
||||
time_end = XilSKey_Efuse_GetTime();
|
||||
delay = (u32)((time_end - time_start)/(TimerTicksfor100ns));
|
||||
|
||||
/* Toggle Clk after RTI */
|
||||
setPin (MIO_TCK, 0);
|
||||
setPin (MIO_TCK, 1);
|
||||
setPin (MIO_TCK, 0);
|
||||
|
||||
//Here we will be providing 12us delay.
|
||||
if(delay < 110)
|
||||
{
|
||||
|
||||
XilSKey_Efuse_SetTimeOut(&time, 110-delay);
|
||||
XilSKey_Efuse_SetTimeOut(&time, 110);
|
||||
while(1)
|
||||
{
|
||||
if(XilSKey_Efuse_IsTimerExpired(time) == 1)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
jtag_navigate (g_port, JS_DRSELECT);
|
||||
/*
|
||||
* After exit from RTI toggle Clk after entering DRSELECT state
|
||||
* so programming will be disabled
|
||||
*/
|
||||
setPin (MIO_TCK, 0);
|
||||
setPin (MIO_TCK, 1);
|
||||
setPin (MIO_TCK, 0);
|
||||
|
||||
jtag_navigate (g_port, JS_IRSELECT);
|
||||
jtag_navigate (g_port, JS_RESET);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue