)]}'
{
  "commit": "ba8296810c6c0f411f158955574c8ae8ffe283f0",
  "tree": "83643ac6c0ea66a4bff3488c6073d047ebf811cc",
  "parents": [
    "02c88f25f3626aa85545d73b8183e9e39e089ced"
  ],
  "author": {
    "name": "Liqi Qi",
    "email": "liqiqi@microsoft.com",
    "time": "Mon Dec 08 15:30:00 2025 -0800"
  },
  "committer": {
    "name": "mergify[bot]",
    "email": "37929162+mergify[bot]@users.noreply.github.com",
    "time": "Thu Dec 11 02:29:14 2025 +0000"
  },
  "message": "SecurityPkg: Fix Tcg2SubmitCommand in TPM field upgrade scenario\n\nThere\u0027s a bug that after the device was forced shut down during the tpm\nfirmware update process, then the TPM will stay in field upgrade mode and\nrefuse to work properly. This will block TPM startup and cause the device\nto bootloop.\n\nNow in the TCG_DXE_DATA struct we don’t have a flag to indicate the\ncurrent TPM mode, and we will simply treat the upper Scenario with this\nDEVICE_ERROR and set the TPMPresentFlag to FALSE.\n\nLater in Tcg2SubmitCommand we will just return DEVICE_ERROR and skip the\nactual TPM recovery.\n\nWe should have an extra flag that check for the TPM response code and if\nit\u0027s TPM_RC_UPGRADE, we knew the device is in field upgrade mode and should\ncontinue the workflow.\n\nWe should only return EFI_DEVICE_ERROR when both TPMPresentFlag and\nTpmUpdateFlag are false.\n\nThe field upgrade is part of TCG spec, and the capsule update/recovery\nis part of UEFI spec.\nMake this PR to bring in the fix for this corner case.\n\nSigned-off-by: Liqi Qi \u003cliqiqi@microsoft.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "85a852842d5011957bf7b5319abf55a67954ac04",
      "old_mode": 33188,
      "old_path": "SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c",
      "new_id": "6975da95273759f63981309aaaac9d9cb8d3e383",
      "new_mode": 33188,
      "new_path": "SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c"
    }
  ]
}
