The Arm SCP-Firmware provides a reference firmware implementation for the System Control Processor (SCP) and Manageability Control Processor (MCP) components found in several Arm Compute Sub-Systems. It provides Power Management and System Control functionality that is compliant with the Arm System Control and Management Interface (SCMI). The SCP-Firmware is based on a modular design which caters to multiple deployment models. The SCP Firmware lends itself to easy deployment, whether RTOS or bare metal. It is based on a core Framework which provides common services to all modules. The Modules plug into the framework and implement functionalities which can be chosen on a per-platform basis. This provides complete flexibility for any platform or implementation to provide their own modules and ‘special implementations’ as required. Additionally, the SCP Firmware abstracts Execution Context requirements enabling it to be deployed in a wide variety on systems and architectures and even run on host environments.
In my presentation, I will talk about how the SCP firmware positions itself in Power management paradigms based on the division of responsibilities between the OS kernel and the firmware. We will briefly go through the Framework and Module design and how they provide flexibility to a platform to enable fast deployment. We will also talk about the way the various firmware components communicate with each other using events and notifications, which can be well abstracted from the underlying execution context. The advantages that the SCP firmware provides due to its lightweight and flexible scheduling model which can scale from single-threaded to multi-threaded will be discussed. Finally, we will discuss the guidelines for developing code based on the opensource SCP-Firmware and the benefits of doing so.
Staff Software Engineer (ARM Limited)
Souvik is a Staff Software Engineer in the Architecture and Technology Group at Arm, where his primary areas of focus are System and Power Management software standards and specifications.