)]}'
{
  "log": [
    {
      "commit": "89e6818a8e60e6e2ddc7d09da0e79b615ea36629",
      "tree": "70a471bf9672b8a9d7e2061e2088ab32a045b21e",
      "parents": [
        "dc34409b2016a851ce05b593d3fceb45b0816afa"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Feb 14 11:55:04 2026 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Feb 28 14:54:31 2026 +0000"
      },
      "message": "udelay: Add cast for `tv_nsec` to always meet format string\n\nThere are libc\u0027s around where `tv_nsec` isn\u0027t a `long`, e.g. glibc\non x32. Casting to long should always be safe, as `tv_nsec` is de-\nfined to be within [0, 999\u0027999\u0027999] (on this code path even within\n[0, 100]).\n\nChange-Id: Ic6318401db2134069c588c96e730b493496e8efb\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/400\n"
    },
    {
      "commit": "96140c7c3e3d61445b996eba62f9ebb3a4a9c760",
      "tree": "05fa3534e13eef1b4bb575e4b0c25794ed4a36fe",
      "parents": [
        "d9aa81ed903efac208083a0933e2ff4643f9fb54"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.huber@secunet.com",
        "time": "Thu May 02 21:57:08 2024 +0000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Feb 10 15:56:04 2026 +0000"
      },
      "message": "udelay: Include \u003cdelay.h\u003e from libpayload\n\nChange-Id: I41aef9d03e9150353c4f3ca82dc198bd0156e044\nSigned-off-by: Nico Huber \u003cnico.huber@secunet.com\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/398\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "5a09d1e1c10750dce2618ef847d54c0cd96e3cae",
      "tree": "bd7777531a7bab3726058d38ddaa2f5e94bc8622",
      "parents": [
        "03ad4a42545591863f3f01be31e15d221cf29c75"
      ],
      "author": {
        "name": "Brian Norris",
        "email": "briannorris@chromium.org",
        "time": "Thu Feb 29 16:29:51 2024 -0800"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 09 13:21:35 2024 +0000"
      },
      "message": "udelay: Lower the sleep vs delay threshold\n\nBy default, we busy-loop (a.k.a., \"delay\") for most delay values, and\nonly allow sleeping for large delays. But busy-looping is expensive, as\nit wastes CPU cycles.\n\nIn a simple program that runs a bunch of samples of [1] over 1000\nsamples, I find that for 0.1 s (100000 us):\n\n 64x2 AMD CPU (CONFIG_HZ\u003d250 / CONFIG_NO_HZ_FULL\u003dy):\n   min diff: 60 us\n   max diff: 831 us\n   mean diff: 135 us\n\n 4+2 Mediatek MT8183 CPU (CONFIG_HZ\u003d1000 / CONFIG_NO_HZ_IDLE\u003dy /\n                          sysctl kernel.timer_highres\u003d1):\n   min diff: 70 us\n   max diff: 1556 us\n   mean diff: 146 us\n\n 4+2 Mediatek MT8183 CPU (CONFIG_HZ\u003d1000 / CONFIG_NO_HZ_IDLE\u003dy /\n                          sysctl kernel.timer_highres\u003d0):\n   min diff: 94 us\n   max diff: 7222 us\n   mean diff: 1201 us\n\ni.e., maximum 1.5% error, typically ~0.1% error with high resolution\ntimers. Max 7% error, typical 1% error with low resolution timers.\n\nThis seems reasonable.\n\n[1] Stripped / pseudocode:\n\n  clock_gettime(CLOCK_MONOTONIC, before);\n  nanosleep({ .tv_nsec \u003d usecs * 1000 }, NULL);\n  clock_gettime(CLOCK_MONOTONIC, after);\n  diff \u003d abs((after - before) / 1000 - usecs));\n\nChange-Id: Ifd4821c66c5564f7c975c08769a6742f645e9be0\nSigned-off-by: Brian Norris \u003cbriannorris@chromium.org\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/97\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "6c68363d0c1db0fd5e2ac95fb4adeaf254f669a7",
      "tree": "d04d0449d10e7d37744447aebae8530af02edd9a",
      "parents": [
        "beeb8bc925bef6973e1c9fa6c4fd26a4113a1777"
      ],
      "author": {
        "name": "Jacob Garber",
        "email": "jgarber1@ualberta.ca",
        "time": "Fri Jun 21 15:33:09 2019 -0600"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jun 23 21:39:48 2019 +0000"
      },
      "message": "tree: Include missing headers for function prototypes\n\nThese files all contain functions whose prototypes are in header files,\nso make sure those header files are included.\n\nChange-Id: I0189a1550bf90d4a0b87dcef9f8a8449590cc9d7\nSigned-off-by: Jacob Garber \u003cjgarber1@ualberta.ca\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom/+/33668\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "0cacb11c6252b6e1f4f0a2a33b47717ff22995d9",
      "tree": "062ee516f90ae51baf0f5c0f8ffe27c8c91bc4bb",
      "parents": [
        "1cf369fb59546e705c5ca9368e629681c98b2893"
      ],
      "author": {
        "name": "Elyes HAOUAS",
        "email": "ehaouas@noos.fr",
        "time": "Mon Feb 04 12:16:38 2019 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Mar 04 15:46:25 2019 +0000"
      },
      "message": "Remove trailing whitespace\n\nChange-Id: I1ff9418bcf150558ce7c97fafa3a68e5fa59f11e\nSigned-off-by: Elyes HAOUAS \u003cehaouas@noos.fr\u003e\nReviewed-on: https://review.coreboot.org/c/31227\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Philippe Mathieu-Daudé \u003cf4bug@amsat.org\u003e\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\n"
    },
    {
      "commit": "1b365931ea8a9d5766972c17c7cf91b9de595fb1",
      "tree": "36230b9c41038bc2e97c090907bb9c8472d9b71a",
      "parents": [
        "e083880279119677e443fc16b4694f8c81bf2c40"
      ],
      "author": {
        "name": "Elyes HAOUAS",
        "email": "ehaouas@noos.fr",
        "time": "Wed Apr 25 16:03:51 2018 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Apr 25 14:36:38 2018 +0000"
      },
      "message": "udelay.c: Remove trailing whitespace\n\nChange-Id: Ibd77c2a99bd839c01ae7ff058365eda7e30db261\nSigned-off-by: Elyes HAOUAS \u003cehaouas@noos.fr\u003e\nReviewed-on: https://review.coreboot.org/25824\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": "8624e8cfa88ebd17ecf3bfd55c8dc1a799f47573",
      "tree": "f61a16e60f193b5e3f13a377a81d1308b1b4f0ad",
      "parents": [
        "2d62572d1dd0c37eb626fd8faa17b26690f20b15"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Nov 05 21:46:33 2012 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jun 22 11:14:15 2017 +0000"
      },
      "message": "udelay: Use clock_gettime() if available and precise\n\nInstead of calibrating our busy loop against a coarse clock, check if\na precise clock is available and loop against that. The former is unre-\nliable by definition on any modern system that may dynamically reclock\nthe processor.\n\nv2: Apparently _POSIX_MONOTONIC_CLOCK being defined only means that\n    the library knows about CLOCK_MONOTONIC. So check for its support\n    at runtime and fall back to CLOCK_REALTIME if it\u0027s missing.\n\nTEST\u003dManually added a 10s loop and compared to real time. Run\n     on Linux RPi3, Linux x86 and my original use case Linux in\n     VirtualBox (Linux host).\n\nChange-Id: I85ad359823875237ada9cd027af3017d62e9a235\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/19391\nReviewed-by: Stefan Reinauer \u003cstefan.reinauer@coreboot.org\u003e\nReviewed-by: Philippe Mathieu-Daudé \u003cf4bug@amsat.org\u003e\nReviewed-by: David Hendricks \u003cdavid.hendricks@gmail.com\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "839db6dccd416417f15771beef234b54cd058627",
      "tree": "78ecc458c60ef8849dd9ecfc51aefdfa68501d9f",
      "parents": [
        "8cd0c73fb54658e9176c4b78a57bc9e99eab4faf"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sat Nov 14 02:55:22 2015 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sat Nov 14 02:55:22 2015 +0000"
      },
      "message": "Use nanosleep() instead of usleep() where available\n\nUsleep() has been obsolete for quite a while.\nThe only target that uses it without alternative is DOS.\n\nCorresponding to flashrom svn r1899.\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": "b0eee9b8d649efc3db9a6c5f333b0fff5204a979",
      "tree": "fcba10fdf1451557f3bc58de6f39d669e5106c46",
      "parents": [
        "be62d3fc07194ec13f091aa06beff0a032f1a418"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sat Jan 10 09:32:50 2015 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sat Jan 10 09:32:50 2015 +0000"
      },
      "message": "Unify target OS and CPU architecture checks\n\nWe do CPU architecture checks once for the makefile in arch.h and\nonce for HW access abstraction in hwaccess.c. This patch unifies\nrelated files so that they can share the checks to improve\nmaintainability and reduce the chance of inconsistencies.\nFurthermore, it refines some of the definitions, which\n - adds \"support\" for AARCH64 and PPC64,\n - adds big-endian handling on arm as well as LE handling on PPC64,\n - fixes compilation of internal.c on AARCH64 and PPC64.\n\nAdditionally, this patch continues to unify all OS checks in\nflashrom by adding a new helper macro IS_WINDOWS.\n\nThe old header file for architecture checking is renamed to platform.h\nto reflect its broader scope and all new macros are add in there.\n\nCorresponding to flashrom svn r1864.\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": "73dc0db7258121f260eeda04f50531f3eda943ee",
      "tree": "752c2840a2c207360bcabaebfdbd66ceabc26c87",
      "parents": [
        "02437458a603c112e503abc63ad32b09cfbc23f3"
      ],
      "author": {
        "name": "Maksim Kuleshov",
        "email": "mmcx@mail.ru",
        "time": "Fri Apr 05 08:06:10 2013 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Fri Apr 05 08:06:10 2013 +0000"
      },
      "message": "Usleep() is not found in all versions of MinGW, use Sleep() on Windows\n\nHandle long sleeps on non-Windows correctly.\n\nCorresponding to flashrom svn r1667.\n\nSigned-off-by: Maksim Kuleshov \u003cmmcx@mail.ru\u003e\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": "1c6d2ff03d16acf87c96d019153dcd10c779a5f6",
      "tree": "b211be01cc5f25fa78321dd434e42aafa9ea3f0e",
      "parents": [
        "6745d6f39d2642908035c7e4a6481f5349c767a7"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Mon Aug 27 00:44:42 2012 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Mon Aug 27 00:44:42 2012 +0000"
      },
      "message": "Some ISO C fixes\n\nThis patch just fixes a limited number of bits not conforming to c99 by using\n - __asm__ instead of just asm\n - {0} instead of {} for struct initialization\n - h_addr_list[0] instead of h_addr to access the host address in\n   struct hostent\n - #include \u003cstrings.h\u003e where needed (for ffs and strcasecmp)\n\nBased on a previous patch by Carl-Daniel.\n\nCorresponding to flashrom svn r1585.\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": "97bc95ce2be4e17db150a83098673cedf5b50b40",
      "tree": "726389fc8d2e3875645d8a3774f9899c4009faf0",
      "parents": [
        "7f517a710308133fd33f2fd9e10fa4e8c6a190e5"
      ],
      "author": {
        "name": "Patrick Georgi",
        "email": "patrick.georgi@secunet.com",
        "time": "Tue Mar 08 07:17:44 2011 +0000"
      },
      "committer": {
        "name": "Patrick Georgi",
        "email": "pgeorgi@google.com",
        "time": "Tue Mar 08 07:17:44 2011 +0000"
      },
      "message": "Fix and improve libpayload platform support\n\n- Fix various minor compile issues (eg. include necessary standard headers)\n- Fix compilation of libpayload code paths\n- Provide libpayload support in Makefile\n- Add make target \"libflashrom.a\" which links non-CLI code to static\n  library\n\nCorresponding to flashrom svn r1280.\n\nSigned-off-by: Patrick Georgi \u003cpatrick.georgi@secunet.com\u003e\nTested-with-DOS-crosscompiler-by: Idwer Vollering \u003cvidwer@gmail.com\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "73f8ec8b1e623681c8d6f3a9df142da2a8bed7e3",
      "tree": "4736c1577d6fcb12ce297b723b9a95a1310a1fd8",
      "parents": [
        "ff30d8a5383553d4df035cdcf0e24a0b44d4241a"
      ],
      "author": {
        "name": "Peter Huewe",
        "email": "peterhuewe@gmx.de",
        "time": "Mon Jan 24 19:15:51 2011 +0000"
      },
      "committer": {
        "name": "Stefan Reinauer",
        "email": "stefan.reinauer@coreboot.org",
        "time": "Mon Jan 24 19:15:51 2011 +0000"
      },
      "message": "Fix sparse warning: Using plain integer as NULL pointer\n\nThis patch fixes the \"using plain integer as NULL pointer\" warnings\ngenerated by running sparse on the flashrom source.\n\nCorresponding to flashrom svn r1255.\n\nSigned-off-by: Peter Huewe \u003cpeterhuewe@gmx.de\u003e\nAcked-by: Mathias Krause \u003cmathias.krause@secunet.com\u003e\nAcked-by: Stefan Reinauer \u003cstepan@coreboot.org\u003e\n"
    },
    {
      "commit": "a9095a95450860e7ea96bb6c21ca4f34e406d3d6",
      "tree": "f79ff036266bb09b180f27b3552dd30116a221e4",
      "parents": [
        "5cfc94a98be9fa2317220c76367fe1792c328461"
      ],
      "author": {
        "name": "Patrick Georgi",
        "email": "patrick.georgi@coresystems.de",
        "time": "Thu Sep 30 17:03:32 2010 +0000"
      },
      "committer": {
        "name": "Patrick Georgi",
        "email": "pgeorgi@google.com",
        "time": "Thu Sep 30 17:03:32 2010 +0000"
      },
      "message": "Add support for building flashrom against libpayload\n\nThis doesn\u0027t include changes to the frontend which must be\ndone separately, so this won\u0027t work out of the box.\nThis code was tested on hardware.\n\nCorresponding to flashrom svn r1184.\n\nSigned-off-by: Patrick Georgi \u003cpatrick.georgi@coresystems.de\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\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": "9f5f2158a743fc2d7de63c05d38d8133c6b4d15d",
      "tree": "ea4bbb6158dd337b600e537a4b139004c5ff527c",
      "parents": [
        "b5b161b260b119d90a7f22e1c8ec1174de5eacf9"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Fri Jun 04 23:20:21 2010 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Fri Jun 04 23:20:21 2010 +0000"
      },
      "message": "Gcc and clang can check format strings of printf-like functions\n\nSince we don\u0027t support any other compilers right now, enable that\nextension unconditionally.\n\nFix the bugs found by format string checking.\n\nCorresponding to flashrom svn r1032.\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": "b929d110c1ef02bced974e1fe8ca7b3561ed87fa",
      "tree": "f10a8c278c45e8bde5afd2b92434612af1afec4c",
      "parents": [
        "301703bc5b84d5e4a38298469ef00fdfe9aaa6a2"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Thu Jun 03 21:48:13 2010 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Thu Jun 03 21:48:13 2010 +0000"
      },
      "message": "Measure OS timer precision to refine calibration\n\nDo not trust the OS at all and measure timer precision before\ncalibrating the delay loop and use that measurement to get reasonable\nprecision for our own delay code.\n\nPrint a measurement for a delay of 4x the OS timer resolution.\n\nBe precise about how bad the deviation was if we had to recalculate.\n\nTested on Windows XP, 32 bit, built using MinGW by Uwe. Tested on\nFreeDOS v1.0 Final, 32bit, built using DJGPP 4.3.2 by Idwer.\n\nCorresponding to flashrom svn r1028.\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: Idwer Vollering \u003cvidwer+lists.flashrom@gmail.com\u003e\n"
    },
    {
      "commit": "831e8f4abb29f1ff66ebb8ab5ff496050ff677f7",
      "tree": "8d19ef4871587dcaf0a3a1dec562dd6ef09024b6",
      "parents": [
        "4178760241c3b3dc46a806ee3621a2eb97f4cca5"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sun May 30 22:24:40 2010 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sun May 30 22:24:40 2010 +0000"
      },
      "message": "Remove unneeded #include statements completely\n\nUnistd.h was only used to get a definition of NULL in all files. Add our\nown NULL #define and remove unistd.h from flash.h\nstdio.h has no place in flash.h, it should be included only in files\nwhich really need it.\nAdd #include statements in individual .c files where needed.\n\nReplace a few printf with msg_* to eliminate the need for stdio.h.\n\nCorresponding to flashrom svn r1021.\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": "f640401e92c3a00e26e246064b86af4971594097",
      "tree": "089b9624eb035a525b54b1344a617519203406e6",
      "parents": [
        "ad0010a67a9d9fdfe03164bec8d10607b882cec2"
      ],
      "author": {
        "name": "Urja Rannikko",
        "email": "urjaman@gmail.com",
        "time": "Fri Apr 09 00:02:38 2010 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Fri Apr 09 00:02:38 2010 +0000"
      },
      "message": "Reinitialize the delay loop upon recalibration\n\nFix an unescaped % in a format specifier.\n\nCorresponding to flashrom svn r992.\n\nSigned-off-by: Urja Rannikko \u003curjaman@gmail.com\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "253101e69e217e02802b6f7de453cb6b209f1dfa",
      "tree": "7a5267c05ea313a181af44e5d7f2e8ffb202b2dc",
      "parents": [
        "957d2605426531e763d35c0d8984f34a8d9dd5c3"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed Mar 31 23:55:06 2010 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed Mar 31 23:55:06 2010 +0000"
      },
      "message": "Refine and fix the delay loop calculation\n\nThe current delay loop calculation is still from revision 1 of flashrom,\nand since then it had a logic bug which caused all delays to be twice as\nlong as intended.\n\nFix the delay duration.\n\nProtect against delay loop overflows.\n\nDetect a non-working delay loop.\n\nChange the delay loop itself to ensure clever compiler optimizers won\u0027t\neliminate it (as happens with clang/llvm in the current code). Some\npeople suggested machine-specific asm, but the empty asm statement with\nthe loop counter as register/memory input has the benefit of being\nperfectly cross-platform and working in gcc and clang.\n\nIf time goes backwards (catastrophical NTP time difference, manual\ntime change), timing measurements were shot because the new-old time\nsubtraction yielded negative numbers which weren\u0027t handled correctly\nbecause the variable is unsigned. Work around that issue (a fix is\nmathematically impossible).\n\nIf time goes forward too fast, pick the biggest possible timing\nmeasurement with a guaranteed overflow avoidance for all timing\ncalculations.\n\nCheck four times if the calculated timing is at most 10% too fast. This\naddresses OS scheduler interactions, e.g. being scheduled out during\nmeasurement which inflates measurements.\n\nIf the timing looks like garbage, recalculate the timer values up to\nfour times before giving up.\n\nAvoid division by zero in rare cases where timing measurements for a 250\nms delay returned 0 us elapsed.\n\nCorresponding to flashrom svn r990.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Maciej Pijanka \u003cmaciej.pijanka@gmail.com\u003e\n"
    },
    {
      "commit": "b811461abb08bb7cada46c6d081a7eaa164db352",
      "tree": "23c529184ba0c0aa7732e44e8ba9b380935e48b3",
      "parents": [
        "4e3d0b3a244067debc0c250986bf65bc2bc182ea"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sat Mar 27 16:16:01 2010 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sat Mar 27 16:16:01 2010 +0000"
      },
      "message": "The delay loop is probably one of the oldest pieces of code\n\nClean up code duplication and measure timing of 10/100/1000/10000 us\ndelays.\n\nCorresponding to flashrom svn r986.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Maciej Pijanka \u003cmaciej.pijanka@gmail.com\u003e\n"
    },
    {
      "commit": "36cc1c8144db8c0a84d7b79dd3011fb2a0398cfb",
      "tree": "0522bdd685b608f066795f75bb905b31c3b56b43",
      "parents": [
        "552420b0d677bfb8d3b0b487255b244964c948e9"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Thu Dec 24 03:11:55 2009 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Thu Dec 24 03:11:55 2009 +0000"
      },
      "message": "Internal.c was always compiled in because it hosted the function internal_delay()\n\nMove that function to udelay.c and compile internal.c only if really\nneeded. physmap.c is only needed if the programmer is internal or a PCI\ncard. Make its compilation conditional.\n\nCorresponding to flashrom svn r822.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Idwer Vollering \u003cvidwer@gmail.com\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": "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": "7b2969be533f389604430e43c0732031ebdedee2",
      "tree": "a7a0f9007136af9d3288b4e3509fe6fa4b4734d7",
      "parents": [
        "97e8f22b025da9c2f04e25069d335041ab747a11"
      ],
      "author": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Wed Apr 15 10:52:49 2009 +0000"
      },
      "committer": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Wed Apr 15 10:52:49 2009 +0000"
      },
      "message": "Some coding style and consistency fixes\n\nCorresponding to flashrom svn r429 and coreboot v2 svn r4117.\n\nSigned-off-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\nAcked-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\n"
    },
    {
      "commit": "394131ef1447aa9019f9b03797955fb4fdda74bd",
      "tree": "8be1ee454d786c1aae0ea45be068e22b2a7c70a5",
      "parents": [
        "a88daa731de1612641a9a8df2a63f5529ac7a6b1"
      ],
      "author": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Sat Oct 18 21:14:13 2008 +0000"
      },
      "committer": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Sat Oct 18 21:14:13 2008 +0000"
      },
      "message": "Coding-style fixes for flashrom, partly indent-aided\n\nCorresponding to flashrom svn r326 and coreboot v2 svn r3669.\n\nSigned-off-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\nAcked-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\n"
    },
    {
      "commit": "80d667b518c5ff4f42e39f0c5c2b9b7d646fe515",
      "tree": "f857c102a8c2a296337dbb3553ae75cb9228d0ee",
      "parents": [
        "483b8f0c0d55a4dd13e3624214b18e523c688df7"
      ],
      "author": {
        "name": "Peter Stuge",
        "email": "peter@stuge.se",
        "time": "Sun Sep 07 03:14:27 2008 +0000"
      },
      "committer": {
        "name": "Peter Stuge",
        "email": "peter@stuge.se",
        "time": "Sun Sep 07 03:14:27 2008 +0000"
      },
      "message": "Debug print actual time base calculated by myusec_calibrate_delay()\n\nCorresponding to flashrom svn r314 and coreboot v2 svn r3569.\n\nSigned-off-by: Peter Stuge \u003cpeter@stuge.se\u003e\nAcked-by: Peter Stuge \u003cpeter@stuge.se\u003e\n"
    },
    {
      "commit": "a502dcea3df45326898b99dc9f5f3744a776339d",
      "tree": "9746755cc3c75130ac3a05755ebbbcaff8fd81f3",
      "parents": [
        "dca0ab18840775e1d423faff55045066344ccb87"
      ],
      "author": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Wed Oct 17 23:55:15 2007 +0000"
      },
      "committer": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Wed Oct 17 23:55:15 2007 +0000"
      },
      "message": "Some cosmetic cleanups in the flashrom code and output\n\nCorresponding to flashrom svn r151 and coreboot v2 svn r2873.\n\nSigned-off-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\nAcked-by: Stefan Reinauer \u003cstepan@coresystems.de\u003e\n"
    },
    {
      "commit": "ac30934194fde85d50d46506cfe356c77cc47cc8",
      "tree": "42f96e75d5a630600ee793947d7e9aed32da771d",
      "parents": [
        "17d00abf0a1977fc4b10f64296671af7f903c6bc"
      ],
      "author": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Wed Oct 10 17:42:20 2007 +0000"
      },
      "committer": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Wed Oct 10 17:42:20 2007 +0000"
      },
      "message": "Revert my last cleanup patch\n\nCorresponding to flashrom svn r143 and coreboot v2 svn r2847.\n\nSigned-off-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\nAcked-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\n"
    },
    {
      "commit": "17d00abf0a1977fc4b10f64296671af7f903c6bc",
      "tree": "cd8fa2c2d1225ed2221e26f50f10300a00f9e212",
      "parents": [
        "144ede66ca3fcea7f891b31642181fbc6ebec643"
      ],
      "author": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Wed Oct 10 16:31:30 2007 +0000"
      },
      "committer": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Wed Oct 10 16:31:30 2007 +0000"
      },
      "message": "Cosmetic changes to make the flashrom output more consistent\n\nCorresponding to flashrom svn r142 and coreboot v2 svn r2846.\n\nSigned-off-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\nAcked-by: Uwe Hermann \u003cuwe@hermann-uwe.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": "ca7f0e4668bf48c3e76458bfd009a575b5d78227",
      "tree": "1cbd7bb4428d872420e8a01ff25e0295092b730c",
      "parents": [
        "83c6c5391c22d397af94d9291f7e064e94647d91"
      ],
      "author": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Sun Sep 09 20:02:45 2007 +0000"
      },
      "committer": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Sun Sep 09 20:02:45 2007 +0000"
      },
      "message": "Add missing license header to udelay.c\n\nI\u0027m self-ack\u0027ing this, as the origin of the code in udelay.c (and thus\nthe license and copyright owner) is pretty clear.\n\nThe code which is now in udelay.c was split out from flash_rom.c in r1428,\nand flash_rom.c, in turn, has been around since the beginning and had a\n\u0027Copyright 2000 Silicon Integrated System Corporation\u0027 line as well as the\nusual GPLv2-or-later license header.\n\nCorresponding to flashrom svn r135 and coreboot v2 svn r2767.\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": "7038564346f660ce043d7942398f3e8a3a2db7ad",
      "tree": "2d6573bc465284fa3fc57fe2afaa8f7b1dabd1ad",
      "parents": [
        "8e3a600123110d47076926cb8ee7c68195658f20"
      ],
      "author": {
        "name": "Stefan Reinauer",
        "email": "stepan@coresystems.de",
        "time": "Fri Apr 06 11:58:03 2007 +0000"
      },
      "committer": {
        "name": "Stefan Reinauer",
        "email": "stefan.reinauer@coreboot.org",
        "time": "Fri Apr 06 11:58:03 2007 +0000"
      },
      "message": "Trivial (cosmetic) cleanup\n\n* Only open /dev/mem once and do it early.\n* Drop extern for function prototypes.\n* Minimize ts5300 impact in probe_flash()\n\nThis cleanup will making ICH7 SPI support quite some easier.\n\nCorresponding to flashrom svn r100 and coreboot v2 svn r2585.\n\nSigned-off-by: Stefan Reinauer \u003cstepan@coresystems.de\u003e\nAcked-by: Stefan Reinauer \u003cstepan@coresystems.de\u003e\n"
    },
    {
      "commit": "0b7afe65fb83bece914bb314e2c707d6d4b7ec4c",
      "tree": "3dbee147f9d1e292cd914e216f77790c5a895345",
      "parents": [
        "3ad2518939fb496df4544c7876cf412597bb3b03"
      ],
      "author": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Sun Apr 01 19:44:21 2007 +0000"
      },
      "committer": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Sun Apr 01 19:44:21 2007 +0000"
      },
      "message": "Coding style fixes\n\nCorresponding to flashrom svn r97 and coreboot v2 svn r2577.\n\nSigned-off-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\nAcked-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\n"
    },
    {
      "commit": "184a4040333ccfe624d8765864458b21bb55d1e1",
      "tree": "730168012ceeb517f9c3d14e02f21be6c75cf107",
      "parents": [
        "8a10d5a631bddff703fdcfd5b33ac76cdc02fb63"
      ],
      "author": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Sat Nov 26 21:55:36 2005 +0000"
      },
      "committer": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Sat Nov 26 21:55:36 2005 +0000"
      },
      "message": "Flashrom update from Stefan, resolve issue 21\n\nCorresponding to flashrom svn r34 and coreboot v2 svn r2111.\n"
    },
    {
      "commit": "761bf1bdb7268f8818dd22b15e944365afdf1459",
      "tree": "ecbd632c87d64c6651f84a705ce4c3861108069d",
      "parents": [
        "73eca80d9b28bfc38fa4b8d2ef9c580840133a38"
      ],
      "author": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Sat Mar 20 16:46:10 2004 +0000"
      },
      "committer": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Sat Mar 20 16:46:10 2004 +0000"
      },
      "message": "Consolidate more jedec standard code\n\nCorresponding to flashrom svn r15 and coreboot v2 svn r1457.\n"
    },
    {
      "commit": "cf29de879843ec2293483eeb609191a834a4863c",
      "tree": "17ed4f4c1e385338b6470fa3d2974668d6b8b5fc",
      "parents": [
        "cec287936c8e00039f634cbfeb2cc64b457f2da0"
      ],
      "author": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Thu Mar 18 19:40:07 2004 +0000"
      },
      "committer": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Thu Mar 18 19:40:07 2004 +0000"
      },
      "message": "Fix 32bit vs. 64bit long int arithematics\n\nCorresponding to flashrom svn r8 and coreboot v2 svn r1434.\n"
    },
    {
      "commit": "cec287936c8e00039f634cbfeb2cc64b457f2da0",
      "tree": "aa1590de7e9a82938b5c037bb89947cb907344c7",
      "parents": [
        "cbbf1259817896cd6339e7517404ba64aa85ed8d"
      ],
      "author": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Wed Mar 17 23:03:37 2004 +0000"
      },
      "committer": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Wed Mar 17 23:03:37 2004 +0000"
      },
      "message": "Use standard product ID exit method for w49f002u\n\nCorresponding to flashrom svn r7 and coreboot v2 svn r1433.\n"
    },
    {
      "commit": "cbbf1259817896cd6339e7517404ba64aa85ed8d",
      "tree": "96c21cf62ad8fd400edd11e6e68cb75fdbd6d6bf",
      "parents": [
        "3770a1132ee0e43836eb907229277506af05ebc8"
      ],
      "author": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Wed Mar 17 22:22:08 2004 +0000"
      },
      "committer": {
        "name": "Ollie Lho",
        "email": "ollie@sis.com.tw",
        "time": "Wed Mar 17 22:22:08 2004 +0000"
      },
      "message": "Move utility functions into new source files\n\nCorresponding to flashrom svn r6 and coreboot v2 svn r1428.\n"
    }
  ]
}
