PDK API Guide for J721E
SCIClient Driver

Introduction

System Controller Interface (SCI) Client

IMPORTANT NOTE
The interfaces defined in this package are bound to change. Release notes/user guide list the additional limitation/restriction of this module/interfaces.
Refer to top level user guide for detailed features, limitations and usage description.

Introduction to SCICLIENT

The SCIClient is an interface to the TI-SCI protocol for RTOS and non-OS based applications. It exposes the core message details, valid module/clock IDs to the higher level software and abstracts the communication with the firmware based on the TI-SCI protocol. These APIs can be called by power, resource and security RTOS drivers or any other non-OS or RTOS based higher level software to be able to communicate with DMSC for its services. The higher level software is expected to populate the necessary message core parameters. The SCIClient would wrap the core message with the necessary protocol header and forward this to the DMSC. The SCIClient relies on the CSL-FL layer to program and interact with the Secure Proxy Threads. The SCIClient's goal is to ensure there is no duplication of the interface to the DMSC from different software components which need to interact with the DMSC or other System Control Entities in future devices. The Sciclient contains

Introduction to DMSC

Traditional Texas Instruments SoCs have implemented system control functions such as power management within operating systems on each of the processing units (ARM/DSP). However, such a traditional approach has had tremendous challenges to ensure system stability. Few of the challenges faced include:

Device Management and Security control (DMSC) attempts to resolve these issues by being a consistent component of Keystone 3 SoC architecture performing the role of a centralized SoC power, security and device management controller.

In effect, this is a microcontroller and runs a safety and security certified firmware that provides services to the rest of the OSes/Software running on various other processors on the SoC.

DMSC Power Management

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.

DMSC Security Management

The DMSC firmware Security Management manages SoC central security resources. The security subsystem provides APIs to other software entities to avail these features in a controlled and secure way. The security management firmware is subdivided into modules listed below:

DMSC Resource Management

The DMSC firmware Resource Management (RM) (sub) system manages SoC shared resources. RM manages access and configuration of shared resources amongst SoC processing entities. RM provides a set of interfaces over which SoC processing entities can allocate and free access to shared resources.

The resource management firmware is subdivided into modules listed below:

Communication with DMSC

DMSC is a "black box" with respect to the other processing entities (ARM/DSP) on the SoC. Communication with DMSC occurs over a messaging protocol called the Texas Instruments System Control Interface (TI-SCI). TI-SCI is a predefined request-response protocol that provides access to the various services provided by DMSC.

The actual messaging hardware block varies depending on SoC, but typical examples include "Proxy over message manager" and "Secure Proxy over Ring Accellerator". These communication mechanisms are standardized and secured by DMSC firmware prior to operation.

The request/response format is described overall as in Figure 2 . The message type describes the service to be performed and is operated on depending on few attributes including privileges allowed and operational state of the SoC.

Type Byte Index Data Type Header
TISCI Header [0:1] U16 Message_type
[2] uint8_t Host
[3] uint8_t Sequence_id
[4:7] U32 Flags
Payload Depends on type of message Payload Fields

Sub Modules

 Sciclient DKEK API Interface
 
 Sciclient Firewall API Interface
 
 Sciclient Generic Messages API Interface
 
 Sciclient OTP API Interface
 
 Sciclient PM API Interface
 
 Sciclient Processor Boot API Interface
 
 Sciclient RM API Interface
 
 System Controller Interface (SCI) Client HAL
 
 Texas Instruments System Controller Interface