oem-ibm: Change the primary postcode signature
The signature of the primary SRC has been changed from uint64_t to
array[uint8_t] [1], and pldm code is still using the old signature
hence the progress code function is broken. This commit fixes the
problem.
[1]: https://gerrit.openbmc.org/q/topic:%22primary-postcode-new-intf%22
Change-Id: I2cb12e550995af82eff9c5d2c84054d62985ced1
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>
diff --git a/oem/ibm/libpldmresponder/file_io_type_progress_src.cpp b/oem/ibm/libpldmresponder/file_io_type_progress_src.cpp
index f6d9db3..812bc4f 100644
--- a/oem/ibm/libpldmresponder/file_io_type_progress_src.cpp
+++ b/oem/ibm/libpldmresponder/file_io_type_progress_src.cpp
@@ -13,7 +13,8 @@
{
int ProgressCodeHandler::setRawBootProperty(
- const std::tuple<uint64_t, std::vector<uint8_t>>& progressCodeBuffer)
+ const std::tuple<std::vector<uint8_t>, std::vector<uint8_t>>&
+ progressCodeBuffer)
{
static constexpr auto RawObjectPath =
"/xyz/openbmc_project/state/boot/raw0";
@@ -31,9 +32,11 @@
pldm::utils::DBusHandler().getService(RawObjectPath, RawInterface);
auto method = bus.new_method_call(service.c_str(), RawObjectPath,
FreedesktopInterface, SetMethod);
- method.append(RawInterface, RawProperty,
- std::variant<std::tuple<uint64_t, std::vector<uint8_t>>>(
- progressCodeBuffer));
+ method.append(
+ RawInterface, RawProperty,
+ std::variant<
+ std::tuple<std::vector<uint8_t>, std::vector<uint8_t>>>(
+ progressCodeBuffer));
bus.call_noreply(method, dbusTimeout);
}
@@ -61,14 +64,8 @@
// Get the primary code from the offset 40 bytes in the received buffer
- std::vector<uint8_t> primaryCodeArray(
- secondaryCode.begin() + StartOffset,
- secondaryCode.begin() + EndOffset);
- uint64_t primaryCode = 0;
-
- // form a uint64_t using uint8_t[8]
- for (int i = 0; i < 8; i++)
- primaryCode |= (uint64_t)primaryCodeArray[i] << 8 * i;
+ std::vector<uint8_t> primaryCode(secondaryCode.begin() + StartOffset,
+ secondaryCode.begin() + EndOffset);
return setRawBootProperty(std::make_tuple(primaryCode, secondaryCode));
}
diff --git a/oem/ibm/libpldmresponder/file_io_type_progress_src.hpp b/oem/ibm/libpldmresponder/file_io_type_progress_src.hpp
index ca0ef25..4beb433 100644
--- a/oem/ibm/libpldmresponder/file_io_type_progress_src.hpp
+++ b/oem/ibm/libpldmresponder/file_io_type_progress_src.hpp
@@ -59,7 +59,8 @@
* @param[in] progressCodeBuffer - the progress Code SRC Buffer
*/
virtual int setRawBootProperty(
- const std::tuple<uint64_t, std::vector<uint8_t>>& progressCodeBuffer);
+ const std::tuple<std::vector<uint8_t>, std::vector<uint8_t>>&
+ progressCodeBuffer);
/** @brief ProgressCodeHandler destructor
*/