Skip to content

vijayenthiran-arm/SCP-firmware

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Readme

Copyright (c) 2011-2018, Arm Limited. All rights reserved.

References

[1] Power Control System Architecture - DEN0050B (Please contact Arm directly to obtain a copy of this document)

[2] [System Control and Management Interface - DEN0056A] (http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/DEN0056A_System_Control_and_Management_Interface.pdf)

[3] Power Policy Unit - DEN0051C (Please contact Arm directly to obtain a copy of this document)

[4] [System Guidance] (https://developer.arm.com/products/system-design/system-guidance)

Introduction

There is a strong trend in the industry to provide microcontrollers in systems to abstract various power, or other system management tasks, away from application processors (AP). The Power Control System Architecture (PCSA) [1] describes how systems can be built following this approach.

The PCSA defines the concept of the System Control Processor (SCP), a dedicated processor that is used to abstract power and system management tasks away from application processors.

Similar to the SCP, the Manageability Control Processor (MCP) follows the same approach with the goal of providing a management entry-point to the System on Chip (SoC) where manageability is required, such as on a SoC targeting servers.

The SCP/MCP Software project provides a software reference implementation for the System Control Processor (SCP) and Manageability Control Processor (MCP) components found in several Arm Compute Sub-Systems.

This software includes an implementation of the System Control and Management Interface (SCMI) [2] as well as a driver for the Power Policy Unit (PPU) [3], among other Arm specifications and peripheral drivers that are part of the System Guidance (SG) [4] sub-systems.

Main features:

  • ARMv7-m architecture support
  • System startup control and device initialization
  • Power mode management
  • Sensor monitoring
  • Clock management
  • Dynamic Voltage and Frequency Scaling (DVFS)
  • Communications management between AP, MCP, and SCP using SCMI

Prerequisites (Tools)

To properly build SCP/MCP software for a target product, the following tools are required:

In addition, the following tools are recommended:

  • Doxygen (1.8.0 or later): Required to build supporting documentation
  • GCC (6.0 or later): Required to build framework tests that run on the build host

Prerequisites (CMSIS Libraries)

The SCP/MCP Software requires the use of components from the Cortex Microcontroller System Interface Standard (CMSIS) Software Pack, specifically the CMSIS Core and CMSIS Real-Time Operating System (RTOS) components. These are not bundled with the SCP/MCP Software and must be acquired before the software can be successfully built.

The CMSIS Software Pack is [available on GitHub.] (https://github.com/ARM-software/CMSIS_5).

From the root of the SCP/MCP Software directory, clone the CMSIS Git repository using:

$> git clone https://github.com/ARM-software/CMSIS_5.git ./cmsis

This will result in a cmsis subdirectory being created which contains the CMSIS Git repository. The correct Git tag, corresponding to the required CMSIS release, must then be checked-out:

$> cd ./cmsis
$> export CMSIS_TAG="5.2.0"
$> git checkout ${CMSIS_TAG}

The required CMSIS components are now present and the correct version has been selected.

Building Products

To build a product the basic command format for invoking 'make' is:

$> make [TARGET] <PRODUCT=<name>> [OPTIONS]

It is not necessary to provide a target since the default target for the product will build all the firmware contained within the product.

The 'help' target provides further information on the arguments that can be given:

$> make help

The framework includes a suite of tests that validate its core functionality. These can be run on the build host using:

$> make test

For more guidance on the build system, refer to the full set of documentation that includes the 'Build System' chapter. Instructions for generating this documentation are given in the following section.

Documentation

If Doxygen is available on the system containing the SCP/MCP software then comprehensive documentation can be generated. The complete set of documentation is compiled into bundles in HTML, Latex, and XML formats and placed in the build/doc directory. This documentation includes:

  • A Readme section (the contents of this file)
  • The BSD-3-Clause license under which this software and supporting files are distributed
  • An overview of the framework on which the SCP/MCP software is written, including information on how components of the software must interact with the framework and with each other.
  • An overview of the build system and the project directory structure
  • The project's coding style
  • Source documentation for the SCP/MCP Software framework
  • Source documentation for modules that are distributed as part of the product

From within the SCP/MCP Software root directory Doxygen can be invoked using the top-level Makefile:

$> make doc

License

The software is provided under a [BSD-3-Clause license] (https://spdx.org/licenses/BSD-3-Clause.html).

Feedback and Support

Arm welcomes any feedback on the SCP/MCP Software.

To provide feedback or to request support please contact Arm by email at support@arm.com. Arm licensees may also contact Arm via their partner managers.

About

Mirror of ARM-software/SCP-firmware

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 95.0%
  • Makefile 2.7%
  • Python 1.6%
  • Assembly 0.7%