meta-yosemitev2: add system get/set guid support
Added get/set system GUID command for multi host YosemiteV2,
it reads/writes guid to the corresponding hosts Bridge IC(BIC).
Tested:
Verified this with host reboot(BIOS automatically
sends get GUID command to BMC).
Verified this ipmitool.
Get System GUID:
ipmitool raw 60x37
Set System GUID:
ipmitool raw 0x30 0xEF 0 252 109 1 0 135 236 73 26
54 249 84 1 1 80 7 8
Signed-off-by: Manikandan Elumalai <manikandan.hcl.ers.epl@gmail.com>
Change-Id: I4d24a2fb4bf98f38afd7c0d07df0005c22535d48
diff --git a/src/usb-dbg.cpp b/src/usb-dbg.cpp
index 2588f81..965b564 100644
--- a/src/usb-dbg.cpp
+++ b/src/usb-dbg.cpp
@@ -880,6 +880,35 @@
return -1;
}
+int sendBicCmd(uint8_t netFn, uint8_t cmd, uint8_t bicAddr,
+ std::vector<uint8_t>& cmdData, std::vector<uint8_t>& respData)
+{
+ static constexpr uint8_t lun = 0;
+
+ auto bus = getSdBus();
+
+ auto method = bus->new_method_call("xyz.openbmc_project.Ipmi.Channel.Ipmb",
+ "/xyz/openbmc_project/Ipmi/Channel/Ipmb",
+ "org.openbmc.Ipmb", "sendRequest");
+ method.append(bicAddr, netFn, lun, cmd, cmdData);
+
+ auto reply = bus->call(method);
+ if (reply.is_method_error())
+ {
+ phosphor::logging::log<phosphor::logging::level::ERR>(
+ "Error reading from BIC");
+ return -1;
+ }
+
+ IpmbMethodType resp;
+ reply.read(resp);
+
+ respData =
+ std::move(std::get<std::remove_reference_t<decltype(respData)>>(resp));
+
+ return 0;
+}
+
int sendMeCmd(uint8_t netFn, uint8_t cmd, std::vector<uint8_t>& cmdData,
std::vector<uint8_t>& respData)
{