)]}'
{
  "log": [
    {
      "commit": "84914db6304ccd0f6f41ba7b4f6c0a83ef66e5d0",
      "tree": "3aa266ba80786f3927d253e1d8ef9334c3b7c632",
      "parents": [
        "4374ba1e696c9f0d18ee86188f0a389634fd2c94"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 07 17:11:28 2026 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jun 28 09:29:37 2026 +0000"
      },
      "message": "Make FEATURE_LONG_RESET a proper feature bit\n\nThis will make it possible to see at runtime if a chip\nactually supports both reset methods.\n\nChange-Id: Id5fb5af743215435dfc289105bdfcc5fd739eabb\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/435\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\n"
    },
    {
      "commit": "11136c210e382258a72df44ffe625260a6394a45",
      "tree": "376f66e9e7a826dcf13f833e90291db7663205a4",
      "parents": [
        "610c1aad71bfa118c4f49ac01761f586b8dede69"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon May 01 12:00:09 2023 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Mar 15 14:27:20 2026 +0000"
      },
      "message": "flashchips: Add a type enum to the chip identification\n\nWe used to imply what kind of ID (e.g. RES, REMS, RDID) a chip entry\nprovides, based on the given probing function. This works well as long\nas we call the respective probing function for every single chip entry.\nWith our ever growing chip database, however, this slows probing signi-\nficantly down. Especially with external programmers with a long command\nround-trip.\n\nWith the type of identification information stored in the chip entries\nexplicitly, we\u0027ll be able to implement bus-specific probing functions.\nThese would be called only once and their results would be used to look\na matching chip up in the chip database. Instead of looking for every\npossible chip on the buses, we can turn it around and search for the\nactually present chips in the database.\n\nChange-Id: Ie658ebf58f21c8994b9b66f7683f9490e8d12267\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/74898\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": "c3b02dce51aad2766512d1939a1b7447c2d526b8",
      "tree": "58069f464bb8a777ef06e93767813a4c5a042cb0",
      "parents": [
        "a02df33fbf1c196395a61049e60895d4ae0e0a5b"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Aug 12 01:13:45 2023 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Sep 18 19:24:39 2023 +0000"
      },
      "message": "Rebrand to flashprog and update URLs\n\nMostly automated `sed` work. As of now, URLs to the old wiki are broken\neither way, so changing them shouldn\u0027t hurt. Other URLs (e.g. to mailing\nlist archives) were hopefully filtered correctly.\n\nChange-Id: I9d43bfd0e675eff2fcbad05f304b9ce9f5006b08\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashrom-stable/+/21\n"
    },
    {
      "commit": "ac90af6cdc747bfe3dc38c83c0b7272addf37659",
      "tree": "ec67fd7c4d01db82b5a1ffd8c8ed36a7229108dd",
      "parents": [
        "bb4f3b06dcfb60a6ab84750c9b149482dc5ee579"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Dec 18 00:22:47 2022 +0000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Jan 13 01:34:15 2023 +0000"
      },
      "message": "Change references to flashrom-stable\n\nAdapt all mentions of the mailing list and also the version print.\n\nChange-Id: Ib4a3271422ee6cf4d0efb8c3fa858b66a22c0a33\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/70922\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\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": "cf3976e658e06464e84d04c5230c466e0ec44df7",
      "tree": "a5d76371a4e67765060f63693568c9a3f26da8c1",
      "parents": [
        "6c68363d0c1db0fd5e2ac95fb4adeaf254f669a7"
      ],
      "author": {
        "name": "Jacob Garber",
        "email": "jgarber1@ualberta.ca",
        "time": "Fri Jun 21 15:40:33 2019 -0600"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jun 23 21:40:09 2019 +0000"
      },
      "message": "tree: Remove unused functions with no prototypes\n\nThese functions are no longer used, or were never used in the first place.\n\ngenerate_testpattern() - Introduced in commit eaac68bf8b, never used\nlist_programmers() - Introduced in commit 552420b0d6, never used\npci_dev_find_filter() - Prototype removed in commit 5c316f9549\nerase_chip_jedec() - Usage and prototype removed in commit f52f784bb3\nprintlock_regspace2_blocks() - Introduced in commit ef3ac8ac17, never used\nspi_write_status_enable() - Usage dropped in commit fcbdbbc0d4\n\nChange-Id: I742164670521fea65ffa3808446594848ce63cec\nSigned-off-by: Jacob Garber \u003cjgarber1@ualberta.ca\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom/+/33669\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "5bd11dc8476b4b17cef58d8d855f2b50e74da2f4",
      "tree": "1d11b50457a755374ede6d3981248d7e1cd5cfd2",
      "parents": [
        "c6fe5d83373783973cfa3c0ab8499f05b23da02f"
      ],
      "author": {
        "name": "Elyes HAOUAS",
        "email": "ehaouas@noos.fr",
        "time": "Sat Aug 18 09:24:26 2018 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Aug 19 10:41:55 2018 +0000"
      },
      "message": "Remove empty line at EOF\n\nChange-Id: Id6063cb5d406d7139abf7fcdf2ae265363640f9f\nSigned-off-by: Elyes HAOUAS \u003cehaouas@noos.fr\u003e\nReviewed-on: https://review.coreboot.org/28207\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\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": "124ef38f7afc61ad7c713c22aad7c5c7f79bdb9b",
      "tree": "980f498681fcc053ec1e591e22bb16afbef0a191",
      "parents": [
        "3f7e3419887c6d37330387f8e32c86ba47bdf70c"
      ],
      "author": {
        "name": "Elyes HAOUAS",
        "email": "ehaouas@noos.fr",
        "time": "Tue Mar 27 12:15:09 2018 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Apr 24 20:18:58 2018 +0000"
      },
      "message": "Fix whitespace errors\n\nChange-Id: Ic2d3bb9d8581a0471a8568a130f893b34dddf113\nSigned-off-by: Elyes HAOUAS \u003cehaouas@noos.fr\u003e\nReviewed-on: https://review.coreboot.org/25380\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "23e10b87801c22f34642895de8b0b726265eb016",
      "tree": "2d62c23191801afaecbf98925effb8b8c7a44ab6",
      "parents": [
        "c2644a3fc14088a2535c05edbd56c041b3a7370d"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sat Jan 23 16:16:49 2016 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sat Jan 23 16:16:49 2016 +0000"
      },
      "message": "Add a bunch of new/tested stuff and various small changes 24\n\nTested mainboards:\nOK:\n - ASRock G31M-GS\n   Reported by Александр Трубицын\n - ASRock G41M-VS3\n   Reported by Александр Трубицын\n - ASRock N68C-S UCC\n   Reported by Alexey Belyaev\n - ASRock AMCP7AION-HT (ION 330HT(-BD))\n   Reported by Stefan Tauner\n - ASUS P5K SE\n   Reported by Александр Трубицын\n - ASUS P5KPL-VM\n   Reported by Marin Vlah\n - ASUS RAMPAGE III GENE\n   Reported by stevessss on IRC\n - GIGABYTE GA-945GM-S2\n   Reported by Александр Трубицын\n - GIGABYTE GA-945GCM-S2 (rev. 3.0)\n   Reported by Александр Трубицын\n - GIGABYTE GA-965P-S3\n   Reported by Александр Трубицын\n - GIGABYTE GA-EG43M-S2H\n   Reported by Александр Трубицын\n - GIGABYTE GA-EP31-DS3L (rev. 1.0)\n   Reported by Александр Трубицын\n - GIGABYTE GA-G33M-S2\n   Reported by Александр Трубицын\n - GIGABYTE GA-G33M-S2L\n   Reported by Александр Трубицын\n - GIGABYTE GA-H55M-S2\n   Reported by Александр Трубицын\n - GIGABYTE GA-J1900N-D3V\n   Reported by Marcos Truchado and Guillermo von Hünefeld\n - GIGABYTE GA-K8NS\n   Reported  by nicolae788\n - GIGABYTE GA-M56S-S3\n   Reported by Estevo Paz Freire\n - GIGABYTE GA-P31-DS3L\n   Reported by Александр Трубицын\n - GIGABYTE GA-P31-S3G\n   Reported by Александр Трубицын\n - MSI MS-7336\n   Reported by Benjamin Bellec\n - MSI X79A-GD45 (8D) (MS-7760)\"\n   Reported by mortehu on IRC\n - Supermicro A1SAi-2550F\n   Reported by Bernard Grymonpon\n - Supermicro X7DWT\n   Reported by Steven Stremciuc\n\nLaptop:\n - ASUS U38N\n   Reported by Ultra on IRC\n - Dell Latitude D630\n   Reported by Márton Miklós\n - Fujitsu Amilo Xi 3650\n   Reported by Elmar Stellnberger\n - Lenovo T400 (whitelisting only)\n\nChipsets:\n - Mark 8086:1f38 (Intel Avoton/Rangeley) as tested\n   Reported by Jeremy Porter and Bernard Grymonpon\n - Add Intel Sunrise Point IDs but no support yet.\n\nFlash chips:\n - Atmel AT45DB321D to PREW (+PREW)\n   Reported by The Raven\n - Eon EN25QH32 to PREW (+PREW)\n   Reported by Josua Mayer\n - Eon EN25QH64 to PREW (+EW)\n   Reported by David s. Alessio\n - GigaDevice GD25LQ64(B) to PREW (+PREW)\n   Reported by Greg Tippit\n - Intel 28F001BN/BX-T to PREW (+EW)\n   Reported by Lu Xie\n - Micron M25P10-A to PREW (+W)\n   Reported by the Raven\n - Micron M25PE40\n   Reported by David Wood\n - Micron N25Q128..3E to PREW (+PREW)\n   Reported by Miklós Márton\n - Macronix MX25L3273E to PREW (+PREW)\n   Reported by Roklobsta on IRC\n - Macronix MX23L6454 to PR (+PR)\n   Reported by Steven Honeyman\n - Macronix MX25U6435E/F to PREW (+PREW)\n   Reported by Marcos Truchado and Guillermo von Hünefeld\n - PMC Pm25LQ032C to PREW (+EW)\n   Reported by Dirk Knop\n - Spansion S25FL016A to PREW (+EW)\n   Reported by Márton Miklós\n - Spansion S25FL128S......0 to PREW (+PREW)\n   Reported by Jim Houston\n - Spansion S25FL204K to PR (+PR)\n   Reported by Thomas Debrunner\n - SST SST49LF016C to PREW (+EW)\n   Reported by Steven Stremciuc\n - SST SST39VF040 to PREW (+PREW)\n   Reported by Xavier Bourgeois\n - SST SST49LF040B to PREW (+EW)\n   Reported by Rikard Åhlund\n - ST M25P10-A to PREW (+W)\n   Reported by Martijn Schiedon\n - Winbond W39V040FA to PREW (+EW)\n   Reported by Евгений Черкашин\n - Winbond W39V080FA to PREW (+EW)\n   Reported by protagonist0 on IRC\n - Winbond W25Q80.W to PREW (+PREW)\n   Reported by Miklós Márton\n - Winbond W25X64 to PREW (+REW)\n   Reported by Johannes Krampf and Manuel Dejonghe\n - Fix ID of AMIC A25LQ64\n   Reported by Roman Titov\n - Fix page size of Spansion S25FL129P......1\n   Copy and paste error from the 128S uniform 256kB variant, probably.\n - Add Micron/Numonyx phase-change memory IDs\n\nMiscellaneous:\n - Detect Android target OS.\n   No changes are required to build flashrom (excluding programmers\n   with NEED_PCI) on Android.\n - Update rayerspi (spipgm) URL\n - Fix max_data_write handling of at45db.\n - Minor refinement of the README\n - Mark board enable for the GA-K8NS variants as tested.\n   Tested by \"nicolae788\" on a board with socket 754.\n - Mark \"Multi-system\" chassis as non-laptop case.\n - Remove W836xx log requests.\n   We got enough (and no one is looking at them for the time being anyway).\n - serprog: improve invalid reply error message, contributed by Urja Rannikko.\n - Remove default include paths for MinGW.\n - Disable implicit rules in the Makefile because we don\u0027t need them and they\n   just make the build (imperceptibly) slower.\n - Enable our own strnlen() implementation not only on DJGPP but also if\n   HAVE_STRNLEN is not defined. This is needed to get older BSDs\n   (e.g. NetBSD 6.0, FreeBSD \u003c 8.0) to work.\n - Tiny other stuff.\n\nCorresponding to flashrom svn r1917.\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": "5859ced80f17217e7e829b61b02bb18b66b4f8e4",
      "tree": "16c9266af61435d7f2603998a3730ec7be1e09ed",
      "parents": [
        "e814a9b6e83deea2bbc9d287e8a9ee0a409a969e"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sat Dec 20 16:45:31 2014 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sat Dec 20 16:45:31 2014 +0000"
      },
      "message": "Fix handling of write protection at register space address +2\n\nSince r1833 we added the offset of the virtual register in several\nfunctions, which produced segfaults. This patch renames a few\nparameters and reorganizes/fixes various parts of the\nchangelock_regspace2_block() function - hence the rather big diff.\n\nThanks to Roman Lebedev for reporting this issue and testing numerous\nrevisions of this patch.\n\nCorresponding to flashrom svn r1859.\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": "4e32ec19b124a7431d1e3fd9f7e75196b7495a7e",
      "tree": "5ca7051747f8161639957c37d984cbe8f878271a",
      "parents": [
        "583ea32911f67641daef9d05b3e65176b6923f94"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sat Aug 30 23:39:51 2014 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sat Aug 30 23:39:51 2014 +0000"
      },
      "message": "Refine physical address mapping of flash chips\n\n - Create distinct functions for mapping and unmapping for flash chips.\n - Map only when needed: map before probing and unmap immediately\n   after it. Map again when a single chip was probed successfully before\n   taking any actual actions and clean up afterwards.\n - Map special function chip registers centrally together with flash space\n   instead of within (some) probing methods after successful probes.\n - Save the used base addresses of the mappings in struct flashctx as well.\n - Do not try to (un)map the zero-sized chip definitions that are merely hacks.\n   This also fixes the printing of wrong warnings for these chip definitions\n   introduced in r1765.\n\nCorresponding to flashrom svn r1847.\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": "a8cf3620a42ca5927253822a813e3fbae1d6e7bf",
      "tree": "64ff1e62b06ee89492c914e11c86b54ddf126b0c",
      "parents": [
        "6697f71ade7b6428c7be6051c02dbb9768900e04"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Fri Aug 08 08:33:01 2014 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Fri Aug 08 08:33:01 2014 +0000"
      },
      "message": "Unify non-shifted and shifted JEDEC access\n\nSome Parallel bus chips have a 16-bit mode and an 8-bit mode. They use\nnormal JEDEC addresses for 16-bit mode and shifted addresses (by 1 bit)\nfor 8-bit mode. Some programmers can access them in 16-bit mode, but on\nall flashrom-supported programmers so far, we access them in 8-bit mode.\nThis means we have to shift the addresses but apart from the addresses\nwe can share the code.\n\nThis patch makes this possible by checking the chip\u0027s FEATURE_ADDR_SHIFTED\nflag in common JEDEC functions and applying the right addresses respectively.\n\nCorresponding to flashrom svn r1840.\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: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "03a9c3c1bbfd1548888ff6386c30165efc4c7c00",
      "tree": "f10ff5edf6a8424d672f6774a00d03b51308629b",
      "parents": [
        "7de939325b1c984eefdc65d079b6fe4416c86a12"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sun Aug 03 14:15:14 2014 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sun Aug 03 14:15:14 2014 +0000"
      },
      "message": "Add support for a bunch of 29GL parallel flash chips\n\n29GL chips use a new 3-Byte device ID probing function at addresses\n0x01, 0x0E, 0x0F.\n\nFlash chip families supported by this method include...\n - EON EN29GL\n - Gigadevice GD29GL (if they really exist)\n - ISSI (PMC) IS29GL\n - Macronix MX29GL (+MX68GL1G0F)\n - Spansion S29GL (+S70GL02G)\n - Winbond W29GL\n\nThis patch adds respective flash chip definitions for chips up to 16 MB from\nEon, ISSI, Macronix and Winbond. Bigger chips as well as those from\nGigadevice and Spansion are left out.\n\nCorresponding to flashrom svn r1835.\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": "ef3ac8ac17eac9d2041ea9c9e711a9b059412b59",
      "tree": "e5fec0cda5a546133a7440f65da442329ec3db48",
      "parents": [
        "2a41f0a2c0daeb0ee2a38a252ab96135d70a6b81"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sun Aug 03 13:05:34 2014 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sun Aug 03 13:05:34 2014 +0000"
      },
      "message": "Refactor unlocking of many chips with locking at register space address +2\n\nThis includes PMC Pm49*, SST 49LF00*, ST M50* and Winbond W39* families.\nThe erase and write test status bits of all affected chips have been reset.\n\nCorresponding to flashrom svn r1833.\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\n"
    },
    {
      "commit": "0ab1e5d5e3d37aa97eb4ae36caac06a800c86654",
      "tree": "c5b314cb8b40888ee7cd4a2ef7d8bd8f7953aaeb",
      "parents": [
        "618d8972019e12e6c7eadd5a330774900e1c2f0f"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Thu May 29 11:51:24 2014 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Thu May 29 11:51:24 2014 +0000"
      },
      "message": "jedec.c: constify a bit more\n\nAlso, include chipdrivers.h to find conflicting types between exported\ndeclarations and actual implementations.\n\nCorresponding to flashrom svn r1805.\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": "f80419c75a344b303275e380add3b8cb750bab9d",
      "tree": "124a732dd0d8c171b28649986c716af0477ca746",
      "parents": [
        "b66ed84d193b8c0eddf5d946c6d2d94a8e8360ee"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Fri May 02 15:41:42 2014 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Fri May 02 15:41:42 2014 +0000"
      },
      "message": "Make delay values unsigned\n\nThere is no reason for negative delays in our use cases:\n - We don\u0027t need it (to work around any quirks).\n - sleep() (POSIX) uses an unsigned argument.\n - usleep() (POSIX) uses an unsigned argument.\n - Sleep() (Windows) uses an unsigned argument.\n\nChange all callees as well (without any complications).\n\nCorresponding to flashrom svn r1782.\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": "0554ca5cd33fe2cc599cfdbe91fff03c8fa752c5",
      "tree": "1d37d76b5b3d810c6b2a1286a5de7c2b60ce69a0",
      "parents": [
        "305e0b999a7d452a845709d5558c17a31afe178c"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Thu Jul 25 22:54:25 2013 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Thu Jul 25 22:54:25 2013 +0000"
      },
      "message": "Add a bunch of new/tested stuff and various small changes 18\n\nTested mainboards:\nOK:\n - ASUS C60M1-I\n   http://www.flashrom.org/pipermail/flashrom/2013-February/010578.html\n - ASUS P8H77-I\n   http://www.flashrom.org/pipermail/flashrom/2013-March/010607.html\n - ASUS P8H77-M\n   http://www.flashrom.org/pipermail/flashrom/2013-May/010994.html\n - ASUS P8P67 LE (B2)\n   http://www.flashrom.org/pipermail/flashrom/2013-May/010972.html\n - Elitegroup GeForce6100PM-M2 (V3.0)\n   http://www.flashrom.org/pipermail/flashrom/2013-July/011177.html\n - GIGABYTE GA-P55A-UD7\n   http://www.flashrom.org/pipermail/flashrom/2013-July/011302.html\n - MSI B75MA-E33 (MS-7808)\n   http://www.flashrom.org/pipermail/flashrom/2013-March/010659.html\n - MSI H77MA-G43 (MS-7756)\n   http://www.flashrom.org/pipermail/flashrom/2013-April/010853.html\n - MSI KA780G (MS-7551)\n   http://paste.flashrom.org/view.php?id\u003d1617\n - SAPPHIRE IPC-E350M1\n   Reported by xvilka on IRC\n - Supermicro X8DTG-D\n   http://www.flashrom.org/pipermail/flashrom/2013-July/011305.html\nNOT OK:\n - ASRock Fatal1ty Z77 Performance\n   http://www.flashrom.org/pipermail/flashrom/2013-January/010467.html\n - ASRock Z68 Extreme4\n   http://www.flashrom.org/pipermail/flashrom/2013-May/010984.html\n - ASUS P8B75-M LE\n   http://www.flashrom.org/pipermail/flashrom/2013-April/010867.html\n - ASUS P8P67-M PRO\n   http://www.flashrom.org/pipermail/flashrom/2013-February/010541.html\n - ASUS P8Z68-V LE\n   http://www.flashrom.org/pipermail/flashrom/2013-February/010582.html\n - Intel DQ77MK\n   http://paste.flashrom.org/view.php?id\u003d1603\n - Supermicro X9DRD-7LN4F\n   http://paste.flashrom.org/view.php?id\u003d1582\n - Supermicro X9SCE-F\n   http://www.flashrom.org/pipermail/flashrom/2013-February/010588.html\n - Supermicro X9SCM-F\n   http://www.flashrom.org/pipermail/flashrom/2013-February/010527.html\n - Tyan S7066\n   http://www.flashrom.org/pipermail/flashrom/2013-March/010630.html\n\nChipsets:\n - Marked Intel B75 as tested\n   http://www.flashrom.org/pipermail/flashrom/2013-March/010659.html\n - Marked Intel H77 as tested\n   http://www.flashrom.org/pipermail/flashrom/2013-March/010607.html\n - Removed 10de:03e2 because it is apparently the MCP61 host bridge.\n   It was reclassified to Host Bridge in the PCI device ID database and there\n   is at least one report suggesting this configuration too:\n   http://www.flashrom.org/pipermail/flashrom/2012-August/009716.html\n - Added MCP89 which hopefully works with the code for previous versions.\n   Thanks to James Laird for submitting this change.\n\nTested flash chips:\n - Atmel AT25DF641(A) to PREW (+PREW)\n   http://www.flashrom.org/pipermail/flashrom/2013-June/011113.html\n - Atmel AT25F512 to PREW (+PREW)\n   http://www.flashrom.org/pipermail/flashrom/2013-April/010904.html\n   Also, change its ID according to Modification of PCN SC040401A:\n   \"There has been a change in the returned value of the Product Identification\n   (RDID) command, the AT25F512A RDID code is 65h compared to 60h from\n   the AT25F512 product.\"\n   It seems to be quite likely that all AT25F512 are fully functional relabeled\n   AT25F1024 chips. There are even some hints in the datasheet:\n   in table 6 they stress that address pin 16 needs to be low under all circum-\n   stances; while continuous reads can wrap around on the AT25F1024 the DS\n   notes \"For the AT25F512, the read command must be terminated when the\n   highest address (00FFFF) is reached.\" OTOH the lock bit semantics are\n   different, but this has not been tested thoroughly\n - Atmel AT25F512A to PREW (+PREW)\n   http://paste.flashrom.org/view.php?id\u003d1569\n - Eon EN25F05 to PREW (+PREW)\n   http://paste.flashrom.org/view.php?id\u003d1571\n - Macronix MX25L12805(D) to PREW (+REW)\n   http://www.flashrom.org/pipermail/flashrom/2013-April/010913.html\n - Spansion S25FL256S......0 and S25FL512S to P/!R!E!W (+P)\n   Tested by Stefan Tauner\n - Micron/Numonyx/ST M25PX80 to PREW (+PREW)\n   Tested by Stefan Tauner\n - Micron/Numonyx/ST N25Q032..3E and N25Q128..3E to PREW (+PREW)\n   Tested by Stefan Tauner\n - Micron/Numonyx/ST N25Q256..3E and N25Q512..3G to P/!R!E!W (+P)\n   Tested by Stefan Tauner\n - SST SST25VF040B to PREW (+PREW)\n   http://paste.flashrom.org/view.php?id\u003d1574\n - SST SST25VF040B.REMS to PREW (+EW)\n   http://paste.flashrom.org/view.php?id\u003d1575\n - ST M25P05-A to PREW (+PREW)\n   http://paste.flashrom.org/view.php?id\u003d1576\n - ST M29W512B to PREW (+W)\n   http://www.flashrom.org/pipermail/flashrom/2013-March/010635.html\n - Winbond W25Q64.W to PREW (+PREW)\n   Tested by the chromiumos guys.\n - Winbond W25Q128.V to PREW (+REW)\n   http://www.flashrom.org/pipermail/flashrom/2013-June/011108.html\n - Winbond W25X20 to PREW (+PREW)\n   http://www.flashrom.org/pipermail/flashrom/2013-May/010990.html\n\nMiscellaneous:\n - Add Lenovo X201 to the laptop whitelist.\n - Add chip IDs for the ESMT F25L..QA family.\n - Add chip IDs for a few Macronix MX25 models.\n - The list of flashchips is not sorted strictly alphabetically and should not be\n   either. Refine the comment explaining the scheme on top of the list.\n - Support -L output of chip sizes with up to 6 decimal places (up to 4 Gb).\n - Use z length modifier in (more) prints for size_t types.\n - Remove chips \u003e16MB again because our current implementation of memory mapping\n   the flash chip violates common rules by mapping a window as large as the chip.\n   This leads to failing mmaps as can be seen here:\n   http://paste.flashrom.org/view.php?id\u003d1695\n - Document spispeed parameter of linux_spi (and fix some leaks).\n - Rephrase the \"multiple chips detected\" message because it was confusing.\n - Skip verification step if the image is equal to the flash contents.\n - Tiny other stuff.\n\nCorresponding to flashrom svn r1702.\n\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": "c2333751c411b5265326d866f810017cd561643c",
      "tree": "574e4a82e15854b6bc4393c5f56005fe2b4bda9c",
      "parents": [
        "11990da1d3a4ca913ed5b85888a37188c4a621db"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sat Jul 13 23:31:37 2013 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sat Jul 13 23:31:37 2013 +0000"
      },
      "message": "Use uintptr_t for chipaddr instead of unsigned long\n\nCorresponding to flashrom svn r1698.\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": "78ffbeaa029fb827dcdf9c02262adbda4673e5eb",
      "tree": "0a53b1a2841c62239d491c2341f41d073e6d9cbb",
      "parents": [
        "92fefc921a602acb89a897193c9f31fbb78d85b5"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sat Oct 27 15:36:56 2012 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sat Oct 27 15:36:56 2012 +0000"
      },
      "message": "Do not read the flash chip twice in verification mode\n\nKyösti Mälkki noticed that we unnecessarily read the flash chip twice when\ncalled with --verify. The first one is the mandatory read before everything\n(to be able to detect the seriousness of errors), but the second one is not\nnecessary because we can just use the former for the comparison.\n\nThis introduces a small output change: previously we printed ERASE or\nVERIFY depending on the callee. This special case has been dropped\nbecause it is unnecessary to print it (and wrong for the verification\nfunction to need to know why it is verifying exactly).\nIf an erase fails we mention that fact explicitly already, similar for verify.\n\nCorresponding to flashrom svn r1619.\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": "a63c7c449646147efe2bdeb80efeed479dc1d328",
      "tree": "da1a452c658ecb3120fffe6d084a46a85d5792a4",
      "parents": [
        "082c8b559cd9f3262c9af58ac2f17f2cc8a09d8b"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Tue Aug 16 12:08:22 2011 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Tue Aug 16 12:08:22 2011 +0000"
      },
      "message": "Remove unneeded inclusions of chipdrivers.h\n\nThis is related to the spi split patch as discussed in:\nhttp://www.flashrom.org/pipermail/flashrom/2010-February/thread.html#2364\nthe old commit (r914) log notes:\n\"Some of the spi programmer drivers required chipdrivers.h, needs fixing later: it87spi.c\n  ichspi.c   sb600spi.c   wbsio_spi.c   buspirate_spi.c   ft2232spi.c   bitbang_spi.c   dediprog.c\"\n\nthere still remain a few cases where chipdrivers.h is needed:\ndediprog.c (spi_read_chunked and spi_write_chunked)\nit87spi.c (due to spi_write_enable and spi_read_status_register)\nwbsio_spi.c (spi_programmer registration only)\n\nbesides that, there are also non-spi files that do not need it.\nalso, add flash.h to chipdrivers.h because it uses some types of it\nand remove flashchips.h from print.c\n\nCorresponding to flashrom svn r1414.\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": "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": "880e867ae823dbbd140731f2eaa2ea656b4b9153",
      "tree": "6f6ccde262a1878c3e3fe788e4923811a26628ef",
      "parents": [
        "4b177369854b0f1b0f5769b809f2cf1b0ea4f347"
      ],
      "author": {
        "name": "Michael Karcher",
        "email": "flashrom@mkarcher.dialup.fu-berlin.de",
        "time": "Fri Apr 15 00:03:37 2011 +0000"
      },
      "committer": {
        "name": "Michael Karcher",
        "email": "flashrom@mkarcher.dialup.fu-berlin.de",
        "time": "Fri Apr 15 00:03:37 2011 +0000"
      },
      "message": "Remove delays in JEDEC erase sequence\n\nIt is extremely unlikely that a chip not requiring delays in probe does\nrequire them in erase. We observed unreliable erasing with a SST49LF004A\nwith these delays, so remove them if the are not required.\n\nIn review, I got the hint that \"probe_jedec goes further by making that\ncall conditional on nonzero delay\". I decided to ignore that. For\ninternal_delay, the small amount of clock cycles wasted for calling\nprogrammer_delay(0) is negligible compared to LPC cycle times. It might\nbe an issue for 5 wasted bytes on the serial line in serprog. OTOH,\nflash erase is still slow compared to 6*5 bytes on a serial port at\nreasonable speed.\n\nCorresponding to flashrom svn r1288.\n\nSigned-off-by: Michael Karcher \u003cflashrom@mkarcher.dialup.fu-berlin.de\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "f59e2637d184eef8e3ef8914ac500161804fc526",
      "tree": "ff26f6f3a14b86338723f9c9a37bb67e0ec99e34",
      "parents": [
        "42d38a9dd1ef58870635c0e003b1a37e89a51ba7"
      ],
      "author": {
        "name": "Sean Nelson",
        "email": "audiohacked@gmail.com",
        "time": "Wed Oct 20 21:13:19 2010 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed Oct 20 21:13:19 2010 +0000"
      },
      "message": "Add a reset to probe_jedec before we read the chip\u0027s IDs\n\nPrevious probes might have had too short delays for entering ID mode,\nso the chip may still be in the process of entering the ID mode. Due to\nthat, an additional delay before the reset makes sense.\nAdd FEATURE_RESET_MASK to deal cleanly with those feature bits.\n\nMaciej Pijanka tested the patch and it fixes probing for him with some\nold Atmel chips.\n\nCorresponding to flashrom svn r1216.\n\nSigned-off-by: Sean Nelson \u003caudiohacked@gmail.com\u003e\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Anders Juel Jensen \u003candersjjensen@gmail.com\u003e\nTested-by: Maciej Pijanka \u003cmaciej.pijanka@gmail.com\u003e\nAcked-by: Sean Nelson \u003caudiohacked@gmail.com\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": "4e3d0b3a244067debc0c250986bf65bc2bc182ea",
      "tree": "7e311c929ef697a3781145bc2cea68359deb2794",
      "parents": [
        "d4e5359372a6dc5facb2ea142358508fa058cf68"
      ],
      "author": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Thu Mar 25 23:18:41 2010 +0000"
      },
      "committer": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Thu Mar 25 23:18:41 2010 +0000"
      },
      "message": "Polish the flashrom code comments and outputs a bit\n\n - Fix a number of typos (found via ispell).\n\n - Use correct vendor names (as per their websites) consistently.\n\nCorresponding to flashrom svn r985.\n\nSigned-off-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\nAcked-by: Uwe Hermann \u003cuwe@hermann-uwe.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": "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": "35727f7618358ac96ab2c4746e51d277e0a3c177",
      "tree": "db29881bf400d15e99e4e1fc45d72ea3aa03c50c",
      "parents": [
        "b1bd3e85baf5db97ef33789539558a2373c03fd4"
      ],
      "author": {
        "name": "Sean Nelson",
        "email": "audiohacked@gmail.com",
        "time": "Thu Jan 28 23:55:12 2010 +0000"
      },
      "committer": {
        "name": "Sean Nelson",
        "email": "audiohacked@gmail.com",
        "time": "Thu Jan 28 23:55:12 2010 +0000"
      },
      "message": "Complete the addition of Feature Bits for all Jedec based chips\n\nAdd FEATURE_SHORT_RESET, FEATURE_LONG_RESET, and FEATURE_EITHER_RESET\nrewrite jedec functions to use getaddrmask\n\nconvert write_49f002 to write_jedec_1\nconvert write_w39v040c to write_jedec_1\nconvert probe_w39v040c to probe_jedec\nconvert write_49lf040 to write_jedec_1\nconvert write_pm29f002 to write_jedec\nconvert write_29f040b to write_jedec_1\nconvert probe_29f040b to probe_jedec\nconvert erase_chip_29f040b to erase_chip_block_jedec\nconvert erase_sector_29f040b to erase_sector_jedec\nconvert write_m29f002b to write_jedec\nconvert write_m29f002t to write_jedec\nconvert *_29f002 to *_jedec\n\ndecouple unused files from Makefile:\nam29f040b.c\nen29f002a.c\nm29f002.c\nmx29f002.c\npm29f002.c\nsst49lf040.c\nw39v040c.c\nw49f002u.c\n\nCorresponding to flashrom svn r886.\n\nSigned-off-by: Sean Nelson \u003caudiohacked@gmail.com\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Anders Juel Jensen \u003candersjjensen@gmail.com\u003e\n"
    },
    {
      "commit": "4bf4e79907d4147a37639a32e1bce2c9eaea20b7",
      "tree": "b1fd1a430202e2818df3bd4ff6168ded03d625c5",
      "parents": [
        "e9404668a19701ace750148624378461bc9fece5"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sat Jan 09 03:15:50 2010 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sat Jan 09 03:15:50 2010 +0000"
      },
      "message": "Use address mask in probe_jedec\n\nThis allows us to have one common probe_jedec function instead of half a\ndozen wrappers. The trick here is to have FEATURE_ADDR_FULL\u003d\u003d0 and thus\ndefault to unmasked addresses. That way, we only have to annotate chips\nwhich need small address masks.\n\nCorresponding to flashrom svn r840.\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": "e9404668a19701ace750148624378461bc9fece5",
      "tree": "522479a7a1cd5669f763de7e6b86aa7a93c60986",
      "parents": [
        "3646c8f31fbb4f52cac04129b8d6898fb00e1eab"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sat Jan 09 02:24:17 2010 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sat Jan 09 02:24:17 2010 +0000"
      },
      "message": "Use the register mapping feature bit\n\nAll functions which just call probe_jedec and then map flash registers\nare replaced by probe_jedec. All functions which call probe_jedec, map\nflash registers and do something else can at least eliminate mapping\nflash registers.\nFix logic inversion in probe_jedec to map flash registers on success\ninstead of on failure.\nChange a few TIMING_IGNORED to TIMING_FIXME where probe_jedec is used.\n\nTotal savings: One probe function simplified, three probe functions\neliminated.\n\nCorresponding to flashrom svn r839.\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\nAcked-by: Sean Nelson \u003caudiohacked@gmail.com\u003e\n"
    },
    {
      "commit": "c57a920f3495526102daaff052942ab05be6cde0",
      "tree": "dda6bfc4455a771f8074f7ae1c4d66debeff712a",
      "parents": [
        "009c51b06206839ea0fc1124724e5bd3e0ec149d"
      ],
      "author": {
        "name": "Sean Nelson",
        "email": "audiohacked@gmail.com",
        "time": "Mon Jan 04 17:15:23 2010 +0000"
      },
      "committer": {
        "name": "Sean Nelson",
        "email": "audiohacked@gmail.com",
        "time": "Mon Jan 04 17:15:23 2010 +0000"
      },
      "message": "Generify jedec functions by introducing an address mask\n\nThe patch converts jedec functions into mask-based generics which can\nbe used for many chip provided the only changes are the addresses are\nconverted from 0x5555/0x2AAA to 0x555/0x2AA or similar.\n\nThe patch mostly changes jedec.c, but a few other files are changed\nbecause they use the jedec functions within their own functions.\n\nThe patch also adds a copyright line to flashchips.c because of my\nrecent work in converting AMD and Atmel chips to use struct erase_block.\n\nCorresponding to flashrom svn r828.\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": "72a9a02b3864fb730ae9a8cff35266633842e324",
      "tree": "23d129299edf5dd7c00925c60fa66c3e3a23e5ae",
      "parents": [
        "63ce4bb0d26046d9de0769502740120f478d86ac"
      ],
      "author": {
        "name": "Sean Nelson",
        "email": "audiohacked@gmail.com",
        "time": "Tue Dec 22 22:15:33 2009 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Tue Dec 22 22:15:33 2009 +0000"
      },
      "message": "Convert the following chips to use struct eraseblock\n\nAm29F010A/B\nAm29F002(N)BB\nAm29F002(N)BT\nAm29F016D\nAm29F040B\nAm29F080B\nAm29LV040B\nAm29LV081B\nA29040B\nPm29F002T\nPm29F002B\n\nChange function signature of Am29 erase functions and JEDEC chip erase\nto be usable with block_erasers.\n\nCorresponding to flashrom svn r812.\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": "aa000982f40fa68ceea7ff19d77a0d5965164525",
      "tree": "c193b049a268de3d198b4b981198b6683794152e",
      "parents": [
        "2a9e2455cd4f9b9fc5421e9b6b786a9010daf934"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Thu Dec 17 16:20:26 2009 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Thu Dec 17 16:20:26 2009 +0000"
      },
      "message": "jedec: warn if toggle bit is stuck for too long and allow for delays between tries\n\nIf the JEDEC Toggle Bit algorithm needs more than 2^20 loops, it is a\ngood sign we should have used delays between toggle bit reads.\n\nTell the user about this. 2^20 loops need roughly a second depending on\nflash bus speed. One reason for excessive loops can be a slow operation\nlike erase.\n\nThe Winbond W39V040C requires a 50 ms delay between toggle bit reads\nduring erase according to the datasheet. Turns out a 2 ms delay is\nsufficient. Use a safety factor of 4 and default all erase operations\nto 8 ms delay between toggle reads. This is short enough not to have\na substantial negative impact on erase times, and should improve\nreliability.\n\nThis patch addresses the excessive toggle behaviour (observed on some\nnon-Winbond chips) and the toggle delay requirement (Winbond W39V040C).\n\nCorresponding to flashrom svn r807.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Javier Ortega Conde (aka Malkavian) \u003cmalkavian666@gmail.com\u003e\nAcked-by: Michael Karcher \u003cflashrom@mkarcher.dialup.fu-berlin.de\u003e\n"
    },
    {
      "commit": "c12fc71f74530902c04ea3a2c158d872d2b4ffea",
      "tree": "66e4f1e680d327f72cb10ec350aaced0dbe9c62a",
      "parents": [
        "d3abc651bcc5565b708e157df0864d11508b7b58"
      ],
      "author": {
        "name": "Sean Nelson",
        "email": "audiohacked@gmail.com",
        "time": "Thu Dec 17 04:22:40 2009 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Thu Dec 17 04:22:40 2009 +0000"
      },
      "message": "Skip all delays in probe_jedec() if probe_delay is 0\n\nProbe_jedec() checks the delay value and issues programmer_delay based\non the value except for delays between single chip_writeb. If a chip has\nzero probe_delay, delays between chip_writeb should be skipped as well.\n\nCorresponding to flashrom svn r805.\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": "1c296ca8bc5985168e83edcf9502bab2421d44c1",
      "tree": "ccbfa84c583ef476bca4aa6015d65b63ad291679",
      "parents": [
        "797a8346cf8f07e6acfd29a370a2f40138470d94"
      ],
      "author": {
        "name": "Michael Karcher",
        "email": "flashrom@mkarcher.dialup.fu-berlin.de",
        "time": "Fri Nov 27 17:49:42 2009 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Fri Nov 27 17:49:42 2009 +0000"
      },
      "message": "Use common jedec functionality where appropriate\n\nThe deleted function in en29f002a.c is reintroduced as\nwrite_by_byte_jedec in jedec.c as it contains no chip-specific\ninstructions. It is not yet used in other chip drivers, as key addresses\n(0x2AAA/0x5555) are often specified with less bits. After crosschecking\ndatasheets, most of the fixmes can probably be resolved as indicated in\nthem, causing significant code reduction.\n\nThe common JEDEC code for bytewise programming does not program 0xFF\nat all. The chips that had a dedicated bytewise flash function which\nhas been changed to write_jedec_1 thus changed flashing behaviour\nand the \"write\" test flag has been removed. This applies to: AMD\nAm29F002BB/Am29F002NBB AMD Am29F002BT/Am29F002NBT (TEST_OK_PREW before)\nAMIC A29002B AMIC A29002T (TEST_OK_PREW before) EON EN29F002(A)(N)B EON\nEN29F002(A)(N)T (TEST_OK_PREW before) Macronix MX29F001B (TEST_OK_PREW\nbefore) Macronix MX29F001T (TEST_OK_PREW before) Macronix MX29F002B\nMacronix MX29F002T (TEST_OK_PREW before) Macronix MX29LV040\n\nSimilar analysis should be performed for the read id stuff.\n\nCorresponding to flashrom svn r785.\n\nSigned-off-by: Michael Karcher \u003cflashrom@mkarcher.dialup.fu-berlin.de\u003e\nAcked-by: Sean Nelson \u003caudiohacked@gmail.com\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "972cec282c061dadd3c501221d20d8b6437057e7",
      "tree": "10dd150d40a182f9911df4020e2b004ef097f17e",
      "parents": [
        "1db2b759026debc8f1cd45f3182b9e14124f9c7e"
      ],
      "author": {
        "name": "Michael Karcher",
        "email": "flashrom@mkarcher.dialup.fu-berlin.de",
        "time": "Thu Nov 26 14:50:52 2009 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Thu Nov 26 14:50:52 2009 +0000"
      },
      "message": "Refine support for the JEDEC Software Data Protection\n\nThis patch removes the extremely dangerous unprotect_jedec function\nwhich is not used at all within flashrom code, and renames the\nmisleadingly named protect_jedec function to start_program_jedec.\n\nCalls to protect_jedec after flashing are removed, because a) on LPC\nchips, the command sent by protoct_jedec is not even in the datasheet\nand b) on parallel chips, the block write command issued before already\ncontained the software protection sequence, so software protection is\ndefinitely enabled.\n\nThis patch also removes two clones of protect_jedec\n\nBackground: JEDEC Software Data Protection started as an optional\nfeature, which was disabled on the first single-voltage-flash chips.\nThe software data protection is the need to prefix a write with a magic\n\"write enable\" command, while without write protection every write\naccess into the chip\u0027s address space modifies flash content. This magic\nwrite enable command also tells the flash chip that the programmer\nobviously support sending write-enable commands and turns off the \"any\nwrite modifies flash content\" mode. There also exist a two-command (6\nwrites) sequence that disables Software Data Protection completey, which\nshould only ever be used to prepare updating with a device that can\u0027t\nhandle software data protection.\n\nCorresponding to flashrom svn r783.\n\nSigned-off-by: Michael Karcher \u003cflashrom@mkarcher.dialup.fu-berlin.de\u003e\nAcked-by: Sean Nelson \u003caudiohacked@gmail.com\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "2925d6f11d1f7463385baeda6088b31d06be5714",
      "tree": "265276896cd23e63a97b18625f43a57861d01a48",
      "parents": [
        "411d7c15261f47a1ef9eb22660acf9800c6ed9f4"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed Nov 25 16:41:50 2009 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed Nov 25 16:41:50 2009 +0000"
      },
      "message": "Jedec.c was missing error handling in a few cases\n\nFix. jedec.c error handling used double negation in too many places for\nno good reason. Clean up.\n\nCorresponding to flashrom svn r779.\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": "8a8a226add906fde7b6b90687241ebb20164f9db",
      "tree": "b3eb6f832a839bd9246c4773bd99f3b107381eb9",
      "parents": [
        "11c9e687b495de6e308a7968ff40333db35058b6"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sat Nov 14 03:48:33 2009 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sat Nov 14 03:48:33 2009 +0000"
      },
      "message": "Retry correct range in write_page_write_jedec()\n\nThe automatic retry in write_page_write_jedec didn\u0027t retry flashing the\ncorrect range, essentially rendering the functionality useless.\n\nThis patch simplifies the code and fixes the bug.\n\nThanks to Luke Dashjr for testing.\n\nMark Winbond W29C040P as supported.\n\nCorresponding to flashrom svn r757.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Luke Dashjr \u003cluke_coreboot@dashjr.org\u003e\n"
    },
    {
      "commit": "5dfd3849ca7a7f7dc8d22384a6ec77e85462facb",
      "tree": "19953224b8b73c4a84b2fa92732d3c632a89171d",
      "parents": [
        "2b5cb51969456242ae1c5a45f930f865b70e704a"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Mon Oct 19 18:15:36 2009 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Mon Oct 19 18:15:36 2009 +0000"
      },
      "message": "Remove confusing out-of-date comment\n\nCorresponding to flashrom svn r751.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "a06287c9a04cfb055be958839ec18ce5e091c7fb",
      "tree": "3fb7bd7382a884657b9eccce36d3f6f0a1583edf",
      "parents": [
        "c025268340dec1a53ba5e3117cc3245fa9c4a7ea"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed Sep 23 22:01:33 2009 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed Sep 23 22:01:33 2009 +0000"
      },
      "message": "Switch SST49LF004A/B to block erase, remove the hack which simulated (unsupported) chip erase\n\nAnnotate SST49LF004B quirks for TBL#.\n\nAdd TEST_OK_PRW which is useful when a PREW chip gets a new erase\nroutine.\n\nChange a few erase function prototypes to use unsigned int instead of\nint.\n\nCorresponding to flashrom svn r731.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Luc Verhaegen \u003clibv@skynet.be\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": "414bd320ac1346db9539625975644bfa7b30281e",
      "tree": "1029c94038ad13ad5ac0b7e292c28b3135932662",
      "parents": [
        "a80cfbc3d7ebc5ebe8775652687a26e6e02247b6"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Thu Jul 23 01:33:43 2009 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Thu Jul 23 01:33:43 2009 +0000"
      },
      "message": "Verbose probe output is split across multiple lines for some probe functions\n\nThis makes visual inspection and grepping a lot harder than necessary.\nRemove line breaks where appropriate. Some error messages should end up\non stderr instead of just being displayed in verbose mode.\n\nThanks to Maciej Pijanka for testing.\n\nCorresponding to flashrom svn r660.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Stefan Reinauer \u003cstepan@coresystems.de\u003e\n"
    },
    {
      "commit": "0c854c0509ee41cff4e255d088f48484ca468eb1",
      "tree": "47478bc812481cc67f0c1d85a932a1f3fae47c1a",
      "parents": [
        "ea07f6245cb622a073a363112a95fea51429a086"
      ],
      "author": {
        "name": "Urja Rannikko",
        "email": "urjaman@gmail.com",
        "time": "Thu Jun 25 13:57:31 2009 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Thu Jun 25 13:57:31 2009 +0000"
      },
      "message": "Change chip_readb in loop to use verify_range in write_page_write_jedec (jedec.c)\n\nTested by Urja Rannikko with external flasher.\nTested by Uwe Hermann with onboard flash.\n\nCorresponding to flashrom svn r632.\n\nSigned-off-by: Urja Rannikko \u003curjaman@gmail.com\u003e\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Urja Rannikko \u003curjaman@gmail.com\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\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": "c6e1111bed4bea188c922ed27d5d00bf5efea8cd",
      "tree": "ae8c057c9f52e230cfd61ac74a58266d9733d1ff",
      "parents": [
        "48f34c66d9f91bdaee542f2ea0257210f2841a3d"
      ],
      "author": {
        "name": "Maciej Pijanka",
        "email": "maciej.pijanka@gmail.com",
        "time": "Wed Jun 03 14:46:22 2009 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed Jun 03 14:46:22 2009 +0000"
      },
      "message": "Add probe_timing information (int uS value)\n\nThis eliminates the conflicting delay requirements for old and new chips\nwith the same probing sequence.\n\nCorresponding to flashrom svn r569.\n\nSigned-off-by: Maciej Pijanka \u003cmaciej.pijanka@gmail.com\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": "01624f40eeec33c546150a240f194f057f6dd36e",
      "tree": "5ef84e3f82ae6d3d7643bc85faafe63eff3256a9",
      "parents": [
        "24f9fbe075107b58a2729a8f5d7da346ebe730e6"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Tue May 12 15:38:55 2009 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Tue May 12 15:38:55 2009 +0000"
      },
      "message": "Use helper functions chip_{read,write}[bwl] to access flash chips\n\nThe semantic patch I used in r418 to make the original conversion to\naccessor functions was missing one isomorphism:\na[b] \u003c\u003d\u003e *(a+b)\n\nThe semantic patcher Coccinelle was used to create this patch. Semantic\npatch follows:\n@@\ntypedef uint8_t;\nexpression a;\nvolatile uint8_t *b;\n@@\n- b[a]\n+ *(b + a)\n@@\nexpression a;\nvolatile uint8_t *b;\n@@\n- *(b) \u003d (a);\n+ chip_writeb(a, b);\n@@\nvolatile uint8_t *b;\n@@\n- *(b)\n+ chip_readb(b)\n@@\ntype T;\nT b;\n@@\n(\n chip_readb\n|\n chip_writeb\n)\n (...,\n- (T)\n- (b)\n+ b\n )\n\nCorresponding to flashrom svn r498.\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": "8130f2d3ec2f7c32876d470edffbe44394d84d16",
      "tree": "4b6fb8163f074056ff12d1f3d28cd911dad2aaa4",
      "parents": [
        "1455b2baea9f4379086cabf1dcc1388c478c745c"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Mon May 11 14:40:31 2009 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Mon May 11 14:40:31 2009 +0000"
      },
      "message": "Check probing results for flash contents\n\nWhen flashrom JEDEC code sends the ID command to the chip, it expects to\nsee IDs in the default flash location.\n\nHowever, sometimes the chip does not react to the ID command, either\nbecause it doesn\u0027t understand the command or because the command never\nreached it. One way to detect this is to compare ID output with flash\nchip contents for the same location. If they are identical, there is a\nhigh chance you\u0027re not actually seeing ID output. Warn the user in that\ncase.\n\nThis patch helps a lot when a chip is not recognized and we want to\ncheck if the probe responses are real IDs or just random flash chip\ncontents.\n\nThis should probably be added to all probe functions, but probe_jedec\nis called for all sizes and thus flashrom will check this condition at\nleast once per size, making sure we can cross-match the warning.\n\nCorresponding to flashrom svn r494.\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": "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": "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": "8653b004619eb3428035698f738417521ad3f026",
      "tree": "0acff75a01fd7cf4cf1c16675163080a6e1eb205",
      "parents": [
        "da4e5f3623b7d76d23d6271007c2be61941909ba"
      ],
      "author": {
        "name": "Peter Stuge",
        "email": "peter@stuge.se",
        "time": "Tue Jun 24 02:09:09 2008 +0000"
      },
      "committer": {
        "name": "Peter Stuge",
        "email": "peter@stuge.se",
        "time": "Tue Jun 24 02:09:09 2008 +0000"
      },
      "message": "Increase delay in probe_jedec() after Product ID Entry to 10ms\n\nWe should follow data sheet timing, even if chips have been tested to answer\nfaster in the field.\n\nCorresponding to flashrom svn r273 and coreboot v2 svn r3387.\n\nSigned-off-by: Peter Stuge \u003cpeter@stuge.se\u003e\nAcked-by: Peter Stuge \u003cpeter@stuge.se\u003e\n"
    },
    {
      "commit": "bc0d85722869c54f52cde7ceb773d29ea939dca1",
      "tree": "fe54ca9fb6aa7eaa1c42c6722373473130018122",
      "parents": [
        "0a0a7951314ed402615e6995702c17edb07fe359"
      ],
      "author": {
        "name": "Peter Stuge",
        "email": "peter@stuge.se",
        "time": "Sat Jun 21 01:02:20 2008 +0000"
      },
      "committer": {
        "name": "Peter Stuge",
        "email": "peter@stuge.se",
        "time": "Sat Jun 21 01:02:20 2008 +0000"
      },
      "message": "Update comment to match delay change in probe_jedec() r3373\n\nCorresponding to flashrom svn r264 and coreboot v2 svn r3375.\n\nSigned-off-by: Peter Stuge \u003cpeter@stuge.se\u003e\nAcked-by: Peter Stuge \u003cpeter@stuge.se\u003e\n"
    },
    {
      "commit": "6a9fd1dc8c1115affe39fb39a04dc6e051eb34cc",
      "tree": "016ec42c4f7887077ba440d02c4f7f5d891edb4d",
      "parents": [
        "cb5c211a480a4f38cce38b536220f7079ea5256d"
      ],
      "author": {
        "name": "Peter Stuge",
        "email": "peter@stuge.se",
        "time": "Sat Jun 21 00:19:52 2008 +0000"
      },
      "committer": {
        "name": "Peter Stuge",
        "email": "peter@stuge.se",
        "time": "Sat Jun 21 00:19:52 2008 +0000"
      },
      "message": "Increase delay in probe_jedec() to 2ms to reliably detect AT29C020\n\nRun time is increased a few 100ms but this is needed for reliability.\nI consider this trivial.\n\nCorresponding to flashrom svn r262 and coreboot v2 svn r3373.\n\nSigned-off-by: Peter Stuge \u003cpeter@stuge.se\u003e\nAcked-by: Peter Stuge \u003cpeter@stuge.se\u003e\n"
    },
    {
      "commit": "a758f5100dd6266af29d63302e745b1a3ad89bed",
      "tree": "96e3402473e7630b467b7befe97e0a03ecdc21f4",
      "parents": [
        "4e84dfb7849b1d1de298c4f5212348a3c96b5b2f"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed May 14 12:03:06 2008 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed May 14 12:03:06 2008 +0000"
      },
      "message": "Check the JEDEC vendor ID for correct parity\n\nFlash chips which can be detected by JEDEC probe routines all have\nvendor IDs with correct parity. Use a parity check as additional hint\nwhether a vendor ID makes sense. Note: Device IDs have no parity\nrequirements whatsoever.\n\nCorresponding to flashrom svn r231 and coreboot v2 svn r3308.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Peter Stuge \u003cpeter@stuge.se\u003e\n"
    },
    {
      "commit": "ae8afa9ddb709985bfd5bce38c30610cc3e47abe",
      "tree": "6d4c9d27ad37db63a247647d01ec92d20a663033",
      "parents": [
        "c2a18452b14481adffcbc894c1342404f8e737a5"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Mon Dec 31 01:49:00 2007 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Mon Dec 31 01:49:00 2007 +0000"
      },
      "message": "Add continuation ID support to jedec.c\n\nThe continuation ID code does not go further than checking for IDs of\nthe type 0x7fXX, but does this for vendor and product ID. The current\npublished JEDEC spec has a list where the largest vendor ID is 7 bytes\nlong, but all leading bytes are 0x7f. The list will grow in the future,\nand using a 64bit variable will not be enough anymore.\nBesides that, it seems that the location of the ID byte after the first\ncontinuation ID byte is very vendor specific, so we may have to revisit\nthat code some time in the future.\n\n(Suggestion for a new encoding:\nUse a two-byte data type for the ID, the lower byte contains the only\nnon-0x7f byte, the upper byte contains the number of 0x7f bytes used as\nprefix, which is the bank number minus 1 the vendor ID appears in.)\n\nAdd support for EON EN29F002AT.\n\nCorresponding to flashrom svn r171 and coreboot v2 svn r3030.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Corey Osgood \u003ccorey.osgood@gmail.com\u003e\n"
    },
    {
      "commit": "03d2826d21015f3f874e2ddaf834920b8fd80b3d",
      "tree": "3e2d2d79adbc8d57e41123594d70201cad9da90e",
      "parents": [
        "97a647014dfe966ab2cd4966e487b18a5c807530"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Tue Nov 13 14:56:54 2007 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Tue Nov 13 14:56:54 2007 +0000"
      },
      "message": "Fix ATMEL 29C020 detection with flashrom\n\nThe JEDEC probe routine had a delay of 10 us after entering ID mode\nand this was insufficient for the 29C020. The data sheet claims we\nhave to wait 10 ms, but tests have shown that 20 us suffice. Allow for\nvariations in chip delays with a factor of 2 safety margin.\n\nCorresponding to flashrom svn r159 and coreboot v2 svn r2962.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\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": "fa496928690b691e085ed97634c45a3b917afc7b",
      "tree": "b4ce65a3a243f9d420b2e39e02ba412d29ed9d85",
      "parents": [
        "ac30934194fde85d50d46506cfe356c77cc47cc8"
      ],
      "author": {
        "name": "Ronald G. Minnich",
        "email": "rminnich@gmail.com",
        "time": "Fri Oct 12 21:22:40 2007 +0000"
      },
      "committer": {
        "name": "Ronald G. Minnich",
        "email": "rminnich@gmail.com",
        "time": "Fri Oct 12 21:22:40 2007 +0000"
      },
      "message": "Changes to support the K8N-NEO3, first tested at Google on GSOC day :-)\n\nAlso minor changes to remove tab-space combinations where possible. \n\nCorresponding to flashrom svn r144 and coreboot v2 svn r2850.\n\nSigned-off-by: Ronald G. Minnich \u003crminnich@gmail.com\u003e\nSigned-off-by: David Hendricks \u003cdavid.hendricks@gmail.com\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": "51582f282ba230178aec0226ec6098460a2a25da",
      "tree": "bbb6f4bfdbaa94a46047f0774f3bc009b3214547",
      "parents": [
        "966dc20cc330ba90a8e51e52c70303e41045ff9e"
      ],
      "author": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Thu Aug 23 10:20:40 2007 +0000"
      },
      "committer": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Thu Aug 23 10:20:40 2007 +0000"
      },
      "message": "Move code into *.c files, there\u0027s no reason to have it in header files\n\nCorresponding to flashrom svn r127 and coreboot v2 svn r2745.\n\nSigned-off-by: Uwe Hermann \u003cuwe@hermann-uwe.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": "8c5299f83cc2e9032dfd8f01f2d2c9dd4be16007",
      "tree": "8d824237d6351da691b9aab1c30e6e8f60d1d142",
      "parents": [
        "ef54abab332d706f835a79633f92849de2b15806"
      ],
      "author": {
        "name": "Giampiero Giancipoli",
        "email": "gianci@email.it",
        "time": "Wed Nov 22 00:29:51 2006 +0000"
      },
      "committer": {
        "name": "Stefan Reinauer",
        "email": "stefan.reinauer@coreboot.org",
        "time": "Wed Nov 22 00:29:51 2006 +0000"
      },
      "message": "Fix write_page_write_jedec() in jedec.c\n\nAdded a check-reprogram loop in the same function, to come around the\nhigh page write failure rate on some boards.\n\nThis patch includes the changes suggested by Ron to simplify the control\nflow.\n\nIt also includes trivial changes by me to make flashrom build on newer\nsystems (libpci needs libz now). I also made a small type case compile\nfix and proper return code handling in one or two places.\n\nCorresponding to flashrom svn r78 and coreboot v2 svn r2505.\n\nSigned-off-by: Giampiero Giancipoli \u003cgianci@email.it\u003e\nSigned-off-by: Ronald G Minnich \u003crminnich@gmail.com\u003e\nSigned-off-by: Stefan Reinauer \u003cstepan@coresystems.de\u003e\nAcked-by: Stefan Reinauer \u003cstepan@coresystems.de\u003e\n"
    },
    {
      "commit": "028f46fd2e639e981dca09a857fcd070ce376042",
      "tree": "40927d1c646d773133a88072f0c895931e67910a",
      "parents": [
        "f8337dd3986692bd1788ab254879d7f8424367e1"
      ],
      "author": {
        "name": "Stefan Reinauer",
        "email": "stefan.reinauer@coreboot.org",
        "time": "Wed Aug 23 14:33:54 2006 +0000"
      },
      "committer": {
        "name": "Stefan Reinauer",
        "email": "stefan.reinauer@coreboot.org",
        "time": "Wed Aug 23 14:33:54 2006 +0000"
      },
      "message": "Removing $Id$ tags as they have no meaning in SVN\n\nCorresponding to flashrom svn r60 and coreboot v2 svn r2386.\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": "efa28589b1c2c402e62c8d5b1e32e5e45b164c2d",
      "tree": "745e579906240cfce9f3f6bca9b1d5e63630289e",
      "parents": [
        "1b8b66000f6c8f18193cd93fff1e852faaa9715f"
      ],
      "author": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Wed Dec 08 20:10:01 2004 +0000"
      },
      "committer": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Wed Dec 08 20:10:01 2004 +0000"
      },
      "message": "Add -E option for chip erase, remove duplicated code\n\nCorresponding to flashrom svn r30 and coreboot v2 svn r1815.\n"
    },
    {
      "commit": "1b8b66000f6c8f18193cd93fff1e852faaa9715f",
      "tree": "243aa40ddfcb6c075f1c4dc329e003b341033091",
      "parents": [
        "d11f36180814c45b82142b168c95c6515278a926"
      ],
      "author": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Wed Dec 08 02:10:33 2004 +0000"
      },
      "committer": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Wed Dec 08 02:10:33 2004 +0000"
      },
      "message": "Add retry to write_byte_program_jedec(), 99% success rate\n\nCorresponding to flashrom svn r29 and coreboot v2 svn r1814.\n"
    },
    {
      "commit": "98bea8aba5a1dad1abc2b1d191f873e1d45d5b50",
      "tree": "9d6bd66ce4d93b8adabc83aeae4e1c94c94ff862",
      "parents": [
        "ad8ffd2e7646b8d5a5c08cab9252f69f1156a6fe"
      ],
      "author": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Tue Dec 07 03:15:51 2004 +0000"
      },
      "committer": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Tue Dec 07 03:15:51 2004 +0000"
      },
      "message": "SST49LF00[2,3,4] should use the same driver as 49LF008\n\nCorresponding to flashrom svn r27 and coreboot v2 svn r1812.\n"
    },
    {
      "commit": "1f4d653d8cb34ad17de722eef45bc9db9bbb1aa3",
      "tree": "41b598f0e40964f48d3a66944954b452d37496da",
      "parents": [
        "9ffaf0b42308d26cfc7bf2711ea1c662c3093e0d"
      ],
      "author": {
        "name": "Ronald G. Minnich",
        "email": "rminnich@gmail.com",
        "time": "Thu Sep 30 16:37:01 2004 +0000"
      },
      "committer": {
        "name": "Ronald G. Minnich",
        "email": "rminnich@gmail.com",
        "time": "Thu Sep 30 16:37:01 2004 +0000"
      },
      "message": "Support for sst firmware hub\n\nCorresponding to flashrom svn r25 and coreboot v2 svn r1651.\n"
    },
    {
      "commit": "afdfce8cbc4f844abf59dc2c15020cb84cfbd890",
      "tree": "6f2774935ae65bf48daef31bcafda40058c90151",
      "parents": [
        "8b8897a5fd6325ae4709e3066107c3e419cd7fd6"
      ],
      "author": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Sat Mar 27 00:31:03 2004 +0000"
      },
      "committer": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Sat Mar 27 00:31:03 2004 +0000"
      },
      "message": "Data type consistence\n\nCorresponding to flashrom svn r20 and coreboot v2 svn r1487.\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": "070647d114d767a3b31df2659fd351047d6eee61",
      "tree": "99ce48e5885eb126d77df1560bfa91a0f3aa3fdd",
      "parents": [
        "3a3dea72604bc59bf44eeaa23b06fc21a7093bbc"
      ],
      "author": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Mon Mar 22 22:19:17 2004 +0000"
      },
      "committer": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Mon Mar 22 22:19:17 2004 +0000"
      },
      "message": "More jedec standard consolidation\n\nCorresponding to flashrom svn r18 and coreboot v2 svn r1464.\n"
    },
    {
      "commit": "3a3dea72604bc59bf44eeaa23b06fc21a7093bbc",
      "tree": "9fd7861688575fa5d3010d48bd978162458d2565",
      "parents": [
        "f51a766f89a3d37ef4f6e4898621b91c8912e566"
      ],
      "author": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Sat Mar 20 17:39:43 2004 +0000"
      },
      "committer": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Sat Mar 20 17:39:43 2004 +0000"
      },
      "message": "Remove unused #define and function declaration\n\nCorresponding to flashrom svn r17 and coreboot v2 svn r1459.\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": "73eca80d9b28bfc38fa4b8d2ef9c580840133a38",
      "tree": "5b23c4ae48b72c02b38f1dac9f074a3b17be2b36",
      "parents": [
        "180850e2c05a19e5e160cb32c14c1c5192068130"
      ],
      "author": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Fri Mar 19 22:10:07 2004 +0000"
      },
      "committer": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Fri Mar 19 22:10:07 2004 +0000"
      },
      "message": "Remove duplicated code\n\nCorresponding to flashrom svn r14 and coreboot v2 svn r1456.\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": "56439427500146bf125b081406275be55fa5d9e3",
      "tree": "5a0b1c587d80a2fcc65fe89acdaa8f203d0d31b3",
      "parents": [
        "6041bcda7ac8c8a7470bba58e8b26cdfd5746679"
      ],
      "author": {
        "name": "Ronald G. Minnich",
        "email": "rminnich@gmail.com",
        "time": "Fri Sep 06 16:58:14 2002 +0000"
      },
      "committer": {
        "name": "Ronald G. Minnich",
        "email": "rminnich@gmail.com",
        "time": "Fri Sep 06 16:58:14 2002 +0000"
      },
      "message": "Can now burn 82802ab\n\nCorresponding to coreboot v1 svn r633.\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"
    }
  ]
}
