add bios update support

The BIOS would be updated using multipart-form update as HTTP Push URI
is being default used for BMC updates.

Tested:
```
> curl -k -H "X-Auth-Token: $token" -X GET https://${bmc}/redfish/v1/UpdateService/FirmwareInventory/bios_active
{
  "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/bios_active",
  "@odata.type": "#SoftwareInventory.v1_1_0.SoftwareInventory",
  "Description": "Host image",
  "Id": "bios_active",
  "Name": "Software Inventory",
  "RelatedItem": [
    {
      "@odata.id": "/redfish/v1/Systems/system/Bios"
    }
  ],
  "RelatedItem@odata.count": 1,
  "Status": {
    "Health": "OK",
    "HealthRollup": "OK",
    "State": "Enabled"
  },
  "Updateable": true,
  "Version": "null"
}

> curl -k -H "X-Auth-Token: $token" -H "Content-Type:multipart/form-data" -X POST -F UpdateParameters="{\"Targets\":[\"/redfish/v1/UpdateService/FirmwareInventory/bios_active\"],\"@Redfish.OperationApplyTime\":\"OnReset\"};type=appli
cation/json" -F "UpdateFile=@bios_image.tar;type=application/octet-stream" https://${bmc}/redfish/v1/UpdateService/update
{
  "@odata.id": "/redfish/v1/TaskService/Tasks/0",
  "@odata.type": "#Task.v1_4_3.Task",
  "Id": "0",
  "TaskState": "Running",
  "TaskStatus": "OK"
}

> curl -k -H "X-Auth-Token: $token" -X GET https://${bmc}/redfish/v1/UpdateService/FirmwareInventory/bios_active
{
  "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/bios_active",
  "@odata.type": "#SoftwareInventory.v1_1_0.SoftwareInventory",
  "Description": "Host image",
  "Id": "bios_active",
  "Name": "Software Inventory",
  "RelatedItem": [
    {
      "@odata.id": "/redfish/v1/Systems/system/Bios"
    }
  ],
  "RelatedItem@odata.count": 1,
  "Status": {
    "Health": "OK",
    "HealthRollup": "OK",
    "State": "Enabled"
  },
  "Updateable": true,
  "Version": "2.17.0-dev-703-g61fd99b720-TestBios"
}
```

Change-Id: I213e28d7d1a00aa15f695ab855a96961113548ae
Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>
3 files changed
tree: cda9685b9393709bbeace21d474f7bc4dac088f8
  1. mmc/
  2. side-switch/
  3. static/
  4. subprojects/
  5. test/
  6. ubi/
  7. usb/
  8. .clang-format
  9. .clang-tidy
  10. .gitignore
  11. .shellcheck
  12. activation.cpp
  13. activation.hpp
  14. detect-slot-aspeed
  15. download_manager.cpp
  16. download_manager.hpp
  17. download_manager_main.cpp
  18. flash.hpp
  19. force-reboot.service.in
  20. gen-bios-tar
  21. image_manager.cpp
  22. image_manager.hpp
  23. image_manager_main.cpp
  24. image_verify.cpp
  25. image_verify.hpp
  26. images.cpp
  27. images.hpp
  28. item_updater.cpp
  29. item_updater.hpp
  30. item_updater_helper.hpp
  31. item_updater_main.cpp
  32. LICENSE
  33. meson.build
  34. meson.options
  35. msl_verify.cpp
  36. msl_verify.hpp
  37. obmc-flash-bmc
  38. obmc-flash-bmc-setenv@.service.in
  39. obmc-flash-host-bios@.service.in
  40. openssl_alloc.cpp
  41. openssl_alloc.hpp
  42. OWNERS
  43. README.md
  44. reboot-guard-disable.service.in
  45. reboot-guard-enable.service.in
  46. reset-cs0-aspeed
  47. serialize.cpp
  48. serialize.hpp
  49. software.conf
  50. software_manager.cpp
  51. software_utils.cpp
  52. software_utils.hpp
  53. sync-once.sh
  54. sync_manager.cpp
  55. sync_manager.hpp
  56. sync_manager_main.cpp
  57. sync_watch.cpp
  58. sync_watch.hpp
  59. synclist
  60. update_manager.cpp
  61. update_manager.hpp
  62. usr-local.mount.in
  63. utils.cpp
  64. utils.hpp
  65. version.cpp
  66. version.hpp
  67. watch.cpp
  68. watch.hpp
  69. xyz.openbmc_project.Software.BMC.Updater.service.in
  70. xyz.openbmc_project.Software.Download.service.in
  71. xyz.openbmc_project.Software.Manager.service.in
  72. xyz.openbmc_project.Software.Sync.service.in
  73. xyz.openbmc_project.Software.Version.service.in
README.md

phosphor-bmc-code-mgmt

Phosphor BMC Code Management provides a set of system software management applications. More information can be found at Software Architecture

To Build

To build this package, do the following steps:

  1. meson build
  2. ninja -C build

To clean the repository run rm -r build.