)]}'
{
  "commit": "72043688a9842a31a92e4829fe71ee94c4939fc8",
  "tree": "46274e6b51895659f929456b3f26574c5b5ee4ff",
  "parents": [
    "fae71df53733f6e899986d88ea77be1e5305e2f2"
  ],
  "author": {
    "name": "Jon Murphy",
    "email": "jpmurphy@google.com",
    "time": "Mon Oct 19 11:59:47 2026 -0600"
  },
  "committer": {
    "name": "CrOS LUCI",
    "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Oct 20 10:07:47 2026 -0700"
  },
  "message": "futility: updater: Enable ec_partial_recovery quirk by default\n\nEnable QUIRK_EC_PARTIAL_RECOVERY (ec_partial_recovery\u003d1) by default so\nfull/recovery EC firmware updates only flash WP_RO when the EC is active\nin RW with EC software sync enabled, leaving EC_RW to be updated by EC\nsoftware sync on the next reboot.\n\nDuring a full EC update (EC_RECOVERY_FULL, RO+RW), flashrom\u0027s\ncros_ec_prepare() sees EC_IMAGE_RO | EC_IMAGE_RW and forces an\nunconditional sysjump from RW to RO when EXEC_IN_RAM is unsupported (such\nas on ITE IT8xxx2 ECs), resetting the EC/TCPC or dropping host\ncommunication while the AP is in S0 (b/574563907). Flashrom commit\naf7ed034 (b/278652302) added support for RO-only updates (-i WP_RO,\nEC_RECOVERY_RO) to skip the sysjump when the EC is already running in RW,\nallowing WP_RO to be updated in place while EC software sync updates\nEC_RW on reboot.\n\nCallers or board CBFS configs that require an immediate full RO+RW write\ncan still opt out via --quirks\u003dec_partial_recovery\u003d0.\n\nBRANCH\u003dnone\nBUG\u003db:574563907\nTEST\u003dmake runfutiltests\nTEST\u003dfutility update -a /usr/sbin/chromeos-firmwareupdate --mode\u003drecovery\n     --force on dirks (IT81302) updates WP_RO without crashing EC in RW\n\nChange-Id: Iadcb674d804e3397075fe93462199424ffa1a564\nSigned-off-by: Jon Murphy \u003cjpmurphy@google.com\u003e\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/8609747\nReviewed-by: Grzegorz Bernacki \u003cbernacki@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "494620112e8521dcc912f0cf59cbc9847c38100b",
      "old_mode": 33188,
      "old_path": "futility/updater_dut.c",
      "new_id": "f1e950f6e3af73c47943741f1499cf1634dcebd0",
      "new_mode": 33188,
      "new_path": "futility/updater_dut.c"
    },
    {
      "type": "modify",
      "old_id": "ed9910422f961e83788cd8a15e50d9527d30484f",
      "old_mode": 33188,
      "old_path": "futility/updater_quirks.c",
      "new_id": "36db0846db8149b432453ea1ea7de8b69724f5ac",
      "new_mode": 33188,
      "new_path": "futility/updater_quirks.c"
    },
    {
      "type": "modify",
      "old_id": "2eec2df68a165658d9182b72e0e8579c038ff155",
      "old_mode": 33188,
      "old_path": "tests/futility/test_updater_utils.c",
      "new_id": "58a095eb7dd557c10aea60cf8592bdcd76af5c8e",
      "new_mode": 33188,
      "new_path": "tests/futility/test_updater_utils.c"
    }
  ]
}
