System Controller Interface (SCI) Client
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
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 firmware that provides services to the rest of the OSes/Software running on various other processors on the SoC.
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.
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:
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:
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] | U8 | Host | |
[3] | U8 | Sequence_id | |
[4:7] | U32 | Flags | |
Payload | Depends on type of message | Payload Fields |