PLDM: System specific BIOS attributes
This commit adds code to populate BIOS attributes
based on the system type that is the platform.
The BIOS Jsons are installed based on the platform/
system type. The system type is populated by entity
manager.
TESTED on hardware across different platform/system type.
On systems where the compatible system interface is not
implemented or entity manager not running, then the BIOS
Jsons with default values are installed.
Signed-off-by: Sagar Srinivas <sagar.srinivas@ibm.com>
Change-Id: I179dad34537ed0d1fb263584d687a1b8cb64c335
diff --git a/libpldmresponder/bios_config.hpp b/libpldmresponder/bios_config.hpp
index 6e27642..2bd7c72 100644
--- a/libpldmresponder/bios_config.hpp
+++ b/libpldmresponder/bios_config.hpp
@@ -2,6 +2,7 @@
#include "bios_attribute.hpp"
#include "bios_table.hpp"
+#include "oem_handler.hpp"
#include "pldmd/instance_id.hpp"
#include "requester/handler.hpp"
@@ -76,12 +77,14 @@
* @param[in] eid - MCTP EID of host firmware
* @param[in] instanceIdDb - pointer to an InstanceIdDb object
* @param[in] handler - PLDM request handler
+ * @param[in] oemBiosHandler - pointer to oem Bios Handler
*/
explicit BIOSConfig(
const char* jsonDir, const char* tableDir,
pldm::utils::DBusHandler* const dbusHandler, int fd, uint8_t eid,
pldm::InstanceIdDb* instanceIdDb,
- pldm::requester::Handler<pldm::requester::Request>* handler);
+ pldm::requester::Handler<pldm::requester::Request>* handler,
+ pldm::responder::oem_bios::Handler* oemBiosHandler);
/** @brief Set attribute value on dbus and attribute value table
* @param[in] entry - attribute value entry
@@ -154,6 +157,9 @@
/** @brief PLDM request handler */
pldm::requester::Handler<pldm::requester::Request>* handler;
+ /** @brief oem Bios Handler*/
+ pldm::responder::oem_bios::Handler* oemBiosHandler;
+
// vector persists all attributes
using BIOSAttributes = std::vector<std::unique_ptr<BIOSAttribute>>;
BIOSAttributes biosAttributes;
@@ -167,6 +173,9 @@
// vector to catch the D-Bus property change signals for BIOS attributes
std::vector<std::unique_ptr<sdbusplus::bus::match_t>> biosAttrMatch;
+ /** @brief system type/model */
+ std::string sysType;
+
/** @brief Method to update a BIOS attribute when the corresponding Dbus
* property is changed
* @param[in] chProperties - list of properties which have changed