3 Copyright (c) 2017-2018, Arm Limited. All rights reserved.
5 This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 System Control and Management Interface V1.0
14 http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/
15 DEN0056A_System_Control_and_Management_Interface.pdf
18 #include <Library/ArmMtlLib.h>
19 #include <Library/DebugLib.h>
21 /** Wait until channel is free.
23 @param[in] Channel Pointer to a channel.
24 @param[in] TimeOutInMicroSeconds Timeout in micro seconds.
26 @retval EFI_UNSUPPORTED Interface not implemented.
29 MtlWaitUntilChannelFree (
30 IN MTL_CHANNEL
*Channel
,
31 IN UINTN TimeOutInMicroSeconds
34 return EFI_UNSUPPORTED
;
37 /** Return the address of the message payload.
39 @param[in] Channel Pointer to a channel.
41 @retval UINT32* Pointer to the payload.
44 MtlGetChannelPayload (
45 IN MTL_CHANNEL
*Channel
52 /** Return pointer to a channel for the requested channel type.
54 @param[in] ChannelType ChannelType, Low or High priority channel.
55 MTL_CHANNEL_TYPE_LOW or
58 @param[out] Channel Holds pointer to the channel.
60 @retval EFI_UNSUPPORTED Requested channel type not supported or
61 interface not implemented.
65 IN MTL_CHANNEL_TYPE ChannelType
,
66 OUT MTL_CHANNEL
**Channel
69 return EFI_UNSUPPORTED
;
72 /** Mark the channel busy and ring the doorbell.
74 @param[in] Channel Pointer to a channel.
75 @param[in] MessageHeader Message header.
77 @param[out] PayloadLength Message length.
79 @retval EFI_UNSUPPORTED Interface not implemented.
83 IN MTL_CHANNEL
*Channel
,
84 IN UINT32 MessageHeader
,
85 OUT UINT32 PayloadLength
88 return EFI_UNSUPPORTED
;
91 /** Wait for a response on a channel.
93 If channel is free after sending message, it implies SCP responded
94 with a response on the channel.
96 @param[in] Channel Pointer to a channel.
98 @retval EFI_UNSUPPORTED Interface not implemented.
102 IN MTL_CHANNEL
*Channel
,
103 OUT UINT32
*MessageHeader
,
104 OUT UINT32
*PayloadLength
107 return EFI_UNSUPPORTED
;