By default, a replacement system board is shipped with the TPM policy set to undefined. You must modify this setting to match the setting that was in place for the system board that is being replaced.
From Lenovo XClarity Provisioning Manager
Start the server and press F1 to display the Lenovo XClarity Provisioning Manager interface.
If the power-on Administrator password is required, enter the password.
From the System Summary page, click Update VPD.
NationZ TPM 2.0 enabled - China only. Customers in the Chinese Mainland should choose this setting if a NationZ TPM 2.0 adapter is installed.
TPM enabled - ROW. Customers outside of the Chinese Mainland should choose this setting.
Permanently disabled. Customers in the Chinese Mainland should use this setting if no TPM adapter is installed.
Although the setting undefined is available as a policy setting, it should not be used.
From Lenovo XClarity Essentials OneCLI
OneCli.exe config show imm.TpmTcmPolicyLock --override --imm <userid>:<password>@<ip_address>
The imm.TpmTcmPolicyLock value must be 'Disabled', which means TPM_TCM_POLICY is NOT locked and changes to the TPM_TCM_POLICY are permitted. If the return code is ‘Enabled’ then no changes to the policy are permitted. The planar may still be used if the desired setting is correct for the system being replaced.
Configure the TPM_TCM_POLICY into XCC:
For customers in Chinese Mainland with no TPM, or customers that require to disable TPM:
OneCli.exe config set imm.TpmTcmPolicy "NeitherTpmNorTcm" --override --imm <userid>:<password>@<ip_address>
For customers in Chinese Mainland that require to enable TPM:
OneCli.exe config set imm.TpmTcmPolicy "NationZTPM20Only" --override --imm <userid>:<password>@<ip_address>
For customers outside Chinese Mainland that require to enable TPM:
OneCli.exe config set imm.TpmTcmPolicy "TpmOnly" --override --imm <userid>:<password>@<ip_address>
Issue reset command to reset system:
OneCli.exe misc ospower reboot --imm <userid>:<password>@<ip_address>
Read back the value to check whether the change has been accepted:
OneCli.exe config show imm.TpmTcmPolicy --override --imm <userid>:<password>@<ip_address>
If the read back value is matched it means the TPM_TCM_POLICY has been set correctly.
Value 0 use string “Undefined” , which means UNDEFINED policy.
Value 1 use string “NeitherTpmNorTcm”, which means TPM_PERM_DISABLED.
Value 2 use string “TpmOnly”, which means TPM_ALLOWED.
Value 4 use string “NationZTPM20Only”, which means NationZ_TPM20_ALLOWED.
Below 4 steps must also be used to ‘lock’ the TPM_TCM_POLICY when using OneCli/ASU commands:
Read TpmTcmPolicyLock to check whether the TPM_TCM_POLICY has been locked , command as below:
OneCli.exe config show imm.TpmTcmPolicyLock --override --imm <userid>:<password>@<ip_address>
The value must be 'Disabled', it means TPM_TCM_POLICY is NOT locked and must be set.
Lock the TPM_TCM_POLICY:
OneCli.exe config set imm.TpmTcmPolicyLock "Enabled"--override --imm <userid>:<password>@<ip_address>
Issue reset command to reset system, command as below:
OneCli.exe misc ospower reboot --imm <userid>:<password>@<ip_address>
The valid values for imm.TpmTcmPolicy include 'NeitherTpmNorTcm', 'TpmOnly', and 'NationZTPM20Only'.
If the imm.TpmTcmPolicy is set as 'Enabled' but imm.TpmTcmPolicy value is invalid, UEFI will reject the 'lock' request and change imm.TpmTcmPolicy back to 'Disabled'.
Read back the value to check whether the ‘Lock’ is accepted or rejected. command as below:
OneCli.exe config show imm.TpmTcmPolicy --override --imm <userid>:<password>@<ip_address>
imm.TpmTcmPolicyLock is defined as below:
Value 1 uses string “Enabled" , which means lock the policy. Other values are not accepted.