]> git.proxmox.com Git - mirror_edk2.git/commitdiff
RedfishPkg/Include: Add Redfish IPMI definitions
authorAbner Chang <abner.chang@amd.com>
Fri, 23 Dec 2022 06:33:48 +0000 (14:33 +0800)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Thu, 19 Jan 2023 02:32:26 +0000 (02:32 +0000)
Add the definitions of Redfish Host Interface
credential bootstrapping IPMI commands.

Signed-off-by: Nickle Wang <nicklew@nvidia.com>
Cc: Abner Chang <abner.chang@amd.com>
Cc: Igor Kulchytskyy <igork@ami.com>
Reviewed-by: Igor Kulchytskyy<igork@ami.com>
Reviewed-by: Isaac Oram <isaac.w.oram@intel.com>
RedfishPkg/Include/IndustryStandard/RedfishHostInterfaceIpmi.h [new file with mode: 0644]

diff --git a/RedfishPkg/Include/IndustryStandard/RedfishHostInterfaceIpmi.h b/RedfishPkg/Include/IndustryStandard/RedfishHostInterfaceIpmi.h
new file mode 100644 (file)
index 0000000..9b4a5eb
--- /dev/null
@@ -0,0 +1,51 @@
+/** @file\r
+  Redfish Host Interface IPMI command\r
+\r
+  Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
+**/\r
+\r
+#ifndef REDFISH_HOST_INTERFACE_IPMI_H_\r
+#define REDFISH_HOST_INTERFACE_IPMI_H_\r
+\r
+#include <Uefi.h>\r
+#include <IndustryStandard/IpmiNetFnGroupExtension.h>\r
+\r
+#define REDFISH_IPMI_GROUP_EXTENSION                          0x52\r
+#define REDFISH_IPMI_GET_BOOTSTRAP_CREDENTIALS_CMD            0x02\r
+#define REDFISH_IPMI_BOOTSTRAP_CREDENTIAL_ENABLE              0xA5\r
+#define REDFISH_IPMI_BOOTSTRAP_CREDENTIAL_DISABLE             0x00\r
+#define REDFISH_IPMI_COMP_CODE_BOOTSTRAP_CREDENTIAL_DISABLED  0x80\r
+\r
+///\r
+/// Per Redfish Host Interface Specification 1.3, The maximum length of\r
+/// username and password is 16 characters long.\r
+//\r
+#define USERNAME_MAX_LENGTH  16\r
+#define PASSWORD_MAX_LENGTH  16\r
+#define USERNAME_MAX_SIZE    (USERNAME_MAX_LENGTH + 1)  // NULL terminator\r
+#define PASSWORD_MAX_SIZE    (PASSWORD_MAX_LENGTH + 1)  // NULL terminator\r
+\r
+#pragma pack(1)\r
+\r
+///\r
+/// The definition of IPMI command to get bootstrap account credentials\r
+///\r
+typedef struct {\r
+  UINT8    GroupExtensionId;\r
+  UINT8    DisableBootstrapControl;\r
+} IPMI_BOOTSTRAP_CREDENTIALS_COMMAND_DATA;\r
+\r
+///\r
+/// The response data of getting bootstrap credential\r
+///\r
+typedef struct {\r
+  UINT8    CompletionCode;\r
+  UINT8    GroupExtensionId;\r
+  CHAR8    Username[USERNAME_MAX_LENGTH];\r
+  CHAR8    Password[PASSWORD_MAX_LENGTH];\r
+} IPMI_BOOTSTRAP_CREDENTIALS_RESULT_RESPONSE;\r
+\r
+#pragma pack()\r
+\r
+#endif\r