ArmPkg[all]  0.1
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ArmScmiBaseProtocol.h File Reference

Data Structures

struct  _SCMI_BASE_PROTOCOL
 

Macros

#define BASE_PROTOCOL_VERSION_V1   0x10000
 
#define BASE_PROTOCOL_VERSION_V2   0x20000
 
#define NUM_PROTOCOL_MASK   0xFFU
 
#define NUM_AGENT_MASK   0xFFU
 
#define NUM_AGENT_SHIFT   0x8
 
#define SCMI_TOTAL_PROTOCOLS(Attr)   (Attr & NUM_PROTOCOL_MASK)
 
#define SCMI_TOTAL_AGENTS(Attr)   ((Attr >> NUM_AGENT_SHIFT) & NUM_AGENT_MASK)
 
#define ARM_SCMI_BASE_PROTOCOL_GUID
 

Typedefs

typedef struct _SCMI_BASE_PROTOCOL SCMI_BASE_PROTOCOL
 
typedef OUT UINT32 * Version
 
typedef OUT UINT32 * TotalProtocols
 
typedef OUT UINT8 VendorIdentifier [SCMI_MAX_STR_LEN]
 
typedef OUT UINT32 * ImplementationVersion
 
typedef IN OUT UINT32 * ProtocolListSize
 
typedef IN OUT UINT32 OUT UINT8 * ProtocolList
 

Enumerations

enum  SCMI_MESSAGE_ID_BASE { ScmiMessageIdBaseDiscoverVendor = 0x3, ScmiMessageIdBaseDiscoverSubVendor = 0x4, ScmiMessageIdBaseDiscoverImplementationVersion = 0x5, ScmiMessageIdBaseDiscoverListProtocols = 0x6 }
 

Functions

typedef EFI_STATUS (EFIAPI *SCMI_BASE_GET_VERSION)(IN SCMI_BASE_PROTOCOL *This
 

Variables

EFI_GUID gArmScmiBaseProtocolGuid
 

Detailed Description

Copyright (c) 2017-2021, Arm Limited. All rights reserved.

SPDX-License-Identifier: BSD-2-Clause-Patent

Specification Reference:

Macro Definition Documentation

#define ARM_SCMI_BASE_PROTOCOL_GUID
Value:
{ \
0xd7e5abe9, 0x33ab, 0x418e, {0x9f, 0x91, 0x72, 0xda, 0xe2, 0xba, 0x8e, 0x2f} \
}
#define BASE_PROTOCOL_VERSION_V1   0x10000
#define BASE_PROTOCOL_VERSION_V2   0x20000
#define NUM_AGENT_MASK   0xFFU
#define NUM_AGENT_SHIFT   0x8
#define NUM_PROTOCOL_MASK   0xFFU
#define SCMI_TOTAL_AGENTS (   Attr)    ((Attr >> NUM_AGENT_SHIFT) & NUM_AGENT_MASK)
#define SCMI_TOTAL_PROTOCOLS (   Attr)    (Attr & NUM_PROTOCOL_MASK)

Returns total number of protocols that are implemented (excluding the Base protocol)

Typedef Documentation

typedef OUT UINT32* ImplementationVersion
typedef IN OUT UINT32 OUT UINT8* ProtocolList
typedef IN OUT UINT32* ProtocolListSize
typedef OUT UINT32* TotalProtocols
typedef OUT UINT8 VendorIdentifier
typedef OUT UINT32* Version

Enumeration Type Documentation

Enumerator
ScmiMessageIdBaseDiscoverVendor 
ScmiMessageIdBaseDiscoverSubVendor 
ScmiMessageIdBaseDiscoverImplementationVersion 
ScmiMessageIdBaseDiscoverListProtocols 

Function Documentation

typedef EFI_STATUS ( EFIAPI *  SCMI_BASE_DISCOVER_LIST_PROTOCOLS)

Return version of the Base protocol supported by SCP firmware.

Parameters
[in]ThisA Pointer to SCMI_BASE_PROTOCOL Instance.
[out]VersionVersion of the supported SCMI Base protocol.
Return values
EFI_SUCCESSThe version of the protocol is returned.
EFI_DEVICE_ERRORSCP returns an SCMI error.
!(EFI_SUCCESS)Other errors.

Return total number of SCMI protocols supported by the SCP firmware.

Parameters
[in]ThisA Pointer to SCMI_BASE_PROTOCOL Instance.
[out]TotalProtocolsTotal number of SCMI protocols supported.
Return values
EFI_SUCCESSTotal number of protocols supported are returned.
EFI_DEVICE_ERRORSCP returns a SCMI error.
!(EFI_SUCCESS)Other errors.

Return vendor name.

Parameters
[in]ThisA Pointer to SCMI_BASE_PROTOCOL Instance.
[out]VendorIdentifierNull terminated ASCII string of up to 16 bytes with a vendor name.
Return values
EFI_SUCCESSVendorIdentifier is returned.
EFI_DEVICE_ERRORSCP returns a SCMI error.
!(EFI_SUCCESS)Other errors.

Return sub vendor name.

Parameters
[in]ThisA Pointer to SCMI_BASE_PROTOCOL Instance.
[out]VendorIdentifierNull terminated ASCII string of up to 16 bytes with a vendor name.
Return values
EFI_SUCCESSVendorIdentifier is returned.
EFI_DEVICE_ERRORSCP returns a SCMI error.
!(EFI_SUCCESS)Other errors.

Return implementation version.

Parameters
[in]ThisA Pointer to SCMI_BASE_PROTOCOL Instance.
[out]ImplementationVersionVendor specific implementation version.
Return values
EFI_SUCCESSImplementation version is returned.
EFI_DEVICE_ERRORSCP returns a SCMI error.
!(EFI_SUCCESS)Other errors.

Return list of protocols.

Parameters
[in]ThisA Pointer to SCMI_BASE_PROTOCOL Instance.
[out]ProtocolListSizeSize of the ProtocolList.
[out]ProtocolListProtocol list.
Return values
EFI_SUCCESSList of protocols is returned.
EFI_BUFFER_TOO_SMALLProtocolListSize is too small for the result. It has been updated to the size needed.
EFI_DEVICE_ERRORSCP returns a SCMI error.
!(EFI_SUCCESS)Other errors.

Variable Documentation

EFI_GUID gArmScmiBaseProtocolGuid