TPM code updater
This commit introduces a TPM code updater that currently supports
reading the firmware version for both Infineon and Nuvoton TPM 2.0.
Support for firmware updates will be introduced in a future patch.
The updater's configuration are managed by the EM [1].
[1] https://gerrit.openbmc.org/c/openbmc/entity-manager/+/82416
Tested on Yosemite5 with the following steps:
1. Display the fw inventory:
```
curl --silent $creds https://$bmc/redfish/v1/UpdateService/FirmwareInventory
{
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory",
"@odata.type": "#SoftwareInventoryCollection.SoftwareInventoryCollection",
"Members": [
{...},
{
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Yosemite5_TPM_4945"
},
{...}
],
"Members@odata.count": 4,
"Name": "Software Inventory Collection"
}
```
2. Query TPM version:
```
curl --silent $creds https://$bmc/redfish/v1/UpdateService/FirmwareInventory/Yosemite5_TPM_4945
{
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Yosemite5_TPM_4945",
"@odata.type": "#SoftwareInventory.v1_1_0.SoftwareInventory",
"Description": "Unknown image",
"Id": "Yosemite5_TPM_4945",
"Name": "Software Inventory",
"Status": {
"Health": "Warning",
"HealthRollup": "OK",
"State": "Disabled"
},
"Updateable": false,
"Version": "15.23"
}
```
Change-Id: I42568242356d55fe005ba1f41ddf8aaf9f682fc8
Signed-off-by: Kevin Tung <kevin.tung.openbmc@gmail.com>
diff --git a/tpm/meson.build b/tpm/meson.build
new file mode 100644
index 0000000..04ab0f4
--- /dev/null
+++ b/tpm/meson.build
@@ -0,0 +1,18 @@
+tpm_device_include = include_directories('.')
+
+executable(
+ 'phosphor-tpm-software-update',
+ 'tpm_software_manager.cpp',
+ 'tpm_device.cpp',
+ 'tpm2/tpm2.cpp',
+ include_directories: [common_include, tpm_device_include],
+ dependencies: [libpldm_dep, phosphor_logging_dep, sdbusplus_dep],
+ link_with: [software_common_lib, libpldmutil],
+ install: true,
+ install_dir: get_option('libexecdir') / 'phosphor-code-mgmt',
+)
+
+install_data(
+ 'xyz.openbmc_project.Software.TPM.service',
+ install_dir: systemd_system_unit_dir,
+)