nvidia-oem: Implement GetRedfishServicePort
This command is used by BIOS before creating SMBIOS record
type 42. BIOS gets USBDescription information from BMC.
Note:
The implementation in this PR is for
RedfishServiceUUID.
The support for other device descriptors will be added in
upcoming PRs.
Design Document for RHI:
[1] https://gerrit.openbmc.org/c/openbmc/docs/+/79327
Redfish Host Interface specification:
[2] https://www.dmtf.org/sites/default/files/standards/documents/DSP0270_1.3.0.pdf
Tested:
Tested on gb200nvl-obmc platform:
root@gb200nvl-obmc:~# ipmitool raw 0x3c 0x35
01 bb
Change-Id: I38adf96e54350124886f46d58f0bb7490981e389
Signed-off-by: Prithvi Pai <ppai@nvidia.com>
diff --git a/oem/nvidia/bootstrap-credentials-oem-cmds.cpp b/oem/nvidia/bootstrap-credentials-oem-cmds.cpp
index b7d1bec..8b4cbdb 100644
--- a/oem/nvidia/bootstrap-credentials-oem-cmds.cpp
+++ b/oem/nvidia/bootstrap-credentials-oem-cmds.cpp
@@ -183,6 +183,12 @@
return ipmi::responseSuccess(resBuf);
}
+ipmi::RspType<uint16_t> ipmiGetRedfishServicePort()
+{
+ constexpr uint16_t redfishPort = 443;
+ return ipmi::responseSuccess(htons(redfishPort));
+}
+
} // namespace ipmi
void registerBootstrapCredentialsOemCommands()
@@ -211,4 +217,9 @@
ipmi::prioOemBase, ipmi::groupNvidia,
ipmi::bootstrap_credentials_oem::cmdGetRedfishServiceUUID,
ipmi::Privilege::Admin, ipmi::ipmiGetRedfishServiceUUID);
+
+ ipmi::registerHandler(
+ ipmi::prioOemBase, ipmi::groupNvidia,
+ ipmi::bootstrap_credentials_oem::cmdGetRedfishServicePort,
+ ipmi::Privilege::Admin, ipmi::ipmiGetRedfishServicePort);
}
diff --git a/oem/nvidia/oemcommands.hpp b/oem/nvidia/oemcommands.hpp
index 064a87e..5275e23 100644
--- a/oem/nvidia/oemcommands.hpp
+++ b/oem/nvidia/oemcommands.hpp
@@ -20,6 +20,7 @@
constexpr auto cmdGetRedfishHostName = 0x32;
constexpr auto cmdGetIpmiChannelRfHi = 0x33;
constexpr auto cmdGetRedfishServiceUUID = 0x34;
+constexpr auto cmdGetRedfishServicePort = 0x35;
} // namespace bootstrap_credentials_oem
namespace bios_password