blob: ba56371d3cea68bad9935b575611e5e1e01995d7 [file] [log] [blame]
Prithvi Paibffaa112025-07-19 13:57:19 +05301/*
2 * SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION &
3 * AFFILIATES. All rights reserved.
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#include "oemcommands.hpp"
8
9#include <ipmid/api.hpp>
10#include <ipmid/types.hpp>
11
12#include <cstdint>
13
14void registerBootstrapCredentialsOemCommands() __attribute__((constructor));
15
16namespace ipmi
17{
18ipmi::RspType<uint8_t, uint8_t> ipmiGetUsbVendorIdProductId(uint8_t type)
19{
20 constexpr uint8_t descriptorVendorId = 1;
21 constexpr uint8_t descriptorProductId = 2;
22
23 // IPMI OEM USB Linux Gadget info
24 constexpr uint16_t usbVendorId = 0x0525;
25 constexpr uint16_t usbProductId = 0xA4A2;
26
27 if (type == descriptorVendorId)
28 {
29 return ipmi::responseSuccess(static_cast<uint8_t>(usbVendorId >> 8),
30 static_cast<uint8_t>(usbVendorId & 0xFF));
31 }
32 else if (type == descriptorProductId)
33 {
34 return ipmi::responseSuccess(static_cast<uint8_t>(usbProductId >> 8),
35 static_cast<uint8_t>(usbProductId & 0xFF));
36 }
37 return ipmi::responseInvalidFieldRequest();
38}
39
Prithvi Pai6bf35ee2025-07-24 12:05:10 +053040ipmi::RspType<ipmi::message::Payload> ipmiGetUsbSerialNumber()
41{
42 static constexpr uint8_t usbSerialNumber = 0x00;
43 ipmi::message::Payload usbSerialNumberPayload;
44 usbSerialNumberPayload.pack(usbSerialNumber);
45 return ipmi::responseSuccess(usbSerialNumberPayload);
46}
47
Prithvi Paibffaa112025-07-19 13:57:19 +053048} // namespace ipmi
49
50void registerBootstrapCredentialsOemCommands()
51{
52 ipmi::registerHandler(
53 ipmi::prioOemBase, ipmi::groupNvidia,
54 ipmi::bootstrap_credentials_oem::cmdGetUsbVendorIdProductId,
55 ipmi::Privilege::Admin, ipmi::ipmiGetUsbVendorIdProductId);
Prithvi Pai6bf35ee2025-07-24 12:05:10 +053056
57 ipmi::registerHandler(
58 ipmi::prioOemBase, ipmi::groupNvidia,
59 ipmi::bootstrap_credentials_oem::cmdGetUsbSerialNumber,
60 ipmi::Privilege::Admin, ipmi::ipmiGetUsbSerialNumber);
Prithvi Paibffaa112025-07-19 13:57:19 +053061}