)]}'
{
  "log": [
    {
      "commit": "fbc41d2a932ede9c02aa7803472c31f39ec200f2",
      "tree": "8b72b78abfd99bf8737b90cc2fece11f2dbe93d3",
      "parents": [
        "966dc9b776c2897d1245937639ab41fc834d7cb9"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 22 23:04:01 2026 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Mar 22 09:47:02 2026 +0000"
      },
      "message": "spi: Move SPI related things into new chipdrivers/spi.h\n\nA few things that rely heavily on `flash.h` are moved there instead:\n* function signatures containing `erasefunc_t`,\n* the inline default_wrsr_target() that needs to know struct flashctx.\n\nThis allows to keep the new header file free of a transitive `flash.h`\ninclude.\n\nChange-Id: Ib215821feeb822ea3fc11bf9f48c0328f9a394d4\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/416\n"
    },
    {
      "commit": "610c1aad71bfa118c4f49ac01761f586b8dede69",
      "tree": "8ad4cfd904cf909526b32b03561ad369f42720d9",
      "parents": [
        "b95fe9b9751746b269a3bbd7021cf731d8553715"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Feb 15 02:56:05 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Mar 15 14:27:20 2026 +0000"
      },
      "message": "spi: Pass master instead of flash to .send_command\n\nIn the SPI-master API, `.send_command` should only forward commands to\nthe SPI bus. All details about the commands and the SPI slave should be\nhandled in the chip driver. Hence, replace the `flashctx` pointer with\none to the `spi_master` to enforce proper separation.\n\nChange-Id: I50934a1294217794b7e23cc98ade7e4279c059a1\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/74897\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "522a86dbe88dd56bff3a1285284f0782e3cd179a",
      "tree": "612b8368745f8aa3277205e9f6a4ae8613b478fc",
      "parents": [
        "806509b751e766787a8f429f00f1a04666db75b8"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Apr 28 20:59:21 2023 +0000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Mar 27 08:32:15 2024 +0000"
      },
      "message": "linux_spi: Use default_spi_read()/_write_256()\n\nThe default functions already handle the chunking.\n\nChange-Id: I6ed90c3eed3a3e36a560c5036704cf5ebc26f96e\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/74862\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "9a11cbf21a5078bcdb8db7584c44a9ee17020db4",
      "tree": "e67a9eadfdb7a71f81df36c7e97180474a8c59df",
      "parents": [
        "aabb3e0ff54e87c0136c91f105e506ed19184cc6"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Jan 13 01:19:07 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 09 10:40:04 2024 +0000"
      },
      "message": "Let the flash context directly point to the used master\n\nWe used to have a pointer to a full `registered_master` struct in\nour flash context. Beside the used master, this contained a bit\nmask of supported buses. Oddly convenient, this bit mask invited\nto bypass the chip driver and break the abstraction. It allowed\nto place bus-specific details virtually anywhere in flashprog,\nmaking it harder to find a good place for them.\n\nSo, get rid of the `buses_supported` bit mask by pointing directly\nto the master. Only the chip driver will implicitly know which type\nof master is used.\n\nChange-Id: I9ce13d8df0e7ccc67519d888dd9cb2e2ff8d6682\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72533\n"
    },
    {
      "commit": "89569d60e3aeeec651496b2e7a2e6064d782ab3b",
      "tree": "bf0c3951886de60086d32ff6e1a850adad926da6",
      "parents": [
        "929d2e1b17a448d3352dbecb6a620ee0c1e65a58"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 12 23:31:40 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 09 10:30:24 2024 +0000"
      },
      "message": "memory_mapped: Reduce `decode_sizes` to a single `max_rom_decode`\n\nWe used to store the maximum decode size, i.e. the maximum memory-mapped\nrange of the flash chip, per bus type (Parallel, LPC, FWH, SPI). There\nwas no programmer in the tree that really made use of it, though:\n* The chipset drivers usually focus on a single bus type. And even if\n  they advertise the whole default set (PAR, LPC, FWH), they only pro-\n  vide a maximum decode size for one of them. The latter is probably\n  wrong, should really more than one bus type be supported.\n* PCI and external programmers all support only a single bus type, with\n  the exception of `serprog` which doesn\u0027t set a maximum decode size.\n\nWhat made the distinction even less useful is that for some chips that\nsupport multiple bus types, i.e. LPC+FWH, we can\u0027t even detect which\ntype it is. The existing code around this also only tried to provide\nthe best possible warning message at the expense of breaking the pro-\ngrammer abstraction.\n\nHence, unify the set of sizes into a single `max_rom_decode` property.\nWe store it inside the `registered_master` struct right away, to avoid\nany more use of globals.\n\nChange-Id: I2aaea18d5b4255eb843a625b016ee74bb145ed85\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72531\n"
    },
    {
      "commit": "e3a26888e14d16592c2c79d1516828d3d32961a4",
      "tree": "02d401e60defd27fe7bee194978bac782284cb39",
      "parents": [
        "2b66ad9c4465432e6f2aff2e95f1e7a556bfc3f0"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Jan 11 21:45:51 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 09 10:30:24 2024 +0000"
      },
      "message": "Pass programmer context to programmer-\u003einit()\n\nChange-Id: I064eb4e25c3d382e4e5bde802306698fafe5e1d0\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72526\n"
    },
    {
      "commit": "c3b02dce51aad2766512d1939a1b7447c2d526b8",
      "tree": "58069f464bb8a777ef06e93767813a4c5a042cb0",
      "parents": [
        "a02df33fbf1c196395a61049e60895d4ae0e0a5b"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Aug 12 01:13:45 2023 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Sep 18 19:24:39 2023 +0000"
      },
      "message": "Rebrand to flashprog and update URLs\n\nMostly automated `sed` work. As of now, URLs to the old wiki are broken\neither way, so changing them shouldn\u0027t hurt. Other URLs (e.g. to mailing\nlist archives) were hopefully filtered correctly.\n\nChange-Id: I9d43bfd0e675eff2fcbad05f304b9ce9f5006b08\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashrom-stable/+/21\n"
    },
    {
      "commit": "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": "0b587f921aebd36aaa9f69faea0d2601386d7379",
      "tree": "c13c57f89dd385d3ed1bd76893cf7a251f8eba1a",
      "parents": [
        "7310f19a07d70a16a0e6342ceb538854729282cd"
      ],
      "author": {
        "name": "Edward O\u0027Callaghan",
        "email": "quasisec@google.com",
        "time": "Fri Sep 09 23:01:05 2022 +1000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 29 12:29:02 2023 +0000"
      },
      "message": "spi: Make \u0027default_spi_write_aai\u0027 the default unless defined\n\nA NULL func pointer is necessary and sufficient for the\ncondition `NULL func pointer \u003d\u003e default_spi_write_aai\u0027 as to not\nneed this explicit specification of \u0027default\u0027.\n\nTherefore drop the explicit need to specify the \u0027default_spi_write_aai\u0027\ncallback function pointer in the spi_master struct. This is a reasonable\ndefault for every other driver in the tree with only a few exceptions.\n\nThis simplifies the code and driver development.\n\nflashrom-stable: Updated `dirtyjtag_spi` which was added earlier.\n\nChange-Id: I7f14aaea0edcf0c08cea0e9cd27d58152707fb2a\nSigned-off-by: Edward O\u0027Callaghan \u003cquasisec@google.com\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/67479\nOriginal-Reviewed-by: Peter Marheine \u003cpmarheine@chromium.org\u003e\nOriginal-Reviewed-by: Anastasia Klimchuk \u003caklm@chromium.org\u003e\nOriginal-Reviewed-by: Felix Singer \u003cfelixsinger@posteo.net\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72369\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": "51264d5def2188624a3354c62722a95e64224645",
      "tree": "f8b01a56582b453253d7a7b09b26cedd61bbe96f",
      "parents": [
        "121a5b8d63008db1d179ab69fc1c6b39e03d575c"
      ],
      "author": {
        "name": "Thomas Heijligen",
        "email": "thomas.heijligen@secunet.de",
        "time": "Tue Sep 21 10:00:14 2021 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 29 12:29:02 2023 +0000"
      },
      "message": "remove compile guards\n\nThe build system handles the decision when to build a file.\nExtra compile guards for the source files are not necessary.\n\nChange-Id: I76a76e05c7a7dd27637325ab1e9d8946fd5f9076\nSigned-off-by: Thomas Heijligen \u003cthomas.heijligen@secunet.de\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/57797\nOriginal-Reviewed-by:  Felix Singer \u003cfelixsinger@posteo.net\u003e\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/+/72260\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": "2a329665800a7f2c74414bff75f225a9e28eda47",
      "tree": "f08085ba0490871e9192ff1e25cf21f610a46ec8",
      "parents": [
        "9e698f9063289d4cd291311f037f0818242059f0"
      ],
      "author": {
        "name": "Anastasia Klimchuk",
        "email": "aklm@chromium.org",
        "time": "Mon Apr 19 11:12:01 2021 +1000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 22 00:55:18 2023 +0000"
      },
      "message": "linux_spi.c: Drop some unnecessary initialisations and checks\n\nIn previous patches 52283, 52284, 52285 there were some unresolved\ncomments left, resolving [and replying to] all of that here.\n\nTested: builds and ninja test from 51487\n\nChange-Id: I27a718b515fc474f63b3e61be58a6f9302527559\nSigned-off-by: Anastasia Klimchuk \u003caklm@chromium.org\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/52492\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/+/72172\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "84f0392cce072ad52fa178869594fcf0bbf58647",
      "tree": "4ad9368cba17dbdde5a43a93ee23d80fc0a02a23",
      "parents": [
        "f876c0fd309cd7c2293ca4579f482bb28148f63c"
      ],
      "author": {
        "name": "Anastasia Klimchuk",
        "email": "aklm@chromium.org",
        "time": "Tue Apr 13 11:26:25 2021 +1000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 22 00:55:18 2023 +0000"
      },
      "message": "linux_spi.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\nChange-Id: I93408c2ca846fca6a1c7eda7180862c51bd48078\nSigned-off-by: Anastasia Klimchuk \u003caklm@chromium.org\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/52285\nOriginal-Reviewed-by: Edward O\u0027Callaghan \u003cquasisec@chromium.org\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72169\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "f876c0fd309cd7c2293ca4579f482bb28148f63c",
      "tree": "03319f9840dc35d9273aa71c435971855bee30f9",
      "parents": [
        "c19ef9b30bfbace8b50985af104c35ffad7e576f"
      ],
      "author": {
        "name": "Anastasia Klimchuk",
        "email": "aklm@chromium.org",
        "time": "Tue Apr 13 10:15:26 2021 +1000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 22 00:55:18 2023 +0000"
      },
      "message": "linux_spi.c: Separate shutdown from failed init cleanup\n\nShutdown function was covering two different jobs here:\n1) the actual shutdown which is run at the end of the driver\u0027s\nlifecycle and 2) cleanup in cases when initialisation failed.\nNow, shutdown is only doing its main job (#1), and the driver\nitself is doing cleanup when 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 fails.\n\nAnd very importantly this unlocks API change which plans to move\nregister_shutdown inside register master API, see this\nhttps://review.coreboot.org/c/flashrom/+/51761\n\nChange-Id: I1c8da2878cd0e85a1e43ba9b4b8e6f3d9f38ae5c\nSigned-off-by: Anastasia Klimchuk \u003caklm@chromium.org\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/52284\nOriginal-Reviewed-by: Edward O\u0027Callaghan \u003cquasisec@chromium.org\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72168\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "c19ef9b30bfbace8b50985af104c35ffad7e576f",
      "tree": "f3c9b4fe5d1cd0d9cf6dafba7386a289ea3807d9",
      "parents": [
        "8577756804bcb21acb715b8c301eb71997f05b4a"
      ],
      "author": {
        "name": "Anastasia Klimchuk",
        "email": "aklm@chromium.org",
        "time": "Mon Apr 12 16:52:58 2021 +1000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 22 00:55:18 2023 +0000"
      },
      "message": "linux_spi.c: Extract get_max_kernel_buf_size() as a function\n\nTo get max_kernel_buf_size is a piece of logic on its own, it opens\nresources and closes resources, also has some local variables only\nfor this task. Extracting get_max_kernel_buf_size() as a separate\nfunction simplifies init flow and allows to remove global state from linux_spi\n(see next patches in this chain).\n\nChange-Id: I4b8c5775fb8f4b0dff702fcc0fb258221254c659\nSigned-off-by: Anastasia Klimchuk \u003caklm@chromium.org\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/52283\nOriginal-Reviewed-by: Edward O\u0027Callaghan \u003cquasisec@chromium.org\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72167\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\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": "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": "e0ceedf76d48757a05f22860e7ddd03e430c2252",
      "tree": "e74511724d0f856e267825b1bafabe143260164c",
      "parents": [
        "28d081924ea6fca7a643ae273cb56cd11788adc5"
      ],
      "author": {
        "name": "Fabrice Fontaine",
        "email": "fontaine.fabrice@gmail.com",
        "time": "Wed Jul 17 19:04:12 2019 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Oct 16 19:30:57 2019 +0000"
      },
      "message": "linux_spi: reorder includes for linux \u003c4.14\n\nThis works around a missing header in spidev.h present in older\nversions of Linux. Patch is ported from:\nhttps://git.buildroot.net/buildroot/tree/package/flashrom/0001-spi.patch\n\nSigned-off-by: \"Yann E. MORIN\" \u003cyann.morin.1998@free.fr\u003e\nSigned-off-by: Fabrice Fontaine \u003cfontaine.fabrice@gmail.com\u003e\nSigned-off-by: David Hendricks \u003cdavid.hendricks@gmail.com\u003e\nChange-Id: Ieab60f59bc63aca0dc4867f31699dab4167da05b\nReviewed-on: https://review.coreboot.org/c/flashrom/+/35830\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "1c0c8fd9da34d29d549803f3ddff9a68dd95dfed",
      "tree": "4cdf8d00d844fc0286f05cda7677d298d9ead6b9",
      "parents": [
        "4a7970bc98c5bacd2cebcc2b4a3a39be304a1cae"
      ],
      "author": {
        "name": "Jacob Garber",
        "email": "jgarber1@ualberta.ca",
        "time": "Mon Aug 12 14:14:40 2019 -0600"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Sep 24 19:09:29 2019 +0000"
      },
      "message": "linux_spi: Use fgets() to read buffer size\n\nSince fread() returns the number of bytes read, this currently will only\ncheck for errors if it returns 0 (i.e. the file was empty). However, it\nis possible for fread() to encounter an error after reading a few bytes,\nwhich this doesn\u0027t catch. Fix this by using fgets() instead, which will\nreturn NULL if EOF or an error is encountered, and is simpler anyway.\n\nChange-Id: I4f37c70e97149b87c6344e63a57d11ddde7638c4\nSigned-off-by: Jacob Garber \u003cjgarber1@ualberta.ca\u003e\nFound-by: Coverity CID 1403824\nReviewed-on: https://review.coreboot.org/c/flashrom/+/34848\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: David Hendricks \u003cdavid.hendricks@gmail.com\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": "9cecc7e25dc3fe27a801a745410825cfc2cfaac3",
      "tree": "4d2f9f1d8959db64600e2ce61844726ada00781d",
      "parents": [
        "099c8b2d5faae4d7f49c01c856f78398b743baa3"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Dec 22 00:08:50 2018 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Dec 22 23:03:57 2018 +0000"
      },
      "message": "linux_spi: Hardcode default spispeed of 2MHz\n\nLeaving the `linux_spi` driver\u0027s unknown default is almost never what we\nwant and resulted in many support requests since Raspbian switched to a\ndefault that is too high for most applications.\n\nChange-Id: I9361b7c1a1ab8900a619b06e1dae14cd87eb56c2\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/30368\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\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": "22418428ed28d803bfca151623bbf017d1ba6bfc",
      "tree": "6fbf0e0bd0ce3dd315c849309f4f62139a933756",
      "parents": [
        "a3ab6c6c3ae7ec62944aad580bbfc1701b3a8581"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.huber@secunet.com",
        "time": "Thu Mar 08 16:14:15 2018 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Mar 20 10:01:20 2018 +0000"
      },
      "message": "linux_spi: Reduce maximum read chunksize\n\nIt turned out that older kernels use a single buffer of `bufsiz` bytes\nfor combined input and output data. So we have to account for the read\ncommand + max 4 address bytes.\n\nChange-Id: Ide50db38af1004fde09a70b15938e77f5e1285ac\nSigned-off-by: Nico Huber \u003cnico.huber@secunet.com\u003e\nTested-by: Julian von Mendel \u003cgit@jinvent.de\u003e\nReviewed-on: https://review.coreboot.org/25149\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Julian von Mendel \u003cgit@jinvent.de\u003e\nReviewed-by: David Hendricks \u003cdavid.hendricks@gmail.com\u003e\n"
    },
    {
      "commit": "1cf407b4f8d56035816efaf936a40553441eca46",
      "tree": "c8e41e1172aaeb567af161a9763521c53073bdc4",
      "parents": [
        "ed098d62d66d91cf7330a37f9b83e303eb7f56d8"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Nov 10 20:18:23 2017 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Jan 02 20:14:34 2018 +0000"
      },
      "message": "spi_master: Introduce SPI_MASTER_4BA feature flag\n\nAdd a feature flag SPI_MASTER_4BA to `struct spi_master` that advertises\nprogrammer-side support for 4-byte addresses in generic commands (and\nread/write commands if the master uses the default implementations). Set\nit for all masters that handle commands address-agnostic.\n\nDon\u0027t prefer native 4BA instructions if the master doesn\u0027t support them.\n\nChange-Id: Ife66e3fc49b9716f9c99cad957095b528135ec2c\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/22421\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: David Hendricks \u003cdavid.hendricks@gmail.com\u003e\n"
    },
    {
      "commit": "1f33cb58001f95c3de69f037acae6f72baddca2b",
      "tree": "863f297f755279f16fbb4f4e2615b01279ae9733",
      "parents": [
        "22f2dc5ec0b13a413a9ce42a5836ec2aa3b1abfc"
      ],
      "author": {
        "name": "Keno Fischer",
        "email": "keno@juliacomputing.com",
        "time": "Sun Nov 15 14:58:25 2015 +0000"
      },
      "committer": {
        "name": "David Hendricks",
        "email": "david.hendricks@gmail.com",
        "time": "Thu Nov 16 06:28:01 2017 +0000"
      },
      "message": "linux_spi: Dynamically detect max buffer size\n\nRead max buffer size from sysfs if available.\n\nChange-Id: Ic541e548ced8488f074d388f1c92174cad123064\nSigned-off-by: Keno Fischer \u003ckeno@juliacomputing.com\u003e\nSigned-off-by: David Hendricks \u003cdhendricks@fb.com\u003e\nReviewed-on: https://review.coreboot.org/22441\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "23e10b87801c22f34642895de8b0b726265eb016",
      "tree": "2d62c23191801afaecbf98925effb8b8c7a44ab6",
      "parents": [
        "c2644a3fc14088a2535c05edbd56c041b3a7370d"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sat Jan 23 16:16:49 2016 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sat Jan 23 16:16:49 2016 +0000"
      },
      "message": "Add a bunch of new/tested stuff and various small changes 24\n\nTested mainboards:\nOK:\n - ASRock G31M-GS\n   Reported by Александр Трубицын\n - ASRock G41M-VS3\n   Reported by Александр Трубицын\n - ASRock N68C-S UCC\n   Reported by Alexey Belyaev\n - ASRock AMCP7AION-HT (ION 330HT(-BD))\n   Reported by Stefan Tauner\n - ASUS P5K SE\n   Reported by Александр Трубицын\n - ASUS P5KPL-VM\n   Reported by Marin Vlah\n - ASUS RAMPAGE III GENE\n   Reported by stevessss on IRC\n - GIGABYTE GA-945GM-S2\n   Reported by Александр Трубицын\n - GIGABYTE GA-945GCM-S2 (rev. 3.0)\n   Reported by Александр Трубицын\n - GIGABYTE GA-965P-S3\n   Reported by Александр Трубицын\n - GIGABYTE GA-EG43M-S2H\n   Reported by Александр Трубицын\n - GIGABYTE GA-EP31-DS3L (rev. 1.0)\n   Reported by Александр Трубицын\n - GIGABYTE GA-G33M-S2\n   Reported by Александр Трубицын\n - GIGABYTE GA-G33M-S2L\n   Reported by Александр Трубицын\n - GIGABYTE GA-H55M-S2\n   Reported by Александр Трубицын\n - GIGABYTE GA-J1900N-D3V\n   Reported by Marcos Truchado and Guillermo von Hünefeld\n - GIGABYTE GA-K8NS\n   Reported  by nicolae788\n - GIGABYTE GA-M56S-S3\n   Reported by Estevo Paz Freire\n - GIGABYTE GA-P31-DS3L\n   Reported by Александр Трубицын\n - GIGABYTE GA-P31-S3G\n   Reported by Александр Трубицын\n - MSI MS-7336\n   Reported by Benjamin Bellec\n - MSI X79A-GD45 (8D) (MS-7760)\"\n   Reported by mortehu on IRC\n - Supermicro A1SAi-2550F\n   Reported by Bernard Grymonpon\n - Supermicro X7DWT\n   Reported by Steven Stremciuc\n\nLaptop:\n - ASUS U38N\n   Reported by Ultra on IRC\n - Dell Latitude D630\n   Reported by Márton Miklós\n - Fujitsu Amilo Xi 3650\n   Reported by Elmar Stellnberger\n - Lenovo T400 (whitelisting only)\n\nChipsets:\n - Mark 8086:1f38 (Intel Avoton/Rangeley) as tested\n   Reported by Jeremy Porter and Bernard Grymonpon\n - Add Intel Sunrise Point IDs but no support yet.\n\nFlash chips:\n - Atmel AT45DB321D to PREW (+PREW)\n   Reported by The Raven\n - Eon EN25QH32 to PREW (+PREW)\n   Reported by Josua Mayer\n - Eon EN25QH64 to PREW (+EW)\n   Reported by David s. Alessio\n - GigaDevice GD25LQ64(B) to PREW (+PREW)\n   Reported by Greg Tippit\n - Intel 28F001BN/BX-T to PREW (+EW)\n   Reported by Lu Xie\n - Micron M25P10-A to PREW (+W)\n   Reported by the Raven\n - Micron M25PE40\n   Reported by David Wood\n - Micron N25Q128..3E to PREW (+PREW)\n   Reported by Miklós Márton\n - Macronix MX25L3273E to PREW (+PREW)\n   Reported by Roklobsta on IRC\n - Macronix MX23L6454 to PR (+PR)\n   Reported by Steven Honeyman\n - Macronix MX25U6435E/F to PREW (+PREW)\n   Reported by Marcos Truchado and Guillermo von Hünefeld\n - PMC Pm25LQ032C to PREW (+EW)\n   Reported by Dirk Knop\n - Spansion S25FL016A to PREW (+EW)\n   Reported by Márton Miklós\n - Spansion S25FL128S......0 to PREW (+PREW)\n   Reported by Jim Houston\n - Spansion S25FL204K to PR (+PR)\n   Reported by Thomas Debrunner\n - SST SST49LF016C to PREW (+EW)\n   Reported by Steven Stremciuc\n - SST SST39VF040 to PREW (+PREW)\n   Reported by Xavier Bourgeois\n - SST SST49LF040B to PREW (+EW)\n   Reported by Rikard Åhlund\n - ST M25P10-A to PREW (+W)\n   Reported by Martijn Schiedon\n - Winbond W39V040FA to PREW (+EW)\n   Reported by Евгений Черкашин\n - Winbond W39V080FA to PREW (+EW)\n   Reported by protagonist0 on IRC\n - Winbond W25Q80.W to PREW (+PREW)\n   Reported by Miklós Márton\n - Winbond W25X64 to PREW (+REW)\n   Reported by Johannes Krampf and Manuel Dejonghe\n - Fix ID of AMIC A25LQ64\n   Reported by Roman Titov\n - Fix page size of Spansion S25FL129P......1\n   Copy and paste error from the 128S uniform 256kB variant, probably.\n - Add Micron/Numonyx phase-change memory IDs\n\nMiscellaneous:\n - Detect Android target OS.\n   No changes are required to build flashrom (excluding programmers\n   with NEED_PCI) on Android.\n - Update rayerspi (spipgm) URL\n - Fix max_data_write handling of at45db.\n - Minor refinement of the README\n - Mark board enable for the GA-K8NS variants as tested.\n   Tested by \"nicolae788\" on a board with socket 754.\n - Mark \"Multi-system\" chassis as non-laptop case.\n - Remove W836xx log requests.\n   We got enough (and no one is looking at them for the time being anyway).\n - serprog: improve invalid reply error message, contributed by Urja Rannikko.\n - Remove default include paths for MinGW.\n - Disable implicit rules in the Makefile because we don\u0027t need them and they\n   just make the build (imperceptibly) slower.\n - Enable our own strnlen() implementation not only on DJGPP but also if\n   HAVE_STRNLEN is not defined. This is needed to get older BSDs\n   (e.g. NetBSD 6.0, FreeBSD \u003c 8.0) to work.\n - Tiny other stuff.\n\nCorresponding to flashrom svn r1917.\n\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\n"
    },
    {
      "commit": "8cd0c73fb54658e9176c4b78a57bc9e99eab4faf",
      "tree": "191a9906cb0cc117bd682167bcfea520d9d19c44",
      "parents": [
        "c8305e1dee66cd69bd8fca38bff2c8bf32924306"
      ],
      "author": {
        "name": "Gwenhael Goavec-Merou",
        "email": "gwenhael.goavec-merou@trabucayre.com",
        "time": "Sat Nov 14 02:55:12 2015 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sat Nov 14 02:55:12 2015 +0000"
      },
      "message": "Add (implicit) support for musl libc\n\nThis is mostly achieved by fixing or refining the inclusion of header\nfiles and replacing glibc-specific ifdefs with more generic ones.\n\n - \u003csys/io.h\u003e: Contains iopl(2) and x86 I/O port access functions (inb, outb etc).\n               Generally Linux-specific but also availble on debian/kFreeBSD.\n               Provided by glibc as well as musl and uclibc.\n               Include it if we are running Linux or if glibc is detected.\n - \u003csys/fcntl.h\u003e: should be (and is) replaced by \u003cfcntl.h\u003e (without the\n    \t\t\t  \"sys\" prefix).\n - \u003clinux/spi/spidev.h\u003e: Does not include all necessary headers, namely\n                         _IOC_SIZEBITS that is used in the definition of\n                         SPI_MSGSIZE is not brought in via \u003clinux/ioctl.h\u003e\n                         but instead we relied so far on glibc\u0027s including\n                         it via \u003csys/ioctl.h\u003e. Change that to explicitly\n                         including \u003clinux/ioctl.h\u003e.\n - \u003cendian.h\u003e: Would also be available in musl but there is no easy way\n               to detect it so we do not try yet.\n\nCorresponding to flashrom svn r1898.\n\nThe bug report and initial patches were\nSigned-off-by: Gwenhael Goavec-Merou \u003cgwenhael.goavec-merou@trabucayre.com\u003e\n\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\n"
    },
    {
      "commit": "18f509780a3eb76ffe31b4bfc24016c408dec537",
      "tree": "a302ee3839d61da639b806e99b7aa7c9ec2fb43a",
      "parents": [
        "03a9c3c1bbfd1548888ff6386c30165efc4c7c00"
      ],
      "author": {
        "name": "David Riley",
        "email": "davidriley@chromium.org",
        "time": "Tue Aug 05 22:16:01 2014 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Tue Aug 05 22:16:01 2014 +0000"
      },
      "message": "linux_spi: properly convert pointers to kernel\u0027s u64\n\nFor arm64 with 32-bit userspace, pointers such as 0xff96ebf8 were\nincorrectly getting converted to u64_t 0xffffffffff96ebf8 in the\nspi_ioc_transfer struct which was causing ioctl()s to be rejected by\nthe kernel. With this patch we first cast to uintptr_t (to avoid\nwarnings on architectures where char * are not 64b wide) and then to\nuint64_t which is always big enough and does not produce warnings.\n\nThis patch is taken from ChromiumOS\u0027\nChange-Id: I5a15b4ca5d9657c3cb1ddccd42eafd91c852dd26\n\nCorresponding to flashrom svn r1836.\n\nSigned-off-by: David Riley \u003cdavidriley@chromium.org\u003e\nReviewed-by: David Hendricks \u003cdhendrix@chromium.org\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\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": "f20b7beff054eb316088d590094d9efbc68dbee1",
      "tree": "6324be451385c9f9cea27381f35f300fbaa7f454",
      "parents": [
        "20da4aa82cc11f25a6a4a52fd2bed219e6e1d829"
      ],
      "author": {
        "name": "Mark Marshall",
        "email": "mark.marshall@omicron.at",
        "time": "Fri May 09 21:16:21 2014 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Fri May 09 21:16:21 2014 +0000"
      },
      "message": "Add \u0027const\u0027 keyword to chip write and other function prototypes\n\nCorresponding to flashrom svn r1789.\n\nInspired by and mostly based on a patch\nSigned-off-by: Mark Marshall \u003cmark.marshall@omicron.at\u003e\n\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\n"
    },
    {
      "commit": "69dd09d8818b338743e796276c9d39ff78ed5065",
      "tree": "da9d3b5f589abf8e14a7f1ad0571c0a12bd0ff19",
      "parents": [
        "d29806ffdefe2334de7bb5782ed08ade6d9712af"
      ],
      "author": {
        "name": "Alexandru Gagniuc",
        "email": "mr.nuke.me@gmail.com",
        "time": "Wed Mar 19 17:17:06 2014 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Wed Mar 19 17:17:06 2014 +0000"
      },
      "message": "linux_spi: Stop messing up the units of SPI speed\n\n\u0027speed\u0027 is stored in Hz, so rename the variable to \u0027speed_hz\u0027 to\nclarify any potential confusion. Also, when printing the speed after\nsetting it with an ioctl, convert it to kHz to match the units given\nin the message.\n\nCorresponding to flashrom svn r1769.\n\nSigned-off-by: Alexandru Gagniuc \u003cmr.nuke.me@gmail.com\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\n"
    },
    {
      "commit": "d29806ffdefe2334de7bb5782ed08ade6d9712af",
      "tree": "dd4417d9c5cc452535ab130dc47f5ac31e19c267",
      "parents": [
        "bf8ea49c0cdf7a73cfc0df5e0eab6f8c9fbca410"
      ],
      "author": {
        "name": "Alexandru Gagniuc",
        "email": "mr.nuke.me@gmail.com",
        "time": "Wed Mar 19 17:17:00 2014 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Wed Mar 19 17:17:00 2014 +0000"
      },
      "message": "linux_spi: Fix conversion from kHz to Hz\n\nA kilohertz is exactly 1000 hertz, not 1024 hertz.\n\nCorresponding to flashrom svn r1768.\n\nSigned-off-by: Alexandru Gagniuc \u003cmr.nuke.me@gmail.com\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\n"
    },
    {
      "commit": "0554ca5cd33fe2cc599cfdbe91fff03c8fa752c5",
      "tree": "1d37d76b5b3d810c6b2a1286a5de7c2b60ce69a0",
      "parents": [
        "305e0b999a7d452a845709d5558c17a31afe178c"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Thu Jul 25 22:54:25 2013 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Thu Jul 25 22:54:25 2013 +0000"
      },
      "message": "Add a bunch of new/tested stuff and various small changes 18\n\nTested mainboards:\nOK:\n - ASUS C60M1-I\n   http://www.flashrom.org/pipermail/flashrom/2013-February/010578.html\n - ASUS P8H77-I\n   http://www.flashrom.org/pipermail/flashrom/2013-March/010607.html\n - ASUS P8H77-M\n   http://www.flashrom.org/pipermail/flashrom/2013-May/010994.html\n - ASUS P8P67 LE (B2)\n   http://www.flashrom.org/pipermail/flashrom/2013-May/010972.html\n - Elitegroup GeForce6100PM-M2 (V3.0)\n   http://www.flashrom.org/pipermail/flashrom/2013-July/011177.html\n - GIGABYTE GA-P55A-UD7\n   http://www.flashrom.org/pipermail/flashrom/2013-July/011302.html\n - MSI B75MA-E33 (MS-7808)\n   http://www.flashrom.org/pipermail/flashrom/2013-March/010659.html\n - MSI H77MA-G43 (MS-7756)\n   http://www.flashrom.org/pipermail/flashrom/2013-April/010853.html\n - MSI KA780G (MS-7551)\n   http://paste.flashrom.org/view.php?id\u003d1617\n - SAPPHIRE IPC-E350M1\n   Reported by xvilka on IRC\n - Supermicro X8DTG-D\n   http://www.flashrom.org/pipermail/flashrom/2013-July/011305.html\nNOT OK:\n - ASRock Fatal1ty Z77 Performance\n   http://www.flashrom.org/pipermail/flashrom/2013-January/010467.html\n - ASRock Z68 Extreme4\n   http://www.flashrom.org/pipermail/flashrom/2013-May/010984.html\n - ASUS P8B75-M LE\n   http://www.flashrom.org/pipermail/flashrom/2013-April/010867.html\n - ASUS P8P67-M PRO\n   http://www.flashrom.org/pipermail/flashrom/2013-February/010541.html\n - ASUS P8Z68-V LE\n   http://www.flashrom.org/pipermail/flashrom/2013-February/010582.html\n - Intel DQ77MK\n   http://paste.flashrom.org/view.php?id\u003d1603\n - Supermicro X9DRD-7LN4F\n   http://paste.flashrom.org/view.php?id\u003d1582\n - Supermicro X9SCE-F\n   http://www.flashrom.org/pipermail/flashrom/2013-February/010588.html\n - Supermicro X9SCM-F\n   http://www.flashrom.org/pipermail/flashrom/2013-February/010527.html\n - Tyan S7066\n   http://www.flashrom.org/pipermail/flashrom/2013-March/010630.html\n\nChipsets:\n - Marked Intel B75 as tested\n   http://www.flashrom.org/pipermail/flashrom/2013-March/010659.html\n - Marked Intel H77 as tested\n   http://www.flashrom.org/pipermail/flashrom/2013-March/010607.html\n - Removed 10de:03e2 because it is apparently the MCP61 host bridge.\n   It was reclassified to Host Bridge in the PCI device ID database and there\n   is at least one report suggesting this configuration too:\n   http://www.flashrom.org/pipermail/flashrom/2012-August/009716.html\n - Added MCP89 which hopefully works with the code for previous versions.\n   Thanks to James Laird for submitting this change.\n\nTested flash chips:\n - Atmel AT25DF641(A) to PREW (+PREW)\n   http://www.flashrom.org/pipermail/flashrom/2013-June/011113.html\n - Atmel AT25F512 to PREW (+PREW)\n   http://www.flashrom.org/pipermail/flashrom/2013-April/010904.html\n   Also, change its ID according to Modification of PCN SC040401A:\n   \"There has been a change in the returned value of the Product Identification\n   (RDID) command, the AT25F512A RDID code is 65h compared to 60h from\n   the AT25F512 product.\"\n   It seems to be quite likely that all AT25F512 are fully functional relabeled\n   AT25F1024 chips. There are even some hints in the datasheet:\n   in table 6 they stress that address pin 16 needs to be low under all circum-\n   stances; while continuous reads can wrap around on the AT25F1024 the DS\n   notes \"For the AT25F512, the read command must be terminated when the\n   highest address (00FFFF) is reached.\" OTOH the lock bit semantics are\n   different, but this has not been tested thoroughly\n - Atmel AT25F512A to PREW (+PREW)\n   http://paste.flashrom.org/view.php?id\u003d1569\n - Eon EN25F05 to PREW (+PREW)\n   http://paste.flashrom.org/view.php?id\u003d1571\n - Macronix MX25L12805(D) to PREW (+REW)\n   http://www.flashrom.org/pipermail/flashrom/2013-April/010913.html\n - Spansion S25FL256S......0 and S25FL512S to P/!R!E!W (+P)\n   Tested by Stefan Tauner\n - Micron/Numonyx/ST M25PX80 to PREW (+PREW)\n   Tested by Stefan Tauner\n - Micron/Numonyx/ST N25Q032..3E and N25Q128..3E to PREW (+PREW)\n   Tested by Stefan Tauner\n - Micron/Numonyx/ST N25Q256..3E and N25Q512..3G to P/!R!E!W (+P)\n   Tested by Stefan Tauner\n - SST SST25VF040B to PREW (+PREW)\n   http://paste.flashrom.org/view.php?id\u003d1574\n - SST SST25VF040B.REMS to PREW (+EW)\n   http://paste.flashrom.org/view.php?id\u003d1575\n - ST M25P05-A to PREW (+PREW)\n   http://paste.flashrom.org/view.php?id\u003d1576\n - ST M29W512B to PREW (+W)\n   http://www.flashrom.org/pipermail/flashrom/2013-March/010635.html\n - Winbond W25Q64.W to PREW (+PREW)\n   Tested by the chromiumos guys.\n - Winbond W25Q128.V to PREW (+REW)\n   http://www.flashrom.org/pipermail/flashrom/2013-June/011108.html\n - Winbond W25X20 to PREW (+PREW)\n   http://www.flashrom.org/pipermail/flashrom/2013-May/010990.html\n\nMiscellaneous:\n - Add Lenovo X201 to the laptop whitelist.\n - Add chip IDs for the ESMT F25L..QA family.\n - Add chip IDs for a few Macronix MX25 models.\n - The list of flashchips is not sorted strictly alphabetically and should not be\n   either. Refine the comment explaining the scheme on top of the list.\n - Support -L output of chip sizes with up to 6 decimal places (up to 4 Gb).\n - Use z length modifier in (more) prints for size_t types.\n - Remove chips \u003e16MB again because our current implementation of memory mapping\n   the flash chip violates common rules by mapping a window as large as the chip.\n   This leads to failing mmaps as can be seen here:\n   http://paste.flashrom.org/view.php?id\u003d1695\n - Document spispeed parameter of linux_spi (and fix some leaks).\n - Rephrase the \"multiple chips detected\" message because it was confusing.\n - Skip verification step if the image is equal to the flash contents.\n - Tiny other stuff.\n\nCorresponding to flashrom svn r1702.\n\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "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": "8868db37b7f9d7408161cc55bd6566f338762cb0",
      "tree": "b10ec294018a6fd534f4676587332beb7b654f45",
      "parents": [
        "ded71e57c7c1b16d1138a1942d44732d1d9c41b1"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Tue Mar 13 00:18:19 2012 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Tue Mar 13 00:18:19 2012 +0000"
      },
      "message": "Make the presence of Linux SPI headers mandatory for linux_spi\n\nThis solution is copied from ft2232_spi and is equally hacky.\nThanks to M.K. for investigating the history of \u003clinux/spi/spidev.h\u003e, which\nled to a hopefully more robust check.\n\nCorresponding to flashrom svn r1517.\n\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Michael Karcher \u003cflashrom@mkarcher.dialup.fu-berlin.de\u003e\n"
    },
    {
      "commit": "8371d7238a404fb9713c2ff4a011263709c38c34",
      "tree": "5e061ffcfcac316ebb7e346317fe3b86bcb68bdb",
      "parents": [
        "2c3e9d5f57b8f2c33bda30dcac043c1b31089183"
      ],
      "author": {
        "name": "Michael Karcher",
        "email": "flashrom@mkarcher.dialup.fu-berlin.de",
        "time": "Tue Mar 06 22:17:06 2012 +0000"
      },
      "committer": {
        "name": "Michael Karcher",
        "email": "flashrom@mkarcher.dialup.fu-berlin.de",
        "time": "Tue Mar 06 22:17:06 2012 +0000"
      },
      "message": "Prevent submission of empty read requests in linux_spi\n\nThe submission of zero-sized read requests in a write-only transaction\nfails at least for omap2_mcspi drivers and is pointless in general.\n\nThis patch does not address the implementation of zero-sized writes (which\nwould need to skip the write command), as there are no flash transactions\nnot starting with a command.\n\nCorresponding to flashrom svn r1513.\n\nSigned-off-by: Michael Karcher \u003cflashrom@mkarcher.dialup.fu-berlin.de\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\n"
    },
    {
      "commit": "2c3e9d5f57b8f2c33bda30dcac043c1b31089183",
      "tree": "3460628ca2658848c6e213b80684aa44fb70e2d4",
      "parents": [
        "ccd71c21222cd73c55284265d306d52e88d8c6c8"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sat Mar 03 18:09:33 2012 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sat Mar 03 18:09:33 2012 +0000"
      },
      "message": "linux_spi.c: set SPI mode, bit order and bits per word on init\n\nPreviously we relied on a correctly set up state.\n\nAlso, we start to rely on the shutdown function for cleanup after\nregistering it, i.e. we no longer explicitly call close(fd) after\nregister_shutdown().\n\nCorresponding to flashrom svn r1512.\n\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nTested-by: Denis \u0027GNUtoo\u0027 Carikli \u003cGNUtoo@no-log.org\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "8a3c60cdd0e5632173567923ae1927763e31e857",
      "tree": "3a5514d022392cf4d8fa368f9f02653da21a93ca",
      "parents": [
        "63fd9026f1e82b67a65072fda862ba7af35839e1"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sun Dec 18 15:01:24 2011 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sun Dec 18 15:01:24 2011 +0000"
      },
      "message": "Add struct flashctx * parameter to all functions accessing flash chips\n\nAll programmer access function prototypes except init have been made\nstatic and moved to the respective file.\n\nA few internal functions in flash chip drivers had chipaddr parameters\nwhich are no longer needed.\n\nThe lines touched by flashctx changes have been adjusted to 80 columns\nexcept in header files.\n\nCorresponding to flashrom svn r1474.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Michael Karcher \u003cflashrom@mkarcher.dialup.fu-berlin.de\u003e\n"
    },
    {
      "commit": "63fd9026f1e82b67a65072fda862ba7af35839e1",
      "tree": "7d9ffba077715cf9e75c9f4a36d0d7f11a3181f6",
      "parents": [
        "83c92e983aaf11fb6f5bafb6744275c50add193c"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed Dec 14 22:25:15 2011 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed Dec 14 22:25:15 2011 +0000"
      },
      "message": "Use struct flashctx instead of struct flashchip for flash chip access\n\nStruct flashchip is used only for the flashchips array and for\noperations which do not access hardware, e.g. printing a list of\nsupported flash chips.\n\nstruct flashctx (flash context) contains all data available in\nstruct flashchip, but it also contains runtime information like\nmapping addresses. struct flashctx is expected to grow additional\nmembers over time, a prime candidate being programmer info.\nstruct flashctx contains all of struct flashchip with identical\nmember layout, but struct flashctx has additional members at the end.\n\nThe separation between struct flashchip/flashctx shrinks the memory\nrequirement of the big flashchips array and allows future extension\nof flashctx without having to worry about bloat.\n\nCorresponding to flashrom svn r1473.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Michael Karcher \u003cflashrom@mkarcher.dialup.fu-berlin.de\u003e\n"
    },
    {
      "commit": "c69c9c84e0341b701d9966fea8ce54d4e017bbb7",
      "tree": "2ea0b12abf9dd3483246423752239b88c6d7942e",
      "parents": [
        "8ca4255d7968dbf6301367074cc7267d22a25658"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Wed Nov 23 09:13:48 2011 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Wed Nov 23 09:13:48 2011 +0000"
      },
      "message": "Unsignify lengths and addresses in chip functions and structs\n\nPush those changes forward where needed to prevent new sign\nconversion warnings where possible.\n\nCorresponding to flashrom svn r1470.\n\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "cb24ddbe128eb2ad7ef6e0ef11c4cec461dbbe44",
      "tree": "fbf124b135182c52b2fe9bc0446560a7ae2509d1",
      "parents": [
        "4335ec844a65fd267d8dde2dde6d01f2efcf2880"
      ],
      "author": {
        "name": "Sven Schnelle",
        "email": "svens@stackframe.org",
        "time": "Wed Sep 07 20:48:34 2011 +0000"
      },
      "committer": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Wed Sep 07 20:48:34 2011 +0000"
      },
      "message": "Small fixes for the linux_spi programmer code\n\nCorresponding to flashrom svn r1432.\n\nSigned-off-by: Sven Schnelle \u003csvens@stackframe.org\u003e\nAcked-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\n"
    },
    {
      "commit": "48446c86ff80aa5bf68414ad97d264a113815240",
      "tree": "eab96a11bf9b84450a714a06ec74ba98f6dc67f1",
      "parents": [
        "5ce5f70ed3cf5a973c0c4055c91219d6199c15fe"
      ],
      "author": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Tue Sep 06 18:17:02 2011 +0000"
      },
      "committer": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Tue Sep 06 18:17:02 2011 +0000"
      },
      "message": "Fix linux_spi.c build on 32bit systems\n\nCorresponding to flashrom svn r1428.\n\nSigned-off-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\nAcked-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\n"
    },
    {
      "commit": "5ce5f70ed3cf5a973c0c4055c91219d6199c15fe",
      "tree": "8e0e42a7177fb3a56c5d269c42b9034a92b82793",
      "parents": [
        "ad470347fdf7da1da2b690c4ae0579b09b879bfa"
      ],
      "author": {
        "name": "Sven Schnelle",
        "email": "svens@stackframe.org",
        "time": "Sat Sep 03 18:37:52 2011 +0000"
      },
      "committer": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Sat Sep 03 18:37:52 2011 +0000"
      },
      "message": "Add support for the Linux SPI subsystem (spidev)\n\nSee http://www.kernel.org/doc/Documentation/spi/spidev for an introduction.\n\nUsage is as follows:\n\n  flashrom -p linux_spi:dev\u003d/dev/spidevX.Y\n\nwhere X is the bus number, and Y device. It accepts an optional parameter\n\u0027speed\u0027 which allows to set the SPI clock speed in kHz.\n\nTested on an Atmel AVR32AP7000 board (NGW100 Network Gateway Kit), see\nbelow, which was used to program a ThinkPad X60, but it should work on every\nother Linux system, too.\n  \n  http://www.atmel.com/dyn/products/tools_card.asp?tool_id\u003d4102)\n\nCorresponding to flashrom svn r1427.\n\nSigned-off-by: Sven Schnelle \u003csvens@stackframe.org\u003e\nAcked-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\n"
    }
  ]
}
