]> xenbits.xensource.com Git - people/aperard/ovmf.git/commitdiff
MdePkg/IndustryStandard: Add definitions for IPMI Boot Progress Code
authorNhi Pham <nhi@os.amperecomputing.com>
Fri, 30 Aug 2024 08:06:47 +0000 (15:06 +0700)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Fri, 6 Sep 2024 05:36:18 +0000 (05:36 +0000)
This adds constants and structure definitions for Send/Get Boot Progress
Code through IPMI, according to Server Base Manageability Requirements
(SBMR) [1], Appendix F.

[1] https://developer.arm.com/documentation/den0069

Signed-off-by: Nhi Pham <nhi@os.amperecomputing.com>
MdePkg/Include/IndustryStandard/IpmiNetFnGroupExtension.h

index 6b26656cfe58d2e328aa3cdab4418a249059c82e..aa242efcbbffba88dac64ef48fe3e0e8c485f341 100644 (file)
@@ -2,12 +2,15 @@
   IPMI 2.0 definitions from the IPMI Specification Version 2.0, Revision 1.1.\r
 \r
   Copyright (c) 1999 - 2015, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2024, Ampere Computing LLC. All rights reserved.<BR>\r
   SPDX-License-Identifier: BSD-2-Clause-Patent\r
 **/\r
 \r
 #ifndef _IPMI_NET_FN_GROUP_EXTENSION_H_\r
 #define _IPMI_NET_FN_GROUP_EXTENSION_H_\r
 \r
+#include <Pi/PiStatusCode.h>\r
+\r
 //\r
 // Net function definition for Group Extension command\r
 //\r
 // All Group Extension commands and their structure definitions to follow here\r
 //\r
 \r
+///\r
+/// Constants and structure definitions for Boot Progress Codes\r
+///\r
+/// See Section F of the Arm Server Base Manageability Requirements 2.0 specification,\r
+/// https://developer.arm.com/documentation/den0069\r
+///\r
+\r
+//\r
+// Definitions for send progress code command\r
+//\r
+#define IPMI_GROUP_EXTENSION_BOOT_PROGRESS_CODE_SEND  0x02\r
+\r
+//\r
+// Definitions for get progress code command\r
+//\r
+#define IPMI_GROUP_EXTENSION_BOOT_PROGRESS_CODE_GET  0x03\r
+\r
+//\r
+// Definitions for send and get progress code command response\r
+//\r
+#define IPMI_GROUP_EXTENSION_BOOT_PROGRESS_CODE_COMPLETED_NORMALLY  0x00\r
+#define IPMI_GROUP_EXTENSION_BOOT_PROGRESS_CODE_COMPLETED_ERROR     0x80\r
+#define IPMI_GROUP_EXTENSION_BOOT_PROGRESS_CODE_DEFINING_BODY       0xAE\r
+\r
+//\r
+// Structure for the format of the boot progress code data\r
+// See Table 29: SBMR Boot Progress Codes format\r
+//\r
+typedef struct {\r
+  EFI_STATUS_CODE_TYPE     CodeType;\r
+  EFI_STATUS_CODE_VALUE    CodeValue;\r
+  UINT8                    Instance;\r
+} IPMI_GROUP_EXTENSION_BOOT_PROGRESS_CODE_FORMAT;\r
+\r
+//\r
+// Structure for the boot progress code send request\r
+//\r
+typedef struct {\r
+  UINT8                                             DefiningBody;\r
+  IPMI_GROUP_EXTENSION_BOOT_PROGRESS_CODE_FORMAT    BootProgressCode;\r
+} IPMI_GROUP_EXTENSION_BOOT_PROGRESS_CODE_SEND_REQUEST;\r
+\r
+//\r
+// Structure for the boot progress code send response\r
+//\r
+typedef struct {\r
+  UINT8    CompletionCode;\r
+  UINT8    DefiningBody;\r
+} IPMI_GROUP_EXTENSION_BOOT_PROGRESS_CODE_SEND_RESPONSE;\r
+\r
+//\r
+// Structure for the boot progress code get request\r
+//\r
+typedef struct {\r
+  UINT8    DefiningBody;\r
+} IPMI_GROUP_EXTENSION_BOOT_PROGRESS_CODE_GET_REQUEST;\r
+\r
+//\r
+// Structure for the boot progress code get response\r
+//\r
+typedef struct {\r
+  UINT8                                             CompletionCode;\r
+  UINT8                                             DefiningBody;\r
+  IPMI_GROUP_EXTENSION_BOOT_PROGRESS_CODE_FORMAT    BootProgressCode;\r
+} IPMI_GROUP_EXTENSION_BOOT_PROGRESS_CODE_GET_RESPONSE;\r
+\r
 #endif\r