1 /** @file
2   IPMI Command - NetFnTransport.
3 
4 Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
5 SPDX-License-Identifier: BSD-2-Clause-Patent
6 
7 **/
8 
9 #include <PiPei.h>
10 #include <Library/BaseMemoryLib.h>
11 #include <Library/DebugLib.h>
12 #include <Library/IpmiLib.h>
13 
14 #include <IndustryStandard/Ipmi.h>
15 
16 
17 EFI_STATUS
18 EFIAPI
IpmiSolActivating(IN IPMI_SOL_ACTIVATING_REQUEST * SolActivatingRequest,OUT UINT8 * CompletionCode)19 IpmiSolActivating (
20   IN  IPMI_SOL_ACTIVATING_REQUEST  *SolActivatingRequest,
21   OUT UINT8                        *CompletionCode
22   )
23 {
24   EFI_STATUS                   Status;
25   UINT32                       DataSize;
26 
27   DataSize = sizeof(*CompletionCode);
28   Status = IpmiSubmitCommand (
29              IPMI_NETFN_TRANSPORT,
30              IPMI_TRANSPORT_SOL_ACTIVATING,
31              (VOID *)SolActivatingRequest,
32              sizeof(*SolActivatingRequest),
33              (VOID *)CompletionCode,
34              &DataSize
35              );
36   return Status;
37 }
38 
39 EFI_STATUS
40 EFIAPI
IpmiSetSolConfigurationParameters(IN IPMI_SET_SOL_CONFIGURATION_PARAMETERS_REQUEST * SetConfigurationParametersRequest,IN UINT32 SetConfigurationParametersRequestSize,OUT UINT8 * CompletionCode)41 IpmiSetSolConfigurationParameters (
42   IN  IPMI_SET_SOL_CONFIGURATION_PARAMETERS_REQUEST  *SetConfigurationParametersRequest,
43   IN  UINT32                                         SetConfigurationParametersRequestSize,
44   OUT UINT8                                          *CompletionCode
45   )
46 {
47   EFI_STATUS                   Status;
48   UINT32                       DataSize;
49 
50   DataSize = sizeof(*CompletionCode);
51   Status = IpmiSubmitCommand (
52              IPMI_NETFN_TRANSPORT,
53              IPMI_TRANSPORT_SET_SOL_CONFIG_PARAM,
54              (VOID *)SetConfigurationParametersRequest,
55              SetConfigurationParametersRequestSize,
56              (VOID *)CompletionCode,
57              &DataSize
58              );
59   return Status;
60 }
61 
62 EFI_STATUS
63 EFIAPI
IpmiGetSolConfigurationParameters(IN IPMI_GET_SOL_CONFIGURATION_PARAMETERS_REQUEST * GetConfigurationParametersRequest,OUT IPMI_GET_SOL_CONFIGURATION_PARAMETERS_RESPONSE * GetConfigurationParametersResponse,IN OUT UINT32 * GetConfigurationParametersResponseSize)64 IpmiGetSolConfigurationParameters (
65   IN  IPMI_GET_SOL_CONFIGURATION_PARAMETERS_REQUEST  *GetConfigurationParametersRequest,
66   OUT IPMI_GET_SOL_CONFIGURATION_PARAMETERS_RESPONSE *GetConfigurationParametersResponse,
67   IN OUT UINT32                                      *GetConfigurationParametersResponseSize
68   )
69 {
70   EFI_STATUS                   Status;
71 
72   Status = IpmiSubmitCommand (
73              IPMI_NETFN_TRANSPORT,
74              IPMI_TRANSPORT_GET_SOL_CONFIG_PARAM,
75              (VOID *)GetConfigurationParametersRequest,
76              sizeof(*GetConfigurationParametersRequest),
77              (VOID *)GetConfigurationParametersResponse,
78              GetConfigurationParametersResponseSize
79              );
80   return Status;
81 }
82