AM64x MCU+ SDK  08.02.00

Introduction

DMSC controls the power management of the device, hence is responsible for bringing the device out of reset, enforce clock and reset rules. DMSC power management functions are critical to bring device to low power modes, for example DeepSleep, and sense wake-up events to bring device back online to active state.

Files

file  sciclient_procboot.h
 This file contains the definition of all the message IDs, message formats to be able to interact with the System Controller firmware for processor boot and control. APIs are divided into the following two sets:
 

Functions

int32_t Sciclient_procBootRequestProcessor (uint8_t processorId, uint32_t timeout)
 Message to request a processor Provides a means for either the “recovery master” host or another host in the permitted access list to request for a physical processor control. More...
 
int32_t Sciclient_procBootReleaseProcessor (uint8_t processorId, uint32_t reqFlag, uint32_t timeout)
 Message to release a processor Provides a means for the host with current control to relinquish a physical processor control. More...
 
int32_t Sciclient_procBootHandoverProcessor (uint8_t processorId, uint8_t hostId, uint32_t timeout)
 Message to handover a processor Provides a means for the host with current control to relinquish a physical processor control to another host in the permitted list. More...
 
int32_t Sciclient_procBootSetProcessorCfg (const struct tisci_msg_proc_set_config_req *configReq, uint32_t timeout)
 Message to set the processor configuration Provides a means for the host with current control to do the base configuration of the processor. More...
 
int32_t Sciclient_procBootSetSequenceCtrl (uint8_t processorId, uint32_t control_flags_1_set, uint32_t control_flags_1_clear, uint32_t reqFlag, uint32_t timeout)
 Message to setup the processor sequence control. Provides a means for the host with current control to setup limited control flags in specific cases. More...
 
int32_t Sciclient_procBootAuthAndStart (const struct tisci_msg_proc_auth_boot_req *authBootCfg, uint32_t timeout)
 Message to Authorize and Start Processor Boot: Provides a means for the host with current control to do the following: More...
 
int32_t Sciclient_procBootGetProcessorState (uint8_t processorId, struct tisci_msg_proc_get_status_resp *procStatus, uint32_t timeout)
 Message to Get Processor Status Provides a means for hosts in the permitted list to get the status of a physical processor. This is required for the hosts to sequence events in the correct order. More...
 
int32_t Sciclient_procBootWaitProcessorState (uint8_t processorId, uint8_t num_match_iterations, uint8_t delay_per_iteration_us, uint32_t status_flags_1_set_all_wait, uint32_t status_flags_1_set_any_wait, uint32_t status_flags_1_clr_all_wait, uint32_t status_flags_1_clr_any_wait, uint32_t reqFlag, uint32_t timeout)
 Message to Wait for Processor Status Provides a means for hosts to request the SYSFW to wait till a a processor status matches a user defined value. More...
 

Function Documentation

◆ Sciclient_procBootRequestProcessor()

int32_t Sciclient_procBootRequestProcessor ( uint8_t  processorId,
uint32_t  timeout 
)

Message to request a processor Provides a means for either the “recovery master” host or another host in the permitted access list to request for a physical processor control.


Message: TISCI_MSG_PROC_REQUEST
Request: tisci_msg_proc_request_req
Response: tisci_msg_proc_request_resp

Parameters
processorIdIndex of the processor Refer Sciclient_ProcessorIds.
timeoutGives a sense of how long to wait for the operation. Refer SystemP_Timeout.
Returns
SystemP_SUCCESS on success, else failure

◆ Sciclient_procBootReleaseProcessor()

int32_t Sciclient_procBootReleaseProcessor ( uint8_t  processorId,
uint32_t  reqFlag,
uint32_t  timeout 
)

Message to release a processor Provides a means for the host with current control to relinquish a physical processor control.


Message: TISCI_MSG_PROC_RELEASE
Request: tisci_msg_proc_release_req
Response: tisci_msg_proc_release_resp

Parameters
processorIdIndex of the processor Refer Sciclient_ProcessorIds.
timeoutGives a sense of how long to wait for the operation. Refer SystemP_Timeout.
reqFlagCan be TISCI_MSG_FLAG_AOR/TISCI_MSG_FLAG_AOP
Returns
SystemP_SUCCESS on success, else failure

◆ Sciclient_procBootHandoverProcessor()

int32_t Sciclient_procBootHandoverProcessor ( uint8_t  processorId,
uint8_t  hostId,
uint32_t  timeout 
)

Message to handover a processor Provides a means for the host with current control to relinquish a physical processor control to another host in the permitted list.


Message: TISCI_MSG_PROC_HANDOVER
Request: tisci_msg_proc_handover_req
Response: tisci_msg_proc_handover_resp

Parameters
processorIdIndex of the processor Refer Sciclient_ProcessorIds.
hostIdIndex of the Host
timeoutGives a sense of how long to wait for the operation. Refer SystemP_Timeout.
Returns
SystemP_SUCCESS on success, else failure

◆ Sciclient_procBootSetProcessorCfg()

int32_t Sciclient_procBootSetProcessorCfg ( const struct tisci_msg_proc_set_config_req configReq,
uint32_t  timeout 
)

Message to set the processor configuration Provides a means for the host with current control to do the base configuration of the processor.


