Fix issue with hex string to integer conversion

Not able to PATCH few attributes in BiosAttributeRegistry,
evaluation of depex expression is getting failed, so attributes
which are not patchable are also added to Base Table.

Changes made to pass evaluation of depex expression.

Tested:
1. Enable "BMC remote setup" in EDKII Menu from Bios and set
   User Admin Password.
2. Perform Reset Bios or DC Cycle or AC cycle.
3. Wait for 120 seconds after complete bios boot up and check
   for bios.xml file in /var/oob folder.
4. Get - /redfish/v1/Registries/BiosAttributeRegistry
         /BiosAttributeRegistry
Response: All patchable attributes are displayed.
5. Select random attribute and
   Patch - /redfish/v1/Systems/system/Bios/Settings
Body:
{
    "data": {
        "Ioe0PcieRootPortEn_5": "0x0"
}}
6. Repeat steps 2, 3 and 4
Response:
{
    "@odata.id": "/redfish/v1/Registries/BiosAttributeRegistry
                  /BiosAttributeRegistry",
    "@odata.type": "#AttributeRegistry.v1_3_2.AttributeRegistry",
    "Id": "BiosAttributeRegistry",
    "Language": "en",
    "Name": "Bios Attribute Registry",
    "OwningEntity": "OpenBMC",
    "RegistryEntries": {
        "Attributes": [
            {
                "AttributeName": "Ioe0PcieRootPortEn_5",
                "CurrentValue": "0x00",
                "DefaultValue": "0x01",
                "DisplayName": "Ioe0PcieRootPortEn_5",
                "HelpText": "Control the PCI Express Root Port.",
                "MenuPath": "./",
                "ReadOnly": false,
                "Type": "String",
                "Value": [
                    {
                        "OneOf": "0x0"
                    },
                    {
                        "OneOf": "0x1"
                    }
                ]
            },.....
]
}
}

Signed-off-by: Snehalatha Venkatesh <snehalathax.v@intel.com>
Change-Id: I48e850758c0b9873c5f6645151e613dd0d0a7b39
1 file changed
tree: 3c54a5282c24d9b6472e08d54654a2323080e222
  1. cmake/
  2. docs/
  3. include/
  4. non-yocto/
  5. src/
  6. tests/
  7. .clang-format
  8. .gitignore
  9. cmake-format.json
  10. CMakeLists.txt
  11. CMakeLists.txt.in
  12. generate-whitelist.py
  13. ipmi-whitelist.conf
  14. LICENSE
  15. MAINTAINERS
  16. OWNERS
  17. README.md
README.md

Intel IPMI OEM support library

This component is intended to provide Intel-specific IPMI[3] command handlers for OpenBMC. These handlers are intended to integrate BMC with servers based on Intel architecture.

Overview

intel-ipmi-oem serves as an extension[1] to OpenBMC IPMI daemon[2]. It is compiled as a shared library and intended to both:

  • override existing implementation of standard IPMI commands to comply with Intel-specific solutions,
  • provide implementation for non-standard OEM extensions.

Capabilities

Related features provided by the library are grouped in separate source files. Main extensions to vanilla OpenBMC IPMI stack are the following:

  • Acquiring SMBIOS data over IPMI
  • Commands for better integration with Intel hardware
  • Firmware update extensions
  • Extended parsing of IPMI Platform Events[4]

References

  1. OpenBMC IPMI Architecture
  2. Phosphor IPMI Host
  3. IPMI Specification v2.0
  4. Intel Platform Events parsing