Merge UPDATE_DR and UPDATE_IR handling in JTAG state machines
This commit is contained in:
parent
6a0de15bff
commit
6c16417ee9
10
src/jtag.cpp
10
src/jtag.cpp
|
|
@ -555,6 +555,7 @@ void Jtag::set_state(tapState_t newState)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case UPDATE_DR:
|
case UPDATE_DR:
|
||||||
|
case UPDATE_IR:
|
||||||
if (newState == RUN_TEST_IDLE) {
|
if (newState == RUN_TEST_IDLE) {
|
||||||
tms = 0;
|
tms = 0;
|
||||||
_state = RUN_TEST_IDLE;
|
_state = RUN_TEST_IDLE;
|
||||||
|
|
@ -616,15 +617,6 @@ void Jtag::set_state(tapState_t newState)
|
||||||
_state = UPDATE_IR;
|
_state = UPDATE_IR;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case UPDATE_IR:
|
|
||||||
if (newState == RUN_TEST_IDLE) {
|
|
||||||
tms = 0;
|
|
||||||
_state = RUN_TEST_IDLE;
|
|
||||||
} else {
|
|
||||||
tms = 1;
|
|
||||||
_state = SELECT_DR_SCAN;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case UNKNOWN:;
|
case UNKNOWN:;
|
||||||
// UNKNOWN should not be valid...
|
// UNKNOWN should not be valid...
|
||||||
throw std::exception();
|
throw std::exception();
|
||||||
|
|
|
||||||
|
|
@ -85,7 +85,7 @@ class Jtag {
|
||||||
PAUSE_IR = 13,
|
PAUSE_IR = 13,
|
||||||
EXIT2_IR = 14,
|
EXIT2_IR = 14,
|
||||||
UPDATE_IR = 15,
|
UPDATE_IR = 15,
|
||||||
UNKNOWN = 999
|
UNKNOWN = 16,
|
||||||
};
|
};
|
||||||
|
|
||||||
int shiftIR(unsigned char *tdi, unsigned char *tdo, int irlen,
|
int shiftIR(unsigned char *tdi, unsigned char *tdo, int irlen,
|
||||||
|
|
|
||||||
|
|
@ -403,6 +403,7 @@ Jtag::tapState_t XVC_server::set_state(const uint8_t *tms_seq, uint32_t len)
|
||||||
_state = (tms) ? Jtag::UPDATE_DR : Jtag::SHIFT_DR;
|
_state = (tms) ? Jtag::UPDATE_DR : Jtag::SHIFT_DR;
|
||||||
break;
|
break;
|
||||||
case Jtag::UPDATE_DR:
|
case Jtag::UPDATE_DR:
|
||||||
|
case Jtag::UPDATE_IR:
|
||||||
_state = (tms) ? Jtag::SELECT_DR_SCAN : Jtag::RUN_TEST_IDLE;
|
_state = (tms) ? Jtag::SELECT_DR_SCAN : Jtag::RUN_TEST_IDLE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -424,9 +425,6 @@ Jtag::tapState_t XVC_server::set_state(const uint8_t *tms_seq, uint32_t len)
|
||||||
case Jtag::EXIT2_IR:
|
case Jtag::EXIT2_IR:
|
||||||
_state = (tms) ? Jtag::UPDATE_IR : Jtag::SHIFT_IR;
|
_state = (tms) ? Jtag::UPDATE_IR : Jtag::SHIFT_IR;
|
||||||
break;
|
break;
|
||||||
case Jtag::UPDATE_IR:
|
|
||||||
_state = (tms) ? Jtag::SELECT_DR_SCAN : Jtag::RUN_TEST_IDLE;
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
/* pass */
|
/* pass */
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue