)]}'
{
  "commit": "a948fc3bbd801e8dcc493ce7bf73f0eead0fdeb7",
  "tree": "238609037632c6656d1232d9b12d266da153f46f",
  "parents": [
    "c18d780e3eb76dfccf48d57bbd834c5afb0ebb7b"
  ],
  "author": {
    "name": "Jes B. Klinke",
    "email": "jbk@chromium.org",
    "time": "Tue Jan 25 15:44:27 2022 -0800"
  },
  "committer": {
    "name": "Timothy Trippel",
    "email": "5633066+timothytrippel@users.noreply.github.com",
    "time": "Tue Feb 08 15:25:33 2022 -0800"
  },
  "message": "[opentitantool] Add non-SPI rescue protocol for bootstrapping\n\nTi50 firmware supports a serial protocol for flashing a replacement\nimage, which we would like opentitantool to be able to use.  In order\nto add this protocol a few changes to generic code has been made:\n\n1. Refactoring of bootstrap/mod.rs to remove assumption of SPI and\nbootstrap pin being used for all protocols.\n\n2. Minor modifications to io/uart.rs trait and implementations, to\nensure uniform behavior of read_timeout(), and to simplify callers use\nof write().\n\nSigned-off-by: Jes B. Klinke \u003cjbk@chromium.org\u003e\nChange-Id: I2a612abb2f2de0b2f1f72cdc7bf94c0a51ec99de\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bb1e86ac3121d1f572f1abb849343b8b9c856b3d",
      "old_mode": 33188,
      "old_path": "sw/host/opentitanlib/BUILD",
      "new_id": "907799e0ff6e7a86e3f19b41d971b49722f24530",
      "new_mode": 33188,
      "new_path": "sw/host/opentitanlib/BUILD"
    },
    {
      "type": "modify",
      "old_id": "c975a6912d1cb34e6c8a40cb5345971c7d09f0e9",
      "old_mode": 33188,
      "old_path": "sw/host/opentitanlib/Cargo.toml",
      "new_id": "71dd93756489a950cc9998d87e50ffb4bc816534",
      "new_mode": 33188,
      "new_path": "sw/host/opentitanlib/Cargo.toml"
    },
    {
      "type": "modify",
      "old_id": "1d9d5ff0e8f62d030252044a3f46f04f530bc4ca",
      "old_mode": 33188,
      "old_path": "sw/host/opentitanlib/src/bootstrap/legacy.rs",
      "new_id": "d857bd9f907cf05a0913a19843e0e6dda043b3b0",
      "new_mode": 33188,
      "new_path": "sw/host/opentitanlib/src/bootstrap/legacy.rs"
    },
    {
      "type": "modify",
      "old_id": "beb68836cd58e70118821b79b5636290fd48d1d4",
      "old_mode": 33188,
      "old_path": "sw/host/opentitanlib/src/bootstrap/mod.rs",
      "new_id": "b29ba991d9d1d9e6c1bf778d7179e201c0457629",
      "new_mode": 33188,
      "new_path": "sw/host/opentitanlib/src/bootstrap/mod.rs"
    },
    {
      "type": "modify",
      "old_id": "4c7d4e250cfb2c96963eea765476ef3b797dc37e",
      "old_mode": 33188,
      "old_path": "sw/host/opentitanlib/src/bootstrap/primitive.rs",
      "new_id": "37ed60e6fea27a58fab80dcd3b342632e4d4dea4",
      "new_mode": 33188,
      "new_path": "sw/host/opentitanlib/src/bootstrap/primitive.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d6585c21b7830860cc9cd7e3546c8fef1bcd2c0e",
      "new_mode": 33188,
      "new_path": "sw/host/opentitanlib/src/bootstrap/rescue.rs"
    },
    {
      "type": "modify",
      "old_id": "0eea67019dc92c2ff63595b3263b8a1707bfc849",
      "old_mode": 33188,
      "old_path": "sw/host/opentitanlib/src/io/uart.rs",
      "new_id": "7728be087e06cd5f5d79f3279c61da8999007712",
      "new_mode": 33188,
      "new_path": "sw/host/opentitanlib/src/io/uart.rs"
    },
    {
      "type": "modify",
      "old_id": "7f336809c36d04f6b47ac53425550d7960fdc25e",
      "old_mode": 33188,
      "old_path": "sw/host/opentitanlib/src/transport/cw310/uart.rs",
      "new_id": "1038e4ecffa298e06c1ead368c8a90833743c15a",
      "new_mode": 33188,
      "new_path": "sw/host/opentitanlib/src/transport/cw310/uart.rs"
    },
    {
      "type": "modify",
      "old_id": "1157e573304edce0a31517dfc311e6a9e2beb8f2",
      "old_mode": 33188,
      "old_path": "sw/host/opentitanlib/src/transport/hyperdebug/uart.rs",
      "new_id": "2e13d825fcf8d3daf0086f083be664fc4b4105ad",
      "new_mode": 33188,
      "new_path": "sw/host/opentitanlib/src/transport/hyperdebug/uart.rs"
    },
    {
      "type": "modify",
      "old_id": "c6475c413da4ba2603f246bf4c42d0870d431bde",
      "old_mode": 33188,
      "old_path": "sw/host/opentitanlib/src/transport/ultradebug/uart.rs",
      "new_id": "7af655b2c438d10f4b02bb62ca1f5aa3b4df2ef3",
      "new_mode": 33188,
      "new_path": "sw/host/opentitanlib/src/transport/ultradebug/uart.rs"
    },
    {
      "type": "modify",
      "old_id": "f74cc286409f684d784bf022df65e93c0ddc9ac8",
      "old_mode": 33188,
      "old_path": "sw/host/opentitanlib/src/transport/verilator/uart.rs",
      "new_id": "3759ca7bbd776f3886b4c5dcc95172e5beecf89c",
      "new_mode": 33188,
      "new_path": "sw/host/opentitanlib/src/transport/verilator/uart.rs"
    },
    {
      "type": "modify",
      "old_id": "aa6ea01650b2f0db8c05ceca5eda3056a7b06372",
      "old_mode": 33188,
      "old_path": "sw/host/opentitantool/Cargo.toml",
      "new_id": "44f0b80462f679e051164f6b944900410b71a82e",
      "new_mode": 33188,
      "new_path": "sw/host/opentitantool/Cargo.toml"
    },
    {
      "type": "modify",
      "old_id": "2b0874c990fe86f622b10ebe5e02cfcfe75a5746",
      "old_mode": 33188,
      "old_path": "sw/host/opentitantool/src/command/bootstrap.rs",
      "new_id": "aa552d5b2d0bb371dba2d7d495f8fe3f08c535b5",
      "new_mode": 33188,
      "new_path": "sw/host/opentitantool/src/command/bootstrap.rs"
    },
    {
      "type": "modify",
      "old_id": "bf6dd5f52ab9262789c1898a7e5cde3009e6550a",
      "old_mode": 33188,
      "old_path": "third_party/cargo/crates.bzl",
      "new_id": "95a633a3c1bf8a5dc63cfc3dc0043ce2cfcecd3c",
      "new_mode": 33188,
      "new_path": "third_party/cargo/crates.bzl"
    }
  ]
}
