)]}'
{
  "log": [
    {
      "commit": "10337f785ebd621b544d7f5929bb1050eb975431",
      "tree": "2efbd04d3f00fa7a71a46cd68e61ee5a142a4d1c",
      "parents": [
        "dd6e07ab3ab12346ab68f9e93f725d651a90964d"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Mar 04 19:57:27 2026 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jun 28 09:29:37 2026 +0000"
      },
      "message": "memory_bus: Move related declarations into new `chipdrivers/memory_bus.h`\n\nChange-Id: I2bef65de77860d049ec3d9938ae777c5f929c258\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/438\n"
    },
    {
      "commit": "842d678f07439e133e69fc775a848dcd66369446",
      "tree": "c01716fbc4220c1211749772d6a566e6d70701d7",
      "parents": [
        "aa714dd3dd7090e1fa7175f3a32a252b04817261"
      ],
      "author": {
        "name": "Richard Hughes",
        "email": "richard@hughsie.com",
        "time": "Fri Jan 15 09:48:12 2021 +0000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Mar 27 08:32:15 2024 +0000"
      },
      "message": "libflashrom: Return progress state to the library user\n\nProjects using libflashrom like fwupd expect the user to wait for the\noperation to complete. To avoid the user thinking the process has\n\"hung\" or \"got stuck\" report back the progress complete of the erase,\nwrite and read operations.\n\nAdd a new --progress flag to the CLI to report progress of operations.\n\nInclude a test for the dummy spi25 device.\n\nTested: ./test_build.sh; ./flashrom -p lspcon_i2c_spi:bus\u003d7 -r /dev/null --progress\n\nflashrom-stable:\n* Closer to original libflashrom API.\n* Split update_progress() into progress_start/_set/_add/_finish:\n  Simplifies progress calls scattered through the code base. We let\n  the core code in `flashprog.c` handle the total progress. Only API\n  is flashprog_progress_add().  Erase progress is completely handled\n  in `flashprog.c`. Fine grained read/write progress can be reported\n  at the chip/programmer level.\n* Add calls to all chip read/write paths and opaque programmers\n  except for read_memmapped() (which is handled in follow ups).\n* At least one wrinkle left: Erasing unaligned regions will slightly\n  overshoot total progress.\n\nChange-Id: I7197572bb7f19e3bdb2bde855d70a0f50fd3854c\nSigned-off-by: Richard Hughes \u003crichard@hughsie.com\u003e\nSigned-off-by: Daniel Campello \u003ccampello@chromium.org\u003e\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/49643\nOriginal-Reviewed-by: Edward O\u0027Callaghan \u003cquasisec@chromium.org\u003e\nOriginal-Reviewed-by: Anastasia Klimchuk \u003caklm@chromium.org\u003e\nOriginal-Reviewed-by: Thomas Heijligen \u003csrc@posteo.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/74731\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "519be66fc59558971dd653afe69ccaf1a633b492",
      "tree": "74f0912de156a86d56111f377db080246e5205e9",
      "parents": [
        "ef78de4a21323b8c459337356289218211f2c5ce"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Dec 23 20:03:35 2018 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Jul 31 08:26:59 2019 +0000"
      },
      "message": "Fix -Wsign-compare trouble\n\nMostly by changing to `unsigned` types where applicable, sometimes\n`signed` types, and casting as a last resort.\n\nChange-Id: I08895543ffb7a48058bcf91ef6500ca113f2d305\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom/+/30409\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Jacob Garber \u003cjgarber1@ualberta.ca\u003e\n"
    },
    {
      "commit": "e083880279119677e443fc16b4694f8c81bf2c40",
      "tree": "03413b996779bc4c86ec41590f3e7bcdd97d0ef5",
      "parents": [
        "124ef38f7afc61ad7c713c22aad7c5c7f79bdb9b"
      ],
      "author": {
        "name": "Elyes HAOUAS",
        "email": "ehaouas@noos.fr",
        "time": "Mon Apr 02 11:14:02 2018 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Apr 24 20:21:41 2018 +0000"
      },
      "message": "Remove address from GPLv2 headers\n\nChange-Id: I7bfc339673cbf5ee2d2ff7564c4db04ca088d0a4\nSigned-off-by: Elyes HAOUAS \u003cehaouas@noos.fr\u003e\nReviewed-on: https://review.coreboot.org/25381\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "f20b7beff054eb316088d590094d9efbc68dbee1",
      "tree": "6324be451385c9f9cea27381f35f300fbaa7f454",
      "parents": [
        "20da4aa82cc11f25a6a4a52fd2bed219e6e1d829"
      ],
      "author": {
        "name": "Mark Marshall",
        "email": "mark.marshall@omicron.at",
        "time": "Fri May 09 21:16:21 2014 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Fri May 09 21:16:21 2014 +0000"
      },
      "message": "Add \u0027const\u0027 keyword to chip write and other function prototypes\n\nCorresponding to flashrom svn r1789.\n\nInspired by and mostly based on a patch\nSigned-off-by: Mark Marshall \u003cmark.marshall@omicron.at\u003e\n\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\n"
    },
    {
      "commit": "5a7cb847f096dacb0bf96b3aa909f79d76ae8204",
      "tree": "da511e990c1fdded61ee5dcefae38314c3a5a6cc",
      "parents": [
        "dd73d830f7370b5f0bbdaa0780b0ff8d6ff1776a"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sat Aug 25 01:17:58 2012 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sat Aug 25 01:17:58 2012 +0000"
      },
      "message": "Make struct flashchip a field in struct flashctx instead of a complete copy\n\nAll the driver conversion work and cleanup has been done by Stefan.\nflashrom.c and cli_classic.c are a joint work of Stefan and Carl-Daniel.\n\nCorresponding to flashrom svn r1579.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "8a3c60cdd0e5632173567923ae1927763e31e857",
      "tree": "3a5514d022392cf4d8fa368f9f02653da21a93ca",
      "parents": [
        "63fd9026f1e82b67a65072fda862ba7af35839e1"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sun Dec 18 15:01:24 2011 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sun Dec 18 15:01:24 2011 +0000"
      },
      "message": "Add struct flashctx * parameter to all functions accessing flash chips\n\nAll programmer access function prototypes except init have been made\nstatic and moved to the respective file.\n\nA few internal functions in flash chip drivers had chipaddr parameters\nwhich are no longer needed.\n\nThe lines touched by flashctx changes have been adjusted to 80 columns\nexcept in header files.\n\nCorresponding to flashrom svn r1474.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Michael Karcher \u003cflashrom@mkarcher.dialup.fu-berlin.de\u003e\n"
    },
    {
      "commit": "63fd9026f1e82b67a65072fda862ba7af35839e1",
      "tree": "7d9ffba077715cf9e75c9f4a36d0d7f11a3181f6",
      "parents": [
        "83c92e983aaf11fb6f5bafb6744275c50add193c"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed Dec 14 22:25:15 2011 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed Dec 14 22:25:15 2011 +0000"
      },
      "message": "Use struct flashctx instead of struct flashchip for flash chip access\n\nStruct flashchip is used only for the flashchips array and for\noperations which do not access hardware, e.g. printing a list of\nsupported flash chips.\n\nstruct flashctx (flash context) contains all data available in\nstruct flashchip, but it also contains runtime information like\nmapping addresses. struct flashctx is expected to grow additional\nmembers over time, a prime candidate being programmer info.\nstruct flashctx contains all of struct flashchip with identical\nmember layout, but struct flashctx has additional members at the end.\n\nThe separation between struct flashchip/flashctx shrinks the memory\nrequirement of the big flashchips array and allows future extension\nof flashctx without having to worry about bloat.\n\nCorresponding to flashrom svn r1473.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Michael Karcher \u003cflashrom@mkarcher.dialup.fu-berlin.de\u003e\n"
    },
    {
      "commit": "c69c9c84e0341b701d9966fea8ce54d4e017bbb7",
      "tree": "2ea0b12abf9dd3483246423752239b88c6d7942e",
      "parents": [
        "8ca4255d7968dbf6301367074cc7267d22a25658"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Wed Nov 23 09:13:48 2011 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Wed Nov 23 09:13:48 2011 +0000"
      },
      "message": "Unsignify lengths and addresses in chip functions and structs\n\nPush those changes forward where needed to prevent new sign\nconversion warnings where possible.\n\nCorresponding to flashrom svn r1470.\n\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "8c35745fcf3ed6eb2769beda0c8b941df07f6175",
      "tree": "2f3c43a3589edc55e7143b39d40df4a0cd039183",
      "parents": [
        "e3185c0599d77c06b9665c9721649b96108c894f"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sun Sep 18 22:42:18 2011 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sun Sep 18 22:42:18 2011 +0000"
      },
      "message": "Revert \"Unsignify lengths and addresses in chip functions and structs\"\n\n- probe_timing was changed to unsigned although we use negative values\n  for special cases\n- some code was not changed along hence did no longer compile:\n  * dediprog\u0027s read and write functions\n  * linux_spi\u0027s read and write functions\n- it introduced a number of new sign conversion warnings\n  (http://paste.flashrom.org/view.php?id\u003d832)\n\nTo be safe this patch reverts all changes made in r1448, a corrected\npatch will follow later.\n\nThanks to idwer for pointing out the problem first!\n\nCorresponding to flashrom svn r1450.\n\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\n"
    },
    {
      "commit": "d196e7c1387b30ac35e7b0f605c79823ac9b5ec9",
      "tree": "e0f40df44cb94c62f150a84080bf7171f8623aa8",
      "parents": [
        "75da80c17bbb992ce2b60ae15ef2fba7d23bfd8e"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sun Sep 18 00:41:33 2011 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sun Sep 18 00:41:33 2011 +0000"
      },
      "message": "Unsignify lengths and addresses in chip functions and structs\n\nCorresponding to flashrom svn r1448.\n\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "b4061f61cdf951760020c6d4789023d4001b9782",
      "tree": "99b4aec1edbe35372a0fe653b5448f52c0fe98c8",
      "parents": [
        "bfa021dd80594e51fa25feee56457d545849e312"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sun Jun 26 17:04:16 2011 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sun Jun 26 17:04:16 2011 +0000"
      },
      "message": "Move erase verification to generic code\n\nErase functions are no longer called from chip drivers and thus their\ninternal erase verification can be moved to generic code. This also\nmakes it easier to skip the verify step if desired and to differentiate\nbetween failed command submission and failed erase verification.\n\nCorresponding to flashrom svn r1353.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\n"
    },
    {
      "commit": "75a58f94cc641e8051169ec6bb9894a390a8e2bf",
      "tree": "eb3c0573cecfe70ded0b96003dc6f4d5e55975d4",
      "parents": [
        "79e6757d269b91ee759bd569df7093225f4f3715"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed Oct 13 22:26:56 2010 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed Oct 13 22:26:56 2010 +0000"
      },
      "message": "Switch all flash chips to partial write\n\nThe inner write functions which handle partial write are renamed to the\noriginal name of their wrappers. The write wrappers are removed.\n\nCorresponding to flashrom svn r1211.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nTested-by: Maciej Pijanka \u003cmaciej.pijanka@gmail.com\u003e\nTested-by: Andrew Morgan \u003cziltro@ziltro.com\u003e\nTested-by: Idwer Vollering \u003cvidwer@gmail.com\u003e\nAcked-by: Idwer Vollering \u003cvidwer@gmail.com\u003e\nTested-by: Sean Nelson \u003caudiohacked@gmail.com\u003e \nAcked-by: Sean Nelson \u003caudiohacked@gmail.com\u003e \n"
    },
    {
      "commit": "79e6757d269b91ee759bd569df7093225f4f3715",
      "tree": "d77c280e33ab45e549d2b7493eab7bf50da57d53",
      "parents": [
        "184b95f449e4c314964b63c3170da216267d3b5e"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed Oct 13 21:49:30 2010 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed Oct 13 21:49:30 2010 +0000"
      },
      "message": "Refactor remaining write wrappers\n\nKill duplicated code.\n\nAnnotate write functions with their chunk size.\n\nMark Fujitsu MBM29F400BC and ST M29F400BB as untested because their\nwrite code no longer uses a broken layout.\n\nCorresponding to flashrom svn r1210.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\nTested-by: Maciej Pijanka \u003cmaciej.pijanka@gmail.com\u003e\nTested-by: Idwer Vollering \u003cvidwer@gmail.com\u003e\nAcked-by: Idwer Vollering \u003cvidwer@gmail.com\u003e\nTested-by: Sean Nelson \u003caudiohacked@gmail.com\u003e \nAcked-by: Sean Nelson \u003caudiohacked@gmail.com\u003e \n"
    },
    {
      "commit": "184b95f449e4c314964b63c3170da216267d3b5e",
      "tree": "f5df1cca0b51c3227a47aa5968c816abcba49682",
      "parents": [
        "b30a5ed4afead1592224009230ea23500f91b230"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sun Oct 10 16:10:49 2010 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sun Oct 10 16:10:49 2010 +0000"
      },
      "message": "Simplify calls to inner write functions\n\nNo behavioural changes, just equivalence transformations.\n\nCorresponding to flashrom svn r1209.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\n"
    },
    {
      "commit": "b30a5ed4afead1592224009230ea23500f91b230",
      "tree": "0185573277197cab68874cedd1e00246ea2cf573",
      "parents": [
        "b28349f8bc40dd55524113e258b3185711e80366"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sun Oct 10 14:02:27 2010 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sun Oct 10 14:02:27 2010 +0000"
      },
      "message": "Unify chip write functions\n\nThe currently used write functions (wrappers) all use helpers which\nperform the actual write (inner functions).\n\nThe signature of the write wrappers is: int write_chip(struct flashchip\n*flash, uint8_t * buf);\n\nThe signature of the inner write functions varied a lot. This patch\nchanges them to: int write_part(struct flashchip *flash, uint8_t *src,\nint start, int len);\n\nDid you know that flashrom has only 8 inner write functions for all\nflash chips? write_page_write_jedec_common write_sector_jedec_common\nwrite_sector_28sf040 spi_chip_write_256_new spi_chip_write_1_new\nspi_aai_write_new write_page_82802ab write_page_m29f400bt\n\nExport all inner write functions.\n\nChange the function signature of wait_82802ab to eliminate single-use\nvariables.\n\nRemove an error message in write_page_m29f400bt which was printed for\nevery byte written regardless of success.\n\nAdd sharplhf00l04.c to the list of flash chip drivers in the Makefile.\nWhile the functions in there are unused, I suspect we will need them\nlater, and by hooking the file up we ensure that compilation won\u0027t\nbreak.\n\nCorresponding to flashrom svn r1208.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\n"
    },
    {
      "commit": "b28349f8bc40dd55524113e258b3185711e80366",
      "tree": "a4280b2c5eca9bb4cb8b767dc04bf8aaa0b6807f",
      "parents": [
        "f52f784bb300ec0acbd6c6bd9e6c3e5b435c4a90"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Fri Oct 08 20:29:57 2010 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Fri Oct 08 20:29:57 2010 +0000"
      },
      "message": "Remove progress printing from individual flash chip drivers\n\nProgress printing should be handled in the generic code, and will end up\nthere once partial write is possible.\n\nCorresponding to flashrom svn r1207.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Sean Nelson \u003caudiohacked@gmail.com\u003e\n"
    },
    {
      "commit": "f52f784bb300ec0acbd6c6bd9e6c3e5b435c4a90",
      "tree": "957964a468245432abbd23cd06839898b64105ce",
      "parents": [
        "92c8b0cec2ed06db9c24c4d93cf38a596edf23ab"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Fri Oct 08 18:52:29 2010 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Fri Oct 08 18:52:29 2010 +0000"
      },
      "message": "Move implicit erase out of chip drivers\n\nFlashrom had an implicit erase-on-write for most flash chip and\nprogrammer drivers, but it was not entirely consistent.\n\nSome drivers had their own hand-rolled partial update functionality\nwhich made handling partial updates from generic code impossible.\n\nMove implicit erase out of chip drivers, and kill some dead erase\nfunctions at the same time. A full chip erase is now performed in the\ngeneric code for all flash chips on write, and after that the whole chip\nis written.\n\nCorresponding to flashrom svn r1206.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\n"
    },
    {
      "commit": "ad3cc55e139b2e239325815464fe5f7d828aa794",
      "tree": "46568cf766d19740418be5ca8eaa494c7e69cc36",
      "parents": [
        "b63b067ae22803689592db482611093b33a29eef"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sat Jul 03 11:02:10 2010 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sat Jul 03 11:02:10 2010 +0000"
      },
      "message": "Kill global variables, constants and functions if local scope suffices\n\nConstify variables where possible.\nInitialize programmer-related variables explicitly in programmer_init to\nallow running programmer_init from a clean state after\nprogrammer_shutdown.\nProhibit registering programmer shutdown functions before init or after\nshutdown.\nKill some dead code.\nRename global variables with namespace-polluting names.\nUse a previously unused locking helper function in sst49lfxxxc.c.\n\nThis is needed for libflashrom.\n\nEffects on the binary size of flashrom are minimal (300 bytes\nshrinkage), but the data section shrinks by 4384 bytes, and that\u0027s a\ngood thing if flashrom is operating in constrained envionments.\n\nCorresponding to flashrom svn r1068.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Michael Karcher \u003cflashrom@mkarcher.dialup.fu-berlin.de\u003e\n"
    },
    {
      "commit": "ed479d2a8728dc12f1f78170cacfaf542cd0b44e",
      "tree": "50b12e054fcff9b0cabbf916d2d049d00f2bf8e5",
      "parents": [
        "93539dad8d6c0336f60c50966a2dc3a34736165d"
      ],
      "author": {
        "name": "Sean Nelson",
        "email": "audiohacked@gmail.com",
        "time": "Wed Mar 24 23:14:32 2010 +0000"
      },
      "committer": {
        "name": "Sean Nelson",
        "email": "audiohacked@gmail.com",
        "time": "Wed Mar 24 23:14:32 2010 +0000"
      },
      "message": "Convert chips\u0027 message printing to msg_c* Fixed suggestions by Carl-Daniel\n\nCorresponding to flashrom svn r982.\n\nSigned-off-by: Sean Nelson \u003caudiohacked@gmail.com\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "b3289c904c0242333d1283e85d88e61ee2d3e923",
      "tree": "11e10dc557875ab3874b8ea3fabfc737bd7c25dc",
      "parents": [
        "e4446e4ddb0cf1686d651d23519e6387599b4bb3"
      ],
      "author": {
        "name": "Sean Nelson",
        "email": "audiohacked@gmail.com",
        "time": "Tue Mar 16 01:00:50 2010 +0000"
      },
      "committer": {
        "name": "Sean Nelson",
        "email": "audiohacked@gmail.com",
        "time": "Tue Mar 16 01:00:50 2010 +0000"
      },
      "message": "Clean up sst28sf040.c after JEDEC refactorings\n\nRemove function probe_28sf040.\n\nCorresponding to flashrom svn r942.\n\ndelete references to dead sharplhf00l04.c and sst29sf040.c functions from chipdrivers.h\nSigned-off-by: Sean Nelson \u003caudiohacked@gmail.com\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "14ba6682e99273273be74b8e8681d0604b85e9b9",
      "tree": "cd0212ae1ffe83aaea0a5ca9f5e2be86615c471a",
      "parents": [
        "cfa674fde7ee763844f82e38503cd997a3951197"
      ],
      "author": {
        "name": "Sean Nelson",
        "email": "audiohacked@gmail.com",
        "time": "Fri Feb 26 05:48:29 2010 +0000"
      },
      "committer": {
        "name": "Sean Nelson",
        "email": "audiohacked@gmail.com",
        "time": "Fri Feb 26 05:48:29 2010 +0000"
      },
      "message": "Split spi.c into programmer and chip code Remove chipdriver.h include from flash.h\n\nSome of the spi programmer drivers required chipdrivers.h, needs fixing later:\n  it87spi.c\n  ichspi.c\n  sb600spi.c\n  wbsio_spi.c\n  buspirate_spi.c\n  ft2232spi.c\n  bitbang_spi.c\n  dediprog.c\n\nCorresponding to flashrom svn r914.\n\nSigned-off-by: Sean Nelson \u003caudiohacked@gmail.com\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "51c83fb2b204a369e1b1825b66c56e5babcf8022",
      "tree": "af901ed6d2a2214445035d483c29492217ee7727",
      "parents": [
        "21f54963611aa0f3ee3ad16a45395d0cec8363f1"
      ],
      "author": {
        "name": "Sean Nelson",
        "email": "audiohacked@gmail.com",
        "time": "Wed Jan 20 20:55:53 2010 +0000"
      },
      "committer": {
        "name": "Sean Nelson",
        "email": "audiohacked@gmail.com",
        "time": "Wed Jan 20 20:55:53 2010 +0000"
      },
      "message": "Convert various SST chips to use block_erasers\n\nConvert the following chips to block_erasers: SST28SF040A SST29EE010\nSST29LE010 SST29EE020A SST29LE020 SST39SF010A SST39SF020A SST39SF040\nSST39VF512 SST39VF010 SST39VF020 SST39VF040 SST39VF080 SST49LF002A/B\nSST49LF003A/B SST49LF004C SST49LF008A SST49LF008C SST49LF016C SST49LF020\nSST49LF020A SST49LF040 SST49LF040B SST49LF080A SST49LF160C .\n\nExtend sst28sf040 to include chip and sector functions for block_eraser.\nExtend sst49lfxxxc to include chip, sector, block erasers functions for\nblock_erasers. Extend sst_fwhub to include chip and sector functions for\nblock_erasers. Add copyrights to changed files. Killed erase_sst_fwhub.\nKilled erase_49lfxxxc. NULL A/A mux mode full chip erasers. Ignore block\nlocks in erase/write. Change comments from \"PP mode\" to \"A/A mux mode\"\n\nCorresponding to flashrom svn r877.\n\nSigned-off-by: Sean Nelson \u003caudiohacked@gmail.com\u003e \nAcked-by: Michael Karcher \u003cflashrom@mkarcher.dialup.fu-berlin.de\u003e\n"
    },
    {
      "commit": "9e72aa51a7a9ac5f041bacab75fd4be1e2a3356c",
      "tree": "375d71717241476bec265568958024db7eee3e37",
      "parents": [
        "b08ee5c50619d90fd35a1dd06228b952c67dda0b"
      ],
      "author": {
        "name": "Stefan Reinauer",
        "email": "stepan@coresystems.de",
        "time": "Wed Sep 16 08:18:08 2009 +0000"
      },
      "committer": {
        "name": "Stefan Reinauer",
        "email": "stefan.reinauer@coreboot.org",
        "time": "Wed Sep 16 08:18:08 2009 +0000"
      },
      "message": "Fix some of the issues reported by LLVM/clang\u0027s scan-build\n\nCorresponding to flashrom svn r722.\n\nSigned-off-by: Stefan Reinauer \u003cstepan@coresystems.de\u003e\n\nThis commit fixes only some of the issues, those that were\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "04aa59a8645510f212fc6a270b48a883f3d00fa5",
      "tree": "95c8f6738fa4dbaa09b7ee0f058de130333dc84c",
      "parents": [
        "0d5db9a8f86a2663570b05a557b49e0fa13f8631"
      ],
      "author": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Wed Sep 02 22:09:00 2009 +0000"
      },
      "committer": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Wed Sep 02 22:09:00 2009 +0000"
      },
      "message": "Standardize on using __func__ instead of __FUNCTION__\n\nThe __func__ variant is standardized in C99 and recommended to be\nused instead of __FUNCTION__ in the gcc info page.\n\nOnly _very_ old versions of gcc did not know about __func__, but we\u0027ve\nbeen using both __func__ and __FUNCTION__ for a long while now, and\nnobody complained about this, so all our users seem to use recent\nenough compilers.\n\nCorresponding to flashrom svn r711.\n\nSigned-off-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\nAcked-by: Stefan Reinauer \u003cstepan@coresystems.de\u003e\n"
    },
    {
      "commit": "30f7cb2f3c570c99b61bd5df72621f44f1bdd0d0",
      "tree": "d714754c298d7d247786e19c4b2b4afd6067a795",
      "parents": [
        "084546449983c1d6f147c1a3e381e225887e322c"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Mon Jun 15 17:23:36 2009 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Mon Jun 15 17:23:36 2009 +0000"
      },
      "message": "Flashrom only checks for very few chips if the erase worked\n\nAnd even when it checks if the erase worked, the result of that check is\noften ignored.\n\nConvert all erase functions and actually check return codes\nalmost everywhere.\nCheck inside all erase_* routines if erase worked, not outside.\nerase_sector_jedec and erase_block_jedec have changed prototypes to\nenable erase checking.\n\nUwe successfully tested LPC on an CK804 box and SPI on some SB600 box.\n\nCorresponding to flashrom svn r595.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nSigned-off-by: Urja Rannikko \u003curjaman@gmail.com\u003e\nAcked-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\n"
    },
    {
      "commit": "ca8bfc6c22196e5d16c6d2625c65d6b50c04daaf",
      "tree": "329ba3be9013c0a5934c66233a3c5205f0ed4b20",
      "parents": [
        "945d26a0d7eef8faf46453d5f2717c21b59bafc2"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Fri Jun 05 17:48:08 2009 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Fri Jun 05 17:48:08 2009 +0000"
      },
      "message": "Add programmer-specific delay functions\n\nAdd external programmer delay functions so external programmers can\nhandle the delay on their own if needed.\n\nCorresponding to flashrom svn r578.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\nAcked-by: Urja Rannikko \u003curjaman@gmail.com\u003e\n"
    },
    {
      "commit": "09e04f74c3c569427289fefd67157f2ae256d2cc",
      "tree": "6b8922ccb5e653467d8815b1fda287e18eaf9211",
      "parents": [
        "2cac6860c3f451a661d8281d25a72dd5db89f4e4"
      ],
      "author": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Sat May 16 22:36:00 2009 +0000"
      },
      "committer": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Sat May 16 22:36:00 2009 +0000"
      },
      "message": "Eliminate all \u0027inline\u0027s from the flashrom code\n\nThey serve pretty much no purpose, compilers can optimize pretty much\nall of what we might mark as inline anyway, _and_ inlines are not\nenforced in any way by the compiler either. They\u0027re totally unneeded.\nKill them.\n\nCorresponding to flashrom svn r522.\n\nSigned-off-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "2cac6860c3f451a661d8281d25a72dd5db89f4e4",
      "tree": "7592a765da81385bff5cfe1aa62f215618be948e",
      "parents": [
        "8403ccb49f98d1583736984c92d62735d9d466b5"
      ],
      "author": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Sat May 16 22:05:42 2009 +0000"
      },
      "committer": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Sat May 16 22:05:42 2009 +0000"
      },
      "message": "Drop unused/duplicated #includes and some dead code\n\nBuild-tested on 32bit x86.\n\nCorresponding to flashrom svn r521.\n\nSigned-off-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\nAcked-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\n"
    },
    {
      "commit": "5820f42ef209cfa0d4070fa9be96c9c91123a93f",
      "tree": "a505b6f813fc4f7601f77e7195e479dfddc73571",
      "parents": [
        "4059598a068f7694f2238a3811d85cbfa520a8d5"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sat May 16 21:22:56 2009 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sat May 16 21:22:56 2009 +0000"
      },
      "message": "Introduce a type \"chipaddr\" to abstract the offsets within flash regions\n\nUse chipaddr instead of volatile uint8_t * because when we access chips\nin external flashers, they are not accessed via pointers at all.\n\nBenefits: This allows us to differentiate between volatile machine\nmemory accesses and flash chip accesses. It also enforces usage\nof chip_{read,write}[bwl] to access flash chips, so nobody will\nunintentionally use pointers to access chips anymore. Some unneeded\ncasts are removed as well. Grepping for chip operations and machine\nmemory operations doesn\u0027t yield any false positives anymore.\n\nCompile tested on 32 bit and 64 bit Linux.\n\nCorresponding to flashrom svn r519.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\n"
    },
    {
      "commit": "0472f3d82624dcb19f25746172c6d59532e2463c",
      "tree": "a396b47eb0133b6a7543d69216933227a2c26b5c",
      "parents": [
        "b88556979b65914d8b0fc85861efeaa9ad9a1d3c"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Fri Mar 06 22:26:00 2009 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Fri Mar 06 22:26:00 2009 +0000"
      },
      "message": "FreeBSD definitions of (read|write)[bwl] collide with our own\n\nBefore we attempt trickery, we can simply rename the accessor functions.\n\nPatch created with the help of Coccinelle.\n\nCorresponding to flashrom svn r420 and coreboot v2 svn r3984.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Idwer Vollering \u003cidwer_v@hotmail.com\u003e\nAcked-by: Patrick Georgi \u003cpatrick@georgi-clan.de\u003e\n"
    },
    {
      "commit": "b88556979b65914d8b0fc85861efeaa9ad9a1d3c",
      "tree": "6cff97d21bb2d3648a3103d55cd22b6a4ce1eb6d",
      "parents": [
        "61a8bd27fb5ff27db98e96b462957994e7cca946"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Fri Mar 06 00:40:25 2009 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Fri Mar 06 00:40:25 2009 +0000"
      },
      "message": "Reduce use of volatile variables\n\nDuring the conversion of flash chip accesses to helper functions, I spotted\nassignments to volatile variables which were neither placed inside the mmapped\nROM area nor were they counters.\nDue to the use of accessor functions, volatile usage can be reduced\nsignificantly because the accessor functions take care of actually\nperforming the reads/writes correctly.\n\nThe following semantic patch spotted them (linebreak in python string\nfor readability reasons, please remove before usage):\n@r exists@\nexpression b;\ntypedef uint8_t;\nvolatile uint8_t a;\nposition p1;\n@@\n a@p1 \u003d readb(b);\n\n@script:python@\np1 \u003c\u003c r.p1;\na \u003c\u003c r.a;\nb \u003c\u003c r.b;\n@@\nprint \"* file: %s line %s has assignment to unnecessarily volatile\nvariable: %s \u003d readb(%s);\" % (p1[0].file, p1[0].line, a, b)\n\nResult was:\nHANDLING: sst28sf040.c\n* file: sst28sf040.c line 44 has assignment to unnecessarily volatile\nvariable: tmp \u003d readb(TODO: Binary);\n* file: sst28sf040.c line 43 has assignment to unnecessarily volatile\nvariable: tmp \u003d readb(TODO: Binary);\n* file: sst28sf040.c line 42 has assignment to unnecessarily volatile\nvariable: tmp \u003d readb(TODO: Binary);\n* file: sst28sf040.c line 41 has assignment to unnecessarily volatile\nvariable: tmp \u003d readb(TODO: Binary);\n* file: sst28sf040.c line 40 has assignment to unnecessarily volatile\nvariable: tmp \u003d readb(TODO: Binary);\n* file: sst28sf040.c line 39 has assignment to unnecessarily volatile\nvariable: tmp \u003d readb(TODO: Binary);\n* file: sst28sf040.c line 38 has assignment to unnecessarily volatile\nvariable: tmp \u003d readb(TODO: Binary);\n* file: sst28sf040.c line 58 has assignment to unnecessarily volatile\nvariable: tmp \u003d readb(TODO: Binary);\n* file: sst28sf040.c line 57 has assignment to unnecessarily volatile\nvariable: tmp \u003d readb(TODO: Binary);\n* file: sst28sf040.c line 56 has assignment to unnecessarily volatile\nvariable: tmp \u003d readb(TODO: Binary);\n* file: sst28sf040.c line 55 has assignment to unnecessarily volatile\nvariable: tmp \u003d readb(TODO: Binary);\n* file: sst28sf040.c line 54 has assignment to unnecessarily volatile\nvariable: tmp \u003d readb(TODO: Binary);\n* file: sst28sf040.c line 53 has assignment to unnecessarily volatile\nvariable: tmp \u003d readb(TODO: Binary);\n* file: sst28sf040.c line 52 has assignment to unnecessarily volatile\nvariable: tmp \u003d readb(TODO: Binary);\n\nThe following semantic patch uses the spatch builtin match printing\nfunctionality by prepending a \"*\" to the line with the pattern:\n@@\nexpression b;\ntypedef uint8_t;\nvolatile uint8_t a;\n@@\n* a \u003d readb(b);\n\nResult is:\nHANDLING: sst28sf040.c\ndiff \u003d\n-       tmp \u003d readb(bios + 0x1823);\n-       tmp \u003d readb(bios + 0x1820);\n-       tmp \u003d readb(bios + 0x1822);\n-       tmp \u003d readb(bios + 0x0418);\n-       tmp \u003d readb(bios + 0x041B);\n-       tmp \u003d readb(bios + 0x0419);\n-       tmp \u003d readb(bios + 0x040A);\n }\n \n static __inline__ void unprotect_28sf040(volatile uint8_t *bios)\n@@ -49,13 +42,6 @@ static __inline__ void unprotect_28sf040\n        /* ask compiler not to optimize this */\n        volatile uint8_t tmp;\n \n-       tmp \u003d readb(bios + 0x1823);\n-       tmp \u003d readb(bios + 0x1820);\n-       tmp \u003d readb(bios + 0x1822);\n-       tmp \u003d readb(bios + 0x0418);\n-       tmp \u003d readb(bios + 0x041B);\n-       tmp \u003d readb(bios + 0x0419);\n-       tmp \u003d readb(bios + 0x041A);\n }\n \n static __inline__ int erase_sector_28sf040(volatile uint8_t *bios,\n\nIt\u0027s arguably a bit easier to read if you get used to the leading \"-\"\nfor matching lines.\n\nThis patch was enabled by Coccinelle:\nhttp://www.emn.fr/x-info/coccinelle/\n\nCorresponding to flashrom svn r419 and coreboot v2 svn r3973.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Joseph Smith \u003cjoe@settoplinux.org\u003e\n"
    },
    {
      "commit": "61a8bd27fb5ff27db98e96b462957994e7cca946",
      "tree": "42326fb1bdeb491df1db567eacdec088bee46c7d",
      "parents": [
        "0677dfffc67ad2d0e973f558be86e66f225b4ddc"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Thu Mar 05 19:24:22 2009 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Thu Mar 05 19:24:22 2009 +0000"
      },
      "message": "Use helper functions to access flash chips\n\nRight now we perform direct pointer manipulation without any abstraction\nto read from and write to memory mapped flash chips. That makes it\nimpossible to drive any flasher which does not mmap the whole chip.\n\nUsing helper functions readb() and writeb() allows a driver for external\nflash programmers like Paraflasher to replace readb and writeb with\ncalls to its own chip access routines.\n\nThis patch has the additional advantage of removing lots of unnecessary\ncasts to volatile uint8_t * and now-superfluous parentheses which caused\npoor readability.\n\nI used the semantic patcher Coccinelle to create this patch. The\nsemantic patch follows:\n@@\nexpression a;\ntypedef uint8_t;\nvolatile uint8_t *b;\n@@\n- *(b) \u003d (a);\n+ writeb(a, b);\n@@\nvolatile uint8_t *b;\n@@\n- *(b)\n+ readb(b)\n@@\ntype T;\nT b;\n@@\n(\n readb\n|\n writeb\n)\n (...,\n- (T)\n- (b)\n+ b\n )\n\nIn contrast to a sed script, the semantic patch performs type checking\nbefore converting anything.\n\nTested-by: Joe Julian\n\nCorresponding to flashrom svn r418 and coreboot v2 svn r3971.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: FENG Yu Ning \u003cfengyuning1984@gmail.com\u003e\n"
    },
    {
      "commit": "5cafc33831ddbc92a3b59c49e2c61ac87f8a948e",
      "tree": "a41dd813b366abe249924b0054f1caadd0b48173",
      "parents": [
        "9371dc3cb13a5382ddeb8b98ce2d3eca6a50d0ef"
      ],
      "author": {
        "name": "Peter Stuge",
        "email": "peter@stuge.se",
        "time": "Sun Jan 25 23:52:45 2009 +0000"
      },
      "committer": {
        "name": "Peter Stuge",
        "email": "peter@stuge.se",
        "time": "Sun Jan 25 23:52:45 2009 +0000"
      },
      "message": "Beautify flash chip ID verbose printout a little, always use %02x\n\nCorresponding to flashrom svn r390 and coreboot v2 svn r3895.\n\nSigned-off-by: Peter Stuge \u003cpeter@stuge.se\u003e\nAcked-by: Peter Stuge \u003cpeter@stuge.se\u003e\n"
    },
    {
      "commit": "a502dcea3df45326898b99dc9f5f3744a776339d",
      "tree": "9746755cc3c75130ac3a05755ebbbcaff8fd81f3",
      "parents": [
        "dca0ab18840775e1d423faff55045066344ccb87"
      ],
      "author": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Wed Oct 17 23:55:15 2007 +0000"
      },
      "committer": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Wed Oct 17 23:55:15 2007 +0000"
      },
      "message": "Some cosmetic cleanups in the flashrom code and output\n\nCorresponding to flashrom svn r151 and coreboot v2 svn r2873.\n\nSigned-off-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\nAcked-by: Stefan Reinauer \u003cstepan@coresystems.de\u003e\n"
    },
    {
      "commit": "d22a1d4e539e9b594fc9a9cf149e239da1ba8a2f",
      "tree": "e801de4b9c81fbff8411a8c8ffcd57419b95d409",
      "parents": [
        "ca7f0e4668bf48c3e76458bfd009a575b5d78227"
      ],
      "author": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Sun Sep 09 20:21:05 2007 +0000"
      },
      "committer": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Sun Sep 09 20:21:05 2007 +0000"
      },
      "message": "Add \u0027(C)\u0027 where it\u0027s missing (for consistency reasons)\n\nCorresponding to flashrom svn r136 and coreboot v2 svn r2768.\n\nSigned-off-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\nAcked-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\n"
    },
    {
      "commit": "d110764ccdd75bb3621d97c613eea392634696f2",
      "tree": "9687dcb7423d9eb7022308d1d974f07fc507c063",
      "parents": [
        "ffec5f3ab794167126c28e7253dbe9d7de676dc2"
      ],
      "author": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Wed Aug 29 17:52:32 2007 +0000"
      },
      "committer": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Wed Aug 29 17:52:32 2007 +0000"
      },
      "message": "Change all flashrom license headers to use our standard format\n\nNo changes in content of the files.\n\nCorresponding to flashrom svn r131 and coreboot v2 svn r2751.\n\nSigned-off-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\nAcked-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\n"
    },
    {
      "commit": "ffec5f3ab794167126c28e7253dbe9d7de676dc2",
      "tree": "1645417f11a24ea1a316a7959246f5c4af75e789",
      "parents": [
        "fd37414dbb1996f91b07b08826e637c29c455c37"
      ],
      "author": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Thu Aug 23 16:08:21 2007 +0000"
      },
      "committer": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Thu Aug 23 16:08:21 2007 +0000"
      },
      "message": "Cosmetic fixes\n\nCorresponding to flashrom svn r130 and coreboot v2 svn r2748.\n\nSigned-off-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\nAcked-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\n"
    },
    {
      "commit": "0846f89b0a2819279b6a92c183721dfb56aab75d",
      "tree": "3867a6aa46c1b5f056cd45269101f595d44b6a1d",
      "parents": [
        "51582f282ba230178aec0226ec6098460a2a25da"
      ],
      "author": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Thu Aug 23 13:34:59 2007 +0000"
      },
      "committer": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Thu Aug 23 13:34:59 2007 +0000"
      },
      "message": "Drop a bunch of useless header files, merge them into flash.h\n\nCorresponding to flashrom svn r128 and coreboot v2 svn r2746.\n\nSigned-off-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\nAcked-by: Stefan Reinauer \u003cstepan@coresystems.de\u003e\n"
    },
    {
      "commit": "966dc20cc330ba90a8e51e52c70303e41045ff9e",
      "tree": "76faa3413630810abdf24d11ab70c2e98ddd82ce",
      "parents": [
        "fdd0c58115bb30a40ecda990b5fa0c7de1f9785b"
      ],
      "author": {
        "name": "Ed Swierk",
        "email": "eswierk@arastra.com",
        "time": "Mon Aug 13 04:10:32 2007 +0000"
      },
      "committer": {
        "name": "Peter Stuge",
        "email": "peter@stuge.se",
        "time": "Mon Aug 13 04:10:32 2007 +0000"
      },
      "message": "Fix bug in probe_28sf040() causing flash corruption on SST49LF160C verify\n\nThe first byte of the flash chip was read at the start of the function\nand later written back to address 0 if the flash chip was not identified\nas SST28SF040, which means most of the time. This write caused corruption\nof flash contents when verifying a SST49LF160C part.\n\nCorresponding to flashrom svn r126 and coreboot v2 svn r2744.\n\nSigned-off-by: Ed Swierk \u003ceswierk@arastra.com\u003e\nAcked-by: Peter Stuge \u003cpeter@stuge.se\u003e\n"
    },
    {
      "commit": "7ed78c88b6aa9830ff2d84dfca4bb62e4471a300",
      "tree": "ac4f669570573be9682c111c48d9a6171dcfdb10",
      "parents": [
        "5380d51c69a6fc9710396b600b42757fb9b0058e"
      ],
      "author": {
        "name": "Stefan Reinauer",
        "email": "stepan@coresystems.de",
        "time": "Thu May 24 09:26:39 2007 +0000"
      },
      "committer": {
        "name": "Stefan Reinauer",
        "email": "stefan.reinauer@coreboot.org",
        "time": "Thu May 24 09:26:39 2007 +0000"
      },
      "message": "Drop leftover includes\n\nCorresponding to flashrom svn r115 and coreboot v2 svn r2693.\n\nSigned-off-by: Stefan Reinauer \u003cstepan@coresystems.de\u003e\nAcked-by: Stefan Reinauer \u003cstepan@coresystems.de\u003e\n"
    },
    {
      "commit": "ce532975cbe35d88f767c6305d272c8b6f16ccf7",
      "tree": "f42ab029b4335a7d9e396bf85e0fc9f0f3d36aa1",
      "parents": [
        "bc1f1a01e4505bd1a2de45b7a23038a53a184c0d"
      ],
      "author": {
        "name": "Stefan Reinauer",
        "email": "stepan@coresystems.de",
        "time": "Wed May 23 17:20:56 2007 +0000"
      },
      "committer": {
        "name": "Stefan Reinauer",
        "email": "stefan.reinauer@coreboot.org",
        "time": "Wed May 23 17:20:56 2007 +0000"
      },
      "message": "Big cosmetic offensive on flashrom\n\n* Give decent names to virt_addr and virt_addr_2\n* add some comments\n* move virtual addresses to the end of the struct,\n  so they dont mess up the initializer.\n\nCorresponding to flashrom svn r111 and coreboot v2 svn r2689.\n\nSigned-off-by: Stefan Reinauer \u003cstepan@coresystems.de\u003e\nAcked-by: Stefan Reinauer \u003cstepan@coresystems.de\u003e\n"
    },
    {
      "commit": "a7e0548cea45ec60616936c536efbb2a34605093",
      "tree": "8d31e1c7e3343980b1c0724103f39dbb5baae77a",
      "parents": [
        "7977f4ef2ea478a5460e6730aa2adc23e9685be1"
      ],
      "author": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Wed May 09 10:17:44 2007 +0000"
      },
      "committer": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Wed May 09 10:17:44 2007 +0000"
      },
      "message": "Fix coding style of flashrom by running indent on all files\n\n  indent -npro -kr -i8 -ts8 -sob -l80 -ss -ncs *.[ch]\n\nSome minor fixups were required, and maybe a few more cosmetic\nchanges are needed.\n\nCorresponding to flashrom svn r108 and coreboot v2 svn r2643.\n\nSigned-off-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\nAcked-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\n"
    },
    {
      "commit": "184a4040333ccfe624d8765864458b21bb55d1e1",
      "tree": "730168012ceeb517f9c3d14e02f21be6c75cf107",
      "parents": [
        "8a10d5a631bddff703fdcfd5b33ac76cdc02fb63"
      ],
      "author": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Sat Nov 26 21:55:36 2005 +0000"
      },
      "committer": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Sat Nov 26 21:55:36 2005 +0000"
      },
      "message": "Flashrom update from Stefan, resolve issue 21\n\nCorresponding to flashrom svn r34 and coreboot v2 svn r2111.\n"
    },
    {
      "commit": "8b8897a5fd6325ae4709e3066107c3e419cd7fd6",
      "tree": "43195dce8ff0bebae971ac8c2f80162eacc3de01",
      "parents": [
        "070647d114d767a3b31df2659fd351047d6eee61"
      ],
      "author": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Sat Mar 27 00:18:15 2004 +0000"
      },
      "committer": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Sat Mar 27 00:18:15 2004 +0000"
      },
      "message": "Remove false alarm of erase/write, use verify \u0027-v\u0027 if you are not sure about the integrity\n\nCorresponding to flashrom svn r19 and coreboot v2 svn r1486.\n"
    },
    {
      "commit": "761bf1bdb7268f8818dd22b15e944365afdf1459",
      "tree": "ecbd632c87d64c6651f84a705ce4c3861108069d",
      "parents": [
        "73eca80d9b28bfc38fa4b8d2ef9c580840133a38"
      ],
      "author": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Sat Mar 20 16:46:10 2004 +0000"
      },
      "committer": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Sat Mar 20 16:46:10 2004 +0000"
      },
      "message": "Consolidate more jedec standard code\n\nCorresponding to flashrom svn r15 and coreboot v2 svn r1457.\n"
    },
    {
      "commit": "cf29de879843ec2293483eeb609191a834a4863c",
      "tree": "17ed4f4c1e385338b6470fa3d2974668d6b8b5fc",
      "parents": [
        "cec287936c8e00039f634cbfeb2cc64b457f2da0"
      ],
      "author": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Thu Mar 18 19:40:07 2004 +0000"
      },
      "committer": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Thu Mar 18 19:40:07 2004 +0000"
      },
      "message": "Fix 32bit vs. 64bit long int arithematics\n\nCorresponding to flashrom svn r8 and coreboot v2 svn r1434.\n"
    },
    {
      "commit": "eaab50bb32edfe419eb472eacfdc82cbc3ecae8c",
      "tree": "4ddad443cb40d4f090ba476bb48ddd47b98790a6",
      "parents": [
        "ceec420c3db6c20c4b882e8bf3ad113db7fcd2de"
      ],
      "author": {
        "name": "Ronald G. Minnich",
        "email": "rminnich@gmail.com",
        "time": "Fri Sep 12 22:41:53 2003 +0000"
      },
      "committer": {
        "name": "Ronald G. Minnich",
        "email": "rminnich@gmail.com",
        "time": "Fri Sep 12 22:41:53 2003 +0000"
      },
      "message": "Changes from NIKI\n\nCorresponding to coreboot v1 svn r873.\n"
    },
    {
      "commit": "d4228fdc4793c900e3f5eb0d2db0576a6f36235d",
      "tree": "8b97e52b0701f641a3566e0448b699ce912e46a7",
      "parents": [
        "4d32e789a867bbf1419fc1f4f82b1145891d4d16"
      ],
      "author": {
        "name": "Ronald G. Minnich",
        "email": "rminnich@gmail.com",
        "time": "Fri Feb 28 17:21:38 2003 +0000"
      },
      "committer": {
        "name": "Ronald G. Minnich",
        "email": "rminnich@gmail.com",
        "time": "Fri Feb 28 17:21:38 2003 +0000"
      },
      "message": "Made the ids always print in hex less verbose verify step\n\nCorresponding to coreboot v1 svn r752.\n"
    },
    {
      "commit": "ef5779d1ddee6b83dfe04ff343e4b7d290fd24d7",
      "tree": "4e9514f6bc1d73b14490747d1d18ab1ef9e7b6fa",
      "parents": [
        "f4cf2baec9ba699c7e7387de7fd528fca06b25d6"
      ],
      "author": {
        "name": "Ronald G. Minnich",
        "email": "rminnich@gmail.com",
        "time": "Tue Jan 29 20:18:02 2002 +0000"
      },
      "committer": {
        "name": "Ronald G. Minnich",
        "email": "rminnich@gmail.com",
        "time": "Tue Jan 29 20:18:02 2002 +0000"
      },
      "message": "Fixes\n\n - switch to volatile everywhere\n - use myusec_delay instead of usleep\n\nCorresponding to coreboot v1 svn r492.\n"
    },
    {
      "commit": "5e5f75e559f605974afd3767bc650a1cc0ed6f1f",
      "tree": "6923dc3d9468a6929079951532dd9fa9040637eb",
      "parents": [],
      "author": {
        "name": "Ronald G. Minnich",
        "email": "rminnich@gmail.com",
        "time": "Tue Jan 29 18:21:41 2002 +0000"
      },
      "committer": {
        "name": "Ronald G. Minnich",
        "email": "rminnich@gmail.com",
        "time": "Tue Jan 29 18:21:41 2002 +0000"
      },
      "message": "Trying to make this general purpose user-land flash burner\n\nCorresponding to coreboot v1 svn r489.\n"
    }
  ]
}
