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