From: "Chang, Abner" <abner.chang@amd.com>
To: <devel@edk2.groups.io>
Cc: Michael D Kinney <michael.d.kinney@intel.com>,
Liming Gao <gaoliming@byosoft.com.cn>,
Zhiguang Liu <zhiguang.liu@intel.com>,
Nickle Wang <nicklew@nvidia.com>,
Igor Kulchytskyy <igork@ami.com>,
Isaac Oram <isaac.w.oram@intel.com>,
Nate DeSimone <nathaniel.l.desimone@intel.com>
Subject: [PATCH V4 1/3] MdePkg/IndustryStandard: Update IPMI definitions
Date: Fri, 6 Jan 2023 10:57:53 +0800 [thread overview]
Message-ID: <20230106025756.1184-2-abner.chang@amd.com> (raw)
In-Reply-To: <20230106025756.1184-1-abner.chang@amd.com>
From: Abner Chang <abner.chang@amd.com>
This change updates IPMI header files to support
build up SMBIOS 42 Redfish Host Interface record
using the information retrieved via IPMI App/Net
Function.
Signed-off-by: Abner Chang <abner.chang@amd.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Cc: Nickle Wang <nicklew@nvidia.com>
Cc: Igor Kulchytskyy <igork@ami.com>
Cc: Isaac Oram <isaac.w.oram@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
---
MdePkg/Include/IndustryStandard/Ipmi.h | 17 +++++++++
.../Include/IndustryStandard/IpmiNetFnApp.h | 37 +++++++++++++++++--
.../IndustryStandard/IpmiNetFnTransport.h | 32 ++++++++++++++++
3 files changed, 82 insertions(+), 4 deletions(-)
diff --git a/MdePkg/Include/IndustryStandard/Ipmi.h b/MdePkg/Include/IndustryStandard/Ipmi.h
index 9d1d412b53e..d6e7436b5ae 100644
--- a/MdePkg/Include/IndustryStandard/Ipmi.h
+++ b/MdePkg/Include/IndustryStandard/Ipmi.h
@@ -6,6 +6,7 @@
and Appendix H, Sub-function Assignments.
Copyright (c) 1999 - 2018, Intel Corporation. All rights reserved.<BR>
+ Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -52,4 +53,20 @@
#define IPMI_COMP_CODE_SUBFUNCTION_DISABLED 0xD6
#define IPMI_COMP_CODE_UNSPECIFIED 0xFF
+#define IPMI_CHANNEL_NUMBER_PRIMARY_IPMB 0x00
+#define IPMI_CHANNEL_NUMBER_IMPLEMENTATION_SPECIFIC_1 0x01
+#define IPMI_CHANNEL_NUMBER_IMPLEMENTATION_SPECIFIC_2 0x02
+#define IPMI_CHANNEL_NUMBER_IMPLEMENTATION_SPECIFIC_3 0x03
+#define IPMI_CHANNEL_NUMBER_IMPLEMENTATION_SPECIFIC_4 0x04
+#define IPMI_CHANNEL_NUMBER_IMPLEMENTATION_SPECIFIC_5 0x05
+#define IPMI_CHANNEL_NUMBER_IMPLEMENTATION_SPECIFIC_6 0x06
+#define IPMI_CHANNEL_NUMBER_IMPLEMENTATION_SPECIFIC_7 0x07
+#define IPMI_CHANNEL_NUMBER_IMPLEMENTATION_SPECIFIC_8 0x08
+#define IPMI_CHANNEL_NUMBER_IMPLEMENTATION_SPECIFIC_9 0x09
+#define IPMI_CHANNEL_NUMBER_IMPLEMENTATION_SPECIFIC_10 0x0A
+#define IPMI_CHANNEL_NUMBER_IMPLEMENTATION_SPECIFIC_11 0x0B
+#define IPMI_CHANNEL_NUMBER_IMPLEMENTATION_RESERVED_12 0x0C
+#define IPMI_CHANNEL_NUMBER_IMPLEMENTATION_RESERVED_13 0x0D
+#define IPMI_CHANNEL_NUMBER_PRIMARY_PRESENT_IF 0x0E
+#define IPMI_CHANNEL_NUMBER_PRIMARY_SYSTEM_INTERFACE 0x0F
#endif
diff --git a/MdePkg/Include/IndustryStandard/IpmiNetFnApp.h b/MdePkg/Include/IndustryStandard/IpmiNetFnApp.h
index 0721bc6b271..a5835ba08c0 100644
--- a/MdePkg/Include/IndustryStandard/IpmiNetFnApp.h
+++ b/MdePkg/Include/IndustryStandard/IpmiNetFnApp.h
@@ -12,6 +12,7 @@
and Appendix H, Sub-function Assignments.
Copyright (c) 1999 - 2018, Intel Corporation. All rights reserved.<BR>
+ Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -486,6 +487,11 @@ typedef struct {
//
#define IPMI_APP_GET_SYSTEM_GUID 0x37
+typedef struct {
+ UINT8 CompletionCode;
+ EFI_GUID SystemUuid;
+} IPMI_GET_SYSTEM_UUID_RESPONSE;
+
//
// Constants and Structure definitions for "Get System GUID" command to follow here
//
@@ -671,6 +677,30 @@ typedef struct {
#define IPMI_CHANNEL_MEDIA_TYPE_OEM_START 0x60
#define IPMI_CHANNEL_MEDIA_TYPE_OEM_END 0x7F
+//
+// Definitions for channel protocol type
+//
+// Not available
+#define IPMI_CHANNEL_PROTOCOL_TYPE_NA 0x00
+// IPMB-1.0
+#define IPMI_CHANNEL_PROTOCOL_TYPE_IPMB_1_0 0x01
+// ICMB-1.0
+#define IPMI_CHANNEL_PROTOCOL_TYPE_ICMB_1_0 0x02
+// Reserved
+#define IPMI_CHANNEL_PROTOCOL_TYPE_RESERVED 0x03
+// IPMI SMBUS
+#define IPMI_CHANNEL_PROTOCOL_TYPE_IPMI_SMBUS 0x04
+// KCS
+#define IPMI_CHANNEL_PROTOCOL_TYPE_KCS 0x05
+// SMIC
+#define IPMI_CHANNEL_PROTOCOL_TYPE_SMIC 0x06
+// BT-10
+#define IPMI_CHANNEL_PROTOCOL_TYPE_BT_10 0x07
+// BT-15
+#define IPMI_CHANNEL_PROTOCOL_TYPE_BT_15 0x08
+// TMode
+#define IPMI_CHANNEL_PROTOCOL_TYPE_TMODE 0x09
+
typedef union {
struct {
UINT8 ChannelNo : 4;
@@ -713,10 +743,9 @@ typedef struct {
UINT16 AuxChannelInfo;
} IPMI_GET_CHANNEL_INFO_RESPONSE;
-//
-// Definitions for Get Channel Info command
-//
-#define IPMI_APP_GET_CHANNEL_INFO 0x42
+typedef struct {
+ IPMI_CHANNEL_INFO_CHANNEL_NUMBER ChannelNumber;
+} IPMI_GET_CHANNEL_INFO_REQUEST;
//
// Constants and Structure definitions for "Get Channel Info" command to follow here
diff --git a/MdePkg/Include/IndustryStandard/IpmiNetFnTransport.h b/MdePkg/Include/IndustryStandard/IpmiNetFnTransport.h
index 19db84e5122..2024c35f7fa 100644
--- a/MdePkg/Include/IndustryStandard/IpmiNetFnTransport.h
+++ b/MdePkg/Include/IndustryStandard/IpmiNetFnTransport.h
@@ -11,6 +11,7 @@
and Appendix H, Sub-function Assignments.
Copyright (c) 1999 - 2018, Intel Corporation. All rights reserved.<BR>
+ Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -60,6 +61,7 @@ typedef enum {
IpmiLanReserved3,
IpmiLanDestinationType,
IpmiLanDestinationAddress,
+ IpmiLanVlanId = 0x14,
IpmiIpv4OrIpv6Support = 0x32,
IpmiIpv4OrIpv6AddressEnable,
IpmiIpv6HdrStatTrafficClass,
@@ -103,6 +105,14 @@ typedef enum {
IpmiOem2
} IPMI_LAN_DEST_TYPE_DEST_TYPE;
+//
+// Destination address format
+//
+typedef enum {
+ IpmiDestinationAddressVersion4,
+ IpmiDestinationAddressVersion6
+} IPMI_LAN_DEST_ADDRESS_VERSION;
+
typedef union {
struct {
UINT8 NoAuth : 1;
@@ -177,6 +187,10 @@ typedef struct {
UINT8 ArpInterval;
} IPMI_LAN_ARP_INTERVAL;
+typedef struct {
+ UINT8 IpAddress[4];
+} IPMI_LAN_DEFAULT_GATEWAY;
+
typedef struct {
UINT8 Data[18];
} IPMI_LAN_COMMUNITY_STRING;
@@ -227,6 +241,24 @@ typedef struct {
IPMI_LAN_MAC_ADDRESS AlertingMacAddress;
} IPMI_LAN_DEST_ADDRESS;
+typedef struct {
+ UINT8 VanIdLowByte;
+} IPMI_LAN_VLAN_ID_DATA1;
+
+typedef union {
+ struct {
+ UINT8 VanIdHighByte : 4;
+ UINT8 Reserved : 3;
+ UINT8 Enabled : 1;
+ } Bits;
+ UINT8 Uint8;
+} IPMI_LAN_VLAN_ID_DATA2;
+
+typedef struct {
+ IPMI_LAN_VLAN_ID_DATA1 Data1;
+ IPMI_LAN_VLAN_ID_DATA2 Data2;
+} IPMI_LAN_VLAN_ID;
+
typedef union {
IPMI_LAN_AUTH_TYPE IpmiLanAuthType;
IPMI_LAN_IP_ADDRESS IpmiLanIpAddress;
--
2.37.1.windows.1
next prev parent reply other threads:[~2023-01-06 2:58 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-06 2:57 [PATCH V4 0/3] IPMI changes for Redfish Chang, Abner
2023-01-06 2:57 ` Chang, Abner [this message]
2023-01-18 5:13 ` 回复: [edk2-devel] [PATCH V4 1/3] MdePkg/IndustryStandard: Update IPMI definitions gaoliming
2023-01-18 6:06 ` Chang, Abner
2023-01-19 1:07 ` 回复: " gaoliming
2023-01-19 1:15 ` Chang, Abner
2023-01-19 3:31 ` Chang, Abner
2023-01-06 2:57 ` [PATCH V4 2/3] RedfishPkg/Include: Add Redfish " Chang, Abner
2023-01-06 2:57 ` [PATCH V4 3/3] RedfishPkg/Include: Redfish USB Interface V2 update Chang, Abner
2023-01-11 23:11 ` [PATCH V4 0/3] IPMI changes for Redfish 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=20230106025756.1184-2-abner.chang@amd.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