Message: TISCI_MSG_PROC_SET_CONFIG
Request: tisci_msg_proc_set_config_req
Response: tisci_msg_proc_set_config_resp

Parameters
configReqConfiguration parameters for the processor. Refer tisci_msg_proc_set_config_req
timeoutGives a sense of how long to wait for the operation. Refer SystemP_Timeout.
Returns
SystemP_SUCCESS on success, else failure

◆ Sciclient_procBootSetSequenceCtrl()

int32_t Sciclient_procBootSetSequenceCtrl ( uint8_t  processorId,
uint32_t  control_flags_1_set,
uint32_t  control_flags_1_clear,
uint32_t  reqFlag,
uint32_t  timeout 
)

Message to setup the processor sequence control. Provides a means for the host with current control to setup limited control flags in specific cases.


Message: TISCI_MSG_PROC_SET_CONTROL
Request: tisci_msg_proc_set_control_req
Response: tisci_msg_proc_set_control_resp

Parameters
processorIdIndex of the processor Refer Sciclient_ProcessorIds.
control_flags_1_setOptional Processor specific Control Flags to set. Setting a bit here implies required bit has to be set to 1.
control_flags_1_clearOptional Processor specific Control Flags to clear. Setting a bit here implies required bit has to be cleared to 0.
reqFlagCan be TISCI_MSG_FLAG_AOR/TISCI_MSG_FLAG_AOP ORRed with additional flag that can be set to alter the device state.
timeoutGives a sense of how long to wait for the operation. Refer SystemP_Timeout.
Returns
SystemP_SUCCESS on success, else failure

◆ Sciclient_procBootAuthAndStart()

int32_t Sciclient_procBootAuthAndStart ( const struct tisci_msg_proc_auth_boot_req authBootCfg,
uint32_t  timeout 
)

Message to Authorize and Start Processor Boot: Provides a means for the host with current control to do the following:

  • Authenticate and load a binary using the certificate provided information
  • Use certificate information also to setup critical processor specific flags


Message: TISCI_MSG_PROC_AUTH_BOOT
Request: tisci_msg_proc_auth_boot_req
Response: tisci_msg_proc_auth_boot_resp

Parameters
authBootCfgConfiguration Structure for the Authentication and boot
timeoutGives a sense of how long to wait for the operation. Refer SystemP_Timeout.
Returns
SystemP_SUCCESS on success, else failure

◆ Sciclient_procBootGetProcessorState()

int32_t Sciclient_procBootGetProcessorState ( uint8_t  processorId,
struct tisci_msg_proc_get_status_resp procStatus,
uint32_t  timeout 
)

Message to Get Processor Status Provides a means for hosts in the permitted list to get the status of a physical processor. This is required for the hosts to sequence events in the correct order.


Message: TISCI_MSG_PROC_GET_STATUS
Request: tisci_msg_proc_get_status_req
Response: tisci_msg_proc_get_status_resp

Parameters
processorIdIndex of the processor Refer Sciclient_ProcessorIds.
procStatusProcessor Status returned as given by tisci_msg_proc_get_status_resp
timeoutGives a sense of how long to wait for the operation. Refer SystemP_Timeout.
Returns
SystemP_SUCCESS on success, else failure

◆ Sciclient_procBootWaitProcessorState()

int32_t Sciclient_procBootWaitProcessorState ( uint8_t  processorId,
uint8_t  num_match_iterations,
uint8_t  delay_per_iteration_us,
uint32_t  status_flags_1_set_all_wait,
uint32_t  status_flags_1_set_any_wait,
uint32_t  status_flags_1_clr_all_wait,
uint32_t  status_flags_1_clr_any_wait,
uint32_t  reqFlag,
uint32_t  timeout 
)

Message to Wait for Processor Status Provides a means for hosts to request the SYSFW to wait till a a processor status matches a user defined value.


Message: TISCI_MSG_PROC_WAIT_STATUS
Request: tisci_msg_proc_status_wait_req
Response: tisci_msg_proc_status_wait_resp

Parameters
processorIdIndex of the processor Refer Sciclient_ProcessorIds.
num_match_iterationsMust be between 1 - 255. Specifies number of interations the status bit must be stable, before it is used by API. This is to account for glitches. For eg. specifying a value of 10 would mean that the bit must be stable for 10 iterations before the SYSFW API would report to the host that the bit has changed.
delay_per_iteration_usMust be between 0 - 255.Specifies how long to wait (in micro seconds) between each status check.
status_flags_1_set_all_waitOptional Processor specific status Flags to wait on. Setting a bit implies that the SYFW will wait until all bits of the status matching this field become '1'.
status_flags_1_set_any_waitOptional Processor specific status Flags to wait on. Setting a bit implies that the SYFW will wait until any bit of the status matching this field becomes '1'.
status_flags_1_clr_all_waitOptional Processor specific status Flags to wait on. Setting a bit implies that the SYFW will wait until all bits of the status matching this field become '0'.
status_flags_1_clr_any_waitOptional Processor specific status Flags to wait on. Setting a bit implies that the SYFW will wait until any bit of the status matching this field becomes '0'.
timeoutGives a sense of how long to wait for the operation. Refer SystemP_Timeout.
reqFlagCan be TISCI_MSG_FLAG_AOR/TISCI_MSG_FLAG_AOP
Returns
SystemP_SUCCESS on success, else failure