TianoCore EDK2 master
|
#include <Protocol/ArmScmi.h>
Go to the source code of this file.
Data Structures | |
struct | SCMI_PERFORMANCE_PROTOCOL_ATTRIBUTES |
struct | SCMI_PERFORMANCE_DOMAIN_ATTRIBUTES |
struct | SCMI_PERFORMANCE_LEVEL |
struct | SCMI_PERFORMANCE_LIMITS |
struct | SCMI_PERFORMANCE_FASTCHANNEL |
Performance protocol describe fastchannel. More... | |
struct | _SCMI_PERFORMANCE_PROTOCOL |
Macros | |
#define | PERFORMANCE_PROTOCOL_VERSION_V1 0x10000 |
Arm Scmi performance protocol versions. | |
#define | PERFORMANCE_PROTOCOL_VERSION_V2 0x20000 |
#define | PERFORMANCE_PROTOCOL_VERSION_V3 0x30000 |
#define | ARM_SCMI_PERFORMANCE_PROTOCOL_GUID |
#define | POWER_IN_MW_SHIFT 16 |
#define | POWER_IN_MW_MASK 0x1 |
#define | NUM_PERF_DOMAINS_MASK 0xFFFF |
#define | SCMI_PERF_TOTAL_DOMAINS(Attr) (Attr & NUM_PERF_DOMAINS_MASK) |
#define | SCMI_PERF_POWER_IN_MW(Attr) |
#define | SCMI_PERF_SUPPORT_LVL_CHANGE_NOTIFY(Attr) ((Attr >> 28) & 0x1) |
#define | SCMI_PERF_SUPPORT_LIM_CHANGE_NOTIFY(Attr) ((Attr >> 29) & 0x1) |
#define | SCMI_PERF_SUPPORT_SET_LVL(Attr) ((Attr >> 30) & 0x1) |
#define | SCMI_PERF_SUPPORT_SET_LIM(Attr) ((Attr >> 31) & 0x1) |
#define | SCMI_PERF_RATE_LIMIT(RateLimit) (RateLimit & 0xFFF) |
#define | PERF_LATENCY_MASK 0xFFFF |
#define | SCMI_PERFORMANCE_PROTOCOL_LATENCY(Latency) (Latency & PERF_LATENCY_MASK) |
#define | SCMI_PERF_FC_ATTRIB_HAS_DOORBELL BIT0 |
Doorbell Support bit. | |
Enumerations | |
enum | SCMI_MESSAGE_ID_PERFORMANCE { ScmiMessageIdPerformanceDomainAttributes = 0x3 , ScmiMessageIdPerformanceDescribeLevels = 0x4 , ScmiMessageIdPerformanceLimitsSet = 0x5 , ScmiMessageIdPerformanceLimitsGet = 0x6 , ScmiMessageIdPerformanceLevelSet = 0x7 , ScmiMessageIdPerformanceLevelGet = 0x8 , ScmiMessageIdPerformanceDescribeFastchannel = 0xB } |
SCMI Message Ids for the Performance Protocol. More... | |
Variables | |
EFI_GUID | gArmScmiPerformanceProtocolGuid |
Copyright (c) 2017-2023, Arm Limited. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
System Control and Management Interface V3.2, latest version at:
Definition in file ArmScmiPerformanceProtocol.h.
#define ARM_SCMI_PERFORMANCE_PROTOCOL_GUID |
Definition at line 22 of file ArmScmiPerformanceProtocol.h.
#define NUM_PERF_DOMAINS_MASK 0xFFFF |
Definition at line 34 of file ArmScmiPerformanceProtocol.h.
#define PERF_LATENCY_MASK 0xFFFF |
Definition at line 66 of file ArmScmiPerformanceProtocol.h.
#define PERFORMANCE_PROTOCOL_VERSION_V1 0x10000 |
Arm Scmi performance protocol versions.
Definition at line 18 of file ArmScmiPerformanceProtocol.h.
#define PERFORMANCE_PROTOCOL_VERSION_V2 0x20000 |
Definition at line 19 of file ArmScmiPerformanceProtocol.h.
#define PERFORMANCE_PROTOCOL_VERSION_V3 0x30000 |
Definition at line 20 of file ArmScmiPerformanceProtocol.h.
#define POWER_IN_MW_MASK 0x1 |
Definition at line 33 of file ArmScmiPerformanceProtocol.h.
#define POWER_IN_MW_SHIFT 16 |
Definition at line 32 of file ArmScmiPerformanceProtocol.h.
#define SCMI_PERF_FC_ATTRIB_HAS_DOORBELL BIT0 |
Doorbell Support bit.
Definition at line 83 of file ArmScmiPerformanceProtocol.h.
#define SCMI_PERF_POWER_IN_MW | ( | Attr | ) |
Definition at line 40 of file ArmScmiPerformanceProtocol.h.
#define SCMI_PERF_RATE_LIMIT | ( | RateLimit | ) | (RateLimit & 0xFFF) |
Definition at line 54 of file ArmScmiPerformanceProtocol.h.
#define SCMI_PERF_SUPPORT_LIM_CHANGE_NOTIFY | ( | Attr | ) | ((Attr >> 29) & 0x1) |
Definition at line 51 of file ArmScmiPerformanceProtocol.h.
#define SCMI_PERF_SUPPORT_LVL_CHANGE_NOTIFY | ( | Attr | ) | ((Attr >> 28) & 0x1) |
Definition at line 50 of file ArmScmiPerformanceProtocol.h.
#define SCMI_PERF_SUPPORT_SET_LIM | ( | Attr | ) | ((Attr >> 31) & 0x1) |
Definition at line 53 of file ArmScmiPerformanceProtocol.h.
#define SCMI_PERF_SUPPORT_SET_LVL | ( | Attr | ) | ((Attr >> 30) & 0x1) |
Definition at line 52 of file ArmScmiPerformanceProtocol.h.
#define SCMI_PERF_TOTAL_DOMAINS | ( | Attr | ) | (Attr & NUM_PERF_DOMAINS_MASK) |
Definition at line 37 of file ArmScmiPerformanceProtocol.h.
#define SCMI_PERFORMANCE_PROTOCOL_LATENCY | ( | Latency | ) | (Latency & PERF_LATENCY_MASK) |
Definition at line 67 of file ArmScmiPerformanceProtocol.h.
typedef EFI_STATUS(EFIAPI * SCMI_PERFORMANCE_DESCRIBE_FASTCHANNEL) (IN SCMI_PERFORMANCE_PROTOCOL *This, IN UINT32 DomainId, IN SCMI_MESSAGE_ID_PERFORMANCE MessageId, OUT SCMI_PERFORMANCE_FASTCHANNEL *FastChannel) |
Discover the attributes of the FastChannel for the specified performance domain and the specified message.
[in] | This | A Pointer to SCMI_PERFORMANCE_PROTOCOL Instance. |
[in] | DomainId | Identifier for the performance domain. |
[in] | MessageId | Message Id of the FastChannel to discover. Must be one of:
|
[out] | FastChannel | If success, contains the FastChannel description. |
EFI_SUCCESS | Performance level got successfully. |
EFI_DEVICE_ERROR | SCP returns an SCMI error. |
EFI_INVALID_PARAMETER | Invalid parameter. |
EFI_TIMEOUT | Time out. |
EFI_UNSUPPORTED | Unsupported. |
Definition at line 311 of file ArmScmiPerformanceProtocol.h.
typedef EFI_STATUS(EFIAPI * SCMI_PERFORMANCE_DESCRIBE_LEVELS) (IN SCMI_PERFORMANCE_PROTOCOL *This, IN UINT32 DomainId, OUT UINT32 *NumLevels, IN OUT UINT32 *LevelArraySize, OUT SCMI_PERFORMANCE_LEVEL *LevelArray) |
Return list of performance domain levels of a given domain.
[in] | This | A Pointer to SCMI_PERFORMANCE_PROTOCOL Instance. |
[in] | DomainId | Identifier for the performance domain. |
[out] | NumLevels | Total number of levels a domain can support. |
[in,out] | LevelArraySize | Size of the performance level array. |
[out] | LevelArray | Array of the performance levels. |
EFI_SUCCESS | Domain levels are returned. |
EFI_DEVICE_ERROR | SCP returns an SCMI error. |
EFI_BUFFER_TOO_SMALL | LevelArraySize is too small for the result. It has been updated to the size needed. |
!(EFI_SUCCESS) | Other errors. |
Definition at line 208 of file ArmScmiPerformanceProtocol.h.
typedef EFI_STATUS(EFIAPI * SCMI_PERFORMANCE_GET_ATTRIBUTES) (IN SCMI_PERFORMANCE_PROTOCOL *This, OUT SCMI_PERFORMANCE_PROTOCOL_ATTRIBUTES *Attributes) |
Return protocol attributes of the performance management protocol.
[in] | This | A Pointer to SCMI_PERFORMANCE_PROTOCOL Instance. |
[out] | Attributes | Protocol attributes. |
EFI_SUCCESS | Protocol attributes are returned. |
EFI_DEVICE_ERROR | SCP returns an SCMI error. |
!(EFI_SUCCESS) | Other errors. |
Definition at line 164 of file ArmScmiPerformanceProtocol.h.
typedef EFI_STATUS(EFIAPI * SCMI_PERFORMANCE_GET_DOMAIN_ATTRIBUTES) (IN SCMI_PERFORMANCE_PROTOCOL *This, IN UINT32 DomainId, OUT SCMI_PERFORMANCE_DOMAIN_ATTRIBUTES *DomainAttributes) |
Return performance domain attributes.
[in] | This | A Pointer to SCMI_PERFORMANCE_PROTOCOL Instance. |
[in] | DomainId | Identifier for the performance domain. |
[out] | Attributes | Performance domain attributes. |
EFI_SUCCESS | Domain attributes are returned. |
EFI_DEVICE_ERROR | SCP returns an SCMI error. |
!(EFI_SUCCESS) | Other errors. |
Definition at line 183 of file ArmScmiPerformanceProtocol.h.
typedef EFI_STATUS(EFIAPI * SCMI_PERFORMANCE_GET_VERSION) (IN SCMI_PERFORMANCE_PROTOCOL *This, OUT UINT32 *Version) |
Return version of the performance management protocol supported by SCP. firmware.
[in] | This | A Pointer to SCMI_PERFORMANCE_PROTOCOL Instance. |
[out] | Version | Version of the supported SCMI performance management protocol. |
EFI_SUCCESS | The version is returned. |
EFI_DEVICE_ERROR | SCP returns an SCMI error. |
!(EFI_SUCCESS) | Other errors. |
Definition at line 147 of file ArmScmiPerformanceProtocol.h.
typedef EFI_STATUS(EFIAPI * SCMI_PERFORMANCE_LEVEL_GET) (IN SCMI_PERFORMANCE_PROTOCOL *This, IN UINT32 DomainId, OUT UINT32 *Level) |
Get performance level of a domain.
[in] | This | A Pointer to SCMI_PERFORMANCE_PROTOCOL Instance. |
[in] | DomainId | Identifier for the performance domain. |
[out] | Level | Performance level of the domain. |
EFI_SUCCESS | Performance level got successfully. |
EFI_DEVICE_ERROR | SCP returns an SCMI error. |
!(EFI_SUCCESS) | Other errors. |
Definition at line 284 of file ArmScmiPerformanceProtocol.h.
typedef EFI_STATUS(EFIAPI * SCMI_PERFORMANCE_LEVEL_SET) (IN SCMI_PERFORMANCE_PROTOCOL *This, IN UINT32 DomainId, IN UINT32 Level) |
Set performance level of a domain.
[in] | This | A Pointer to SCMI_PERFORMANCE_PROTOCOL Instance. |
[in] | DomainId | Identifier for the performance domain. |
[in] | Level | Performance level of the domain. |
EFI_SUCCESS | Performance level set successfully. |
EFI_DEVICE_ERROR | SCP returns an SCMI error. |
!(EFI_SUCCESS) | Other errors. |
Definition at line 265 of file ArmScmiPerformanceProtocol.h.
typedef EFI_STATUS(EFIAPI * SCMI_PERFORMANCE_LIMITS_GET) (SCMI_PERFORMANCE_PROTOCOL *This, UINT32 DomainId, SCMI_PERFORMANCE_LIMITS *Limits) |
Get performance limits of a domain.
[in] | This | A Pointer to SCMI_PERFORMANCE_PROTOCOL Instance. |
[in] | DomainId | Identifier for the performance domain. |
[out] | Limit | Performance Limits of the domain. |
EFI_SUCCESS | Performance limits are returned. |
EFI_DEVICE_ERROR | SCP returns an SCMI error. |
!(EFI_SUCCESS) | Other errors. |
Definition at line 247 of file ArmScmiPerformanceProtocol.h.
typedef EFI_STATUS(EFIAPI * SCMI_PERFORMANCE_LIMITS_SET) (IN SCMI_PERFORMANCE_PROTOCOL *This, IN UINT32 DomainId, IN SCMI_PERFORMANCE_LIMITS *Limits) |
Set performance limits of a domain.
[in] | This | A Pointer to SCMI_PERFORMANCE_PROTOCOL Instance. |
[in] | DomainId | Identifier for the performance domain. |
[in] | Limit | Performance limit to set. |
EFI_SUCCESS | Performance limits set successfully. |
EFI_DEVICE_ERROR | SCP returns an SCMI error. |
!(EFI_SUCCESS) | Other errors. |
Definition at line 228 of file ArmScmiPerformanceProtocol.h.
typedef struct _SCMI_PERFORMANCE_PROTOCOL SCMI_PERFORMANCE_PROTOCOL |
Definition at line 28 of file ArmScmiPerformanceProtocol.h.
SCMI Message Ids for the Performance Protocol.
Definition at line 124 of file ArmScmiPerformanceProtocol.h.