Merge UPDATE_DR and UPDATE_IR handling in JTAG state machines

This commit is contained in:
Alexey Starikovskiy 2023-09-07 11:29:46 +03:00 committed by Gwenhael Goavec-Merou
parent 6a0de15bff
commit 6c16417ee9
3 changed files with 3 additions and 13 deletions

View File

@ -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();

View File

@ -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,

View File

@ -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;