Add Intel-specific IPMI FRU commands
Includes commands that are required to support the 'ipmitool
fru print' command.
Change-Id: If7768de1441cc620ad6db4c99c4254305cf5bbbc
Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
diff --git a/include/storagecommands.hpp b/include/storagecommands.hpp
index ef32c74..0d32ea5 100644
--- a/include/storagecommands.hpp
+++ b/include/storagecommands.hpp
@@ -66,8 +66,35 @@
uint8_t allocUnitLargestFreeMSB;
uint8_t maxRecordSize;
};
+
+struct GetFRUAreaReq
+{
+ uint8_t fruDeviceID;
+ uint16_t fruInventoryOffset;
+ uint8_t countToRead;
+};
+
+struct GetFRUAreaResp
+{
+ uint8_t inventorySizeLSB;
+ uint8_t inventorySizeMSB;
+ uint8_t accessType;
+};
+
+struct WriteFRUDataReq
+{
+ uint8_t fruDeviceID;
+ uint16_t fruInventoryOffset;
+ uint8_t data[];
+};
#pragma pack(pop)
+enum class GetFRUAreaAccessType : uint8_t
+{
+ byte = 0x0,
+ words = 0x1
+};
+
enum class SensorTypeCodes : uint8_t
{
reserved = 0x0,
@@ -107,6 +134,20 @@
ipmiCmdSetSELTime = 0x49,
};
+#pragma pack(push, 1)
+struct FRUHeader
+{
+ uint8_t commonHeaderFormat;
+ uint8_t internalOffset;
+ uint8_t chassisOffset;
+ uint8_t boardOffset;
+ uint8_t productOffset;
+ uint8_t multiRecordOffset;
+ uint8_t pad;
+ uint8_t checksum;
+};
+#pragma pack(pop)
+
namespace ipmi
{
namespace storage