ArmPkg[all]
0.1
|
Data Structures | |
struct | SCMI_CLOCK_RATE_CONTINUOUS |
struct | SCMI_CLOCK_RATE_DISCRETE |
union | SCMI_CLOCK_RATE |
struct | _SCMI_CLOCK_PROTOCOL |
Macros | |
#define | ARM_SCMI_CLOCK_PROTOCOL_GUID |
#define | SCMI_CLOCK_PROTOCOL_VERSION 0x10000 |
#define | SCMI_CLOCK_PROTOCOL_PENDING_ASYNC_RATES_MASK 0xFFU |
#define | SCMI_CLOCK_PROTOCOL_PENDING_ASYNC_RATES_SHIFT 16 |
#define | SCMI_CLOCK_PROTOCOL_NUM_CLOCKS_MASK 0xFFFFU |
#define | SCMI_CLOCK_PROTOCOL_MAX_ASYNC_CLK_RATES(Attr) |
#define | SCMI_CLOCK_PROTOCOL_TOTAL_CLKS(Attr) (Attr & SCMI_CLOCK_PROTOCOL_NUM_CLOCKS_MASK) |
Typedefs | |
typedef struct _SCMI_CLOCK_PROTOCOL | SCMI_CLOCK_PROTOCOL |
typedef OUT UINT32 * | Version |
typedef OUT UINT32 * | TotalClocks |
typedef IN UINT32 | ClockId |
typedef IN UINT32 OUT BOOLEAN * | Enabled |
typedef IN UINT32 OUT BOOLEAN OUT CHAR8 * | ClockAsciiName |
typedef IN UINT32 OUT SCMI_CLOCK_RATE_FORMAT * | Format |
typedef IN UINT32 OUT SCMI_CLOCK_RATE_FORMAT OUT UINT32 * | TotalRates |
typedef IN UINT32 OUT SCMI_CLOCK_RATE_FORMAT OUT UINT32 IN OUT UINT32 * | RateArraySize |
typedef IN UINT32 OUT SCMI_CLOCK_RATE_FORMAT OUT UINT32 IN OUT UINT32 OUT SCMI_CLOCK_RATE * | RateArray |
typedef IN UINT32 OUT UINT64 * | Rate |
Enumerations | |
enum | SCMI_MESSAGE_ID_CLOCK { ScmiMessageIdClockAttributes = 0x3, ScmiMessageIdClockDescribeRates = 0x4, ScmiMessageIdClockRateSet = 0x5, ScmiMessageIdClockRateGet = 0x6, ScmiMessageIdClockConfigSet = 0x7 } |
enum | SCMI_CLOCK_RATE_FORMAT { ScmiClockRateFormatDiscrete, ScmiClockRateFormatLinear } |
Functions | |
typedef | EFI_STATUS (EFIAPI *SCMI_CLOCK_GET_VERSION)(IN SCMI_CLOCK_PROTOCOL *This |
Variables | |
EFI_GUID | gArmScmiClockProtocolGuid |
Copyright (c) 2017-2021, Arm Limited. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
System Control and Management Interface V1.0 http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/ DEN0056A_System_Control_and_Management_Interface.pdf
#define ARM_SCMI_CLOCK_PROTOCOL_GUID |
#define SCMI_CLOCK_PROTOCOL_MAX_ASYNC_CLK_RATES | ( | Attr | ) |
Total number of pending asynchronous clock rates changes supported by the SCP, Attr Bits[23:16]
#define SCMI_CLOCK_PROTOCOL_NUM_CLOCKS_MASK 0xFFFFU |
#define SCMI_CLOCK_PROTOCOL_PENDING_ASYNC_RATES_MASK 0xFFU |
#define SCMI_CLOCK_PROTOCOL_PENDING_ASYNC_RATES_SHIFT 16 |
#define SCMI_CLOCK_PROTOCOL_TOTAL_CLKS | ( | Attr | ) | (Attr & SCMI_CLOCK_PROTOCOL_NUM_CLOCKS_MASK) |
#define SCMI_CLOCK_PROTOCOL_VERSION 0x10000 |
typedef IN UINT32 OUT BOOLEAN OUT CHAR8* ClockAsciiName |
typedef IN UINT32 ClockId |
typedef IN UINT32 OUT BOOLEAN* Enabled |
typedef IN UINT32 OUT SCMI_CLOCK_RATE_FORMAT* Format |
typedef IN UINT32 IN UINT64 Rate |
typedef IN UINT32 OUT SCMI_CLOCK_RATE_FORMAT OUT UINT32 IN OUT UINT32 OUT SCMI_CLOCK_RATE* RateArray |
typedef IN UINT32 OUT SCMI_CLOCK_RATE_FORMAT OUT UINT32 IN OUT UINT32* RateArraySize |
typedef struct _SCMI_CLOCK_PROTOCOL SCMI_CLOCK_PROTOCOL |
typedef OUT UINT32* TotalClocks |
typedef IN UINT32 OUT SCMI_CLOCK_RATE_FORMAT OUT UINT32* TotalRates |
typedef OUT UINT32* Version |
typedef EFI_STATUS | ( | EFIAPI * | SCMI_CLOCK_RATE_SET | ) |
Return version of the clock management protocol supported by SCP firmware.
[in] | This | A Pointer to SCMI_CLOCK_PROTOCOL Instance. |
[out] | Version | Version of the supported SCMI Clock management protocol. |
EFI_SUCCESS | The version is returned. |
EFI_DEVICE_ERROR | SCP returns an SCMI error. |
!(EFI_SUCCESS) | Other errors. |
Return total number of clock devices supported by the clock management protocol.
[in] | This | A Pointer to SCMI_CLOCK_PROTOCOL Instance. |
[out] | TotalClocks | Total number of clocks supported. |
EFI_SUCCESS | Total number of clocks supported is returned. |
EFI_DEVICE_ERROR | SCP returns an SCMI error. |
!(EFI_SUCCESS) | Other errors. |
Return attributes of a clock device.
[in] | This | A Pointer to SCMI_CLOCK_PROTOCOL Instance. |
[in] | ClockId | Identifier for the clock device. |
[out] | Enabled | If TRUE, the clock device is enabled. |
[out] | ClockAsciiName | A NULL terminated ASCII string with the clock name, of up to 16 bytes. |
EFI_SUCCESS | Clock device attributes are returned. |
EFI_DEVICE_ERROR | SCP returns an SCMI error. |
!(EFI_SUCCESS) | Other errors. |
Return list of rates supported by a given clock device.
[in] | This | A pointer to SCMI_CLOCK_PROTOCOL Instance. |
[in] | ClockId | Identifier for the clock device. |
[out] | Format | ScmiClockRateFormatDiscrete: Clock device supports range of clock rates which are non-linear. |
ScmiClockRateFormatLinear: Clock device supports range of linear clock rates from Min to Max in steps.
[out] | TotalRates | Total number of rates. |
[in,out] | RateArraySize | Size of the RateArray. |
[out] | RateArray | List of clock rates. |
EFI_SUCCESS | List of clock rates are returned. |
EFI_DEVICE_ERROR | SCP returns an SCMI error. |
EFI_BUFFER_TOO_SMALL | RateArraySize is too small for the result. It has been updated to the size needed. |
!(EFI_SUCCESS) | Other errors. |
Get clock rate.
[in] | This | A Pointer to SCMI_CLOCK_PROTOCOL Instance. |
[in] | ClockId | Identifier for the clock device. |
[out] | Rate | Clock rate. |
EFI_SUCCESS | Clock rate is returned. |
EFI_DEVICE_ERROR | SCP returns an SCMI error. |
!(EFI_SUCCESS) | Other errors. |
Set clock rate.
[in] | This | A Pointer to SCMI_CLOCK_PROTOCOL Instance. |
[in] | ClockId | Identifier for the clock device. |
[in] | Rate | Clock rate. |
EFI_SUCCESS | Clock rate set success. |
EFI_DEVICE_ERROR | SCP returns an SCMI error. |
!(EFI_SUCCESS) | Other errors. |
EFI_GUID gArmScmiClockProtocolGuid |