)]}'
{
  "log": [
    {
      "commit": "db236b073c327c5f4c1e4658527c8f9779cc4321",
      "tree": "a11093eb95b8bf24c961311d36870cfcef8fca99",
      "parents": [
        "a03055d242d4d5681b65b3bf012146e610cea998"
      ],
      "author": {
        "name": "Arthur Heymans",
        "email": "arthur@aheymans.xyz",
        "time": "Sun Jun 21 14:16:28 2026 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jun 25 07:07:06 2026 +0000"
      },
      "message": "dediprog: Parse USB endpoint addresses from descriptor\n\nFor real dediprog devices this shouldn\u0027t change anything. For devices\nimplementing the dediprog USB interface on a microcontroller like:\nhttps://github.com/ArthurHeymans/dedipico\nhttps://github.com/ArthurHeymans/dedich322\nThis allows them to put the dediprog endpoints on whathever addresses\nthey like.\n\nTested with SF100 and SF600Plus-G2\n\nSigned-off-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\nChange-Id: I879ae10715207a44b4060d4c538965166a6a6964\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/516\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "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": "8b892481d0747ea7800318dc373b42f7dc1232b4",
      "tree": "126abd1bf55b5fbbd9c99f463341002c616437fd",
      "parents": [
        "ea27a6e524690a7a376764fd60a37ec1b78ec8f3"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Nov 18 17:17:03 2025 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Jan 16 15:32:05 2026 +0000"
      },
      "message": "dediprog: Drop enum of i/o bits\n\nThese bit positions differ between device revisions and models. Also the\ndefault meaning (and mapping of adapters) show different intentions per\nmodel. For instance, SF600 adapters expose IO2 as IO4 of an SF100.\n\nChange-Id: I38c587214fa0167bf971ead5e3f490da2cedaf24\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/353\n"
    },
    {
      "commit": "ea27a6e524690a7a376764fd60a37ec1b78ec8f3",
      "tree": "91463bba7261a69dc84fdf14800c3331046447de",
      "parents": [
        "c0124d13afa0b1399238b1ce94a3f20ea7ffbd91"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Oct 03 14:21:00 2025 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Jan 16 15:32:05 2026 +0000"
      },
      "message": "dediprog: Set i/o lines with protocol v2+\n\nWhen adding support for the v2 protocol, we left a FIXME open\ninstead of setting the i/o lines as before.  Looking into the\n`dpcmd` source code confirms  that the i/o values are now set\nin the lower bits of `wValue` of the USB request.\n\nTraces of Dediprog\u0027s Windows application with an SF600Plus-G2\nshow that it first sends a request with `wValue \u003d 0x8001` and\n`wIndex \u003d 0x0021` during initialization, then later `wValue \u003d\n0x0L09` by default (L being the LED setting).\n\nIn a ticket[1], test results showed that setting 0x09 fixes\nspurious high-levels on the MISO line with newer SF100 ver-\nsions and certain flash chips.\n\nTests with an SF600Plus-G2 confirmed that the magic 0x9 sets\nCS2 and IO2 high. Adapters map IO2 to IO4 of an SF100 inter-\nface, which again is expected to be high.\n\n[1] https://ticket.coreboot.org/issues/609\n\nChange-Id: Iba5e113adb607a92802cb93a121987920f507fad\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/349\n"
    },
    {
      "commit": "ff9526b8039e69310d4af13d5d7665b4002d8450",
      "tree": "3dd6a2f3ed2804643072cfe8f2a0aca758c92104",
      "parents": [
        "5a72cfb13afacb69a991199d568a5b7e253c6d2a"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Feb 27 21:52:02 2025 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Mar 03 16:16:09 2025 +0000"
      },
      "message": "dediprog: Use dual-i/o default only for SF600Plus-G2\n\nEven with protocol v3, problems have been witnessed with an SF600Plus.\nIt seems we have to test and whitelist programmers individually.\n\nTested with SF600Plus-G2: dual-i/o is still the default.\n\nChange-Id: I435ef44d4461c3ffda8b1e39673e69106a99a23d\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/330\n"
    },
    {
      "commit": "b1d2baea270c1177a78d1672b4f8dd42ed246eb4",
      "tree": "26b280f6c8ffbb9f5c73483491df5ffe0abf4f66",
      "parents": [
        "d0afeef1980da55e602955b1ebc8b5eca27fd9b1"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Jul 12 16:10:15 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Jul 22 10:08:47 2024 +0000"
      },
      "message": "dediprog: Fix and enable 4BA modes for SF600Plus-G2\n\nThis was already enabled for the SF600 with protocol v3, however\nnever implemented.  The read path is now covered by the configu-\nrable read command discovered during multi-i/o development.  For\nwrites we have to override the command if no native 4BA write is\navailable and we are in 4BA mode.\n\nTested with \"SF600PG2. V:01.01.012 HW:01.00\" and a W25Q256JV..Q\ntreated as a W25Q256FV (i.e. no native-4BA erase/write opcodes).\n\nChange-Id: I7cc537a96d470461ce35e4c4e97435c4ecb0c4ca\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/169\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "d0afeef1980da55e602955b1ebc8b5eca27fd9b1",
      "tree": "a03ebaf41621251945d7e387b45ed5b6dd85938d",
      "parents": [
        "1b1deda80bbd7f56b8047fad32badb749eeefffb"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Jul 12 16:08:29 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Jul 22 10:08:47 2024 +0000"
      },
      "message": "dediprog: Disable 4BA modes for SF100 w/ protocol v2\n\nIt was enabled in commit a32d47f14886 (dediprog: Disable\nSPI_MASTER_NO_4BA_MODES for additional devices), because\nthe hardware can handle it in theory. However,  it never\nwas implemented on our side.\n\nChange-Id: If4082d4c0ab56f544b48bc827ecee2c23bd976f2\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/168\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "1b1deda80bbd7f56b8047fad32badb749eeefffb",
      "tree": "e7058d9d175d08ed2542f6e34be0842a7ade8f57",
      "parents": [
        "a1b7f3521f66a19a2d4c9a6a373c5a7ab36e1473"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Apr 18 00:35:48 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Jul 22 10:08:47 2024 +0000"
      },
      "message": "Implement QPI support\n\nWith the quad-i/o support in place, this is actually straight-\nforward:\n* we check for compatibility of the flash chip and programmer,\n* select an appropriate fast-read function, and\n* always set the respective io-mode when passing a SPI command\n  to the programmer.\n\nTested with FT4222H + W25Q128FV and linux_gpio_spi + MX25L25645G.\n\nChange-Id: I2287034f6818f24f892d66d1a505cb719838f75d\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/165\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "a1b7f3521f66a19a2d4c9a6a373c5a7ab36e1473",
      "tree": "fd996296810ab45fe99d29d8dc254f6d496f3091",
      "parents": [
        "008a44fa1c33b8a77c90b4e9dba267ae23c01056"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Mar 25 18:32:11 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Jul 22 10:08:47 2024 +0000"
      },
      "message": "dediprog: Implement multi-i/o reads\n\nThis implements i/o-mode switches and opcode handling for multi-i/o\nreads with protocol versions 2 and 3. The mode switching is done by\na simple command  that takes an enum just as our internal `io_mode`\nas argument.\n\nThe opcode handling differs between protocol versions. For protocol\nv2, we keep the current behavior for single-i/o operations and only\nset the matching opcode. Tests with an SF600Plus-G2 have shown that\nthe programmer automatically chooses the address length  and number\nof dummy cycles. It is unknown, however,  if it chooses these para-\nmeters based on the opcode or the configured i/o mode. For dual-out\nreads,  it seems to choose the wrong number of dummy cycles. Hence,\nwe mask the respective support bit for the v2 case.\n\nFor protocol v3,  a new `read mode\u0027 was discovered in traces of the\nDediprog Windows application.  It allows to explicitly specify  the\nopcode, the address length, and the number of dummy cycles. We call\nthis READ_MODE_CONFIGURABLE. As this is the only way to make use of\nthe additional command bytes of the v3 protocol, we can assume that\nthis mode always works with v3.\n\nFor partial reads, i.e. not multiples of 512B blocks,  that have to\ngo through dediprog_spi_send_command(),  we temporarily disable the\nchosen `.spi_fast_read` function. This is necessary, because multi-\nio is not supported on this path.\n\nWe enable dual i/o by default for protocol v3 devices. This should\nwork out of the box with many compatible flash chips. The command-\nline logic is a little convoluted this way,  but can be refactored\nonce protocol v2 devices are tested.\n\nChange-Id: Ib07b1b61eccc19c7ead9f64c980b37feabfa70a8\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/114\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "008a44fa1c33b8a77c90b4e9dba267ae23c01056",
      "tree": "896b993627c146b89838742c26a9c12cefd27c69",
      "parents": [
        "4760b6ec1f7fbcee1bf238a25e3df56a86327a5a"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Apr 14 23:39:47 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Jul 22 10:08:47 2024 +0000"
      },
      "message": "dediprog: Split read/write command preparation by protocol\n\nThere has been a forest of `if`s growing inside prepare_rw_cmd(). And\nthe V3 protocol allows for more flexibility that would result in even\nmore branches if we\u0027d continue adding to this function.\n\nInstead, split it into one function per protocol version  and provide\na pointer to it in our context structure. This will allow us to adapt\nthe V3 function more easily and only sacrifices a little code sharing\nbetween V2 and V3.  We also let it return the number of bytes for the\ncommand packet and define a maximum size, to simplify the API.\n\nChange-Id: Ibe9da3d3f1aac74309b89f840d9ce9e6e7978405\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/126\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "4760b6ec1f7fbcee1bf238a25e3df56a86327a5a",
      "tree": "a4c3762b1228f901f62d40b53ed1a953b25926b4",
      "parents": [
        "0c9af0a639bf9180839d548f91547b58de921ca9"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Jan 06 23:45:28 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Jul 22 10:08:47 2024 +0000"
      },
      "message": "spi25: Implement multi-i/o reads\n\nWe describe a read operation in a new  `struct spi_read_op`. It\u0027s\ncomprised of the i/o mode, its opcode, an optional mode byte, and\nthe number of dummy bytes.\n\nBased on this information  about the various read operations, and\nthe flash and master feature flags,  we select the read operation\nwith the highest throughput.\n\nThe following assumption is made about 4BA chips: When it supports\nnative-4BA fast reads  and a multi-i/o version of the regular fast\nread, then it should also support the respective native-4BA, multi-\ni/o version (yes, JEDEC, there are too many read commands!). So far\nthis seems to hold for the chips in our database.\n\nChange-Id: I3c93e71d85f769831d637c14d3571f7ddb54d8b2\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/49\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "823a7046d28d207a2985a52a3a95e4916ba72d4e",
      "tree": "3d8e7566b73c5ed48df6dd3f9559b4b7003f1a24",
      "parents": [
        "e8463c8091a36cf6fd4d49e895caab41f23259a5"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Mar 24 18:32:58 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Mar 27 08:33:00 2024 +0000"
      },
      "message": "dediprog: Skip warning on first attempt to read device string\n\nIt\u0027s spurious on the first attempt as older devices are supposed to fail\non the first try. Only print the error if the second attempt fails.\n\nTested with \"SF100   V:5.1.9\".\n\nChange-Id: I725df8f26e3432295a3fc521390f391c062b4e14\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/106\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "e8463c8091a36cf6fd4d49e895caab41f23259a5",
      "tree": "6b8ea2c9e97ea38daec5ec9c1523cc30f99d8088",
      "parents": [
        "38af1a19248ac3763a47691146a1031a3a4a589a"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Mar 24 16:50:50 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Mar 27 08:33:00 2024 +0000"
      },
      "message": "dediprog: Revise prefix check for given programmer id\n\nThe SF600Plus-G2 uses a new prefix `S6B\u0027 for the serial number. Refactor\nthe code to ease more prefix additions and add this one.\n\nChange-Id: I10a57446041352e391462a3bef42f570720a8d50\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/105\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "38af1a19248ac3763a47691146a1031a3a4a589a",
      "tree": "8d6b8523535e1e9e12248b18c7077cc813d2d902",
      "parents": [
        "4661e7c848efb5fc89b5b0f89c8d6b463702ae28"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Mar 24 15:04:20 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Mar 27 08:33:00 2024 +0000"
      },
      "message": "dediprog: Revise id matching\n\nAvoid printing a redundant error message, as we already print one inside\ndediprog_read_id().  Also break early when a match is found, so we don\u0027t\nhave to repeat the clean-up code.\n\nChange-Id: I2f85432a83f1a9d1b6efe0fc9c47a36d9c4934a8\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/104\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "e36e3dc90f81fc2a718e4b367eebff900af21126",
      "tree": "a410fcee48fc837ee2e0d2271bef9a5b2b92a7bb",
      "parents": [
        "522a86dbe88dd56bff3a1285284f0782e3cd179a"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Apr 28 21:23:08 2023 +0000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Mar 27 08:32:15 2024 +0000"
      },
      "message": "dediprog: Use default_spi_write_256\n\nThe default function already handles the chunking. However, we have\nto account for command and address bytes in `.max_data_write` to make\nuse of it.\n\nChange-Id: I738a3b8427f082f0144481b953a20f15d1813974\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/74863\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "842d678f07439e133e69fc775a848dcd66369446",
      "tree": "c01716fbc4220c1211749772d6a566e6d70701d7",
      "parents": [
        "aa714dd3dd7090e1fa7175f3a32a252b04817261"
      ],
      "author": {
        "name": "Richard Hughes",
        "email": "richard@hughsie.com",
        "time": "Fri Jan 15 09:48:12 2021 +0000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Mar 27 08:32:15 2024 +0000"
      },
      "message": "libflashrom: Return progress state to the library user\n\nProjects using libflashrom like fwupd expect the user to wait for the\noperation to complete. To avoid the user thinking the process has\n\"hung\" or \"got stuck\" report back the progress complete of the erase,\nwrite and read operations.\n\nAdd a new --progress flag to the CLI to report progress of operations.\n\nInclude a test for the dummy spi25 device.\n\nTested: ./test_build.sh; ./flashrom -p lspcon_i2c_spi:bus\u003d7 -r /dev/null --progress\n\nflashrom-stable:\n* Closer to original libflashrom API.\n* Split update_progress() into progress_start/_set/_add/_finish:\n  Simplifies progress calls scattered through the code base. We let\n  the core code in `flashprog.c` handle the total progress. Only API\n  is flashprog_progress_add().  Erase progress is completely handled\n  in `flashprog.c`. Fine grained read/write progress can be reported\n  at the chip/programmer level.\n* Add calls to all chip read/write paths and opaque programmers\n  except for read_memmapped() (which is handled in follow ups).\n* At least one wrinkle left: Erasing unaligned regions will slightly\n  overshoot total progress.\n\nChange-Id: I7197572bb7f19e3bdb2bde855d70a0f50fd3854c\nSigned-off-by: Richard Hughes \u003crichard@hughsie.com\u003e\nSigned-off-by: Daniel Campello \u003ccampello@chromium.org\u003e\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/49643\nOriginal-Reviewed-by: Edward O\u0027Callaghan \u003cquasisec@chromium.org\u003e\nOriginal-Reviewed-by: Anastasia Klimchuk \u003caklm@chromium.org\u003e\nOriginal-Reviewed-by: Thomas Heijligen \u003csrc@posteo.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/74731\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "821a085cb30897aae4103c2d19c5dab10daeecaa",
      "tree": "a8e858935021b4bd2a8bfb97800f0e1155775545",
      "parents": [
        "274e655e5cabb672845f1858aba4ed877b95d444"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Mar 24 13:34:51 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Mar 25 21:54:06 2024 +0000"
      },
      "message": "dediprog: Implement id reading for SF600 and later\n\nFor the SF600, we simply use the more canonical read EEPROM command.\nNewer devices use a special command that allows to read the id over\nthe bulk endpoint.  The exact meaning of the magic command bytes is\nunknown at this time.\n\nReading from the bulk endpoint times out on about every other attempt\nto fetch the id, unless it\u0027s queried twice in a row. `dpcmd\u0027 comments\nthat this is necessary. And traces also show that the Windows applica-\ntion runs it twice too (even if not in a row).  Tests have shown that\na working read takes up to 5ms. So we lose 10ms tops, which seems ok.\n\nAnother observation when only querying the id once (or only repeating\nthe read when it failed) is that the bulk-in endpoint only keeps wor-\nking during the current flashprog run. Future runs fail unless the id\nis queried again.\n\nTested with \"SF600PG2. V:01.01.012 HW:01.00\", \"SF100   V:5.1.9\".\n\nChange-Id: I8056d936d41a24824c089e80d6dfed23ad5e0d1c\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/103\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "274e655e5cabb672845f1858aba4ed877b95d444",
      "tree": "7de1eaff0ec549a408e1cee3ff7a73781534fc10",
      "parents": [
        "0057822c6350f415a4b8d4563b0fef6d136419d4"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Mar 24 12:34:57 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Mar 25 21:54:06 2024 +0000"
      },
      "message": "dediprog: Read device string early\n\nTo select one of multiple Dediprogs by `id\u0027, we need to know early what\ntype of device we found, so we can select the proper way to read its id.\nOTOH, when a specific device is selected but incompatible (e.g. unknown\nfirmware version),  we still want to provide correct console output. If\nwe split the device-type detection from further processing, we can tell\nfirst that a matching device was found and still bail out later in case\nthe device turns out to be incompatible.\n\nTested with \"SF600PG2. V:01.01.012 HW:01.00\", \"SF100   V:5.1.9\".\n\nChange-Id: I820982d61831e6cd6a830f915dc745a1adea3776\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/102\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "0057822c6350f415a4b8d4563b0fef6d136419d4",
      "tree": "044ffe7fbe963fca4b57e049d486813f35b861ad",
      "parents": [
        "fb176d28fe456e7dad471594f5c7f58136e36b1d"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 02 14:00:53 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Mar 25 21:53:29 2024 +0000"
      },
      "message": "dediprog: Add protocol detection for SF700 \u0026 SF600Plus-G2\n\nThe short-lived SF700 was not tested but is treated the same as an\nSF600Plus-G2 by `dpcmd\u0027.  Both programmers have their own firmware\nversioning:  For the SF700, only clues about firmware versions 4.x\nwere found. The SF600Plus-G2 seems to start anew from version 1.x.\n\nGiven that the SF700 was introduced in 2019 [1], after support for\nthe current protocol was added to flashrom in commit f73f8a732f8fd\n(dediprog: implement command spec for firmware \u003e\u003d 7.2.30), it most\nlikely never supported any older protocol version.\n\nTested with \"SF600PG2. V:01.01.012 HW:01.00\", \"V:01.01.006 HW:01.00\".\n\n[1] https://www.dediprog.com/news/show?id\u003d196\n\nChange-Id: I8d2c9612e422cedbf91b42432b1832abaaf95c62\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/94\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "fb176d28fe456e7dad471594f5c7f58136e36b1d",
      "tree": "774ac2b97d223a5f4f63582cc71621f2ca51824a",
      "parents": [
        "0ab5c3d6abc7700019e63de0e187b462a4e34203"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.huber@secunet.com",
        "time": "Mon Mar 25 15:55:13 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Mar 25 21:53:29 2024 +0000"
      },
      "message": "dediprog: Use more general 4BA write mode for newer protocols\n\nWe used to send the specific WRITE_MODE_4B_ADDR_256B_PAGE_PGM_0x12\ncommand combined with the 0x12 JEDEC SPI opcode. This doesn\u0027t work\non newer programmers anymore,  and it turns out that `dpcmd\u0027 pairs\nit only in special cases with an SF100.\n\n`dpcmd\u0027 suggests that for SF600 and newer,  the more generic write\nmode (WRITE_MODE_4B_ADDR_256B_PAGE_PGM) works with the 0x12 opcode\ntoo. So using that for protocal version 3 seems safe.\n\nTested with \"SF600PG2. V:01.01.012 HW:01.00\".\n\nChange-Id: I8a4a94b574c1bf846173fff89ee9ef65c02d2d33\nSigned-off-by: Nico Huber \u003cnico.huber@secunet.com\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/108\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "0ab5c3d6abc7700019e63de0e187b462a4e34203",
      "tree": "63c8d2cbe1fd8382689ddd3b4cc65db4127b1a37",
      "parents": [
        "bdef5c2fc41cc564a5c5716cdf423b06a8bcc45d"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 02 13:53:16 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Mar 25 21:53:29 2024 +0000"
      },
      "message": "dediprog: Split device type and version parsing\n\nParse the device type with a separate sscanf() call. This will make\nsupport for newer programmers easier that are identified by more than\na simple number.\n\nChange-Id: I2bb4cb3f88b2e18092458508eb872a668887cf3a\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/93\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "bdef5c2fc41cc564a5c5716cdf423b06a8bcc45d",
      "tree": "2ab52862773f7468752e50e3522f84f1f33f66d0",
      "parents": [
        "5262e29da8852cda587e7b240bbefea408c9f67a"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 02 13:51:39 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Mar 25 21:53:29 2024 +0000"
      },
      "message": "dediprog: Use unsigned conversions to parse device string\n\nWe do neither expect nor support negative device or version numbers.\nThis also spares us a cast.\n\nChange-Id: I77f56ea0531a7da601362716fe6f937acf312b52\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/92\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "5262e29da8852cda587e7b240bbefea408c9f67a",
      "tree": "927b97c5d3e58b64dbfd24e4bd72bb702e609147",
      "parents": [
        "e76e21f92e9b0885e2892c414832334467fc7fa7"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 02 13:21:25 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Mar 25 21:53:29 2024 +0000"
      },
      "message": "dediprog: Try to request 32B device string (instead of 16B)\n\nIt looks like `dpcmd\u0027 first tries 26B, then 32B. However, older devices\nreturn only 16B.  We get a short, but otherwise valid transfer, so only\ntry once with 32B and allow any string length between 16B and 32B.\n\nThis allows to read the full version string from newer programmers. It\nincludes a hardware version now, probably since the first SF600.\n\nTested with \"SF600PG2. V:01.01.012 HW:01.00\".\nTested with \"SF100   V:5.1.9\".\n\nChange-Id: Id137e4cfe3e1dbffb71ab4b16482822661117e39\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/91\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "e76e21f92e9b0885e2892c414832334467fc7fa7",
      "tree": "a45f57aa8c6ccc2c9f9e546fa0ac31900c2a2555",
      "parents": [
        "5a09d1e1c10750dce2618ef847d54c0cd96e3cae"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Feb 29 23:33:35 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Mar 25 21:53:29 2024 +0000"
      },
      "message": "dediprog: Get rid of some unnecessary hex constants\n\nChange-Id: Id9f3ffb44b1cda04ca2e8e89b5bf1fc8d0ab84e6\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/90\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": "a96aaa3c716e13c62e1a7d93b5e6580e817cd2f5",
      "tree": "88bde45963ab387837755eec887ccb587e33da65",
      "parents": [
        "1338936efbd5301880063461b74eaf883db6e363"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Mar 05 12:56:13 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Mar 08 18:09:43 2024 +0000"
      },
      "message": "dediprog: Support long writes of 16MiB and more\n\nOriginally, the core of flashprog never sent more than an erase block\nat once to write. And with the strategy to use the smallest erase-block\nsize by default, we never run into any issue with the dediprog driver.\nNow that we write bigger chunks at once, after all necessary erasure,\nit can be an issue when 16MiB or more are sent.\n\nAs all other driver implementations allow arbitrary length writes,\nhandle this with a simple loop inside the dediprog driver.\n\nTested with (WIP) SF600Plus-G2 and W25Q128FV.\n\nChange-Id: I9db2d84964dbdfe25dfdb93148f4687a34150bc8\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/98\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "c3b02dce51aad2766512d1939a1b7447c2d526b8",
      "tree": "58069f464bb8a777ef06e93767813a4c5a042cb0",
      "parents": [
        "a02df33fbf1c196395a61049e60895d4ae0e0a5b"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Aug 12 01:13:45 2023 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Sep 18 19:24:39 2023 +0000"
      },
      "message": "Rebrand to flashprog and update URLs\n\nMostly automated `sed` work. As of now, URLs to the old wiki are broken\neither way, so changing them shouldn\u0027t hurt. Other URLs (e.g. to mailing\nlist archives) were hopefully filtered correctly.\n\nChange-Id: I9d43bfd0e675eff2fcbad05f304b9ce9f5006b08\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashrom-stable/+/21\n"
    },
    {
      "commit": "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"
    }
  ],
  "next": "c69c9c84e0341b701d9966fea8ce54d4e017bbb7"
}
