summaryrefslogtreecommitdiffstats
path: root/extensions/openpower-pels/data_interface.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/openpower-pels/data_interface.cpp')
-rw-r--r--extensions/openpower-pels/data_interface.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/extensions/openpower-pels/data_interface.cpp b/extensions/openpower-pels/data_interface.cpp
index 66442c5..7342dc0 100644
--- a/extensions/openpower-pels/data_interface.cpp
+++ b/extensions/openpower-pels/data_interface.cpp
@@ -13,8 +13,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+#include "config.h"
+
#include "data_interface.hpp"
+#include <fstream>
#include <xyz/openbmc_project/State/OperatingSystem/Status/server.hpp>
namespace openpower
@@ -48,6 +51,8 @@ DataInterface::DataInterface(sdbusplus::bus::bus& bus) : _bus(bus)
{
readMTMS();
readHostState();
+ readBMCFWVersion();
+ readServerFWVersion();
}
void DataInterface::readMTMS()
@@ -217,5 +222,27 @@ void DataInterface::osStatePropChanged(sdbusplus::message::message& msg)
}
}
+void DataInterface::readBMCFWVersion()
+{
+ std::ifstream versionFile{BMC_VERSION_FILE};
+ std::string line;
+ static const auto versionID = "VERSION=";
+
+ while (std::getline(versionFile, line))
+ {
+ if (line.find(versionID) != std::string::npos)
+ {
+ auto pos = line.find_first_of('"') + 1;
+ _bmcFWVersion = line.substr(pos, line.find_last_of('"') - pos);
+ break;
+ }
+ }
+}
+
+void DataInterface::readServerFWVersion()
+{
+ // Not available yet
+}
+
} // namespace pels
} // namespace openpower
OpenPOWER on IntegriCloud