|
ArmPkg[all]
0.1
|
Data Structures | |
| struct | MTL_MAILBOX |
| struct | MTL_DOORBELL |
| struct | MTL_CHANNEL |
Enumerations | |
| enum | MTL_CHANNEL_TYPE { MTL_CHANNEL_TYPE_LOW = 0, MTL_CHANNEL_TYPE_HIGH = 1 } |
Functions | |
| EFI_STATUS | MtlWaitUntilChannelFree (IN MTL_CHANNEL *Channel, IN UINTN TimeOutInMicroSeconds) |
| UINT32 * | MtlGetChannelPayload (IN MTL_CHANNEL *Channel) |
| EFI_STATUS | MtlGetChannel (IN MTL_CHANNEL_TYPE ChannelType, OUT MTL_CHANNEL **Channel) |
| EFI_STATUS | MtlSendMessage (IN MTL_CHANNEL *Channel, IN UINT32 MessageHeader, OUT UINT32 PayloadLength) |
| EFI_STATUS | MtlReceiveMessage (IN MTL_CHANNEL *Channel, OUT UINT32 *MessageHeader, OUT UINT32 *PayloadLength) |
Copyright (c) 2017-2018, 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
| enum MTL_CHANNEL_TYPE |
| EFI_STATUS MtlGetChannel | ( | IN MTL_CHANNEL_TYPE | ChannelType, |
| OUT MTL_CHANNEL ** | Channel | ||
| ) |
Return pointer to a channel for the requested channel type.
| [in] | ChannelType | ChannelType, Low or High priority channel. MTL_CHANNEL_TYPE_LOW or MTL_CHANNEL_TYPE_HIGH |
| [out] | Channel | Holds pointer to the channel. |
| EFI_SUCCESS | Pointer to channel is returned. |
| EFI_UNSUPPORTED | Requested channel type not supported. |
| UINT32* MtlGetChannelPayload | ( | IN MTL_CHANNEL * | Channel | ) |
Return the address of the message payload.
| [in] | Channel | Pointer to a channel. |
| UINT32* | Pointer to the payload. |
| EFI_STATUS MtlReceiveMessage | ( | IN MTL_CHANNEL * | Channel, |
| OUT UINT32 * | MessageHeader, | ||
| OUT UINT32 * | PayloadLength | ||
| ) |
Wait for a response on a channel.
If channel is free after sending message, it implies SCP responded with a response on the channel.
| [in] | Channel | Pointer to a channel. |
| EFI_SUCCESS | Message received successfully. |
| EFI_TIMEOUT | Time out error. |
| EFI_STATUS MtlSendMessage | ( | IN MTL_CHANNEL * | Channel, |
| IN UINT32 | MessageHeader, | ||
| OUT UINT32 | PayloadLength | ||
| ) |
Mark the channel busy and ring the doorbell.
| [in] | Channel | Pointer to a channel. |
| [in] | MessageHeader | Message header. |
| [out] | PayloadLength | Message length. |
| EFI_SUCCESS | Message sent successfully. |
| EFI_DEVICE_ERROR | Channel is busy. |
| EFI_STATUS MtlWaitUntilChannelFree | ( | IN MTL_CHANNEL * | Channel, |
| IN UINTN | TimeOutInMicroSeconds | ||
| ) |
Wait until channel is free.
| [in] | Channel | Pointer to a channel. |
| [in] | TimeOutInMicroSeconds | Time out in micro seconds. |
| EFI_SUCCESS | Channel is free. |
| EFI_TIMEOUT | Time out error. |