From: "Isaac Oram" <isaac.w.oram@intel.com>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
"abner.chang@amd.com" <abner.chang@amd.com>
Cc: "Desimone, Nathaniel L" <nathaniel.l.desimone@intel.com>,
"Gao, Liming" <gaoliming@byosoft.com.cn>,
Nickle Wang <nicklew@nvidia.com>,
"Igor Kulchytskyy" <igork@ami.com>
Subject: Re: [edk2-devel] [edk2-platforms][PATCH 2/3] IpmiFeaturePkg/IpmiCommandLib: Add IPMI functions
Date: Thu, 5 Jan 2023 00:10:11 +0000 [thread overview]
Message-ID: <SA1PR11MB5801F64627B9B77A3F911147D0FA9@SA1PR11MB5801.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20221223132700.1864-3-abner.chang@amd.com>
Reviewed-by: Isaac Oram <isaac.w.oram@intel.com>
If you are making changes, I would note/request improvement for:
IpmiGetSystemUuid ();
Please align local variable columns as is convention in this file.
IpmiGetChannelInfo ();
Should we check that input pointers are not null? Other functions don't, so I wouldn't block commit for this, but if you are fixing other things, it seems beneficial to add some error checking.
Regards,
Isaac
-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Chang, Abner via groups.io
Sent: Friday, December 23, 2022 5:27 AM
To: devel@edk2.groups.io
Cc: Oram, Isaac W <isaac.w.oram@intel.com>; Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>; Gao, Liming <gaoliming@byosoft.com.cn>; Nickle Wang <nicklew@nvidia.com>; Igor Kulchytskyy <igork@ami.com>
Subject: [edk2-devel] [edk2-platforms][PATCH 2/3] IpmiFeaturePkg/IpmiCommandLib: Add IPMI functions
From: Abner Chang <abner.chang@amd.com>
Add functions to get system UUID and LAN configuration parameter.
Signed-off-by: Abner Chang <abner.chang@amd.com>
Cc: Isaac Oram <isaac.w.oram@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Nickle Wang <nicklew@nvidia.com>
Cc: Igor Kulchytskyy <igork@ami.com>
---
.../IpmiCommandLib/IpmiCommandLibNetFnApp.c | 81 +++++++++++++++++++
.../IpmiCommandLibNetFnTransport.c | 36 +++++++++
2 files changed, 117 insertions(+)
diff --git a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiCommandLib/IpmiCommandLibNetFnApp.c b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiCommandLib/IpmiCommandLibNetFnApp.c
index addabc554e..e89ba27d15 100644
--- a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiCommandLib/IpmiCommandLibNetFnApp.c
+++ b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiComm
+++ andLib/IpmiCommandLibNetFnApp.c
@@ -2,6 +2,8 @@
IPMI Command - NetFnApp.
Copyright (c) 2018 - 2021, Intel Corporation. All rights reserved.<BR>
+ Copyright (C) 2022 Advanced Micro Devices, Inc. All rights
+ reserved.<BR>
+
SPDX-License-Identifier: BSD-2-Clause-Patent **/
@@ -245,3 +247,82 @@ IpmiSendMessage (
);
return Status;
}
+
+/**
+ This function gets the system UUID.
+
+ @param[out] SystemGuid The pointer to retrieve system UUID.
+
+ @retval EFI_SUCCESS UUID is returned.
+ @retval EFI_INVALID_PARAMETER SystemGuid is a NULL pointer.
+ @retval Others Other errors.
+
+**/
+EFI_STATUS
+EFIAPI
+IpmiGetSystemUuid (
+ OUT EFI_GUID *SystemGuid
+ )
+{
+ EFI_STATUS Status;
+ IPMI_GET_SYSTEM_UUID_RESPONSE GetSystemUuidResponse;
+ UINT32 RequestSize;
+ UINT32 ResponseSize;
+
+ if (SystemGuid == NULL) {
+ return EFI_INVALID_PARAMETER;
+ }
+ RequestSize = 0;
+ ResponseSize = sizeof (IPMI_GET_SYSTEM_UUID_RESPONSE);
+ Status = IpmiSubmitCommand (
+ IPMI_NETFN_APP,
+ IPMI_APP_GET_SYSTEM_GUID,
+ (VOID *)NULL,
+ RequestSize,
+ (VOID *)&GetSystemUuidResponse,
+ &ResponseSize
+ );
+ if (!EFI_ERROR (Status) && GetSystemUuidResponse.CompletionCode == IPMI_COMP_CODE_NORMAL) {
+ CopyMem (
+ (VOID *)SystemGuid,
+ (VOID *)&GetSystemUuidResponse.SystemUuid,
+ sizeof (EFI_GUID)
+ );
+ }
+ return Status;
+}
+
+/**
+ This function gets the channel information.
+
+ @param[in] GetChannelInfoRequest The get channel information request.
+ @param[in] GetChannelInfoResponse The get channel information response.
+ @param[in,out] GetChannelInfoResponseSize When input, the expected size of response.
+ When output, the exact size of the returned
+ response.
+
+ @retval EFI_SUCCESS Get channel information successfully.
+ @retval Others Other errors.
+
+**/
+EFI_STATUS
+EFIAPI
+IpmiGetChannelInfo (
+ IN IPMI_GET_CHANNEL_INFO_REQUEST *GetChannelInfoRequest,
+ OUT IPMI_GET_CHANNEL_INFO_RESPONSE *GetChannelInfoResponse,
+ OUT UINT32 *GetChannelInfoResponseSize
+ )
+{
+ EFI_STATUS Status;
+
+ *GetChannelInfoResponseSize = sizeof
+(IPMI_GET_CHANNEL_INFO_RESPONSE);
+ Status = IpmiSubmitCommand (
+ IPMI_NETFN_APP,
+ IPMI_APP_GET_CHANNEL_INFO,
+ (UINT8 *)GetChannelInfoRequest,
+ sizeof (IPMI_GET_CHANNEL_INFO_REQUEST),
+ (UINT8 *)GetChannelInfoResponse,
+ GetChannelInfoResponseSize
+ );
+ return Status;
+}
diff --git a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiCommandLib/IpmiCommandLibNetFnTransport.c b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiCommandLib/IpmiCommandLibNetFnTransport.c
index 7dfcf86126..135a905844 100644
--- a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiCommandLib/IpmiCommandLibNetFnTransport.c
+++ b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiComm
+++ andLib/IpmiCommandLibNetFnTransport.c
@@ -2,6 +2,8 @@
IPMI Command - NetFnTransport.
Copyright (c) 2018 - 2021, Intel Corporation. All rights reserved.<BR>
+ Copyright (C) 2022 Advanced Micro Devices, Inc. All rights
+ reserved.<BR>
+
SPDX-License-Identifier: BSD-2-Clause-Patent **/
@@ -78,3 +80,37 @@ IpmiGetSolConfigurationParameters (
);
return Status;
}
+
+/**
+ This function gets the LAN configuration parameter.
+
+ @param[in] GetLanConfigurationParametersRequest Request data
+ @param[in] GetLanConfigurationParametersResponse Response data
+ @param[in,out] GetLanConfigurationParametersSize When input, the expected size of response data.
+ When out, the exact size of response data.
+
+ @retval EFI_SUCCESS Lan configuration parameter is returned in the response.
+ @retval Others Other errors.
+
+**/
+
+EFI_STATUS
+EFIAPI
+IpmiGetLanConfigurationParameters (
+ IN IPMI_GET_LAN_CONFIGURATION_PARAMETERS_REQUEST *GetLanConfigurationParametersRequest,
+ OUT IPMI_GET_LAN_CONFIGURATION_PARAMETERS_RESPONSE *GetLanConfigurationParametersResponse,
+ IN OUT UINT32 *GetLanConfigurationParametersSize
+ )
+{
+ EFI_STATUS Status;
+
+ Status = IpmiSubmitCommand (
+ IPMI_NETFN_TRANSPORT,
+ IPMI_TRANSPORT_GET_LAN_CONFIG_PARAMETERS,
+ (UINT8 *)GetLanConfigurationParametersRequest,
+ sizeof(*GetLanConfigurationParametersRequest),
+ (UINT8 *)GetLanConfigurationParametersResponse,
+ GetLanConfigurationParametersSize
+ );
+ return Status;
+}
--
2.37.1.windows.1
next prev parent reply other threads:[~2023-01-05 0:10 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-23 13:26 [edk2-platforms][PATCH 0/3] IPMI changes for Redfish Chang, Abner
2022-12-23 13:26 ` [edk2-platforms][PATCH 1/3] Features/IpmiFeaturePkg: Add IPMI functions Chang, Abner
2023-01-05 0:09 ` [edk2-devel] " Isaac Oram
2023-01-05 16:03 ` Chang, Abner
2022-12-23 13:26 ` [edk2-platforms][PATCH 2/3] IpmiFeaturePkg/IpmiCommandLib: " Chang, Abner
2023-01-05 0:10 ` Isaac Oram [this message]
2022-12-23 13:27 ` [edk2-platforms][PATCH 3/3] IpmiFeaturePkg: Add reference of IpmiBaseLib Chang, Abner
2023-01-05 0:10 ` Isaac Oram
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=SA1PR11MB5801F64627B9B77A3F911147D0FA9@SA1PR11MB5801.namprd11.prod.outlook.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox