xref: /openbmc/phosphor-bmc-code-mgmt/tpm/tpm2/tpm2.hpp (revision c538727d70f3673771f18e559d7ecab203abf6d3)
1*c538727dSKevin Tung #pragma once
2*c538727dSKevin Tung 
3*c538727dSKevin Tung #include "tpm/tpm_device.hpp"
4*c538727dSKevin Tung 
5*c538727dSKevin Tung #include <string_view>
6*c538727dSKevin Tung 
7*c538727dSKevin Tung class TPM2Interface : public TPMInterface
8*c538727dSKevin Tung {
9*c538727dSKevin Tung   public:
TPM2Interface(sdbusplus::async::context & ctx,uint8_t tpmIndex)10*c538727dSKevin Tung     TPM2Interface(sdbusplus::async::context& ctx, uint8_t tpmIndex) :
11*c538727dSKevin Tung         TPMInterface(ctx, tpmIndex)
12*c538727dSKevin Tung     {}
13*c538727dSKevin Tung 
isUpdateSupported() const14*c538727dSKevin Tung     bool isUpdateSupported() const final
15*c538727dSKevin Tung     {
16*c538727dSKevin Tung         // Currently, we do not support TPM2 firmware updates
17*c538727dSKevin Tung         return false;
18*c538727dSKevin Tung     }
19*c538727dSKevin Tung 
20*c538727dSKevin Tung     sdbusplus::async::task<bool> updateFirmware(const uint8_t* image,
21*c538727dSKevin Tung                                                 size_t image_size) final;
22*c538727dSKevin Tung 
23*c538727dSKevin Tung     sdbusplus::async::task<bool> getVersion(std::string& version) final;
24*c538727dSKevin Tung 
25*c538727dSKevin Tung   private:
26*c538727dSKevin Tung     sdbusplus::async::task<bool> getProperty(std::string_view property,
27*c538727dSKevin Tung                                              uint32_t& value);
28*c538727dSKevin Tung };
29