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. |