skip operations of *_bus_init() if TAP is not in RUNTEST/IDLE state

[ 2658604 ] Errors when part description contains commands accessing TAP


git-svn-id: https://urjtag.svn.sourceforge.net/svnroot/urjtag/trunk@1451 b68d4a1b-bc3d-0410-92ed-d4ac073336b7
master
Arnim Läuger 16 years ago
parent 21e0314bb7
commit 959fddf1aa

@ -1,3 +1,11 @@
2009-03-05 Arnim Laeuger <arniml>
* src/tap/print_queue.c, src/bus/bscoach.c, src/bus/ejtag_dma.c,
src/bus/pxa2x0.c, src/bus/zefant-xs3.c, src/bus/jopcyc.c,
src/bus/s3c4510x.c, src/bus/ejtag.c: skip operations of *_bus_init()
if TAP is not in RUNTEST/IDLE state
[ 2658604 ] Errors when part description contains commands accessing TAP
2009-03-04 Arnim Laeuger <arniml>
* src/bus/mpc5200.c: add additional address decoding to mpc5200 bus driver

@ -37,6 +37,7 @@
#include "jtag.h"
#include "buses.h"
#include "generic_bus.h"
#include "state.h"
typedef struct{
@ -162,7 +163,14 @@ flashbscoach_bus_init( bus_t *bus )
chain_t *chain = CHAIN;
int i=0;
if (tap_state(chain) != Run_Test_Idle) {
/* silently skip initialization if TAP isn't in RUNTEST/IDLE state
this is required to avoid interfering with detect when initbus
is contained in the part description file
bus_init() will be called latest by bus_prepare() */
return URJTAG_STATUS_OK;
}
part_set_instruction( p, "SAMPLE/PRELOAD" );
chain_shift_instructions( chain );
@ -189,7 +197,7 @@ flashbscoach_bus_init( bus_t *bus )
INITIALIZED = 1;
return 0;
return URJTAG_STATUS_OK;
}

@ -40,6 +40,7 @@
#include "jtag.h"
#include "buses.h"
#include "generic_bus.h"
#include "state.h"
typedef struct {
uint32_t impcode; /* EJTAG Implementation Register */
@ -273,6 +274,14 @@ ejtag_bus_init( bus_t *bus )
0x3c030000 // lui $3,0
};
if (tap_state(CHAIN) != Run_Test_Idle) {
/* silently skip initialization if TAP isn't in RUNTEST/IDLE state
this is required to avoid interfering with detect when initbus
is contained in the part description file
bus_init() will be called latest by bus_prepare() */
return URJTAG_STATUS_OK;
}
ejctrl = part_find_data_register( PART, "EJCONTROL" );
ejimpl = part_find_data_register( PART, "EJIMPCODE" );
ejaddr = part_find_data_register( PART, "EJADDRESS" );

@ -47,6 +47,7 @@
#include "jtag.h"
#include "buses.h"
#include "generic_bus.h"
#include "state.h"
typedef struct {
uint32_t impcode; /* EJTAG Implementation Register */
@ -334,6 +335,14 @@ int ejtag_dma_bus_init( bus_t *bus )
data_register *ejctrl=NULL, *ejimpl=NULL, *ejaddr=NULL, *ejdata=NULL;
int timeout=100;
if (tap_state(CHAIN) != Run_Test_Idle) {
/* silently skip initialization if TAP isn't in RUNTEST/IDLE state
this is required to avoid interfering with detect when initbus
is contained in the part description file
bus_init() will be called latest by bus_prepare() */
return URJTAG_STATUS_OK;
}
ejctrl = part_find_data_register( PART, "EJCONTROL" );
ejimpl = part_find_data_register( PART, "EJIMPCODE" );
ejaddr = part_find_data_register( PART, "EJADDRESS" );

@ -67,6 +67,7 @@
#include "jtag.h"
#include "buses.h"
#include "generic_bus.h"
#include "state.h"
#define RAM_ADDR_WIDTH 18
#define RAM_DATA_WIDTH 16
@ -433,6 +434,14 @@ jopcyc_bus_init( bus_t *bus )
chain_t *chain = CHAIN;
component_t *comp;
if (tap_state(chain) != Run_Test_Idle) {
/* silently skip initialization if TAP isn't in RUNTEST/IDLE state
this is required to avoid interfering with detect when initbus
is contained in the part description file
bus_init() will be called latest by bus_prepare() */
return URJTAG_STATUS_OK;
}
/* Preload update registers
See AN039, "Guidelines for IEEE Std. 1149.1 Boundary Scan Testing */

@ -42,6 +42,7 @@
#include "jtag.h"
#include "buses.h"
#include "generic_bus.h"
#include "state.h"
#include "pxa2x0_mc.h"
@ -251,6 +252,14 @@ pxa2xx_bus_init( bus_t *bus )
chain_t *chain = CHAIN;
part_t *p = PART;
if (tap_state(chain) != Run_Test_Idle) {
/* silently skip initialization if TAP isn't in RUNTEST/IDLE state
this is required to avoid interfering with detect when initbus
is contained in the part description file
bus_init() will be called latest by bus_prepare() */
return URJTAG_STATUS_OK;
}
part_set_instruction( p, "SAMPLE/PRELOAD" );
chain_shift_instructions( chain );
chain_shift_data_registers( chain, 1 );

@ -65,6 +65,7 @@
#include "jtag.h"
#include "buses.h"
#include "generic_bus.h"
#include "state.h"
#ifndef DEBUG_LVL2
@ -188,8 +189,16 @@ s3c4510_bus_printinfo( bus_t *bus )
static int
s3c4510_bus_init( bus_t *bus )
{
part_t *p = PART;
chain_t *chain = CHAIN;
part_t *p = PART;
chain_t *chain = CHAIN;
if (tap_state(chain) != Run_Test_Idle) {
/* silently skip initialization if TAP isn't in RUNTEST/IDLE state
this is required to avoid interfering with detect when initbus
is contained in the part description file
bus_init() will be called latest by bus_prepare() */
return URJTAG_STATUS_OK;
}
part_set_instruction( p, "SAMPLE/PRELOAD" );
chain_shift_instructions( chain );

@ -67,6 +67,7 @@
#include "jtag.h"
#include "buses.h"
#include "generic_bus.h"
#include "state.h"
/* EEPROM commands */
#define EEPROM_CMD_WREN 0x06
@ -555,8 +556,15 @@ zefant_xs3_bus_init( bus_t *bus )
chain_t *chain = CHAIN;
component_t *comp;
/* Preload update registers
See AN039, "Guidelines for IEEE Std. 1149.1 Boundary Scan Testing */
if (tap_state(chain) != Run_Test_Idle) {
/* silently skip initialization if TAP isn't in RUNTEST/IDLE state
this is required to avoid interfering with detect when initbus
is contained in the part description file
bus_init() will be called latest by bus_prepare() */
return URJTAG_STATUS_OK;
}
/* Preload update registers */
part_set_instruction( p, "SAMPLE/PRELOAD" );
chain_shift_instructions( chain );

Loading…
Cancel
Save