readme.md
1SCP-firmware - version 2.15
2===========================
3
4Copyright (c) 2011-2024, Arm Limited. All rights reserved.
5
6References
7----------
8
9[1] Power Control System Architecture - DEN0050C (Please contact Arm directly to
10obtain a copy of this document)
11
12[2] [System Control and Management Interface - DEN0056A](https://developer.arm.com/documentation/den0056/d/)
13
14[3] Power Policy Unit - DEN0051C (Please contact Arm directly to obtain a copy
15of this document)
16
17[4] [System Guidance](https://developer.arm.com/products/system-design/system-guidance)
18
19Introduction
20------------
21
22There is a strong trend in the industry to provide microcontrollers in systems
23to abstract various power, or other system management tasks, away from
24Application Processors (APs). The Power Control System Architecture (PCSA) [1]
25describes how systems can be built following this approach.
26
27The PCSA defines the concept of the System Control Processor (SCP), a dedicated
28processor that is used to abstract power and system management tasks away from
29application processors.
30
31Similar to the SCP, the Manageability Control Processor (MCP) follows the same
32approach with the goal of providing a management entry-point to the System on
33Chip (SoC) where manageability is required, such as on a SoC targeting servers.
34
35SCP-firmware provides a software reference implementation for the System Control
36Processor (SCP) and Manageability Control Processor (MCP) components found in
37several Arm Compute Sub-Systems.
38
39Functionality
40-------------
41
42- Initialization of the system to enable application core boot
43- Runtime services:
44 - Power domain management
45 - System power management
46 - Performance domain management (Dynamic Voltage and Frequency Scaling)
47 - Clock management
48 - Sensor management
49 - Reset domain management
50 - Voltage domain management
51- System Control and Management Interface (SCMI, platform-side)
52- Support for the GNU Arm Embedded, Arm Compiler 6 and LLVM toolchains
53- Support for platforms with several control processors
54- Interactive debugging (with Command Line Interface)
55
56Platforms
57---------
58
59Various builds of the release have been tested on the following ARM Fixed
60Virtual Platforms (FVPs or boards where possible):
61
62- System Guidance for Mobile platform SGM-775 (Version 11.19 Build 30)
63- System Guidance for Infrastruture SGI-575 (Version 11.19 Build 30)
64- Neoverse N1 reference design (Version 11.6 Build 45)
65- System Guidance for Mobile platform SGM-776 (Version 11.19 Build 30)
66- Juno reference design (Please contact Arm directly to obtain the Juno FVP)
67- RD-N1-Edge Dual-Chip reference design
68 (Please contact Arm directly to obtain the RdN1EdgeX2 FVP)
69- RD-V1 reference design (Please contact Arm directly to obtain the RD_V1 FVP)
70- RD-V1-MC reference design
71 (Please contact Arm directly to obtain the RD_V1_Multichip FVP)
72- Renesas R-Car platform
73- Morello (Please see Arm's Ecosystem FVPs Developer page)
74- Total Compute (tc2) platform
75 (Please contact Arm directly to obtain the TC2 FVP)
76
77License
78-------
79
80The software is provided under a [BSD-3-Clause license](https://spdx.org/licenses/BSD-3-Clause.html).
81
82The license for CMock can be found in contrib/cmock/git/LICENSE.txt.
83
84The license for unity framework can be found in contrib/cmock/git/vendor/unity/LICENSE.txt.
85
86Getting started
87---------------
88
89See user_guide.md for instructions on how to get, install, build and use
90SCP-firmware on supported Arm platforms.
91
92CMake
93-----
94
95SCP-firmware now supports building with CMake. See doc/cmake_readme.md for
96details.
97
98Feedback and Support
99--------------------
100
101Arm welcomes any feedback on SCP-firmware. Please contact the maintainers (see
102maintainers.md).
103
104To request support please contact Arm by email at support@arm.com. Arm licensees
105may also contact Arm via their partner managers.
106
107Security issues reporting
108-------------------------
109
110To report any security issue please contact Arm by email at arm-security@arm.com.
111
112More details can be found at [Arm Developer website](https://developer.arm.com/support/arm-security-updates/report-security-vulnerabilities).
113