/* if SRST pulls TRST, we can't fulfill srst == 1 with trst == 0 */
if (((jtag_reset_config & RESET_SRST_PULLS_TRST) && (req_srst == 1)) && (req_trst == 0))
{
- ERROR("requested reset would assert trst");
+ WARNING("requested reset would assert trst");
return ERROR_JTAG_RESET_WOULD_ASSERT_TRST;
}
if (req_srst && !(jtag_reset_config & RESET_HAS_SRST))
{
- ERROR("requested nSRST assertion, but the current configuration doesn't support this");
+ WARNING("requested nSRST assertion, but the current configuration doesn't support this");
return ERROR_JTAG_RESET_CANT_SRST;
}
{
if (retval == ERROR_JTAG_RESET_CANT_SRST)
{
- WARNING("can't assert srst");
return retval;
}
else
{
if (retval == ERROR_JTAG_RESET_WOULD_ASSERT_TRST)
{
- WARNING("srst resets test logic, too");
retval = jtag_add_reset(1, 1);
}
}
{
if (retval == ERROR_JTAG_RESET_WOULD_ASSERT_TRST)
{
- WARNING("srst resets test logic, too");
retval = jtag_add_reset(1, 1);
}
if (retval == ERROR_JTAG_RESET_CANT_SRST)
{
- WARNING("can't assert srsrt");
return retval;
}
else if (retval != ERROR_OK)
ERROR("JTAG failure %i",retval);
return ERROR_JTAG_DEVICE_ERROR;
}
- /* DEBUG("load from core reg %i value 0x%x",num,*value); */
+ DEBUG("load from core reg %i value 0x%x",num,*value);
}
else if (type == ARMV7M_REGISTER_CORE_SP) /* Special purpose core register */
{
/* read other registers */
- /* cortex_m3_MRS(struct target_s *target, int num, u32* value) */
u32 savedram;
u32 SYSm;
u32 instr;
SYSm = num & 0x1F;
+
ahbap_read_system_u32(swjdp, 0x20000000, &savedram);
instr = ARMV7M_T_MRS(0, SYSm);
ahbap_write_system_u32(swjdp, 0x20000000, ARMV7M_T_MRS(0, SYSm));
swjdp_transaction_endcheck(swjdp);
DEBUG("load from special reg %i value 0x%x", SYSm, *value);
}
- else return ERROR_INVALID_ARGUMENTS;
+ else
+ {
+ return ERROR_INVALID_ARGUMENTS;
+ }
return ERROR_OK;
}
u32 SYSm;
u32 instr;
SYSm = num & 0x1F;
+
ahbap_read_system_u32(swjdp, 0x20000000, &savedram);
instr = ARMV7M_T_MSR(SYSm, 0);
ahbap_write_system_u32(swjdp, 0x20000000, ARMV7M_T_MSR(SYSm, 0));
swjdp_transaction_endcheck(swjdp);
DEBUG("write special reg %i value 0x%x ", SYSm, value);
}
- else return ERROR_INVALID_ARGUMENTS;
+ else
+ {
+ return ERROR_INVALID_ARGUMENTS;
+ }
return ERROR_OK;
}