)]}'
{
  "log": [
    {
      "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": "0cea753aff33b78051febadf8786df83144b5ee7",
      "tree": "8972ea6cf44e249659ddad7ea3d9aa2dedffc0b6",
      "parents": [
        "ab9f25893f1fa87cbbaf656869e346391eccdb31"
      ],
      "author": {
        "name": "Aarya Chaumal",
        "email": "aarya.chaumal@gmail.com",
        "time": "Mon Jul 04 18:21:50 2022 +0530"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 19 13:50:18 2023 +0000"
      },
      "message": "spi: Add function to probe erase command opcode for all spi_master\n\nAdd a field, probe_opcode, to struct spi_master which points to a\nfunction returning a bool by checking if a given command is supported by\nthe programmer in use. This is used for getting a whitelist of commands\nsupported by the programmer, as some programmers like ichspi don\u0027t\nsupport all opcodes.\n\nMost programmers use the default function, which just returns true.\nICHSPI and dummyflasher use their specialized function.\n\nflashrom-stable: Added `.probe_opcode` for `dirtyjtag_spi`, `ich7`.\n\nChange-Id: I6852ef92788221f471a859c879f8aff42558d36d\nSigned-off-by: Aarya Chaumal \u003caarya.chaumal@gmail.com\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/65183\nOriginal-Reviewed-by: Thomas Heijligen \u003csrc@posteo.de\u003e\nOriginal-Reviewed-by: Anastasia Klimchuk \u003caklm@chromium.org\u003e\nOriginal-Reviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nOriginal-Reviewed-by: Felix Singer \u003cfelixsinger@posteo.net\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72539\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "621208c341cb400b9b13b5874da49504818a9f49",
      "tree": "1a851dd54e96add7fe6e30de98fe3b5e4424a775",
      "parents": [
        "56684d9a2ed8a0f878472d5aa0518a3200526812"
      ],
      "author": {
        "name": "Edward O\u0027Callaghan",
        "email": "quasisec@google.com",
        "time": "Wed Sep 07 22:21:39 2022 +1000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 29 12:29:02 2023 +0000"
      },
      "message": "drivers/: Make \u0027fallback_{un}map\u0027 the default unless defined\n\nDrop the explicit need to specify the default \u0027fallback_{un}map\u0027\ncallback function pointer from the \u0027programmer_entry\u0027 struct.\nThis is a reasonable default for every other driver in the tree\nwith only a select few exceptions [atavia, serprog, dummyflasher\nand internal].\n\nThus this simplifies driver development and paves way\nto remove the \u0027programmer\u0027 global handle.\n\nflashrom-stable: Updated `dirtyjtag_spi` which was added earlier.\n\nChange-Id: I5ea7bd68f7ae2cd4af9902ef07255ab6ce0bfdb3\nSigned-off-by: Edward O\u0027Callaghan \u003cquasisec@google.com\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/67404\nOriginal-Reviewed-by: Felix Singer \u003cfelixsinger@posteo.net\u003e\nOriginal-Reviewed-by: Anastasia Klimchuk \u003caklm@chromium.org\u003e\nOriginal-Reviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72360\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "56684d9a2ed8a0f878472d5aa0518a3200526812",
      "tree": "020c2d8db0e05a74981b5b381c37febd46fb796d",
      "parents": [
        "78ed668a924db5dd78c3530655127f895728fe59"
      ],
      "author": {
        "name": "Edward O\u0027Callaghan",
        "email": "quasisec@google.com",
        "time": "Wed Sep 07 10:47:45 2022 +1000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 29 12:29:02 2023 +0000"
      },
      "message": "drivers/: Make \u0027internal_delay\u0027 the default unless defined\n\nDrop the explicit need to specify the default \u0027internal_delay\u0027\ncallback function pointer in the programmer_entry struct.\nThis is a reasonable default for every other driver in the\ntree with only the two exceptions of ch341a_spi.c and serprog.c.\n\nThus this simplifies driver development.\n\nflashrom-stable: Updated `dirtyjtag_spi` which was added earlier.\n\nChange-Id: I17460bc2c0aebcbb48c8dfa052b260991525cc49\nSigned-off-by: Edward O\u0027Callaghan \u003cquasisec@google.com\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/67391\nOriginal-Reviewed-by: Peter Marheine \u003cpmarheine@chromium.org\u003e\nOriginal-Reviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nOriginal-Reviewed-by: Thomas Heijligen \u003csrc@posteo.de\u003e\nOriginal-Reviewed-by: Felix Singer \u003cfelixsinger@posteo.net\u003e\nOriginal-Reviewed-by: Nikolai Artemiev \u003cnartemiev@google.com\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72359\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "3d5be0b5f65fe191839b567cfc3bc8b76abeeef5",
      "tree": "e49001b4796c9a0e54b21a6eda49dd8a0308ea50",
      "parents": [
        "433dc1c647f0601dd5c7aa5d0c0584dc6ef80c96"
      ],
      "author": {
        "name": "Thomas Heijligen",
        "email": "thomas.heijligen@secunet.de",
        "time": "Tue Oct 12 20:31:45 2021 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 29 12:29:02 2023 +0000"
      },
      "message": "hwaccess: replace flashrom specific macros by compiler defines\n\nReplace the remaining IS_* macros with the associated compiler defines\n\nChange-Id: Ia0f022d12390722816066d292e1878824adc613c\nSigned-off-by: Thomas Heijligen \u003cthomas.heijligen@secunet.de\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/58280\nOriginal-Reviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72248\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "c63d9184aaef45d5a970f045ae901bf9f7221108",
      "tree": "424ae7b122e2ff722d5fdf3ba486b701bd9bd052",
      "parents": [
        "72c02ff4b0ea4111d4f2632ba102506683607749"
      ],
      "author": {
        "name": "Anastasia Klimchuk",
        "email": "aklm@chromium.org",
        "time": "Tue Jul 06 16:18:44 2021 +1000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 29 12:29:02 2023 +0000"
      },
      "message": "spi_master: Use new API to register shutdown function\n\nThis allows spi masters to register shutdown function in spi_master\nstruct, which means there is no need to call register_shutdown in init\nfunction, since this call is now a part of register_spi_master.\n\nAs a consequence of using new API, two things are happening here:\n1) No resource leakage anymore in case register_shutdown() would fail,\n2) Fixed propagation of register_spi_master() return values.\n\nBasic testing: when I comment out free(data) in linux_spi_shutdown, test\nfails with error\n../linux_spi.c:235: note: block 0x55a4db276510 allocated here\nERROR: linux_spi_init_and_shutdown_test_success leaked 1 block(s)\nMeans, shutdown function is invoked.\n\nTested:  1) builds and ninja test including CB:56911\n2) On ARMv7 device\nflashrom -p linux_spi -V\n-\u003e using linux_spi, chip found\n3) On x86_64 AMD device\nflashrom -p internal -V\n-\u003e this is actually using sb600spi, chip found\n\nflashrom-stable: Updated `dirtyjtag_spi` which was added earlier.\n\nChange-Id: Ib60300f9ddb295a255d5ef3f8da0e07064207140\nSigned-off-by: Anastasia Klimchuk \u003caklm@chromium.org\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/56103\nOriginal-Reviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nOriginal-Reviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nOriginal-Reviewed-by: Edward O\u0027Callaghan \u003cquasisec@chromium.org\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72231\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "03f3a6d13e8bd62ef84ef6a4a6f21d6fb8b2a7b8",
      "tree": "0fc0ec55b781d30d58a9b2fbc4b2e0c1ec83aab2",
      "parents": [
        "5e08e3e829e3f736e18cef7b8f4a8929c9e06257"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue May 11 17:53:34 2021 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 29 12:29:02 2023 +0000"
      },
      "message": "programmer: Make use of new register_spi_master() API\n\nPass pointers to dynamically allocated data to register_spi_master().\nThis way we can avoid some mutable globals.\n\nflashrom-stable: Updated `dirtyjtag_spi` and `dediprog`\n                 that were added/refactored earlier.\n\nChange-Id: Id7821f1db3284b7b5b3d0abfd878b979c53870a1\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/54067\nOriginal-Reviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72200\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "5e08e3e829e3f736e18cef7b8f4a8929c9e06257",
      "tree": "cfe9483275582e2ff2a50628824cf8e842c1feef",
      "parents": [
        "6c33185c81f4aab0d048be7c4b68dca1a91800c2"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue May 11 17:38:14 2021 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 29 12:29:02 2023 +0000"
      },
      "message": "programmer: Smoothen register_spi_master() API\n\nIt was impossible to register a const struct spi_master that would\npoint to dynamically allocated `data`. Fix that so that we won\u0027t\nhave to create more mutable globals.\n\nChange-Id: I0c753b3db050fb87d4bbe2301a7ead854f28456f\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/54066\nOriginal-Reviewed-by: Anastasia Klimchuk \u003caklm@chromium.org\u003e\nOriginal-Reviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72179\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\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": "88e87c568678ab36c997c1c807d97b3b1e7091e6",
      "tree": "fdd492a475759d50abca6c1fa5b61a7970bee032",
      "parents": [
        "927c1f036fc6b3d9b6cb84c5cacc8e78ec7d28cc"
      ],
      "author": {
        "name": "Thomas Heijligen",
        "email": "thomas.heijligen@secunet.com",
        "time": "Fri Aug 05 17:56:20 2022 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 05 16:35:01 2023 +0000"
      },
      "message": "tree: Check properly if libusb is initialized\n\nThe dediprog, developerbox_spi and stlinkv3_spi programmers only check\nif the libusb_context is not NULL after the initialization. But\nfollowing the API documentation from libusb, the context is undefined\nunless the init function returns 0. Fix this by checking the return\nvalue instead of the libusb_context to see if the initialization was\nsuccessful.\n\nhttps://libusb.sourceforge.io/api-1.0/group__libusb__lib.html\n\nChange-Id: Ia45ccd3fa2239dfccd821be46a09c86426cb22e5\nSigned-off-by: Thomas Heijligen \u003cthomas.heijligen@secunet.com\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/66460\nOriginal-Reviewed-by: Felix Singer \u003cfelixsinger@posteo.net\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/71475\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "4f9cd8bf947580bc87d947956aff9e28766405ce",
      "tree": "bdd63b1889c1df94ae072904b18eb21d4d300b3f",
      "parents": [
        "fafc3d8048d9e26b708323805868d127eeecc12e"
      ],
      "author": {
        "name": "Rick Altherr",
        "email": "rick@oxidecomputer.com",
        "time": "Mon Dec 13 17:10:00 2021 -0800"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 05 16:15:22 2023 +0000"
      },
      "message": "dediprog: wait for spi bulk read xfers to finish\n\ndediprog_bulk_read_poll()\u0027s finish argument allows it to be used in two\ndistinct cases: where dediprog_bulk_read_poll will be called as part of\na loop (finish\u003d0) and where dediprog_bulk_read_poll should wait for all\noutstanding transfers to finish (finish\u003d1).  In both cases,\ndediprog_bulk_read_poll() calls libusb to process events with a 10\nsecond timeout.\n\nAfter dediprog_spi_bulk_read() has queued the last transfers, it calls\ndediprog_bulk_read_poll() with finish\u003d0 when it should be finish\u003d1.\nfinish\u003d0 just happens to work because frequently the transfers finish in\nthe 10 second timeout.\n\nSigned-off-by: Rick Altherr \u003crick@oxidecomputer.com\u003e\nChange-Id: If7cb541742c8620358c8e04275d8316131b2d1ab\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/60087\nOriginal-Reviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nOriginal-Reviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/71441\nReviewed-by: Rick Altherr \u003ckc8apf@kc8apf.net\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "116d56d2265cbe97bd5b97f008c0c6ef3cadce63",
      "tree": "bd88f18ce3bb89f4f2da3a0e43d55fbf45ad7f6c",
      "parents": [
        "4b918a132c00c8a7075cab9a21e74f90e37ff489"
      ],
      "author": {
        "name": "Angel Pons",
        "email": "th3fanbus@gmail.com",
        "time": "Mon Mar 22 11:28:00 2021 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 05 16:15:22 2023 +0000"
      },
      "message": "dediprog.c: Split up compound conditional and swap two operations\n\nregister_spi_master now becomes the last operation in init function,\nwhich is consistent with other spi masters.\n\nIn addition, the patch fixes propagation of register_spi_master return\nvalues, which is also consistent with other spi masters.\n\nTested: ninja test\n\nChange-Id: Ib7e0179da39279e32a8497466b044b69ec836da8\nSigned-off-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nSigned-off-by: Anastasia Klimchuk \u003caklm@chromium.org\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/51706\nOriginal-Reviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/71427\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "7d973885e5c323ac64d5414f88289efdd4221753",
      "tree": "0a505688f6931ea8605b8fdf7f821c6c0b845716",
      "parents": [
        "b31f7ac1a04c9c90256723531aa36001d5399a0a"
      ],
      "author": {
        "name": "Anastasia Klimchuk",
        "email": "aklm@chromium.org",
        "time": "Wed Jul 14 09:33:50 2021 +1000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 05 16:15:22 2023 +0000"
      },
      "message": "dediprog.c: Drop dediprog_ prefix for spi data struct members\n\nThe name of the struct type already contains dp_ prefix, so\nprefix doesn\u0027t need to be repeated in members name.\n\nTested: builds and ninja test\n\nChange-Id: I688d50926b78a6c3f1c5a8ba4ef88a0d5b495bd0\nSigned-off-by: Anastasia Klimchuk \u003caklm@chromium.org\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/56415\nOriginal-Reviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/71423\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "b31f7ac1a04c9c90256723531aa36001d5399a0a",
      "tree": "8010942dbcc00249755853d5cf4be5071df4d5f1",
      "parents": [
        "eec477f1a6f4ba718e713438532c81d9a9b7db72"
      ],
      "author": {
        "name": "Anastasia Klimchuk",
        "email": "aklm@chromium.org",
        "time": "Mon Jul 12 14:18:37 2021 +1000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 05 16:15:22 2023 +0000"
      },
      "message": "dediprog.c: Refactor singleton states into reentrant pattern\n\nMove global singleton states into a struct and store within\nthe spi_master data field for the life-time of the driver.\n\nThis is one of the steps on the way to move spi_master data\nmemory management behind the initialisation API, for more\ncontext see other patches under the same topic \"register_master_api\".\n\nTested: builds and ninja test\n\nflashrom-stable: backported to old master API\n\nChange-Id: I72085e750af97b94dfa94f2ebf2a134e41a2ec8d\nSigned-off-by: Anastasia Klimchuk \u003caklm@chromium.org\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/56414\nOriginal-Reviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/71422\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "66e04562f48cfb1f2266c316c81693ea73371a60",
      "tree": "0c991211a974da842919497034e6a58f45131989",
      "parents": [
        "ee6d548becb29d4fce00a6f7dbe0c39e1e7be160"
      ],
      "author": {
        "name": "Anastasia Klimchuk",
        "email": "aklm@chromium.org",
        "time": "Mon Jun 28 17:03:52 2021 +1000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 05 16:15:22 2023 +0000"
      },
      "message": "dediprog: Separate shutdown from failed init cleanup\n\nShutdown function was covering two different jobs here: 1) the actual\nshutdown which is run at the end of the driver\u0027s lifecycle and\n2) cleanup in cases when initialisation failed. Now, shutdown is only\ndoing its main job (#1), and the driver itself is doing cleanup\nwhen init fails (#2).\n\nThe good thing is that now resources are released/closed immediately\nin cases when init fails (vs shutdown function which was run at some\npoint later), and the driver leaves clean space after itself if init\nfails.\n\nAnd very importantly this unlocks API change which plans to move\nregister_shutdown inside register master API, see\nhttps://review.coreboot.org/c/flashrom/+/51761\n\nChange-Id: I3273da907614a042d50090338c337dfd64695354\nSigned-off-by: Anastasia Klimchuk \u003caklm@chromium.org\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/55887\nOriginal-Reviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nOriginal-Reviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/71398\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "cc853d84ed2f8ecafc1f6daa443f8baa4c871805",
      "tree": "8e5f3e0b7a75d272a109e20af5aeeeec11dfebf7",
      "parents": [
        "7e1345602641114c8eeb5cfef992bf1da8d7fa6a"
      ],
      "author": {
        "name": "Thomas Heijligen",
        "email": "thomas.heijligen@secunet.de",
        "time": "Tue May 04 15:32:17 2021 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 05 16:15:22 2023 +0000"
      },
      "message": "programmer_table: move each entry to the associated programmer source\n\nChange-Id: I3d02bd789f0299e936eb86819b3b15b5ea2bb921\nSigned-off-by: Thomas Heijligen \u003cthomas.heijligen@secunet.de\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/52946\nOriginal-Reviewed-by: Anastasia Klimchuk \u003caklm@chromium.org\u003e\nOriginal-Reviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/71373\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "17d16032d68931361a2a20de243ac95752f3292a",
      "tree": "b867e11a84bc543352163e6852ebc758accab958",
      "parents": [
        "a32d47f14886376e71d84f224c7580f1be1b58e8"
      ],
      "author": {
        "name": "Patrick Rudolph",
        "email": "patrick.rudolph@9elements.com",
        "time": "Wed Aug 26 10:02:08 2020 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 05 16:15:22 2023 +0000"
      },
      "message": "dediprog: Add 4BA support on SF600 protocol version 3\n\nTested on SF600 protocol 3 V:7.2.45\nFixes the error message:\n\"4-byte address requested but master can\u0027t handle 4-byte addresses.\"\n\nChange-Id: I2d91f940eb246b928a9d386eefb4195f9ccf1bb5\nSigned-off-by: Patrick Rudolph \u003cpatrick.rudolph@9elements.com\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/44811\nOriginal-Reviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\nOriginal-Reviewed-by: David Hendricks \u003cdavid.hendricks@gmail.com\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/71352\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "a32d47f14886376e71d84f224c7580f1be1b58e8",
      "tree": "16452af658e4d7e1284a5dd5cca233bba7c32ea9",
      "parents": [
        "8eaef7d9d3e189fcffd0afbe55c8ddbadcc524f8"
      ],
      "author": {
        "name": "Patrick Rudolph",
        "email": "patrick.rudolph@9elements.com",
        "time": "Wed Aug 26 07:58:16 2020 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 05 16:15:22 2023 +0000"
      },
      "message": "dediprog: Disable SPI_MASTER_NO_4BA_MODES for additional devices\n\nThe SPI_MASTER_NO_4BA_MODES is for SPI master not keeping the flash\npowered between programming commands. Tests on the following devices\nshowed that the power is stable accross commands:\n\n* SF100 protocol 2 V:6.5.03\n* SF600 protocol 3 V:7.2.45\n\nChange-Id: Iee0ba972245b9317ef86345432fec5fc32614888\nSigned-off-by: Patrick Rudolph \u003cpatrick.rudolph@9elements.com\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/44776\nOriginal-Reviewed-by: David Hendricks \u003cdavid.hendricks@gmail.com\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/71351\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "317c67b37ba66f50c810938deacbc2e9ce5e11ac",
      "tree": "ccf7dd8441b93636b503a60ab5342ffb809652e5",
      "parents": [
        "4f29bb799b4672eebcc0bdfc6fb544b2b5544b6f"
      ],
      "author": {
        "name": "Edward O\u0027Callaghan",
        "email": "quasisec@google.com",
        "time": "Fri Oct 09 12:56:53 2020 +1100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 05 16:07:04 2023 +0000"
      },
      "message": "dediprog.c: Fix layering violation of default_spi_read\n\ndefault_spi_read() calls spi_read_chunked() with the correct\nmax_read value of 16 set in the spi master struct.\n\nChange-Id: Ic0897f74056e3d723a33c063ed0bd8cb6e88ba45\nSigned-off-by: Edward O\u0027Callaghan \u003cquasisec@google.com\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/46232\nOriginal-Reviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nOriginal-Reviewed-by: Sam McNally \u003csammc@google.com\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/71326\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\n"
    },
    {
      "commit": "c3685189816e538f5db89e68d1151c5601dc9e52",
      "tree": "bf6fe43212d9ad0af8723df929570d6cd141d1e8",
      "parents": [
        "cdb290e40cf977b7eb2d21b125f6117ad554dfde"
      ],
      "author": {
        "name": "David Hendricks",
        "email": "david.hendricks@gmail.com",
        "time": "Tue Jun 23 17:36:09 2020 -0700"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 05 16:07:04 2023 +0000"
      },
      "message": "dediprog: Correct REQTYPE_OTHER_OUT macro\n\nIt\u0027s not used anywhere, but it should be correct if we continue to\nkeep it in.\n\nChange-Id: I8a6941c2906dda2c5aac5e0af3364fd2ac5773f3\nSigned-off-by: David Hendricks \u003cdavid.hendricks@gmail.com\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/42763\nOriginal-Reviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/71313\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\n"
    },
    {
      "commit": "9bb8a322e991b899a6faff4ec14d2f4c6dba447d",
      "tree": "466f98faf8e1f425b5c3144e399008bf14ac8b35",
      "parents": [
        "542b1f04869e7ac42b84800675f08f617ddf3f2d"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue May 24 15:07:34 2022 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Dec 30 01:16:52 2022 +0100"
      },
      "message": "flashchips,spi25: Replace `.wrea_override` with FEATURE_4BA_EAR_1716\n\nThere are two competing sets of instructions to access the extended\naddress register of 4BA SPI chips. Some chips even support both sets.\n\nSo far, we assumed the 0xc5/0xc8 instructions by default and allowed\nto override the write instructions with the `.wrea_override` field.\nThis has some disadvantages:\n\n* The additional field is easily overlooked. So when adding a new\n  flash chip, one might assume only 0xc5/0xc8 are supported.\n\n* We cannot describe flash chips completely that allow both\n  instructions (and some programmers may be picky about which\n  instructions can be used).\n\nTherefore, replace the `.wrea_override` field with a feature flag.\n\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nChange-Id: I6d82f24898acd0789203516a7456fd785907bc10\nTicket: https://ticket.coreboot.org/issues/357\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/64636\nOriginal-Reviewed-by: Thomas Heijligen \u003csrc@posteo.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/70993\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "542b1f04869e7ac42b84800675f08f617ddf3f2d",
      "tree": "9516bc3f06c3fc5d67203328e524b967b5d36901",
      "parents": [
        "a8258d76aa2fb7c5f2e2085a0d1bab6804bf7a7c"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue May 24 14:30:12 2022 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Dec 30 01:16:52 2022 +0100"
      },
      "message": "flashchips: Rename FEATURE_4BA_EXT_ADDR -\u003e _EAR_C5C8\n\nThere are two competing sets of instructions to access the extended\naddress register of 4BA SPI chips. Some chips even support both sets.\nTo prepare for other instructions than the default 0xc5/0xc8, rename\nthe original feature flag.\n\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nChange-Id: Iacb7b68a9e3444fe28873ff0fe5e3fab16643c8c\nTicket: https://ticket.coreboot.org/issues/357\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/64635\nOriginal-Reviewed-by: Thomas Heijligen \u003csrc@posteo.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/70992\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "5eca427ae64519b70d1c4ccfb427305ca9974ba0",
      "tree": "1ca22ef1e0072a76650fdd182206844f8ebddd7d",
      "parents": [
        "1bbc501f79319cc6c8d839bc44fa55e96afab33a"
      ],
      "author": {
        "name": "Edward O\u0027Callaghan",
        "email": "quasisec@google.com",
        "time": "Sun Apr 12 17:27:53 2020 +1000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Dec 30 01:16:34 2022 +0100"
      },
      "message": "const\u0027ify flashctx to align signatures with cros flashrom\n\nThe ChromiumOS flashrom fork has since const\u0027ify flashctx\nin a few places. This aligns the function signatures to\nmatch with downstream to ease forward porting patches\nout of downstream back into mainline flashrom.\n\nThis patch is minimum viable alignment and so feedback is\nwelcome.\n\nChange-Id: Iff6dbda13cb0d941481c0d204b9c30895630fbd1\nSigned-off-by: Edward O\u0027Callaghan \u003cquasisec@google.com\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/40324\nOriginal-Reviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/70933\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "b822ce85aaed8c6dfa8f5e1e2354db5c9db50509",
      "tree": "2c7f7e02cb143b306995128b1f52e5ee6b7a4f88",
      "parents": [
        "2e3e10669d719545968ddec3b44b8a9363f4b432"
      ],
      "author": {
        "name": "Medicine Yeh",
        "email": "medicinehy@gmail.com",
        "time": "Thu Dec 17 15:40:42 2020 +0800"
      },
      "committer": {
        "name": "Felix Singer",
        "email": "felixsinger@posteo.net",
        "time": "Thu Sep 29 17:05:31 2022 +0000"
      },
      "message": "dediprog: Fix segmentation fault on no device found\n\nlibusb_exit() call is done by dediprog_open() under the\nret \u003d\u003d 1 condition. Removing this line has no impact on\nany flow and side effect of the program.\n\nChange-Id: I38b3f3ee3f9d46845df1404791f4a4782320aa7c\nSigned-off-by: Medicine Yeh \u003cmedicinehy@gmail.com\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom/+/48688\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nReviewed-by: Edward O\u0027Callaghan \u003cquasisec@chromium.org\u003e\nReviewed-by: Stefan Reinauer \u003cstefan.reinauer@coreboot.org\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom/+/67869\nReviewed-by: Felix Singer \u003cfelixsinger@posteo.net\u003e\n"
    },
    {
      "commit": "301ae22b456a040d8944daa0268aa97aa93a517f",
      "tree": "31fcd3538c0d36fa43c392a86fc4c6383809cf0a",
      "parents": [
        "83c56b870bcf0d241993813b9f695c2118532f7a"
      ],
      "author": {
        "name": "Ryan O\u0027Leary",
        "email": "ryanoleary@google.com",
        "time": "Mon Jun 24 19:14:33 2019 -0700"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Nov 15 09:29:37 2019 +0000"
      },
      "message": "dediprog.c: Add id parameter to dediprog programmer\n\nWhen multiple dediprog programmers are connected, the \u0027id\u0027 parameter\nallows you to specify which one to use. The id is a string like SF012345\nor DP012345. The value is printed on a sticker on the back of the dediprog.\n\nThis is an improvement over the \u0027device\u0027 parameter which is based on\nenumeration order and changes when you plug/unplug devices or reboot the\nmachine.\n\nTo find the id without the sticker, run flashrom with the -V option.\nThis prints the ids as they are enumerated.  Alternatively, with dpcmd,\nyou can use the --list-device-id and --fix-device commands to list and\nwrite device ids respectively.\n\nNote this only supports SF100 at the moment, but SF600 support is\npossible with more work.\n\nChange-Id: I4281213ab02131feb5d47bf66118a001cec0d219\nSigned-off-by: Ryan O\u0027Leary \u003cryanoleary@google.com\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom/+/34160\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "961f4a1f29787cbb6bd9a8a43b6ac4f3f0d024c0",
      "tree": "13023be2c6cc0140cbfa97dee108a441e696b638",
      "parents": [
        "b417c0c2d2616feff30cc87316a278055da8c64a"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Oct 04 17:34:22 2019 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Oct 05 23:26:25 2019 +0000"
      },
      "message": "Fix more sign-compare issues\n\nThe one in the `dummyflasher` is a little peculiar. We actually never\nknew the type of the `st_size` field in `struct stat`. It happens to\nbe `signed` in some systems (e.g. DJGPP).\n\nChange-Id: If36ba22606021400b385ea6083eacc7b360c20c5\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom/+/35800\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Jacob Garber \u003cjgarber1@ualberta.ca\u003e\nReviewed-by: Patrick Georgi \u003cpgeorgi@google.com\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": "deeac7e41a311a0806af0e65a2ce5c6673f9cf92",
      "tree": "2ff1082bf9ed049c2863deff9a6d66b6980b1812",
      "parents": [
        "959aafa53eeae4f22766b9d098e5ca952af8c070"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Apr 22 00:09:42 2017 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jun 27 10:25:15 2019 +0000"
      },
      "message": "spi: Drop spi_controller type\n\nNot needed anymore. Drop it fast before it encourages anyone to\nviolate layers again!\n\nChange-Id: I8eda93b429e3ebaef79e22aba76be62987e496f4\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom/+/33651\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\n"
    },
    {
      "commit": "afc3ad64300bbcc14266e645beec897ef06df13d",
      "tree": "d356edb82af5f5d530c36626b575467c80136211",
      "parents": [
        "cd8aeba7f1cee4c2bd1f8598009fc3e6e7afd8bb"
      ],
      "author": {
        "name": "Jacob Garber",
        "email": "jgarber1@ualberta.ca",
        "time": "Mon Jun 24 16:05:28 2019 -0600"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Jun 26 07:25:01 2019 +0000"
      },
      "message": "tree: Make internal variables static\n\nAll these variables are only used in the files they are defined in, so\nthey can be made static.\n\nChange-Id: I1e55138adef540e9d3a2237aa5b289cb338c0608\nSigned-off-by: Jacob Garber \u003cjgarber1@ualberta.ca\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom/+/33747\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "477e1693c830d3246c4fd7caae8a2f2b8e9f49c1",
      "tree": "1c0680caa6ef647771fec6994e474af6de76e552",
      "parents": [
        "d8b2e808cd46986f945ba9cf3b90c70fe58de9c6"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Jun 18 23:56:01 2019 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Jun 21 11:54:37 2019 +0000"
      },
      "message": "dediprog: Bail out on unsupported, long transfers\n\nChange-Id: I7b16701597909c015f98199e73ebb7d923f2b072\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom/+/33614\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: David Hendricks \u003cdavid.hendricks@gmail.com\u003e\nReviewed-by: Ryan O\u0027Leary\nReviewed-by: ron minnich \u003crminnich@gmail.com\u003e\n"
    },
    {
      "commit": "ba22411335f26601a76dbdf0d74a71e932b7cff8",
      "tree": "aaefbff11150db7ffd80d0ef2a1e3ea4d33e875d",
      "parents": [
        "7eb38aa7dbd45cbc040ac513ed4375995246aa93"
      ],
      "author": {
        "name": "Patrick Rudolph",
        "email": "patrick.rudolph@9elements.com",
        "time": "Tue Jun 04 12:21:10 2019 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jun 06 13:04:57 2019 +0000"
      },
      "message": "dediprog: Allow 4BA on all protocol V2 devices\n\nTested on dediprog SF100 protocol V2 (firmware V:6.5.03).\nAssume it works fine on SF200 protocol V2, too.\n\nChange-Id: I8822b79f46876feff0fd443f711c57dffb67b349\nSigned-off-by: Patrick Rudolph \u003cpatrick.rudolph@9elements.com\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom/+/33195\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "7eb38aa7dbd45cbc040ac513ed4375995246aa93",
      "tree": "0b96573c7ec755ca09aa8799501e307284f337e6",
      "parents": [
        "17890b37f362e551e886506f39e7bf7181419457"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.huber@secunet.com",
        "time": "Thu Mar 21 15:42:54 2019 +0100"
      },
      "committer": {
        "name": "David Hendricks",
        "email": "david.hendricks@gmail.com",
        "time": "Tue Jun 04 13:54:54 2019 +0000"
      },
      "message": "dediprog: Implement 4BA EAR mode for protocol v1\n\nWith an SF100 and protocol version 1, using the extended address\nregister of the flash chip seems safe. Make use of that and remove\nthe broken 4BA modes flag.\n\nTested with SF100 V:5.1.9 and W25Q256FV.\n\nChange-Id: If926cf3cbbebf88231116c4d65bafc19d23646f6\nSigned-off-by: Nico Huber \u003cnico.huber@secunet.com\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom/+/32016\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: David Hendricks \u003cdavid.hendricks@gmail.com\u003e\n"
    },
    {
      "commit": "93db6e16895287b7ac3a8a8f7f4a4f176547b7ed",
      "tree": "5f7d8dcfce6b7bb62829251b381526fbdc2f5497",
      "parents": [
        "cb97368328bc68698ab7e58a6d692635dfb1b1c7"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Sep 30 01:18:43 2018 +0200"
      },
      "committer": {
        "name": "David Hendricks",
        "email": "david.hendricks@gmail.com",
        "time": "Mon Apr 15 18:44:22 2019 +0000"
      },
      "message": "dediprog: Enable 4BA support for SF600, protocol V2\n\nThe only combination we could successfully test so far is the SF600 with\nprotocol version V2 (firmware 7.2.21) and native 4BA commands. Let\u0027s\nenable that at least.\n\nChange-Id: I665d0806aec469a3509620a760815861fbe22841\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom/+/28804\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: David Hendricks \u003cdavid.hendricks@gmail.com\u003e\n"
    },
    {
      "commit": "dc5af547df8b2f852deb5ddad86bb90ff0fc50c0",
      "tree": "3b23dcce1e43e520ca0a6db314d6920a89b1f72a",
      "parents": [
        "3d7b1e3b5c04304d3680bd950e7672f6336b01d6"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Dec 22 16:54:59 2018 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Apr 02 16:55:43 2019 +0000"
      },
      "message": "dediprog: Disable 4BA completely\n\nThis is an interim solution. We\u0027ll have to enable 4BA step-by-step for\neach dediprog protocol version.\n\nChange-Id: I08efcbb09ab3499ef6902a698e9ce3d6232237c4\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom/+/30386\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: David Hendricks \u003cdavid.hendricks@gmail.com\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": "bbaa1719b13908ae570c93eba74e5b5f990e8271",
      "tree": "c562597f1417c201eac0a7f8edb1ad71ca515635",
      "parents": [
        "7fb508dc137818587bf142ec1f28fbc1c3a371fc"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.huber@secunet.com",
        "time": "Wed Dec 05 13:26:20 2018 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Dec 06 15:47:35 2018 +0000"
      },
      "message": "dediprog: Fix small, unaligned reads\n\nThis never was a use case until now but the `--fmap` code makes it\nobvious: Unaligned reads that were smaller than the `chunksize` here,\nwere extended without considering the length of the buffer read into.\n\nWith that fixed we run into the next problem: dediprog_spi_bulk_read()\nshouldn\u0027t report an error when an empty read is unaligned.\n\nChange-Id: Ie12b62499ebfdb467d5126c00d327c76077ddead\nSigned-off-by: Nico Huber \u003cnico.huber@secunet.com\u003e\nReviewed-on: https://review.coreboot.org/c/30051\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: David Hendricks \u003cdavid.hendricks@gmail.com\u003e\n"
    },
    {
      "commit": "cabe3206abd8d0cf51d80c55fa1e6464faf46008",
      "tree": "e3ff87dad26c2d8be11e4559506941c3ec93b083",
      "parents": [
        "7ecfe48b19c3e97341a3f2b0d85e7367ab92f2b6"
      ],
      "author": {
        "name": "Jay Thompson",
        "email": "thompson.jay.thomas@gmail.com",
        "time": "Fri Aug 17 14:30:04 2018 -0500"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Sep 11 12:34:00 2018 +0000"
      },
      "message": "Add initial support for Dediprog SF200.\n\nChange-Id: I025d1533e249f6a75b6d9015a18a6abf350456b6\nSigned-off-by: Jay Thompson \u003cthompson.jay.thomas@gmail.com\u003e\nSigned-off-by: David Hendricks \u003cdhendricks@fb.com\u003e\nReviewed-on: https://review.coreboot.org/28272\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: David Hendricks \u003cdavid.hendricks@gmail.com\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "1d507a07a919f49e74aa05803bf37919ac95adb1",
      "tree": "24d460c41877990f4a6724c0e8b4513e2d679daa",
      "parents": [
        "ccfa8f9d9a68b1e4238d2dbbc4e9c8bcf9bae8a6"
      ],
      "author": {
        "name": "Daniel Thompson",
        "email": "daniel.thompson@linaro.org",
        "time": "Thu Jul 12 11:02:28 2018 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Aug 30 09:53:58 2018 +0000"
      },
      "message": "usbdev: Extract libusb1 device discovery into a separate file\n\nCurrently there is a TODO-like comment in the dediprog driver: \"Might be\nuseful for other USB devices as well\". Act on this comment by collecting\nall the device discovery code for libusb1 devices into a separate file.\n\nChange-Id: Idfcc79371241c2c1dea97faf5e532aa971546a79\nSigned-off-by: Daniel Thompson \u003cdaniel.thompson@linaro.org\u003e\nReviewed-on: https://review.coreboot.org/27443\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "ac01baa073b0f154ffd3ffdc7c9e75987f8b525c",
      "tree": "c81104f7a8f08db2c6f0cc5d59f8f0e3fe7ea494",
      "parents": [
        "b0247b3acbc7d8d9f8da1db48a9b81c5f2e24a38"
      ],
      "author": {
        "name": "Elyes HAOUAS",
        "email": "ehaouas@noos.fr",
        "time": "Mon May 28 16:52:21 2018 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jun 24 13:44:51 2018 +0000"
      },
      "message": "Remove unneeded white spaces\n\nChange-Id: I90f171924790ced74a62ca344fee8607607aa480\nSigned-off-by: Elyes HAOUAS \u003cehaouas@noos.fr\u003e\nReviewed-on: https://review.coreboot.org/26652\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Paul Menzel \u003cpaulepanter@users.sourceforge.net\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": "f73f8a732f8fd37a6a7dfef4acb7f7c416832ab2",
      "tree": "4d65a6d09dd2a30bb24ba82aad1747c9c0a79e9b",
      "parents": [
        "c699f5cde113377099d038234c1e46e7b928336f"
      ],
      "author": {
        "name": "David Hendricks",
        "email": "david.hendricks@gmail.com",
        "time": "Wed Feb 21 07:34:34 2018 -0800"
      },
      "committer": {
        "name": "David Hendricks",
        "email": "david.hendricks@gmail.com",
        "time": "Wed Mar 28 22:07:50 2018 +0000"
      },
      "message": "dediprog: implement command spec for firmware \u003e\u003d 7.2.30\n\nThis adds support for the latest command spec for Dediprog SF100/SF600\nprogrammers. Since we now have more than two protocols to\ndeal with the is_new_prot() function is replaced with protocol() which\nreturns an enum specifying which protocol is supported.\n\nThe latest spec (FW \u003e\u003d 7.2.30) updates read and write packets. It\u0027s\nbeen tested on an SF600 using firmware 7.2.21 and SF600Plus using FW\n7.2.30.\n\nThe latest command protocol has a few small but important changes:\n- Read packets have two more bytes:\n  11: B4Addr: address len (3 or 4)\n  12: Dummy cycle /2\n\n- Write packets have four more bytes:\n  11, 12: 16 HSBs of page size\n  13, 14: 16 LSBs of page size\n\n(The spec seems to be mistaken, though, as 11 and 12 are actually\n LSBs instead of HSBs)\n\nChange-Id: I1a53c143948ec40d40433621891a2871d8815f2f\nSigned-off-by: David Hendricks \u003cdhendricks@fb.com\u003e\nReviewed-on: https://review.coreboot.org/23836\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "4d440a7c4102faae21b16204e667ea74c1dc8e52",
      "tree": "7122caef5133c365278a24d93cb7991a49aa36ae",
      "parents": [
        "8e76230dfbcc7720c5565a70daff650496556702"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Aug 15 11:26:48 2017 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Aug 16 17:01:59 2017 +0000"
      },
      "message": "Include \u003csys/types.h\u003e wherever ssize_t is used\n\n`ssize_t` is a POSIX type (cf. IEEE Std 1003.1).\n\nChange-Id: I5f6f114523f541b3a8d845c6faee2c0b9f753bae\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReported-by: Urja Rannikko \u003curjaman@gmail.com\u003e\nReviewed-on: https://review.coreboot.org/21015\nReviewed-by: David Hendricks \u003cdavid.hendricks@gmail.com\u003e\nReviewed-by: Urja Rannikko \u003curjaman@gmail.com\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "f84df9a78d35eb458ab19c6dac8a0d5f00013886",
      "tree": "37a94fdf7820d59df6c15ca9aff8339e26cc7755",
      "parents": [
        "5e5e8213bbd7a0167e61f1138247e7111b6ef031"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.huber@secunet.com",
        "time": "Wed May 04 13:24:07 2016 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Apr 20 14:52:47 2017 +0200"
      },
      "message": "dediprog: Fix bug where too many transfers would be queued\n\nWe didn\u0027t check the total number of queued transfers in the inner most\nloop. Up to DEDIPROG_ASYNC_TRANSFERS - 1 invalid transfers could be\nqueued therefore. So add another check on the total number.\n\nChange-Id: I91a8de47db7107455f5fc63ab2f13a0bd50c5b63\nSigned-off-by: Nico Huber \u003cnico.huber@secunet.com\u003e\nAcked-by: David Hendricks \u003cdavid.hendricks@gmail.com\u003e\nReviewed-on: https://review.coreboot.org/19351\nTested-by: build bot (Jenkins)\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "5e5e8213bbd7a0167e61f1138247e7111b6ef031",
      "tree": "8801e94a83804e03a4e4b37bffe214e8a9fc6141",
      "parents": [
        "cd8329f804eed2e359e2666aaba9e3ef8e2edcce"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.huber@secunet.com",
        "time": "Wed May 04 12:27:58 2016 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Apr 20 14:50:17 2017 +0200"
      },
      "message": "dediprog: Reimplement target chip option\n\nChange-Id: I594e2a6ee144260f8424d25b304f6ab41a9d3fad\nSigned-off-by: Nico Huber \u003cnico.huber@secunet.com\u003e\nAcked-by: David Hendricks \u003cdavid.hendricks@gmail.com\u003e\nReviewed-on: https://review.coreboot.org/19350\nTested-by: build bot (Jenkins)\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "fdec7475bf9e321a3729d5ba2100e30e110870ea",
      "tree": "fa61a001405821df55486cd6d8a0058ccc9127f1",
      "parents": [
        "f31fe841d78a01cd85b86b5fd9cb7e5bb64dfc4c"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Mon Feb 22 08:59:27 2016 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Mon Feb 22 08:59:27 2016 +0000"
      },
      "message": "dediprog: use ordinary USB devs array\n\nEven though there is currently only one USB device ID in the wild using our\nstandard way to define the devices creates nicer output for -L and -z.\n\nCorresponding to flashrom svn r1942.\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": "74367bf31492af2cfcea9efe3ad67ca5d5d3eadc",
      "tree": "38e09fabac4d4d95dd7105f8dba375c59d5e88b4",
      "parents": [
        "2c57bbee3cbb5f931c43e5a1e2d892d220b182c5"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sat Feb 20 20:53:46 2016 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sat Feb 20 20:53:46 2016 +0000"
      },
      "message": "dediprog: tremendously improve performance on SF600 by ignoring the spec\n\nThe solution was discovered in a collaborative bug hunt with testing done by\nDavid Hendricks. The actual culprit was found by Urja Rannikko by comparing\nvanilla flashrom with David\u0027s version in chromiumos.\n\nCorresponding to flashrom svn r1933.\n\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nTested-by: David Hendricks \u003cdhendrix@chromium.org\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\n"
    },
    {
      "commit": "d99a2bd049264cc327c6ef772d1ae9c11697a29e",
      "tree": "e1ec42d9aebfb5615ddedbbc0c141562610b7fd5",
      "parents": [
        "c05900f3dccddb5ffb4f1c9557b2ffc81683ec44"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.huber@secunet.com",
        "time": "Thu Feb 18 21:42:49 2016 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Thu Feb 18 21:42:49 2016 +0000"
      },
      "message": "dediprog: port to libusb1 and use asynchronous bulk transfers for reading\n\nThis patch is based on Nico Huber\u0027s original version that was rebased\nby David Hendricks for Chromium OS in\nChange-Id: I84384b9d8ed53911657cf2293733531a6e11fd23\n\nCorresponding to flashrom svn r1929.\n\nSigned-off-by: Nico Huber \u003cnico.huber@secunet.com\u003e\nSigned-off-by: David Hendricks \u003cdhendrix@chromium.org\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": "c05900f3dccddb5ffb4f1c9557b2ffc81683ec44",
      "tree": "89f3c8aaf6ec9e21faa98c486649e24a6983c323",
      "parents": [
        "7f3b89fe0260d696cf27d07f9d9ab5402ad23116"
      ],
      "author": {
        "name": "David Hendricks",
        "email": "dhendrix@chromium.org",
        "time": "Thu Feb 18 21:42:41 2016 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Thu Feb 18 21:42:41 2016 +0000"
      },
      "message": "dediprog: use command 0x0B (set voltage) only on older SF100s\n\nAs per e-mail with Dediprog, command 0x0B (which is not listed in the\ncommand spec) is need on older Dediprogs only. SF100 with firmware\nV6.0.0 and newer as well as all SF600 programmers do not support it.\n\nThe original wording by Dediprog was: \"0x0B is used to adjust voltage\nlevel, but it\u0027s available for some version of SF100 only. SF100 of\nfirmware V6.x.x and all version of SF600/SF600Plus not support this\ncommand. If you have old version of SF100, 0x0B is still needed.\"\n\nThis patch renames dediprog_device_init() to something more\nappropriate  and adds comments for clarity, and only runs it\nconditionally if we cannot query the devicestring initially.\n\nBased on ChromiumOS\u0027\nChange-Id: I42de7d28401d7ad5be8fcf8a8c165e2614a45960\n\nCorresponding to flashrom svn r1928.\n\nSigned-off-by: David Hendricks \u003cdhendrix@chromium.org\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\n"
    },
    {
      "commit": "7f3b89fe0260d696cf27d07f9d9ab5402ad23116",
      "tree": "b280049074c0500aea5d27c0eda6690cebb418d4",
      "parents": [
        "f2daacac7bd58ae886152c7f6de4c83ca77e382e"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Thu Feb 18 21:42:15 2016 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Thu Feb 18 21:42:15 2016 +0000"
      },
      "message": "dediprog: add support for SF600\n\nThis patch is based on a number of changes by David Woodhouse and\nDavid Hendricks.\n\nSF600 uses two bulk endpoints, 1 for out and 2 for in unlike the\nSF100 that uses only a single one. This patch make endpoint usage\nmore explicit and sets the in/out endpoint(s) appropriately for\nSF100 and SF600.\n\nAlso, change all SF100-specific strings in messages and\nleave standalone mode on SF600s.\n\nCorresponding to flashrom svn r1927.\n\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nSigned-off-by: David Hendricks \u003cdhendrix@chromium.org\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": "ae61651bfab63139493f5ac18348125e8d5baeb0",
      "tree": "4fcafc84ea8bd579b4cc21f8783cd8271ea00bb0",
      "parents": [
        "23e10b87801c22f34642895de8b0b726265eb016"
      ],
      "author": {
        "name": "Simon Glass",
        "email": "sjg@chromium.org",
        "time": "Sat Jan 23 23:27:58 2016 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sat Jan 23 23:27:58 2016 +0000"
      },
      "message": "dediprog: support new communication protocol, cleanup and enable by default\n\nThe new protocol changes some commands, so adjust the code to support\nthese. Use helper functions to reduce duplication in libusb calls. Testing\nwith real hardware showed that the maximum read size via the control\nendpoint is about 16 bytes although specification does not mention that.\n\nDediprog SF600 is not supported yet.\n\nBased on the following chromiumos changes:\nChange-Id: Ibd1e27d9e8273ba879b9b5d95675b99596255c89\nChange-Id: Ifc33e7b1eed5b0cb80f83458fa24741a577fa46a\nAdditionally, some ideas from Alex for cleaner code were incorporated as well.\n\nTested on an SF100 V4 with both firmware generations PREWing a M25PX80\nand AT45DB041D (the latter is using dediprog_spi_send_command() instead\nof optimized functions which make it a good test vehicle).\n\nCorresponding to flashrom svn r1918.\n\nSigned-off-by: Simon Glass \u003csjg@chromium.org\u003e\nSigned-off-by: David Hendricks \u003cdhendrix@chromium.org\u003e\nSigned-off-by: Alexandru Gagniuc \u003cmr.nuke.me@gmail.com\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": "557eb4ff18c7c8d01684a8d7afb7ffc12452bb50",
      "tree": "db8bfcfd4fffd585ec33980d4a78eecb5733102f",
      "parents": [
        "0b4ffd58aaca065c55a7933df286dbe275d9ebd7"
      ],
      "author": {
        "name": "Simon Glass",
        "email": "sjg@chromium.org",
        "time": "Sun Jul 05 16:53:22 2015 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sun Jul 05 16:53:22 2015 +0000"
      },
      "message": "dediprog: Tidy up commands and remove dead nonsense code\n\nUse names for the commands and request types instead of magic\nnumbers and remove some of the unnecessary unexplained arguments.\nAlso, cleanup the nonsense code left over from RE. Most of it can\nnot be explained by official documentation and was recorded with\nancient firmware/software.\n\nBased on the following chromiumos changes:\nChange-Id: I80a0dcdf40eedc89da48fb2c54cd9d9fd13e6fa1\nChange-Id: If61bac2c8194b3ec30a80422d871842c66f0cd74\n\nCorresponding to flashrom svn r1896.\n\nSigned-off-by: Simon Glass \u003csjg@chromium.org\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: David Hendricks \u003cdhendrix@chromium.org\u003e\n"
    },
    {
      "commit": "25e9f40e21e715e4ee6183a42c8521406f91b258",
      "tree": "887b1ab921ef9ca47f8197eb394caf18876f4cb6",
      "parents": [
        "0a5f6e43d15c50409eb49369895ba2a56a173d47"
      ],
      "author": {
        "name": "Simon Glass",
        "email": "sjg@chromium.org",
        "time": "Sun Jun 28 13:31:19 2015 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sun Jun 28 13:31:19 2015 +0000"
      },
      "message": "dediprog: Invert the LED polarity in the code\n\nPreviously we have used low-active macros (because the hardware and\nold protocol were so too) and set every single LED explicitly although we\nonly used a limited number of combinations. Using an enumeration for\ncommonly used values instead makes things easier.\n\nBased on the following chromiumos change:\nChange-Id: Ie481a583e623cdc45e3649a4db69b15570f65a7b\n\nCorresponding to flashrom svn r1894.\n\nSigned-off-by: Simon Glass \u003csjg@chromium.org\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: David Hendricks \u003cdhendrix@chromium.org\u003e\n"
    },
    {
      "commit": "5c316f954941241ed75a1f00f00bf1bff318488a",
      "tree": "ce836bcb29d7d9da86ee583a88236b020985ba36",
      "parents": [
        "dc627931848ed6af40be4f7d5bdb8e33d28b8333"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sun Feb 08 21:57:52 2015 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sun Feb 08 21:57:52 2015 +0000"
      },
      "message": "Add a bunch of new/tested stuff and various small changes 22\n\nTested mainboards:\nOK:\n - AOpen UK79G-1394 (used in EZ18 barebones)\n   Reported by Lawrence Gough\n - ASUS M4N78 SE\n   Reported by Dima Veselov\n - ASUS P5LD2-VM\n   Mark board enable as tested (reported by Dima Veselov)\n - GIGABYTE GA-970A-UD3P (rev. 2.0)\n   Reported by trucmar on IRC\n - GIGABYTE GA-990FXA-UD3 (rev. 4.0)\n   Reported by ROKO__ on IRC\n - GIGABYTE GA-H77-DS3H (rev. 1.1)\n   Reported by Evgeniy Edigarev\n - GIGABYTE GA-P55-USB3 (rev. 2.0)\n   Reported by Måns Thörnqvist\n - MSI MS-7817 (H81M-E33)\n   Reported by Igor Kolker\n\nChipsets:\n - Marked Intel Bay Trail (0x0f1c) as tested OK\n   Reported by Antonio Ospite\n - Refine Intel IDs\n    * Add IDs for Braswell\n    * Add IDs for 9 Series PCHs (e.g. H97, Z97)\n    * Rename Wellsburg devices slightly\n\nFlash chips:\n - Atmel AT25DF041A to PREW (+PREW)\n   Reported by Tai-hwa Liang\n - Atmel AT26DF161 to PREW (+EW)\n   Reported by Steve Shenton\n - Atmel AT45DB011D to PREW (+PREW)\n   Reported by The Raven\n - Atmel AT45DB642D to PREW (+PREW)\n   Reported by Mahesh Mokal\n - Eon EN25F32 to PREW (+PREW)\n   Reported by Arman Khodabande\n - Eon EN25F40 to PREW (+REW)\n   Reported by Jerrad Pierce\n - Eon EN25QH16 to PREW (+EW)\n   Reported by Ben Johnson\n - GigaDevice GD25Q20(B) to PREW (+PREW)\n   Reported by Gilles Aurejac\n - Macronix MX25U6435E/F to PR (+PR)\n   Reported by Matt Taggart\n - PMC Pm25LV512(A) to PREW (+PREW)\n   Reported by The Raven\n - SST SST39VF020 to PREW (+PREW)\n   Reported by Urja Rannikko\n - Winbond W25Q40.V to PREW (+EW)\n   Reported by Torben Nielsen\n - Add E variants of MX25Lx006 (MX25L2006E, MX25L4006E, MX25L8006E).\n - Add MX25L6465E variant.\n - There was never a MX25L12805 AFAICT.\n - Split MX25L12805 from models with the same ID but an additional 32 kB\n   eraser: MX25L12835F/MX25L12845E/MX25L12865E.\n - Add a bunch of ST parallel NOR flash chip IDs.\n\nMiscellaneous:\n - Whitelist ThinkPad X200.\n - Constify master parameter of register_master().\n - Remove FEATURE_BYTEWRITES because it was never used at all.\n - Refine hwseq messages and make them less prominent.\n - Fix the yet unused PRIxCHIPADDR format string thingy.\n - Fix copy\u0026paste error in spi_prettyprint_status_register_bp().\n   Spotted by Pablo Cases.\n - Add an additional SMBus controller revision to identify another Yangtze\n   model. Thanks to Dan Christensen for reporting this issue.\n - dediprog: add missing include for stdlib.h.\n   This fixes (at least) building on FreeBSD and DragonflyBSD with gcc.\n - Remove references to struct pci_filter from programmer.h.\n   It is only needed in internal.c where it has a complete type. Having\n   it in programmer.h provokes a warning by some old versions of gcc.\n - Tiny other stuff.\n\nCorresponding to flashrom svn r1879.\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": "0cbd8c2558209432a0f51522cd2adffc59785dd0",
      "tree": "1d6ba57e182cb443c6296ae6faeed74ea8c1935f",
      "parents": [
        "e37735a99438f496a066d2ee86e55edc771730bb"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Mon Jan 26 22:06:04 2015 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Mon Jan 26 22:06:04 2015 +0000"
      },
      "message": "Properly include current libusb-win32 header\n\nlibusb-win32 is using a different header file name (lusb0_usb.h) for\na while. Use that on Windows builds to make clear that this is\ncurrently the correct header to include.\n\nHopefully this will change soonish by migrating away from libusb-0.\n\nCorresponding to flashrom svn r1877.\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": "a5bcbceb581f27cfc0055369d3dd9cfd1ae00bfa",
      "tree": "5daecd880a16b7011be28e064fb7550f3e6b7e58",
      "parents": [
        "82b6ec1df30d3fca55547f230c76718d6e613b2a"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sat Jul 19 22:03:29 2014 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sat Jul 19 22:03:29 2014 +0000"
      },
      "message": "Rename programmer registration functions\n\nRegister_programmer suggests that we register a programmer. However,\nthat function registers a master for a given bus type, and a programmer\nmay support multiple masters (e.g. SPI, FWH). Rename a few other\nfunctions to be more consistent.\n\nCorresponding to flashrom svn r1831.\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": "ffb0cf649c1c66c85441314434cd1cd57f89fe02",
      "tree": "5bfba5b41be508abf21400e0110e2bfeb069b8db",
      "parents": [
        "33491b8f218455f901bc25c78e7969cbdc75c6f5"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sun May 25 07:47:47 2014 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sun May 25 07:47:47 2014 +0000"
      },
      "message": "Constify dediprog\u0027s write functions too\n\nI forgot doing so in r1789 which broke compiling the dediprog module with\n-Werror (which is default). Thanks to Mike Hibbett for reporting this.\n\nCorresponding to flashrom svn r1797.\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": "d2a7e873f3c4125ce1f40d2a5330105c571658d0",
      "tree": "4f09a747d0d538628355c3179b616c790b73cdef",
      "parents": [
        "70e145989bb9d5214a2c50b79b23c457d12f04a5"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Tue Jul 30 09:34:44 2013 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Tue Jul 30 09:34:44 2013 +0000"
      },
      "message": "dediprog: Fix crash if usb_open() fails\n\nCorresponding to flashrom svn r1705.\n\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\n"
    },
    {
      "commit": "efe2d43056bcc15d70903354c6410a498b56b285",
      "tree": "fc6a7fd4d6872b6c85d41868a97f948c73cb525c",
      "parents": [
        "e659d2dfe3bbcc15e6c6cdb77ab7c09d040c06e3"
      ],
      "author": {
        "name": "Patrick Georgi",
        "email": "patrick.georgi@secunet.com",
        "time": "Thu May 23 21:47:46 2013 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Thu May 23 21:47:46 2013 +0000"
      },
      "message": "dediprog: fix SPI clock setting\n\nAvoid setting SPI speed on firmware versions \u003c 5.0.0 and note this\nlimitation in the man page.\nUse the correct offset of the \"12M\" element in the spispeeds array to\nmatch our manpage and the default of Dediprog\u0027s dpcmd.\n\nCorresponding to flashrom svn r1674.\n\nSigned-off-by: Patrick Georgi \u003cpatrick.georgi@secunet.com\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": "e659d2dfe3bbcc15e6c6cdb77ab7c09d040c06e3",
      "tree": "260c347c832cb7644d88e2b0ea8fd4453cdcd590",
      "parents": [
        "730e7e74ebf11560d1c852934b18e98d1200ce53"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Fri May 03 21:58:28 2013 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Fri May 03 21:58:28 2013 +0000"
      },
      "message": "dediprog: add support for chip select\n\nThanks to the traces captured and tests done by Martin Roth, and confirmed\nby tests and analysis by Joshua Zarr too, we can now use both target chips\non the Dediprog SF100.\n\nCorresponding to flashrom svn r1673.\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": "77fa67d2df7395047476b77946fa807fc851f737",
      "tree": "43992470f7822637643df463a92aebf674fb82d8",
      "parents": [
        "e038e9082cce69f10f17747fc272ae370c9836cf"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.huber@secunet.com",
        "time": "Wed Feb 20 18:03:36 2013 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed Feb 20 18:03:36 2013 +0000"
      },
      "message": "dedirpog: add a parameter \u0027spispeed\u0027 to set the SPI clock rate\n\nThe following rates are\navailable (in Hz):\n  375k, 750k, 1.5M, 2.18M, 3M, 8M, 12M and 24M\n\nThe original driver reinitializes the programmer after setting the\nspeed, so the initialization calls have moved into a new function\ndediprog_setup() which is called twice.\n\nCorresponding to flashrom svn r1649.\n\nSigned-off-by: Nico Huber \u003cnico.huber@secunet.com\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "e34e3e8a49172ba09eb058c9a028706647dca165",
      "tree": "6aec75d2f7b08469e9b95a8844ba3ad9180c6b04",
      "parents": [
        "bcb2e5a7080cbe0ff21c8ffa5f77b5ba1ea0c472"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Tue Jan 01 00:06:51 2013 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Tue Jan 01 00:06:51 2013 +0000"
      },
      "message": "Add a bunch of new/tested stuff and various small changes 16\n\nTested Mainboards:\nOK:\n - Acer V75-M (used in IBM Aptiva 2170-G\n   http://www.flashrom.org/pipermail/flashrom/2012-December/010300.html\n - ASRock 4CoreDual-VSTA with W39V040FB\n   http://paste.flashrom.org/view.php?id\u003d1446\n - ASRock 775Dual-VSTA\n   http://www.flashrom.org/pipermail/flashrom/2012-December/010294.html\n - ASRock E350M1/USB3\n   http://paste.flashrom.org/view.php?id\u003d1465\n - ASUS P5B-VM\n   http://www.flashrom.org/pipermail/flashrom/2012-December/010351.html\n - ASUS SABERTOOTH 990FX R2.0\n   http://www.flashrom.org/pipermail/flashrom/2012-December/010210.html\n - Elitegroup A928 (including a laptop whitelist board enable)\n   http://www.flashrom.org/pipermail/flashrom/2012-November/010119.html\n - EVGA 122-CK-NF68\n   Reported by Stephanie Daugherty on IRC\n   http://paste.flashrom.org/view.php?id\u003d1431\n - GIGABYTE GA-A75M-UD2H\n   Reported by Soul_keeper on IRC\n   http://paste.flashrom.org/view.php?id\u003d1490\n - Intel D945GCNL\n   Add board enable to override laptop detection too.\n   http://www.flashrom.org/pipermail/flashrom/2012-December/010276.html\n - MSI G33M (MS-7357)\n   http://www.flashrom.org/pipermail/flashrom/2012-October/010056.html\n - Shuttle FB61\n   http://www.flashrom.org/pipermail/flashrom/2012-November/010105.html\n - Tyan S4882 (Thunder K8QS Pro)\n   Reported on IRC\nNOT OK:\n   Alienware Aurora-R2\n   http://www.flashrom.org/pipermail/flashrom/2012-December/010225.html\n   Biostar H61MU3\n   http://www.flashrom.org/pipermail/flashrom/2012-November/010144.html\n   Dell OptiPlex 7010\n   http://paste.flashrom.org/view.php?id\u003d1481\n   Intel DH67CL\n   http://www.flashrom.org/pipermail/flashrom/2012-November/010112.html\n   Supermicro X9DRT-HF+\n   http://www.flashrom.org/pipermail/flashrom/2012-November/010155.html\n   Supermicro X9DRW\n   http://www.flashrom.org/pipermail/flashrom/2012-November/010150.html\n\nTested flash chips:\n - Atmel AT25FS010 to PREW (+PREW)\n   http://paste.flashrom.org/view.php?id\u003d1484\n - Eon EN25F64 to PREW (+EW)\n   http://www.flashrom.org/pipermail/flashrom/2012-December/010210.html\n - Spansion S25FL032A/P to PREW (+EW)\n   http://paste.flashrom.org/view.php?id\u003d1510\n - ST M29F002T/NT to PREW (+PREW)\n   http://www.flashrom.org/pipermail/flashrom/2012-December/010300.html\n - Winbond W25X10 to PREW (+PREW)\n   http://paste.flashrom.org/view.php?id\u003d1486\n\nTested chipsets:\n - NVIDIA MCP78S http://www.flashrom.org/pipermail/flashrom/2012-November/010176.html\n - SiS 650 http://www.flashrom.org/pipermail/flashrom/2012-November/010119.html\n\nMiscellaneous:\n- Typo in GA-X58A-UDR3 (correct is GA-X58A-UD3R).\n- Force 2-digit hex numbers in prints were it makes sense.\n- Share code between enable_flash_sis530() and enable_flash_sis540().\n- Some SST 25 series chips support both WRSR enable commands...\n- S25FL032A and S25FL064A share the IDs with their P versions, so rename them.\n- Fix a few memleaks in serprog.\n- Dediprog uses UINT_MAX so include limits.h (fixes the Windows build of dediprog)\n- Add (another) hint regarding the mandatory -p parameter to the manpage\n  to make Debian bug #690478 happy.\n  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug\u003d690478\n- Fix whitespace issues.\n- On shutdown, reset count of registered programmers (by Nico Huber)\n- Fix atahpt.c shutdown.\n  The order of pcidev_init, register_shutdown and rpci_write_* is important!\n  Thanks to Roy for reporting the problem and testing the fix.\n\nCorresponding to flashrom svn r1640.\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": "21541a6b22c0ccbfa6b65a6c1d4a76cfd0360ca2",
      "tree": "e58203fe62b4e783fedcba3a3b2a119b716a0f8b",
      "parents": [
        "acfc4c6c2fb66e8142df8ed69aa8c6374abc871a"
      ],
      "author": {
        "name": "Nathan Laredo",
        "email": "nil@google.com",
        "time": "Mon Dec 24 22:07:36 2012 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Mon Dec 24 22:07:36 2012 +0000"
      },
      "message": "Add a \"device\" parameter for Dediprog\n\nThis patch adds a \"device\" parameter for Dediprog which enables use of\nmultiple dediprogs connected to a single machine. Very handy for test racks.\n\nExample usage:\nflashrom -p dediprog:device\u003d0\nflashrom -p dediprog:device\u003d1\netc...\n\nThe patch was originally written by Nathan Laredo.\nThanks to David Hendricks for submitting it upstream.\nAdditional error handling, man page etc. by Stefan Tauner.\n\nCorresponding to flashrom svn r1628.\n\nSigned-off-by: Nathan Laredo \u003cnil@google.com\u003e\nSigned-off-by: David Hendricks \u003cdhendrix@google.com\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": "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": "a4b14f7de11e4431c55192cb28294f88c60b4bd1",
      "tree": "fdb9e146313348cde47775f013ba46b5601c6b29",
      "parents": [
        "9e42376c384d1f81deac2cabd8fb423f902b42f4"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.huber@secunet.com",
        "time": "Tue Jun 19 12:06:53 2012 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Tue Jun 19 12:06:53 2012 +0000"
      },
      "message": "Add native SPI AAI write support to the Dediprog SF100 driver\n\nTo tell the programmer how to handle the data on the spi bus, a flag in\nthe fourth byte sent with the usb command is used. The second word was\nmistaken for the size of the chunks sent over usb earlier. The third\nbyte (first of the second word) is now set to zero. This also adds some\nchecks for the size of data chunks sent over usb.\n\nCorresponding to flashrom svn r1546.\n\nSigned-off-by: Nico Huber \u003cnico.huber@secunet.com\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "4099a8a891cabc3f38f6c7dc60bc71a1fd76ec8a",
      "tree": "8faa91383e0fb7d0634830e5d73cdd1fd0dc8f27",
      "parents": [
        "7bca126561b80f626dea269d7a6284a7cde0a8ed"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.huber@secunet.com",
        "time": "Sat Jun 16 00:02:27 2012 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sat Jun 16 00:02:27 2012 +0000"
      },
      "message": "Add voltage change delays to dediprog driver\n\nSome investigations have shown that the original dediprog driver waits\nabout 200ms after setting voltage up and before setting voltage down.\nThis patch adds those delays. It helps flash chips to come up in time.\n\nCorresponding to flashrom svn r1544.\n\nSigned-off-by: Nico Huber \u003cnico.huber@secunet.com\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "7bca126561b80f626dea269d7a6284a7cde0a8ed",
      "tree": "45c6b31e39846a88d89d157d758134d7b8dc1db1",
      "parents": [
        "3464d05eb41ab4c7a6faba9a1a36bfbeda0de850"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.huber@secunet.com",
        "time": "Fri Jun 15 22:28:12 2012 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Fri Jun 15 22:28:12 2012 +0000"
      },
      "message": "Let the programmer driver decide how to do AAI transfers\n\nCurrently spi_aai_write() is implemented without an abstraction\nmechanism for the programmer driver. This adds another function\npointer \u0027write_aai\u0027 to struct spi_programmer, which is set to\ndefault_spi_write_aai (renamed spi_aai_write) for all programmers\nfor now.\n\nA patch which utilises this abstraction in the dediprog driver will\nfollow.\n\nCorresponding to flashrom svn r1543.\n\nSigned-off-by: Nico Huber \u003cnico.huber@secunet.com\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "ac427b22c4fa45936fe94af31a5e0422dd95c152",
      "tree": "185514486da4a8d244f71ba62f18261d948cd631",
      "parents": [
        "8541d2312150943069bb96addeed564769057af2"
      ],
      "author": {
        "name": "Paul Menzel",
        "email": "paulepanter@users.sourceforge.net",
        "time": "Thu Feb 16 21:07:07 2012 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Thu Feb 16 21:07:07 2012 +0000"
      },
      "message": "Add a bunch of new/tested stuff and various small changes 10\n\nTested mainboards:\nOK:\n - ABIT A-S78H\n   http://www.flashrom.org/pipermail/flashrom/2012-January/008603.html\n - ASRock AM2NF6G-VSTA\n   http://www.flashrom.org/pipermail/flashrom/2012-January/008534.html\n - ASUS KFSN4-DRE/SAS\n   reported by ted on IRC\n - ASUS M2A-VM (HDMI variant)\n   http://www.flashrom.org/pipermail/flashrom/2012-January/008509.html\n - ASUS M4N78 PRO\n   http://www.flashrom.org/pipermail/flashrom/2012-January/008598.html\n - ASUS P5K-V\n   http://www.flashrom.org/pipermail/flashrom/2012-February/008737.html\n - ASUS P5KPL-CM\n   http://www.flashrom.org/pipermail/flashrom/2012-January/008522.html\n - ASUS P5N7A-VM\n   http://www.flashrom.org/pipermail/flashrom/2012-January/008508.html\n - ASUS P5QPL-AM\n   http://www.flashrom.org/pipermail/flashrom/2012-January/008557.html\n - ECS GF7100PVT-M3\n   http://www.flashrom.org/pipermail/flashrom/2011-December/008412.html\n - ECS K7SEM\n   http://www.flashrom.org/pipermail/flashrom/2011-December/008362.html\n - ECS P4M800PRO-M V2.0\n   http://www.flashrom.org/pipermail/flashrom/2012-January/008478.html\n - Gigabyte 880GMA-USB3\n   http://www.flashrom.org/pipermail/flashrom/2012-February/008715.html\n - Gigabyte GA-EP31-DS3L\n   http://www.flashrom.org/pipermail/flashrom/2012-January/008601.html\n - Gigabyte GA-X58A-UDR3\n   http://www.flashrom.org/pipermail/flashrom/2012-January/008572.html\n - Gigabyte GA-Z68XP-UD3\n   http://paste.flashrom.org/view.php?id\u003d1058\n - HP ProLiant N40L\n   http://www.flashrom.org/pipermail/flashrom/2012-February/008650.html\n - MSI MS-7309 (K9N6PGM2-V2)\n   http://www.flashrom.org/pipermail/flashrom/2011-December/008441.html\n - MSI MS-7548 (Aspen-GL8E used in HP Pavilion a6750f)\n   http://www.flashrom.org/pipermail/flashrom/2012-February/008666.html\n - MSI MS-7676 (H67MA-ED55(B3))\n   http://www.flashrom.org/pipermail/flashrom/2012-January/008547.html\n - PC Engines Alix.6f2\n   Reported by Philip Prindeville on IRC\n - Shuttle AV18E2\n   http://www.flashrom.org/pipermail/flashrom/2011-December/008459.html\n - Supermicro X8DTE-F\n   http://www.flashrom.org/pipermail/flashrom/2011-November/008304.html\n - Supermicro X8DTT-HIBQF\n   http://www.flashrom.org/pipermail/flashrom/2012-January/008520.html\nNOT OK:\n - ASUS P8H61-M LE/USB3\n   http://www.flashrom.org/pipermail/flashrom/2012-January/008491.html\n - ASUS P8H67-M PRO\n   http://www.flashrom.org/pipermail/flashrom/2011-December/008321.html\n - ASUS P8Z68-V PRO\n   http://www.flashrom.org/pipermail/flashrom/2012-January/008469.html\n - Clevo P150HM (laptop)\n   http://www.flashrom.org/pipermail/flashrom/2012-February/008717.html\n - Intel D425KT\n   http://www.flashrom.org/pipermail/flashrom/2012-January/008600.html\n - Supermicro X9SCA-F\n   http://www.flashrom.org/pipermail/flashrom/2011-December/008313.html\n\nTested flash chips:\n - mark AT29C512 as TEST_OK_PREW\n   http://paste.flashrom.org/view.php?id\u003d977\n - mark M25P40 as TEST_OK_PREW\n   http://www.flashrom.org/pipermail/flashrom/2011-December/008351.html\n - mark M25PE80 as TEST_OK_PREW\n   http://paste.flashrom.org/view.php?id\u003d1061\n - mark MX25L6405 as TEST_OK_PREW\n   tested myself with an MX25L6436E variant on serprog\n - mark W39V080A as TEST_OK_PREW\n   http://www.flashrom.org/pipermail/flashrom/2012-January/008509.html\n\nTested chipsets:\n - SiS 730 (:0730)\n   http://www.flashrom.org/pipermail/flashrom/2011-December/008362.html\n - NVIDIA MCP61 (:03e0)\n   http://www.flashrom.org/pipermail/flashrom/2012-January/008534.html\n - NVIDIA MCP73 (:07d7)\n   http://www.flashrom.org/pipermail/flashrom/2011-December/008412.html\n - NVIDIA MCP79 (:0aac)\n   http://www.flashrom.org/pipermail/flashrom/2012-January/008508.html\n - VIA VT82C69x (0691) and VT82C686A/B (:0686)\n   http://www.flashrom.org/pipermail/flashrom/2011-December/008459.html\n\n - AMD\u0027s SB950 (and presumably also SB920) have the same PCI ID as previous\n   generations, hence change the chipset enable device string. Thanks to\n   Christian Ruppert for the suggestion.\n - Fix the board enable of the abit NF-M2 nView which had the IDs of its onboard\n   graphics card in its pattern. Change this to the LPC controller.\n - Intel X79 SPI registers are identical to 6 Series\u0027, so use the chipsetenable\n   wrapper of it (enable_flash_pch6).\n - Fix two paranoid checks for address \u003c 0 in ichspi.c which became futile (and\n   generate clang warnings) with the unsignify patch committed in r1470.\n - Rename AT25DF641 to AT25DF641(A). They are almost idencical, but could\n   be distinguished by an extended RDID probe (Atmel\u0027s patented EDI procedure),\n   which we do not support yet, hence handle them as one model for now.\n - Source format fixes and typos\n\nCorresponding to flashrom svn r1499.\n\nthe addition of the ASRock AM2NF6G-VSTA to print.c is\nSigned-off-by: Paul Menzel \u003cpaulepanter@users.sourceforge.net\u003e\neverything else is\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": "64204b574528271d5be44febb87d40b1e7eb5de4",
      "tree": "711550e40ef625cc3c20f7f18de0a4958b32072d",
      "parents": [
        "33a65a0672a09342293cde7984dbcdf392687e99"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Tue Dec 20 01:54:19 2011 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Tue Dec 20 01:54:19 2011 +0000"
      },
      "message": "Speed up dediprog SPI page writes\n\nAll chips which use spi_chip_write_256 should be written at native\nspeed. Chips using spi_chip_write_1 or spi_chip_write_aai will\nstill be slow.\n\nThanks to Steven A. Falco for testing with a ST/Numonyx M25P16.\nThanks to David Hendricks for testing with a Winbond W25Q64.\n\nCorresponding to flashrom svn r1477.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Steven A. Falco \u003csfalco@coincident.com\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": "082c8b559cd9f3262c9af58ac2f17f2cc8a09d8b",
      "tree": "ce63847ee6cc1e63289e3f658a5d57ebd35b3619",
      "parents": [
        "0528b7fefa6daf35365c1dee0d21bc94e8120f78"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Mon Aug 15 19:54:20 2011 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Mon Aug 15 19:54:20 2011 +0000"
      },
      "message": "Fixup of r1397\n\n- Mixing uninitialized and initialized local variables leads to\n  confusion.\n- ft2232_spi error cases should have gotten some error handling, and\n  that\u0027s the reason the curly braces were there.\n- Fixing typos/wording in some places would have been nice given that\n  those places were touched anyway.\n\nCorresponding to flashrom svn r1413.\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": "91f4afa1108a35783e9d3d546fe8ea41dc87708f",
      "tree": "a94991ce77532b8767d5d3c6ac0e9ab58f4b9a2c",
      "parents": [
        "1a227954f2c7d0a25d42bcea2ea0b901ceb0f464"
      ],
      "author": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Thu Jul 28 08:13:25 2011 +0000"
      },
      "committer": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Thu Jul 28 08:13:25 2011 +0000"
      },
      "message": "Random whitespace and coding-style fixes\n\nAlso, indentation fixes, e.g. due to conversion to msg_*, use ARRAY_SIZE\nwhere possible, wrap overly long line, etc.\n\nCompile-tested. There should be no functional changes.\n\nCorresponding to flashrom svn r1397.\n\nSigned-off-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\nAcked-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\n"
    },
    {
      "commit": "8bb2021d77c8ee213b53d671687b7a1179335522",
      "tree": "a77cc4239b59731e98cf6c9681b5a7c665613038",
      "parents": [
        "9d9a1042332cd08aa66eee6f37d80c0f09f47d70"
      ],
      "author": {
        "name": "David Hendricks",
        "email": "dhendrix@google.com",
        "time": "Tue Jun 14 01:35:36 2011 +0000"
      },
      "committer": {
        "name": "David Hendricks",
        "email": "david.hendricks@gmail.com",
        "time": "Tue Jun 14 01:35:36 2011 +0000"
      },
      "message": "Use shutdown callback mechanism to shutdown programmers\n\nThis patch attempts to resolve some programmer shutdown ordering issues\nby having the programmer init functions register shutdown callbacks explicitly\nwherever it makes most sense. Before, assumptions were made that could lead to\nthe internal programmer\u0027s state changing before the external programmer could be\nshut down properly. Now, each programmer cleans up after itself and (hopefully)\nperforms each operation in the correct order.\n\nAs a side-effect, this patch gives us a better usage model for reverse\noperations such as rpci_* and rmmio_*. In the long-run, this should make\nreversing the initialization process easier to understand, less tedious, and\nless error-prone.\n\nIn short, this patch does the following:\n- Registers a shutdown callback during initialization for each programmer.\n- Kills the .shutdown function pointer from programmer_entry struct. Also,\n  make most shutdown functions static.\n- Adds a few minor clean-ups and corrections (e.g. missing physunmap() calls).\n\nTODO: Remove forward declaration of serprog_shutdown() (added to simplify diff)\n\nCorresponding to flashrom svn r1338.\n\nSigned-off-by: David Hendricks \u003cdhendrix@google.com\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "b9dbe48b77384e2faf0619161fc5c55afe388ea9",
      "tree": "8b556f82073e824bc1e9a4cc9547d67b1d902cee",
      "parents": [
        "627975196d0630a137548df631756e656a8139af"
      ],
      "author": {
        "name": "Michael Karcher",
        "email": "flashrom@mkarcher.dialup.fu-berlin.de",
        "time": "Wed May 11 17:07:07 2011 +0000"
      },
      "committer": {
        "name": "Michael Karcher",
        "email": "flashrom@mkarcher.dialup.fu-berlin.de",
        "time": "Wed May 11 17:07:07 2011 +0000"
      },
      "message": "Kill central list of SPI programmers\n\nRemove the array spi_programmer, replace it by dynamic registration\ninstead. Also initially start with no busses supported, and switch to\nthe default non-SPI only for the internal programmer.\n\nAlso this patch changes the initialization for the buses_supported variable\nfrom \"everything-except-SPI\" to \"nothing\". All programmers have to set the\nbus type on their own, and this enables register_spi_programmer to just add\nthe SPI both for on-board SPI interfaces (where the internal programmer\nalready detected the other bus types), as well as for external programmers\n(where we have the default \"none\").\n\nCorresponding to flashrom svn r1299.\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": "915b8409d602c9071ef3d461fbe00a867a22a0ad",
      "tree": "9df5b3a288cac5c5a3dcb63e68ddf3e68c8e6082",
      "parents": [
        "3d3fd6ab2c684fd90216a720335874e82a5e8e39"
      ],
      "author": {
        "name": "Stefan Reinauer",
        "email": "reinauer@google.com",
        "time": "Fri Jan 28 09:00:15 2011 +0000"
      },
      "committer": {
        "name": "Stefan Reinauer",
        "email": "stefan.reinauer@coreboot.org",
        "time": "Fri Jan 28 09:00:15 2011 +0000"
      },
      "message": "Support Dediprog LEDs on devices with 2 and 3 LEDs\n\nCorresponding to flashrom svn r1257.\n\nSigned-off-by: Stefan Reinauer \u003creinauer@google.com\u003e\nAcked-by: Mathias Krause \u003cmathias.krause@secunet.com\u003e\n"
    },
    {
      "commit": "ff30d8a5383553d4df035cdcf0e24a0b44d4241a",
      "tree": "781dcdd83da3a820d1f73a1e906af6f06a473a0c",
      "parents": [
        "051e2366fbf453aa39ecd826027fbf553a33c3d4"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Thu Jan 20 21:05:15 2011 +0000"
      },
      "committer": {
        "name": "Stefan Reinauer",
        "email": "stefan.reinauer@coreboot.org",
        "time": "Thu Jan 20 21:05:15 2011 +0000"
      },
      "message": "Secret knowledge is cool, but public knowledge is better\n\nImplement all Dediprog commands found in USB traces, even if their\npurpose is not yet known.\nAnnotate unknown commands with info about the call sequence they are\nembedded in and the firmware version of the log.\n\nAdd a new shutdown command for firmware 5.x (of which Stefan thinks it\u0027s\n\"switch the Pass light on\" hence it is called late in the game)\n\nCorresponding to flashrom svn r1254.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Stefan Reinauer \u003creinauer@google.com\u003e\n"
    },
    {
      "commit": "306b81875dc8c16b230f9b01f37138aa4768d116",
      "tree": "25a7b11b90f5f98c0638387d606c6680d0f71e5c",
      "parents": [
        "482e97443dac5158b6bf48af1b7636a9388debf6"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Tue Nov 23 21:28:16 2010 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Tue Nov 23 21:28:16 2010 +0000"
      },
      "message": "Add chunked write ability to the Dediprog SF100 driver\n\nPlease note that the write speedup only applies to chips which have SPI\npage write (i.e. chips using spi_chip_write_256).\n\nThis is a quick fix for write speed until I get around to implementing\nfull bulk SPI write support.\n\nCorresponding to flashrom svn r1235.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Richard A. Smith  \u003crichard@laptop.org\u003e\nAcked-by: Mathias Krause \u003cmathias.krause@secunet.com\u003e\n"
    },
    {
      "commit": "482e97443dac5158b6bf48af1b7636a9388debf6",
      "tree": "b61604ec05b3e13148c88a5800d373bec63c3489",
      "parents": [
        "d836941f9ee5c207d59baf897153be0010ce361c"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Tue Nov 16 21:25:29 2010 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Tue Nov 16 21:25:29 2010 +0000"
      },
      "message": "Support bulk read on Dediprog SF100\n\nShould result in native speed for plain read and erase.\nShould result in a measurable speedup for writes due to a fast verify.\nPacket size is 512 bytes. Depending on your USB hardware and the\nDediprog firmware version, this may not work at all. That said, it\nworked on the hardware we tested.\n\nAdd lots of error checking where it was missing before.\n\nThanks to Richard A. Smith, Mathias Krause and David Hendricks for\ntesting multiple iterations of this patch.\n\nCorresponding to flashrom svn r1234.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Richard A. Smith \u003crichard@laptop.org\u003e\nAcked-by: Mathias Krause \u003cmathias.krause@secunet.com\u003e\n"
    },
    {
      "commit": "db7afc59c9e376f4506e89939676d38b46353b2c",
      "tree": "e59b569855cd752a9f7f90577b8f322bcdb8bef5",
      "parents": [
        "c24413879c42c24a534735ef71859ab1054a4716"
      ],
      "author": {
        "name": "Mathias Krause",
        "email": "mathias.krause@secunet.com",
        "time": "Tue Nov 09 23:30:43 2010 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Tue Nov 09 23:30:43 2010 +0000"
      },
      "message": "DediProg firmware version 5.1.5 of the SF-100 works just fine\n\nAllow any firmware version from 2.x.y to 5.x.y.\nHandle errors for the initial USB command to catch -EPERM.\n\nCorresponding to flashrom svn r1227.\n\nSigned-off-by: Mathias Krause \u003cmathias.krause@secunet.com\u003e\nAcked-by: Patrick Georgi \u003cpatrick@georgi-clan.de\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "c24413879c42c24a534735ef71859ab1054a4716",
      "tree": "c229d9a277e2a2fc95f210ce0f01ce3d5b025d27",
      "parents": [
        "12d6d821416436cf3ede3dbabcd688887ef7ba76"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Tue Nov 09 22:00:31 2010 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Tue Nov 09 22:00:31 2010 +0000"
      },
      "message": "Support setting the Dediprog SF100 SPI voltage\n\nAdd a generic voltage parameter parser.\nMove tolower_string() from dummyflasher.c to flashrom.c to make it\navailable everywhere.\n\nCorresponding to flashrom svn r1226.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Stefan Reinauer \u003cstepan@coreboot.org\u003e\n"
    },
    {
      "commit": "5b997c3ed66ddbbb9470f27d4e27ab4c263bc9cf",
      "tree": "adbaace5de6bb0d97a58143c7e3ae775a15d47ff",
      "parents": [
        "1d3a2fefbc636fb569bd1d018fb97b1b17c08e99"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Tue Jul 27 22:41:39 2010 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Tue Jul 27 22:41:39 2010 +0000"
      },
      "message": "Split off programmer.h from flash.h\n\nProgrammer specific functions are of absolutely no interest to any file\nexcept those dealing with programmer specific actions (special SPI\ncommands and the generic core).\n\nThe new header structure is as follows (and yes, improvements are\npossible):\nflashchips.h  flash chip IDs\nchipdrivers.h  chip-specific read/write/... functions\nflash.h  common header for all stuff that doesn\u0027t fit elsewhere\nhwaccess.h hardware access functions\nprogrammer.h  programmer specific functions\ncoreboot_tables.h  header from coreboot, internal programmer only\nspi.h SPI command definitions\n\nCorresponding to flashrom svn r1112.\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": "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": "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": "975aa7e2c6444ae81352187a2c979fd1de1f405d",
      "tree": "379c8b9cd809985264264f1852e58020e6c5d641",
      "parents": [
        "873599d8a9f2563a6e6893be1511687ade5c949e"
      ],
      "author": {
        "name": "Patrick Georgi",
        "email": "patrick.georgi@coresystems.de",
        "time": "Thu Feb 04 08:29:18 2010 +0000"
      },
      "committer": {
        "name": "Patrick Georgi",
        "email": "pgeorgi@google.com",
        "time": "Thu Feb 04 08:29:18 2010 +0000"
      },
      "message": "Properly initialize USB device in dediprog driver\n\nThat\u0027s necessary to use bulk transfers, and just the\nright thing in any case.\n\nCorresponding to flashrom svn r891.\n\nSigned-off-by: Patrick Georgi \u003cpatrick.georgi@coresystems.de\u003e\nAcked-by: Stefan Reinauer \u003cstepan@coresystems.de\u003e\n"
    },
    {
      "commit": "eac657909055bad33c60dfa92a28f6a953935b54",
      "tree": "d46c80bf96f1beaee264fd883fe713d564281e32",
      "parents": [
        "2fea3f3197277efb0af7b70b5e5b210213367e2e"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Fri Jan 22 02:53:30 2010 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Fri Jan 22 02:53:30 2010 +0000"
      },
      "message": "Add write support\n\nSpeed up reads by a factor of 4 by switching block size from 4 to 16.\nAdd support for 4 byte RDID.\nAdd USB error decoding via usb_strerror.\n\nCorresponding to flashrom svn r879.\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": "d38fac8c261e4d7e3857453dfb612b9094f63e95",
      "tree": "f0c9704289953cb4c119ec42dfdac2150c322111",
      "parents": [
        "415afcffc17492762d766939953ec2245b8582b0"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Tue Jan 19 11:15:48 2010 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Tue Jan 19 11:15:48 2010 +0000"
      },
      "message": "Dediprog SF100 support\n\nReverse engineered from USB logs. I never touched that programmer nor\ndid I ever see the associated software.\nDisabled by default until it is complete. The driver needs to be hooked\nup to the SPI core before it will do anything besides init and\ndiagnostics.\n\nI successfully reverse engineered all commands, but some are still\nsomewhat magic.\nLogs from \"flashrom -p dediprog -V\" are appreciated.\n\nProbe and read should work, erase/write is expected to explode.\nThe programmer will set voltage to 0 on exit.\n\nThanks a lot to Stefan Reinauer and Patrick Georgi for providing USB\nlogs and for testing the result.\n\nCorresponding to flashrom svn r870.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Stefan Reinauer \u003cstepan@coresystems.de\u003e\n"
    }
  ]
}
