Fix BIOS enum attribute to allow updating BaseBIOSTable
- Old function: BaseBIOSTable is not allowed to be updated if there
is no D-Bus backend.
- New function: Both with D-Bus backend and without D-Bus backend,
BaseBIOSTable should be updated.
Tested:
- Old function:
busctl set-property xyz.openbmc_project.BIOSConfigManager /xyz/openbmc_project/bios_config/manager xyz.openbmc_project.BIOSConfig.Manager PendingAttributes a{s\(sv\)} 1 "pvm_default_os_type" "xyz.openbmc_project.BIOSConfig.Manager.AttributeType.Enumeration" s "Linux"
busctl call xyz.openbmc_project.BIOSConfigManager /xyz/openbmc_project/bios_config/manager xyz.openbmc_project.BIOSConfig.Manager GetAttribute s pvm_default_os_type
svv "xyz.openbmc_project.BIOSConfig.Manager.AttributeType.Enumeration" s "AIX" s ""
- New function:
busctl set-property xyz.openbmc_project.BIOSConfigManager /xyz/openbmc_project/bios_config/manager xyz.openbmc_project.BIOSConfig.Manager PendingAttributes a{s\(sv\)} 1 "pvm_default_os_type" "xyz.openbmc_project.BIOSConfig.Manager.AttributeType.Enumeration" s "Linux"
busctl call xyz.openbmc_project.BIOSConfigManager /xyz/openbmc_project/bios_config/manager xyz.openbmc_project.BIOSConfig.Manager GetAttribute s pvm_default_os_type
svv "xyz.openbmc_project.BIOSConfig.Manager.AttributeType.Enumeration" s "Linux" s ""
Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: I0f0186583448839f3f8cb4765e81fc84bca596b2
diff --git a/libpldmresponder/bios_enum_attribute.cpp b/libpldmresponder/bios_enum_attribute.cpp
index 7d7cacf..f1f22c5 100644
--- a/libpldmresponder/bios_enum_attribute.cpp
+++ b/libpldmresponder/bios_enum_attribute.cpp
@@ -262,7 +262,7 @@
entry->attr_type = 0;
entry->value[0] = 1; // number of current values, default 1
- if (readOnly || !dBusMap.has_value())
+ if (readOnly)
{
entry->value[1] = getValueIndex(defaultValue, possibleValues);
}