)]}'
{
  "commit": "7af0e79b44bdc86497a992a90855f284e74d73f1",
  "tree": "df4c2b5d2776597d14b459f9c5e8430a55c7c075",
  "parents": [
    "3a9939b952e614cd8e9e0530c22453f8f91c4e3a"
  ],
  "author": {
    "name": "Nico Huber",
    "email": "nico.huber@secunet.com",
    "time": "Fri Apr 29 16:40:15 2016 +0200"
  },
  "committer": {
    "name": "David Hendricks",
    "email": "david.hendricks@gmail.com",
    "time": "Sat Jun 03 20:07:39 2017 +0200"
  },
  "message": "Add functions to read/erase/write/verify by layout\n\nInspired by Lynxis\u0027 related work, this implements a foundation for\nlayout based flash access.\n\nAll operations iterate over the given layout regions. Erase and write\nthen walk, per region, over all erase blocks in an inner loop (which\nmight not be what we want, see note on optimization below). Special care\nhas been taken that flash content is merged properly, in case an erase\nblock is only partially covered by a layout region or even affects mul-\ntiple regions.\n\nA note on performance: In the case an erase block affects multiple\nregions, it will probably be read, erased and written for each region.\nAnother approach would be to walk all erase blocks once and check for\neach erase block which regions it touches (i.e. for each erase block,\nmerge data pontentially from the flash and all layout regions, then\nflash the combined data). That might result in cleaner code. I haven\u0027t\ntried it yet, though.\n\nChange-Id: Ic6194cea4c4c430e0cf9d586052508a865b09c86\nSigned-off-by: Nico Huber \u003cnico.huber@secunet.com\u003e\nReviewed-on: https://review.coreboot.org/17945\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: David Hendricks \u003cdavid.hendricks@gmail.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bf381cf78a3f7b9996c6c9e7d489a9f0d19f4088",
      "old_mode": 33188,
      "old_path": "flash.h",
      "new_id": "b383edaf3986dea1fb8c90c1ed28cfacedabe85d",
      "new_mode": 33188,
      "new_path": "flash.h"
    },
    {
      "type": "modify",
      "old_id": "25e53f20c0591596bb0152ebe26f7e1fcad94962",
      "old_mode": 33188,
      "old_path": "flashrom.c",
      "new_id": "273eb9971bb559f37e9730eec4dd4e01cc1d7d21",
      "new_mode": 33188,
      "new_path": "flashrom.c"
    }
  ]
}
