- /* read ejtag ECR */
- uint32_t code[] = {
- MIPS32_MTC0(15,31,0), /* move $15 to COP0 DeSave */
- MIPS32_LUI(15,UPPER16(MIPS32_PRACC_STACK)), /* $15 = MIPS32_PRACC_STACK */
- MIPS32_ORI(15,15,LOWER16(MIPS32_PRACC_STACK)),
- MIPS32_SW(1,0,15), /* sw $1,($15) */
- MIPS32_SW(2,0,15), /* sw $2,($15) */
- MIPS32_LUI(1,UPPER16(MIPS32_PRACC_PARAM_OUT)), /* $1 = MIPS32_PRACC_PARAM_OUT */
- MIPS32_ORI(1,1,LOWER16(MIPS32_PRACC_PARAM_OUT)),
- MIPS32_MFC0(2,23,0), /* move COP0 Debug to $2 */
- MIPS32_SW(2,0,1),
- MIPS32_LW(2,0,15),
- MIPS32_LW(1,0,15),
- MIPS32_MFC0(15,31,0), /* move COP0 DeSave to $15 */
- MIPS32_NOP,
- MIPS32_B(NEG16(14)),
- MIPS32_NOP,
- };
-
- mips32_pracc_exec(ejtag_info, sizeof(code)/sizeof(code[0]), code, \
- 0, NULL, 1, debug_reg, 1);
-
- return ERROR_OK;
+ if (ejtag_info->ejtag_version == EJTAG_VERSION_20) {
+ ejtag_info->ejtag_ibs_addr = EJTAG_V20_IBS;
+ ejtag_info->ejtag_iba0_addr = EJTAG_V20_IBA0;
+ ejtag_info->ejtag_ibc_offs = EJTAG_V20_IBC_OFFS;
+ ejtag_info->ejtag_ibm_offs = EJTAG_V20_IBM_OFFS;
+
+ ejtag_info->ejtag_dbs_addr = EJTAG_V20_DBS;
+ ejtag_info->ejtag_dba0_addr = EJTAG_V20_DBA0;
+ ejtag_info->ejtag_dbc_offs = EJTAG_V20_DBC_OFFS;
+ ejtag_info->ejtag_dbm_offs = EJTAG_V20_DBM_OFFS;
+ ejtag_info->ejtag_dbv_offs = EJTAG_V20_DBV_OFFS;
+
+ ejtag_info->ejtag_iba_step_size = EJTAG_V20_IBAn_STEP;
+ ejtag_info->ejtag_dba_step_size = EJTAG_V20_DBAn_STEP;
+ } else {
+ ejtag_info->ejtag_ibs_addr = EJTAG_V25_IBS;
+ ejtag_info->ejtag_iba0_addr = EJTAG_V25_IBA0;
+ ejtag_info->ejtag_ibm_offs = EJTAG_V25_IBM_OFFS;
+ ejtag_info->ejtag_ibasid_offs = EJTAG_V25_IBASID_OFFS;
+ ejtag_info->ejtag_ibc_offs = EJTAG_V25_IBC_OFFS;
+
+ ejtag_info->ejtag_dbs_addr = EJTAG_V25_DBS;
+ ejtag_info->ejtag_dba0_addr = EJTAG_V25_DBA0;
+ ejtag_info->ejtag_dbm_offs = EJTAG_V25_DBM_OFFS;
+ ejtag_info->ejtag_dbasid_offs = EJTAG_V25_DBASID_OFFS;
+ ejtag_info->ejtag_dbc_offs = EJTAG_V25_DBC_OFFS;
+ ejtag_info->ejtag_dbv_offs = EJTAG_V25_DBV_OFFS;
+
+ ejtag_info->ejtag_iba_step_size = EJTAG_V25_IBAn_STEP;
+ ejtag_info->ejtag_dba_step_size = EJTAG_V25_DBAn_STEP;
+ }