|
|
@@ -248,29 +248,6 @@ int mips_ejtag_exit_debug(struct mips_ejtag *ejtag_info) |
|
|
|
return mips32_pracc_exec(ejtag_info, 1, &inst, 0, NULL, 0, NULL, 0); |
|
|
|
} |
|
|
|
|
|
|
|
int mips_ejtag_read_debug(struct mips_ejtag *ejtag_info, uint32_t* debug_reg) |
|
|
|
{ |
|
|
|
/* read ejtag ECR */ |
|
|
|
static const 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_B(NEG16(12)), |
|
|
|
MIPS32_MFC0(15, 31, 0), /* move COP0 DeSave to $15 */ |
|
|
|
}; |
|
|
|
|
|
|
|
return mips32_pracc_exec(ejtag_info, ARRAY_SIZE(code), code, |
|
|
|
0, NULL, 1, debug_reg, 1); |
|
|
|
} |
|
|
|
|
|
|
|
int mips_ejtag_init(struct mips_ejtag *ejtag_info) |
|
|
|
{ |
|
|
|
uint32_t ejtag_version; |
|
|
|