3 Copyright (c) 2017-2018, Arm Limited. All rights reserved.
5 SPDX-License-Identifier: BSD-2-Clause-Patent
7 System Control and Management Interface V1.0
8 http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/
9 DEN0056A_System_Control_and_Management_Interface.pdf
12 #include <Library/ArmMtlLib.h>
13 #include <Library/DebugLib.h>
15 /** Wait until channel is free.
17 @param[in] Channel Pointer to a channel.
18 @param[in] TimeOutInMicroSeconds Timeout in micro seconds.
20 @retval EFI_UNSUPPORTED Interface not implemented.
23 MtlWaitUntilChannelFree (
24 IN MTL_CHANNEL
*Channel
,
25 IN UINTN TimeOutInMicroSeconds
28 return EFI_UNSUPPORTED
;
31 /** Return the address of the message payload.
33 @param[in] Channel Pointer to a channel.
35 @retval UINT32* Pointer to the payload.
38 MtlGetChannelPayload (
39 IN MTL_CHANNEL
*Channel
46 /** Return pointer to a channel for the requested channel type.
48 @param[in] ChannelType ChannelType, Low or High priority channel.
49 MTL_CHANNEL_TYPE_LOW or
52 @param[out] Channel Holds pointer to the channel.
54 @retval EFI_UNSUPPORTED Requested channel type not supported or
55 interface not implemented.
59 IN MTL_CHANNEL_TYPE ChannelType
,
60 OUT MTL_CHANNEL
**Channel
63 return EFI_UNSUPPORTED
;
66 /** Mark the channel busy and ring the doorbell.
68 @param[in] Channel Pointer to a channel.
69 @param[in] MessageHeader Message header.
71 @param[out] PayloadLength Message length.
73 @retval EFI_UNSUPPORTED Interface not implemented.
77 IN MTL_CHANNEL
*Channel
,
78 IN UINT32 MessageHeader
,
79 OUT UINT32 PayloadLength
82 return EFI_UNSUPPORTED
;
85 /** Wait for a response on a channel.
87 If channel is free after sending message, it implies SCP responded
88 with a response on the channel.
90 @param[in] Channel Pointer to a channel.
92 @retval EFI_UNSUPPORTED Interface not implemented.
96 IN MTL_CHANNEL
*Channel
,
97 OUT UINT32
*MessageHeader
,
98 OUT UINT32
*PayloadLength
101 return EFI_UNSUPPORTED
;