Call SetBIOSAttributCurrentValue to update BaseBIOSTable property
The host can update a BIOS attribute via SetBIOSAttributCurrentValue,
the PLDM daemon should also update the BaseBIOSTable property on the
object that implements xyz.openbmc_project.BIOSConfig.Manager.
Tested: test with JSON
https://gist.github.com/lxwinspur/2afffff2e445fddf90dfed6eceef4014
Before calling SetBIOSAttributCurrentValue:
~# pldmtool bios GetBIOSAttributeCurrentValueByHandle -a Led
CurrentValue: Off
~# busctl get-property xyz.openbmc_project.BIOSConfigManager
/xyz/openbmc_project/bios_config/manager
xyz.openbmc_project.BIOSConfig.Manager BaseBIOSTable
a{s(sbsssvva(sv))} 5
... ...
"Led" "xyz.openbmc_project.BIOSConfig.Manager.AttributeType.Enumeration"
false "" "" "" s "Off" s "Off" 2 "xyz.openbmc_project.BIOSConfig.Manager.BoundType.OneOf" s
... ...
calling SetBIOSAttributCurrentValue:
~# pldmtool bios setbiosattributecurrentvalue -a Led -d On
SetBIOSAttributeCurrentValue: SUCCESS
After calling SetBIOSAttributCurrentValue:
~# pldmtool bios GetBIOSAttributeCurrentValueByHandle -a Led
CurrentValue: On
~# busctl get-property xyz.openbmc_project.BIOSConfigManager
/xyz/openbmc_project/bios_config/manager
xyz.openbmc_project.BIOSConfig.Manager BaseBIOSTable
a{s(sbsssvva(sv))} 5
... ...
"Led" "xyz.openbmc_project.BIOSConfig.Manager.AttributeType.Enumeration"
false "" "" "" s "On" s "Off" 2 "xyz.openbmc_project.BIOSConfig.Manager.BoundType.OneOf" s
... ...
Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: If8315f64ab6621e84ca17530c57e5eed936560b8
diff --git a/libpldmresponder/bios_config.cpp b/libpldmresponder/bios_config.cpp
index 805b172..ee634c9 100644
--- a/libpldmresponder/bios_config.cpp
+++ b/libpldmresponder/bios_config.cpp
@@ -686,8 +686,8 @@
return PLDM_ERROR;
}
- BIOSTable biosAttrValueTable((tableDir / attrValueTableFile).c_str());
- biosAttrValueTable.store(*destTable);
+ setBIOSTable(PLDM_BIOS_ATTR_VAL_TABLE, *destTable);
+
return PLDM_SUCCESS;
}