AM64x MCU+ SDK  08.01.00
SCICLIENT

The Sciclient driver provides API to communicate with the SYSFW to do system level tasks like resource allocation, peripheral power on/off, peripheral clock setting and so on. Below are the high level features supported by the driver

Features Supported

  • APIs to load the SYSFW onto the DMSC core
  • APIs to pass a specific board configuration to the SYSFW
  • Abstracted APIs for Power and Resource Management

SysConfig Features

Note
It is strongly recommend to use SysConfig where it is available instead of using direct SW API calls. This will help simplify the SW application and also catch common mistakes early in the development cycle.
  • There are no user programmable features for Sciclient SysConfig. However, adding any module makes the PowerClock_init() initialize the module power and clock. This is indirectly done using Sciclient APIs.

Features NOT Supported

NA

Important Usage Guidelines

  • Typical usage of Sciclient from user perspective would be for powering on/off a peripheral, or to get/set a particular clock

Example Usage

Include the below file to access the APIs

#include <stdio.h>

Module Power ON Example

int32_t status = SystemP_SUCCESS;
uint32_t moduleId = TISCI_DEV_TIMER0;
uint32_t moduleState, resetState, contextLossState;
/* Check the module status. Need not do power on if it's already ON */
status = Sciclient_pmGetModuleState(moduleId,
&moduleState,
&resetState,
&contextLossState,
{
status = Sciclient_pmSetModuleState(moduleId,
status = Sciclient_pmSetModuleRst (moduleId,
0x0U,
}

API

APIs for SCI Client or SYSFW/DMSC FW

sciclient.h
This file contains prototypes for APIs contained as a part of SCICLIENT as well as the structures of ...
Sciclient_pmSetModuleState
int32_t Sciclient_pmSetModuleState(uint32_t moduleId, uint32_t state, uint32_t reqFlag, uint32_t timeout)
Message to set the hardware block/module state This is used to request or release a device....
SystemP_WAIT_FOREVER
#define SystemP_WAIT_FOREVER
Value to use when needing a timeout of infinity or wait forver until resource is available.
Definition: SystemP.h:83
TISCI_MSG_VALUE_DEVICE_HW_STATE_OFF
#define TISCI_MSG_VALUE_DEVICE_HW_STATE_OFF
Definition: tisci_pm_device.h:93
TISCI_DEV_TIMER0
#define TISCI_DEV_TIMER0
Definition: tisci_devices.h:84
TISCI_MSG_FLAG_AOP
#define TISCI_MSG_FLAG_AOP
Definition: tisci_protocol.h:69
Sciclient_pmGetModuleState
int32_t Sciclient_pmGetModuleState(uint32_t moduleId, uint32_t *moduleState, uint32_t *resetState, uint32_t *contextLossState, uint32_t timeout)
Message to get the hardware block/Module state. This request does not require the processing entity t...
SystemP_SUCCESS
#define SystemP_SUCCESS
Return status when the API execution was successful.
Definition: SystemP.h:56
TISCI_MSG_FLAG_DEVICE_EXCLUSIVE
#define TISCI_MSG_FLAG_DEVICE_EXCLUSIVE
Definition: tisci_pm_device.h:74
TISCI_MSG_VALUE_DEVICE_SW_STATE_ON
#define TISCI_MSG_VALUE_DEVICE_SW_STATE_ON
Definition: tisci_pm_device.h:87
DebugP_assert
#define DebugP_assert(expression)
Function to call for assert check.
Definition: DebugP.h:159
TISCI_MSG_FLAG_DEVICE_RESET_ISO
#define TISCI_MSG_FLAG_DEVICE_RESET_ISO
Definition: tisci_pm_device.h:65
Sciclient_pmSetModuleRst
int32_t Sciclient_pmSetModuleRst(uint32_t moduleId, uint32_t resetBit, uint32_t timeout)
Set the device reset state. This is used to set or release various resets of the hardware block/modul...