This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM2432: warm reset

Part Number: AM2432

Tool/software:

#1. From below post, the device doesn't support watchdog reset? as it is unbelievable, so want to double confirm.

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1077458/am2432-watchdog-warm-reset-is-not-working/

#2. Is there a register can trigger warm reset? Seems can do from below TRM section, but why both M4 reset MAIN domain and Main domain reset MAIN domain? should be M4 reset MCU domain?

#3.  What did PM do on  Sciclient_pmDeviceReset() request? would like to refer the processing code.

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int32_t Sciclient_pmDeviceReset(uint32_t timeout)
{
int32_t retVal = SystemP_SUCCESS;
Sciclient_ReqPrm_t reqParam ;
struct tisci_msg_sys_reset_req request = {{0}};
struct tisci_msg_sys_reset_resp response = {0};
reqParam.messageType = (uint16_t) TISCI_MSG_SYS_RESET;
reqParam.flags = (uint32_t) TISCI_MSG_FLAG_AOP;
reqParam.pReqPayload = (const uint8_t *) &request;
reqParam.reqPayloadSize = (uint32_t) sizeof(request);
reqParam.timeout = (uint32_t) timeout;
Sciclient_RespPrm_t respParam ;
respParam.flags = (uint32_t) 0; /* Populated by the API */
respParam.pRespPayload = (uint8_t *) &response;
respParam.respPayloadSize = (uint32_t) sizeof(response);
retVal = Sciclient_service(&reqParam, &respParam);
if((retVal != SystemP_SUCCESS) ||
((respParam.flags & TISCI_MSG_FLAG_ACK) != TISCI_MSG_FLAG_ACK))
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

#4. Can call Sciclient_pmDeviceReset() in  Data or Instruction Abort Handler? would like to do warm reset upon exception abort. is there other advice on Abort processing?