)]}'
{
  "log": [
    {
      "commit": "5b4fdd11dd74c7f018cb04f7a27a2badc02fe182",
      "tree": "92a54a57493ecb596a23afdb85fa61c93647c738",
      "parents": [
        "72c9e40cc83aa181dd24c810aec9d43b4c8e7cea"
      ],
      "author": {
        "name": "Nicholas Chin",
        "email": "nic.c3.14@gmail.com",
        "time": "Thu May 02 18:05:35 2024 -0600"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat May 04 13:27:41 2024 +0000"
      },
      "message": "z60_flashprog.rules: Add udev rule for CH347\n\nThis allows the CH347 programmer to be used without root permissions.\n\nChange-Id: Ica223318a2cbdfb7a328b65b68b8da0637fc22ac\nSigned-off-by: Nicholas Chin \u003cnic.c3.14@gmail.com\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/149\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "72c9e40cc83aa181dd24c810aec9d43b4c8e7cea",
      "tree": "9b97fac6c66effb4e63d137cd69905ecebb7b021",
      "parents": [
        "34582208ba88b6268b77e0818e7f833456f98c77"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Apr 21 13:07:17 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Apr 26 19:48:54 2024 +0000"
      },
      "message": "meson: Check for CPU families with known raw mem access\n\nSame as the Makefile does with $(DEPENDS_ON_RAW_MEM_ACCESS), we should\ntag all the programmers that require raw memory access. Otherwise, we\nmight compile these drivers for architectures that require explicit\nmemory barriers that we haven\u0027t implemented.\n\nAs there seems to be no notion of intersection in Meson, we have to make\n`cpu_families\u0027 a list of lists and check them all.\n\nChange-Id: I3bd6bd7b5cb871a506178496241bacdeb40febcf\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/131\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "34582208ba88b6268b77e0818e7f833456f98c77",
      "tree": "1ad0bd77c60fbfe57293685e0094c0bf9a9cff67",
      "parents": [
        "f2797628df35620c982946e015770e4714daad9a"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Apr 21 15:39:45 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Apr 26 19:48:54 2024 +0000"
      },
      "message": "platform/meson: Port pciutils/pci.h workaround to Meson\n\nChange-Id: Idc6f442361ea3860d7ad3932ad1b72c6ff56ba45\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/130\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "f2797628df35620c982946e015770e4714daad9a",
      "tree": "489445a5d38cd6a0b90dcfef0fef213f4e546a5b",
      "parents": [
        "14da5f776a9983613394f222f9aac5d544af0af5"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Apr 21 13:25:17 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Apr 26 19:48:54 2024 +0000"
      },
      "message": "platform/meson: Check for libi386 on NetBSD\n\nThe 32-bit library is called libi386, not libx86. Fixes building with\nMeson on i386 NetBSD.\n\nChange-Id: Ib9e1aa16558dc24f0bf14dd573934cf5164d67e8\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/129\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "14da5f776a9983613394f222f9aac5d544af0af5",
      "tree": "3452d3903555cedf74a9db81437a282abe6a3e05",
      "parents": [
        "8ddea57689627f5f2867fd353b285793ef97e6c6"
      ],
      "author": {
        "name": "J. Neuschäfer",
        "email": "j.ne@posteo.net",
        "time": "Wed Apr 24 13:40:02 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Apr 25 20:12:14 2024 +0000"
      },
      "message": "README: Convert to Markdown\n\nMarkdown makes it easier to read the file in editors/viewers that\nhighlight the headlines.\n\nThe changes are intentionally fairly minimal, just enough to ensure good\nreadability with the automatic line-wrapping that Markdown renderers apply.\n\nChange-Id: I4cbd329829bf5599dd886a966c12e44c5d0e75f0\nSigned-off-by: J. Neuschäfer \u003cj.ne@posteo.net\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/128\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "8ddea57689627f5f2867fd353b285793ef97e6c6",
      "tree": "8ed133fb0e55848abfa9361f59ddb7b5f4298320",
      "parents": [
        "2522456a433dbe56f7ad13192d5b25b1c873c69a"
      ],
      "author": {
        "name": "J. Neuschäfer",
        "email": "j.ne@posteo.net",
        "time": "Wed Apr 24 13:38:01 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Apr 25 20:12:14 2024 +0000"
      },
      "message": "README: Document branching and release policy\n\nDue to some recent confusion while reviewing a distro packaging pull\nrequest for flashprog, I noticed that the branching policy wasn\u0027t\nexplained. This is an attempt to fix that.\n\nChange-Id: I7d776cc7499062b03cb5fb7d6bcb980670df5d04\nSigned-off-by: J. Neuschäfer \u003cj.ne@posteo.net\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/127\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "2522456a433dbe56f7ad13192d5b25b1c873c69a",
      "tree": "2ce824559ba7358334176b0698512f8d3ad3f57f",
      "parents": [
        "cbf9c1132914f0d5d3a271f910611a6364d30dd3"
      ],
      "author": {
        "name": "Maximilian Brune",
        "email": "maximilian.brune@9elements.com",
        "time": "Thu Apr 11 21:05:26 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Apr 13 10:32:29 2024 +0000"
      },
      "message": "util/list_yet_unsupported_chips.sh: Fix path\n\nChange-Id: Iecb6cf3d1f214102a243a3ffa8d0c9301263af0a\nSigned-off-by: Maximilian Brune \u003cmaximilian.brune@9elements.com\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/118\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "cbf9c1132914f0d5d3a271f910611a6364d30dd3",
      "tree": "149601c569f8a9534bc84db47a83c53c41fc67e4",
      "parents": [
        "823a7046d28d207a2985a52a3a95e4916ba72d4e"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Mar 25 19:24:17 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Apr 06 13:39:43 2024 +0000"
      },
      "message": "spi: Don\u0027t cross 16MiB boundaries with long writes\n\nThe 16MiB issue still bites us.  Originally, the core of flashprog never\nsent more than an erase block at once to write. Now that we write bigger\nchunks at once, after all necessary erasure, it can happen that we cross\n16MiB boundaries. This is an issue with programmer drivers that can only\nsend 3-byte addresses.  We use the extended address register with these,\nto select which 16MiB area is currently accessed. Should we try to write\nacross a 16MiB boundary, we\u0027d write with stale extended-address register\ncontents (basically wrapping around).\n\nThis once more troubles old, V1 Dediprog SF100\u0027s. Where we can send huge\nchunks at once and leave the sequencing to the programmer.  The program-\nmer, however,  is unaware of the state of the extended-address register.\nOther programmer drivers do the sequencing with  spi_write_chunked() and\nshouldn\u0027t be affected.\n\nTo settle this issue,  copy the loop logic that we already used to avoid\nthe problem for long reads.\n\nTested with Dediprog \"SF100   V:5.1.9\".\n\nChange-Id: I5b9d6779eff5224fb9981fd478dbc94262cd3262\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/115\nReviewed-by: Urja Rannikko \u003curjaman@gmail.com\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": "4661e7c848efb5fc89b5b0f89c8d6b463702ae28",
      "tree": "995fa43c284e204698b53d418575682b3f810d52",
      "parents": [
        "cdcfda2730e20e8e36a658f6c5f341f05580795f"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Apr 28 21:57:45 2023 +0000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Mar 27 08:32:15 2024 +0000"
      },
      "message": "amd_spi100: Use flashprog_read_chunked() for progress reporting\n\nRead up to 64 KiB in one go to be able to report progress in between.\nOtherwise, we might read the whole flash at once, without being able\nto report progress.\n\nChange-Id: I4d06f6f5d19944fe22298a1ddfb91244fa7c2eb6\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/74867\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "cdcfda2730e20e8e36a658f6c5f341f05580795f",
      "tree": "ad75d281dc0e1a4fc114d8e24f17a3b552cecdf5",
      "parents": [
        "7679b5ccf987e4999fefed6c6100a7a8f50d4350"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Apr 29 13:29:33 2023 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Mar 27 08:32:15 2024 +0000"
      },
      "message": "read_memmapped: Use flashprog_read_chunked() for progress reporting\n\nRead up to 64 KiB in one go to be able to report progress in between.\nOtherwise, we might read the whole flash at once, without being able\nto report progress.\n\nChange-Id: I272a53f4be6e7c5bf2811d4332688a31a0080f24\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/74866\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "7679b5ccf987e4999fefed6c6100a7a8f50d4350",
      "tree": "d904cf0a8e68feb831380054ce5956cb3b96fdca",
      "parents": [
        "ca1c7fdd6bd6f61029492fb7a194bd47119e465f"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Apr 28 21:48:53 2023 +0000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Mar 27 08:32:15 2024 +0000"
      },
      "message": "spi25: Replace spi_read_chunked() with more abstract version\n\nThe new flashprog_read_chunked() takes a low-level reading function as\nargument. This allows us to make use of the chunking with non-SPI read\nfunctions.\n\nChange-Id: Ica1b616e75e4e7682120928588e231c82cf4cf70\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/74865\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "ca1c7fdd6bd6f61029492fb7a194bd47119e465f",
      "tree": "6e0063b18b7b8e9b3b1ddc4da95620213331efb6",
      "parents": [
        "e36e3dc90f81fc2a718e4b367eebff900af21126"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Apr 28 21:44:41 2023 +0000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Mar 27 08:32:15 2024 +0000"
      },
      "message": "spi25: Normalize parameters of spi_nbyte_read()\n\nMost other reading functions have the destination buffer\nas second parameter.\n\nChange-Id: Id3f91f3d23132b0706b3b33bbf156356c9bf5ebc\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/74864\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": "522a86dbe88dd56bff3a1285284f0782e3cd179a",
      "tree": "612b8368745f8aa3277205e9f6a4ae8613b478fc",
      "parents": [
        "806509b751e766787a8f429f00f1a04666db75b8"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Apr 28 20:59:21 2023 +0000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Mar 27 08:32:15 2024 +0000"
      },
      "message": "linux_spi: Use default_spi_read()/_write_256()\n\nThe default functions already handle the chunking.\n\nChange-Id: I6ed90c3eed3a3e36a560c5036704cf5ebc26f96e\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/74862\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "806509b751e766787a8f429f00f1a04666db75b8",
      "tree": "7bcb191bd9f947b6c8267d8663c1cabbf3720872",
      "parents": [
        "842d678f07439e133e69fc775a848dcd66369446"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Apr 23 00:02:57 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Mar 27 08:32:15 2024 +0000"
      },
      "message": "cli_classic: Turn progress reporting into a progress bar\n\nChange-Id: If3fb8a7877ba6aeff09193a63334e8dab0f0f827\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/74732\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": "aa714dd3dd7090e1fa7175f3a32a252b04817261",
      "tree": "a162b1e9c89739a68ec42f77b734d4291d713825",
      "parents": [
        "2eed4cf69e8e870e77acff1d9c8b192b89c8b400"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Apr 22 14:59:33 2023 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Mar 27 08:32:15 2024 +0000"
      },
      "message": "flashprog.c: Let select_erase_functions() return byte count\n\nHaving the total byte count that will be erased helps to calculate\nan overall progress state.\n\nChange-Id: Ib4c326d1c98e97325b6ffd67363bbba4f9194678\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/74730\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "2eed4cf69e8e870e77acff1d9c8b192b89c8b400",
      "tree": "919fe890d86d365b2914b3bd940242c2858c53ea",
      "parents": [
        "821a085cb30897aae4103c2d19c5dab10daeecaa"
      ],
      "author": {
        "name": "Funkeleinhorn",
        "email": "git@funkeleinhorn.com",
        "time": "Sun Mar 24 20:58:42 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Mar 26 20:46:04 2024 +0000"
      },
      "message": "serprog: Add SPI Mode and CS Mode commands\n\nThis commit adds two new commands to the serprog protocol which allow\nmore fine grained control over the SPI bus. This enables more\napplications over serprog like e.g. flashing AVR microcontrollers.\nThis can be tried with my forks of pico-serprog:\n\nhttps://github.com/funkeleinhorn/pico-serprog/tree/spimode\n\nand avrdude:\n\nhttps://github.com/funkeleinhorn/avrgirl/tree/serprog-programmer\n\nI announced this change in flashrom and flashprog IRC channels and got\noverall positive feedback in the flashprog channel. The same changes\nhave been sent to flashrom to prevent diverging specs.\n\nChange-Id: Ib2d2e7ca343f6433028bdc00390ba0980cca98a1\nSigned-off-by: Funkeleinhorn \u003cgit@funkeleinhorn.com\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/107\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\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": "5a09d1e1c10750dce2618ef847d54c0cd96e3cae",
      "tree": "bd7777531a7bab3726058d38ddaa2f5e94bc8622",
      "parents": [
        "03ad4a42545591863f3f01be31e15d221cf29c75"
      ],
      "author": {
        "name": "Brian Norris",
        "email": "briannorris@chromium.org",
        "time": "Thu Feb 29 16:29:51 2024 -0800"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 09 13:21:35 2024 +0000"
      },
      "message": "udelay: Lower the sleep vs delay threshold\n\nBy default, we busy-loop (a.k.a., \"delay\") for most delay values, and\nonly allow sleeping for large delays. But busy-looping is expensive, as\nit wastes CPU cycles.\n\nIn a simple program that runs a bunch of samples of [1] over 1000\nsamples, I find that for 0.1 s (100000 us):\n\n 64x2 AMD CPU (CONFIG_HZ\u003d250 / CONFIG_NO_HZ_FULL\u003dy):\n   min diff: 60 us\n   max diff: 831 us\n   mean diff: 135 us\n\n 4+2 Mediatek MT8183 CPU (CONFIG_HZ\u003d1000 / CONFIG_NO_HZ_IDLE\u003dy /\n                          sysctl kernel.timer_highres\u003d1):\n   min diff: 70 us\n   max diff: 1556 us\n   mean diff: 146 us\n\n 4+2 Mediatek MT8183 CPU (CONFIG_HZ\u003d1000 / CONFIG_NO_HZ_IDLE\u003dy /\n                          sysctl kernel.timer_highres\u003d0):\n   min diff: 94 us\n   max diff: 7222 us\n   mean diff: 1201 us\n\ni.e., maximum 1.5% error, typically ~0.1% error with high resolution\ntimers. Max 7% error, typical 1% error with low resolution timers.\n\nThis seems reasonable.\n\n[1] Stripped / pseudocode:\n\n  clock_gettime(CLOCK_MONOTONIC, before);\n  nanosleep({ .tv_nsec \u003d usecs * 1000 }, NULL);\n  clock_gettime(CLOCK_MONOTONIC, after);\n  diff \u003d abs((after - before) / 1000 - usecs));\n\nChange-Id: Ifd4821c66c5564f7c975c08769a6742f645e9be0\nSigned-off-by: Brian Norris \u003cbriannorris@chromium.org\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/97\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "03ad4a42545591863f3f01be31e15d221cf29c75",
      "tree": "efb04af6d76599817ec93404fe2f48e39592b23e",
      "parents": [
        "211c6ec6011f554a5a9aeacdf0d2c410b343bb2a"
      ],
      "author": {
        "name": "Brian Norris",
        "email": "briannorris@chromium.org",
        "time": "Tue Feb 27 13:01:23 2024 -0800"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 09 13:21:35 2024 +0000"
      },
      "message": "linux_mtd: Provide no-op delay implementation\n\nFlashrom has several magic programmer_delay() calls scattered\nthroughout its codebase (see cli_classic.s/main() and\nflashrom.c/flashrom_image_write(), at least). These delays are\nsuperfluous for the linux_mtd programmer, because it\u0027s an opaque\nprogrammer in which all protocol details are handled by the kernel\ndriver.\n\nStub out the delay function, so we don\u0027t waste up to 1.1 seconds of\nneedless delay time, depending on the operation and CLI vs libflashrom\nusage.\n\nChange-Id: I3ac69d3fd7cfc689c5b32c130d044516ed846c29\nSigned-off-by: Brian Norris \u003cbriannorris@chromium.org\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/96\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "211c6ec6011f554a5a9aeacdf0d2c410b343bb2a",
      "tree": "98aa11ff12be1c2dc721115c06584ea11c5ddee9",
      "parents": [
        "383b7fe197a781792d4eb42abe1e84551c2b5d0b"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 12 01:05:47 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 09 10:50:41 2024 +0000"
      },
      "message": "serprog: Refine flushing before synchronization\n\nWe used to wait for 1s before flushing buffers of the tty layer.\nHowever, if the programmer had more data to send than would fit\ninto these buffers, it would continue to send after flushing the\nlatter. So we try to read all the data instead. The added loop\nreads up to 512KiB and stops when no data is received for 10ms.\nOverall, it should time out after at most 10s.\n\nTests show that an stm32-vserprog can be re-synchronized after\ninterrupted reads, where the old implementation failed. In case\nsynchronization is necessary, it also succeeds without notice-\nable delay.\n\nChange-Id: Iaa5dfceac0629381ca0924bb59b988525bacba3f\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72996\nReviewed-by: Riku Viitanen \u003criku.viitanen@protonmail.com\u003e\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "383b7fe197a781792d4eb42abe1e84551c2b5d0b",
      "tree": "701fd0785f35754c18bde9421864bf94513ccc1b",
      "parents": [
        "d7318eabdc92bbe4e12838528d40f7f928511b69"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 12 00:38:55 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 09 10:50:41 2024 +0000"
      },
      "message": "serprog: Test synchronicity before trying to synchronize\n\nRun one test round ahead of trying to synchronize. If the test\nsucceeds, it saves us the 1s unconditional delay on startup.\n\nChange-Id: I5b727d299cac0cbeadab39af3975dfd8019db8d7\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72995\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\nReviewed-by: Riku Viitanen \u003criku.viitanen@protonmail.com\u003e\n"
    },
    {
      "commit": "d7318eabdc92bbe4e12838528d40f7f928511b69",
      "tree": "17a8e0d36c17d35d383a3f8a21b72097e6821aa1",
      "parents": [
        "9a11cbf21a5078bcdb8db7584c44a9ee17020db4"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 12 00:30:31 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 09 10:50:41 2024 +0000"
      },
      "message": "serprog: Move synchronicity test into separate function\n\nExtract the sequence to test for synchronicity into a new\nfunction sp_test_sync().\n\nChange-Id: I9e4aac5b8ac524804a3a8989c2794cdfaacb7b32\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72994\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\nReviewed-by: Riku Viitanen \u003criku.viitanen@protonmail.com\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": "aabb3e0ff54e87c0136c91f105e506ed19184cc6",
      "tree": "d53c2df274e9550b1f251a94b80add2d7285c5c4",
      "parents": [
        "89569d60e3aeeec651496b2e7a2e6064d782ab3b"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Jan 13 00:22:30 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 09 10:30:24 2024 +0000"
      },
      "message": "writeprotect: Hook wp functions into the chip driver\n\nChange-Id: I17a06210ec329aba337cf459d581463827182108\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72532\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": "929d2e1b17a448d3352dbecb6a620ee0c1e65a58",
      "tree": "dcbad4698ce5741a1080fc7ba89d4bd5c5804417",
      "parents": [
        "7c717c36c533f56ddc7fbac2ff944870fa0249f8"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 12 00:47:05 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 09 10:30:24 2024 +0000"
      },
      "message": "internal: Pass programmer context down into chipset enables\n\nChipset enables potentially need access to programmer data, e.g.\nto process parameters, register masters etc.\n\nChange-Id: Iad211ff97e92d1973f981156bfa3154d1ba71d45\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72528\n"
    },
    {
      "commit": "7c717c36c533f56ddc7fbac2ff944870fa0249f8",
      "tree": "b91afaf1498cde1de33e7222632ec05999bf0b73",
      "parents": [
        "e3a26888e14d16592c2c79d1516828d3d32961a4"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 12 00:28:15 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 09 10:30:24 2024 +0000"
      },
      "message": "internal: Pass programmer context down into board enables\n\nBoard enables potentially need access to programmer data, e.g. to\nprocess parameters, register masters etc.\n\nChange-Id: I1531a6e1be9866adc5dce74c6f62bbbeae1bd274\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72527\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": "2b66ad9c4465432e6f2aff2e95f1e7a556bfc3f0",
      "tree": "187edbfe8e16593df21b2c4cb9c392e1011fd339",
      "parents": [
        "4517e9242e8d871db5159ff8afd215f015832c7d"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Jan 11 20:15:15 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 09 10:30:24 2024 +0000"
      },
      "message": "Start implementing struct flashprog_programmer\n\nOur libflashprog API was already prepared for a programmer level context\nstored in an opaque `struct flashprog_programmer`. We start filling this\nstruct with a pointer to the programmer driver (entry in the programmer\ntable) and a mutable copy of the parameter string.\n\nChange-Id: If9a795627b1e50ea6006569e723f400ff337be20\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72525\n"
    },
    {
      "commit": "4517e9242e8d871db5159ff8afd215f015832c7d",
      "tree": "a34b944c81a5d63416aa964db64201e2dc102eda",
      "parents": [
        "b197402042a065554234700b69057e9b6eedc39a"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 12 14:04:04 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 09 10:30:24 2024 +0000"
      },
      "message": "memory_bus: Drop stale `size \u003d\u003d 0` workaround and FIXME\n\nAll chips using the prepare_memory_mapping() function have a size set.\n\nChange-Id: Id5c56a1ebd00563de162b74f762c23aaa0e6d824\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72524\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "b197402042a065554234700b69057e9b6eedc39a",
      "tree": "62e4b15dff887d157ad18dd09b3d47dd2d7f8c1a",
      "parents": [
        "0e76d99a7c0eda11515923c5457f0b5a4af9893f"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 12 13:13:12 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 09 10:30:24 2024 +0000"
      },
      "message": "memory_bus: Split register mapping into own function\n\nNow that we have a hook for the memory mapping, we don\u0027t need\nFEATURE_REGISTERMAP anymore and can clean up around it.\n\nChange-Id: If11ece9ce81ddf214b75764007a1006d271dc8af\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72523\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "0e76d99a7c0eda11515923c5457f0b5a4af9893f",
      "tree": "c914d5266909dad441bece2705593131f032c19c",
      "parents": [
        "9eec40780207a110f3ba7ea70d11c042c6d86abf"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 12 20:22:55 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 09 10:30:24 2024 +0000"
      },
      "message": "memory_bus: Move (un)map_flash_region into par master\n\nNow that the map/unmap_flash functions are only called from memory-\nmapped chip drivers, we can safely move the hooks into the parallel\nmasters.\n\nThis also allows us to move the code away from the globals in\n`flashprog.c` into a new `memory_bus.c`.\n\nChange-Id: Ic476cf4d96200232900537b997e1d07bb4e8b809\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72522\nReviewed-by: Riku Viitanen \u003criku.viitanen@protonmail.com\u003e\n"
    },
    {
      "commit": "9eec40780207a110f3ba7ea70d11c042c6d86abf",
      "tree": "f48e0860e967bd720901e9cf12faaa82363bf2c8",
      "parents": [
        "56b53dd4c892c6f400f6b05797eb6ed4b96179db"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 12 01:17:30 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 09 10:30:24 2024 +0000"
      },
      "message": "Perform default mapping only for respective chips\n\nThe default memory mapping for the whole flash chip only makes sense\nfor chips that are directly connected to a bus serving memory cycles,\ni.e. parallel, LPC and FWH chips. Use the new `.prepare_access` and\n`.finish_access` hooks to map/unmap respective chips.\n\nGoing through the chip driver for this allows us to free the core\nflashprog code from this peculiarity.\n\nChange-Id: I54d1554b44b7e21fc18ef066103a9a26a2783b36\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72521\n"
    },
    {
      "commit": "56b53dd4c892c6f400f6b05797eb6ed4b96179db",
      "tree": "341312a9977976a9d6973f1aacf56bdc690a1148",
      "parents": [
        "55961909ea03d6affef188895fa0992bbea0b752"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Jan 11 23:15:20 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 09 10:30:24 2024 +0000"
      },
      "message": "wbsio_spi: Request memory mapping locally\n\nOur SPI chip drivers are not aware of any memory mapping. However, two\nof our SPI master drivers that implement an LPC-to-SPI bridge make use\nof the memory mapping originally intended for memory mapped flash chips.\n\nThis unnecessarily breaks the abstraction in core flashprog code. There\nis no other component than the master driver involved with the mapping,\nhence we can simply perform it locally in this driver.\n\nThe driver already assumed a maximum memory mapped space of 1MiB. We\nalways try to map this whole space and than adapt the address offsets\naccordingly.\n\nChange-Id: If95bad2ca40611452e34a865d520e9aa88e8f163\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72520\n"
    },
    {
      "commit": "55961909ea03d6affef188895fa0992bbea0b752",
      "tree": "6e9223a9d6c24091706276ed2caccaf6ac356811",
      "parents": [
        "46449b4d17c549a68d0b8ce287f20e4b46f13333"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Jan 11 23:01:37 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 09 10:30:24 2024 +0000"
      },
      "message": "it87spi: Request memory mapping locally\n\nOur SPI chip drivers are not aware of any memory mapping. However, two\nof our SPI master drivers that implement an LPC-to-SPI bridge make use\nof the memory mapping originally intended for memory mapped flash chips.\n\nThis unnecessarily breaks the abstraction in core flashprog code. There\nis no other component than the master driver involved with the mapping,\nhence we can simply perform it locally in this driver.\n\nThe driver already assumed a maximum memory mapped space of 512KiB. We\nalways try to map this whole space and than adapt the address offsets\naccordingly.\n\nChange-Id: I1cd828d3286ce0f7a02d15b035df368c67e0b2db\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72519\n"
    },
    {
      "commit": "46449b4d17c549a68d0b8ce287f20e4b46f13333",
      "tree": "14b936a26e05bd97eb60223dd1f9c1bec94b4899",
      "parents": [
        "ab6b18f0e0d4f4b2b8348306576b701b63372bd2"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 12 23:58:19 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 09 10:30:24 2024 +0000"
      },
      "message": "spi25: Drop stale `bus \u003d\u003d SPI` guards\n\nThese guards were necessary workarounds because we used to call\nthe functions from core flashprog code. Now that the related code\nis contained in the chip driver, we can drop them.\n\nChange-Id: Ib06044a716e2d1c295d902877d0342deb2d78908\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72518\n"
    },
    {
      "commit": "ab6b18f0e0d4f4b2b8348306576b701b63372bd2",
      "tree": "f9adeb7ab53e6fed6d940f852979b5da86dd7de1",
      "parents": [
        "901fb957742edef9307948c397bdd28c8b5ebfac"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Jan 11 23:38:20 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 09 10:30:24 2024 +0000"
      },
      "message": "spi25: Move 4BA preparations into spi_prepare_4ba() hook\n\nThese preparations are specific to 4BA SPI chips and don\u0027t have to\nclutter `flashprog.c`.\n\nChange-Id: I842244c57e575f93b9c505e16f1f20c7afd23733\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72517\n"
    },
    {
      "commit": "901fb957742edef9307948c397bdd28c8b5ebfac",
      "tree": "c69fc13d64764e08ce22df9a08772cb4eb9cde20",
      "parents": [
        "a96aaa3c716e13c62e1a7d93b5e6580e817cd2f5"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Jan 11 23:24:23 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 09 10:30:24 2024 +0000"
      },
      "message": "Add prepare/finish_access() hooks for chip drivers\n\nSome of the arrangements we perform in prepare_flash_access()\nare actually specific to the flash chip. Allow to clean that\nup by adding respective hooks into `struct flashchip`.\n\nChange-Id: Iff79ba3d190dba04ecf58c5c53faa428bf592bdf\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72516\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": "1338936efbd5301880063461b74eaf883db6e363",
      "tree": "ec0fd82dbaafd435bd3784d13378b1c4334f9e93",
      "parents": [
        "8d36db619b5bca0d5a1ddf05c26926b460605e31"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.huber@secunet.com",
        "time": "Tue Mar 05 18:35:30 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Mar 08 18:09:43 2024 +0000"
      },
      "message": "Consider 4BA support when filtering erase functions\n\nWhen we decide which erase functions to use, we need to know exactly\nwhich functions are supported by the used programmer. We missed that\nsome programmers can\u0027t send 4-byte adddresses.  As we already have a\nfeature flag for this, check it right away for all 4BA erase opcodes.\n\nThis affects mostly rare combinations of external programmers with\nmodern 4BA flash chips. For instance early versions of the Dediprog\nSF100.\n\nTests confirmed that this fixes the combination of a first protocol\ngeneration SF100 with a Winbond W25Q256JV.\n\nChange-Id: I51da2832a6a703058da57cdc0335b214653453ed\nSigned-off-by: Nico Huber \u003cnico.huber@secunet.com\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/99\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "8d36db619b5bca0d5a1ddf05c26926b460605e31",
      "tree": "17994c0c204f7e28c630c751f668b37c49164f00",
      "parents": [
        "d2ac3034a85c8eafd4a93a4be6fb3cf8bfa9e4cf"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Feb 24 20:50:42 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 02 13:36:47 2024 +0000"
      },
      "message": "flashprog.8: Fix up serprog example\n\nAn example should be something that could work, i.e. not contain place\nholders. So replace `/dev/device:baud` with a `/dev/ttyACM0` which\nshould serve well for the SPI-speed example.\n\nChange-Id: If6185c19cbe825586f97401fc5392c3507f8e3ca\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/89\nReviewed-by: Riku Viitanen \u003criku.viitanen@protonmail.com\u003e\n"
    },
    {
      "commit": "d2ac3034a85c8eafd4a93a4be6fb3cf8bfa9e4cf",
      "tree": "5c330051a6fb4a510aaf673bcfb714f81aa3918c",
      "parents": [
        "d1b91532627cdfd1bfde530baa6975f8f5d63d88"
      ],
      "author": {
        "name": "Riku Viitanen",
        "email": "riku.viitanen@protonmail.com",
        "time": "Sat Feb 24 21:23:19 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 02 13:36:01 2024 +0000"
      },
      "message": "flashprog.8: document new serprog cs parameter\n\nChange-Id: Iacf3b26fbacb928d5f1b69427eabe9edc8cdcb24\nSigned-off-by: Riku Viitanen \u003criku.viitanen@protonmail.com\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/88\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "d1b91532627cdfd1bfde530baa6975f8f5d63d88",
      "tree": "2c4178e9d2b7abfaa7810bb44fc508ccb00b74d3",
      "parents": [
        "ddb6d926783d4f9cbee04c7392718ed8f89daa0e"
      ],
      "author": {
        "name": "Arthur Heymans",
        "email": "arthur@aheymans.xyz",
        "time": "Mon Mar 20 23:26:13 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Feb 23 20:52:40 2024 +0000"
      },
      "message": "chipset_enable.c: Add Genoa to mendocino entry\n\nTESTED on AMD Onyx board.\n\nSigned-off-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\nChange-Id: Ib2c64026f89b57edf40b76893758b161145de265\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/73837\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "ddb6d926783d4f9cbee04c7392718ed8f89daa0e",
      "tree": "4979302b7b8e3917bb6a01264983df6a34634aa2",
      "parents": [
        "ddfbbe84b41d6a2fa3e2e7d031f55a82e05e6c76"
      ],
      "author": {
        "name": "Riku Viitanen",
        "email": "riku.viitanen@protonmail.com",
        "time": "Mon Jan 15 19:15:49 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Jan 26 19:28:00 2024 +0000"
      },
      "message": "serprog: Add support for multiple SPI chip selects\n\nTested with an EN25F80, Pi Pico, and this serprog firmware:\nhttps://codeberg.org/Riku_V/pico-serprog/commits/branch/multi-cs\n\nChange-Id: If8052bc6f5c314dcc493bc083bb8270723efaae7\nSigned-off-by: Riku Viitanen \u003criku.viitanen@protonmail.com\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/51\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "ddfbbe84b41d6a2fa3e2e7d031f55a82e05e6c76",
      "tree": "47ee340dd67aa6a1b59d0e4f883f88520b8ee9f1",
      "parents": [
        "f9b777dde3a5f35cbd6d1d910d29bf70a4af5a98"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Dec 21 16:31:27 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 25 09:24:39 2024 +0000"
      },
      "message": "flashchips: Mark W25Q256JV_Q as tested\n\nMark probe, read, erase and write tested for W25Q256JV_Q. As reported in\nhttps://mail.sourcearcade.org/hyperkitty/list/flashprog@flashprog.org/thread/3HRWA76VCCW5S54KLUBJW3HGFFHPQLK6/\n\nChange-Id: Ia7526263dea5ddd692eb5d485c5919af1784c7d2\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReported-by: Mathieu Pilato \u003cpilatomic@gmail.com\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/41\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "f9b777dde3a5f35cbd6d1d910d29bf70a4af5a98",
      "tree": "231e5504c10c03fcbcce8e0bc0a817bbf15db201",
      "parents": [
        "182229d10c7719dfecd459ae0c922887cebceedc"
      ],
      "author": {
        "name": "Riku Viitanen",
        "email": "riku.viitanen@protonmail.com",
        "time": "Sun Jan 21 12:23:29 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Jan 23 12:21:03 2024 +0000"
      },
      "message": "Documentation: libjaylink now available on Arch\n\nhttps://archlinux.org/packages/extra/x86_64/libjaylink/\n\nTest: Builds on Artix.\n\nChange-Id: Ie8a19e547798dec4a96e6a50fe2f6cbd09fba190\nSigned-off-by: Riku Viitanen \u003criku.viitanen@protonmail.com\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/86\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "182229d10c7719dfecd459ae0c922887cebceedc",
      "tree": "44d872dd42fa97143dc0c5e0d5cee9df747d0047",
      "parents": [
        "8d2c0df9f361550e224b1dd3fc4542647b22c4f8"
      ],
      "author": {
        "name": "Riku Viitanen",
        "email": "riku.viitanen@protonmail.com",
        "time": "Mon Jan 15 20:10:40 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Jan 20 13:36:42 2024 +0000"
      },
      "message": "serprog: clean up documentation\n\n* serprog.h doesn\u0027t exist, at least not in this repo\n* in the doc, no other command has S_CMD_ prefix either\n\nChange-Id: Ic83e7fd80840f2db0b006935a964721da0388068\nSigned-off-by: Riku Viitanen \u003criku.viitanen@protonmail.com\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/52\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "8d2c0df9f361550e224b1dd3fc4542647b22c4f8",
      "tree": "14cce4178dd62a8aea58be0bb61bc87d92867a3c",
      "parents": [
        "64f279083fbdee04d3d5b7ce4fb643bfb6f73466"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 14 23:39:40 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Jan 17 19:17:47 2024 +0000"
      },
      "message": "Add libgpiod v2 compatible bitbang master\n\nThe API was completely re-invented with libgpiod 2.0. Hence we add a\nnew driver as we would otherwise only share boilerplate with the old\ndriver. The new API makes it easier to re-configure GPIO pins on-the-\nfly. Which we will use to implement dual- and quad-i/o modes in the\nfuture.\n\nOne downside of the new API is that there is no function to open a\nchip by number anymore. So we have to emulate that behavior now for\nbackwards compatibility.\n\nChange-Id: If6a02d98f15def51b61fe0c3f09092cf286a37eb\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/83\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "64f279083fbdee04d3d5b7ce4fb643bfb6f73466",
      "tree": "b6057fc564f6d7f5201e5d254efc11d7bd0fa7c1",
      "parents": [
        "78615a734a09ba310801cd37133db1275e181d80"
      ],
      "author": {
        "name": "Arthur Heymans",
        "email": "arthur@aheymans.xyz",
        "time": "Fri Dec 22 13:50:02 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Dec 27 17:20:07 2023 +0000"
      },
      "message": "Add a .gitreview file\n\nThis makes dealing with gerrit from the commandline easier with the\ngit-review tool.\n\nChange-Id: I510e837715599f5edf7e0441f78cacc2f0127ed4\nSigned-off-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/42\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "78615a734a09ba310801cd37133db1275e181d80",
      "tree": "b775a8dbbde3be54c61bfc93fff38c0a4e685e6a",
      "parents": [
        "5455786bfb4b09af11f4354a6bb4842d37d78419"
      ],
      "author": {
        "name": "Arthur Heymans",
        "email": "arthur@aheymans.xyz",
        "time": "Fri Dec 22 13:51:22 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Dec 27 17:19:55 2023 +0000"
      },
      "message": "Add an .editorconfig file\n\nSome editors pick this file up to set default style options.\n\nChange-Id: Ia043d0a3bd8730e3ec576e26e93fef7602fede56\nSigned-off-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/62\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "5455786bfb4b09af11f4354a6bb4842d37d78419",
      "tree": "4444295adb9d0e6f9e13e08a16bc5c88a0b14352",
      "parents": [
        "c3b02dce51aad2766512d1939a1b7447c2d526b8"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon May 15 12:01:04 2023 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Dec 08 19:56:50 2023 +0000"
      },
      "message": "spi95: Avoid automatic probing\n\nIt turned out that the read ID command for the ST/M95 family (0x83)\nis a write command for AT45DB chips. We\u0027ll tag respective chips as\nusing a SPI95 command set, like we did for EDI, to avoid automatic\nprobing.\n\nChange-Id: Ibdf364424ac9cd8a734507a05fe769f008f8178e\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/75218\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": "a02df33fbf1c196395a61049e60895d4ae0e0a5b",
      "tree": "74b57107a33e26ea4989deab69b9ee1d2a4b71e7",
      "parents": [
        "d96e70348ee5cad2eefe7a319a7eb14f65ce2150"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Jan 14 23:06:27 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu May 18 14:51:17 2023 +0000"
      },
      "message": "flashrom.c: Use a simpler for-loop in init_eraseblock()\n\nChange-Id: I3b0b51a48e9de8522e0d39c2781e980405af84ba\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72554\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "d96e70348ee5cad2eefe7a319a7eb14f65ce2150",
      "tree": "5aa86db61a7f06252f3a3748dc55a7a15e2d6c2c",
      "parents": [
        "ad5b71994ef7cdf7ecacd967d27d13b487805607"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Jan 14 22:31:48 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu May 18 14:51:17 2023 +0000"
      },
      "message": "flashrom.c: Rewrite calculate_block_count()\n\nThere is not need to do address calculations in calculate_block_count().\nWe only want to return the final count, so only add that up. As a bonus,\nwe only need to pass the eraser and not the whole chip reference.\n\nChange-Id: I0cdfaad85aeda90513268d08da47acbe72ca57e5\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72553\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "ad5b71994ef7cdf7ecacd967d27d13b487805607",
      "tree": "5fccb97c12eca8807c7403fe69b42a37bcb780ea",
      "parents": [
        "c09fca49c925e62271632ac7bf6ad40fe53b5d98"
      ],
      "author": {
        "name": "Angel Pons",
        "email": "th3fanbus@gmail.com",
        "time": "Tue May 16 11:13:17 2023 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu May 18 13:54:53 2023 +0000"
      },
      "message": "chipset_enable.c: Drop `_LARGEFILE64_SOURCE`\n\nThis file does not access any large files, so there\u0027s no need to define\nthis feature test macro.\n\nChange-Id: I866cfa2f996eeea5846e5d9189647ad7a4a4e3e4\nSigned-off-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/75272\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "c09fca49c925e62271632ac7bf6ad40fe53b5d98",
      "tree": "9b62ce0616858d4f187d12ef4892434c893a8586",
      "parents": [
        "1494f8e35e761d8205ac2260506a7770cf05e8d6"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 29 15:58:09 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun May 14 15:20:17 2023 +0000"
      },
      "message": "flashrom.c: Integrate new erase-function selection\n\nThis requires almost a rewrite of walk_eraseblocks(): Instead of walking\nall blocks for a given function, we walk the presented erase layout.\nHowever, the overall structure stays the same.\n\nwalk_by_layout() now runs the new erase-function selection per region\nto present walk_eraseblocks() the new erase layout.\n\nChange-Id: I2535f211c49d050d21983cadb4df5005fa2e5659\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72562\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "1494f8e35e761d8205ac2260506a7770cf05e8d6",
      "tree": "1bc60efc1c6c2d3191b06deb9eeffd3e5f3c5637",
      "parents": [
        "cf6ff0ab5baac7cfb295d0b393e7476693106b12"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 29 15:48:00 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun May 14 15:20:17 2023 +0000"
      },
      "message": "flashrom.c: Allow to use select_erase_function() for explicit erase\n\nWhen we are explicitly called to erase, we simply select every block\nthat overlaps the given region.\n\nChange-Id: I2085855adb4406fdc6d6e813ea4bd912db13473d\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72561\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "cf6ff0ab5baac7cfb295d0b393e7476693106b12",
      "tree": "8162b3d4bcd813587255c8fa7c444bab2e89b774",
      "parents": [
        "a62124848abcbaffefc747b545c6cf2752d85f00"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 29 15:45:06 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun May 14 15:20:17 2023 +0000"
      },
      "message": "flashrom.c: Allow unaligned erase blocks in select_erase_function()\n\nSimply check if an erase block overlaps the given region.\n\nChange-Id: I06f64dad2cbf7e710d4129aec55496518d7c452e\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72560\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "a62124848abcbaffefc747b545c6cf2752d85f00",
      "tree": "181638ff0ab3ddf3932410e69f2505df8048a533",
      "parents": [
        "b11b72c60d8b7009906ed7b12887771a3b0b3c76"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 29 15:39:26 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun May 14 15:20:17 2023 +0000"
      },
      "message": "flashrom.c: Don\u0027t check for erase outside of selected region\n\nOriginally, select_erase_functions() was intended to be called only\nwith regions that are erase-block aligned. To prepare for unaligned\nregions, we limit the range passed to need_erase() to what should be\nwritten.\n\nChange-Id: Iae38ecbf79bf6fccc0ff6f874056e0c071636f89\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72559\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "b11b72c60d8b7009906ed7b12887771a3b0b3c76",
      "tree": "25409fb6b5826e47647af1e10c9988ba19b61c85",
      "parents": [
        "00d1b9fece5368a9335f8439d6329e5b5bd20ea9"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 29 15:33:11 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun May 14 15:20:17 2023 +0000"
      },
      "message": "flashrom.c: Wrap recursive select_erase_functions()\n\nRename the recursive function to select_erase_functions_rec() and handle\nthe first erase-function level in a separate function.\n\nChange-Id: I2cf0c14eb0038ecb8b457c1b5b0f7d7b8a4bcb55\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72558\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "00d1b9fece5368a9335f8439d6329e5b5bd20ea9",
      "tree": "94631a75784b80a107755695ec8db601c7257d7c",
      "parents": [
        "13f97a500a4935eb8b18ba8f38c69bf5dcd4affc"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 29 15:07:33 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun May 14 15:20:17 2023 +0000"
      },
      "message": "flashrom.c: Refactor parameters of select_erase_functions()\n\nReplace separate parameters with a pointer to the current `walk_info`.\n\nChange-Id: I46890589971183ca91684a8e275112d822780253\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72557\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "13f97a500a4935eb8b18ba8f38c69bf5dcd4affc",
      "tree": "61cb02939794f04f7e1dab903e1f8f88c5a19ccc",
      "parents": [
        "d34864bf82b472370d0d1e5d12da7942c5dc2fe4"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Jan 14 23:55:06 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun May 14 15:20:17 2023 +0000"
      },
      "message": "flashrom.c: Declare loop index outside of `for`\n\nRight now it\u0027s still needed to compile everywhere (where we test).\n\nChange-Id: Ie303d35c83dbc08e4a1d8686e38c8ee4988a0144\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72556\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "d34864bf82b472370d0d1e5d12da7942c5dc2fe4",
      "tree": "c6bc8865ad7d9ef9df20ef8ff62e42959df4d999",
      "parents": [
        "632131590aa13544515f84822f94eb8f54d78e38"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Jan 14 23:47:19 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun May 14 15:20:17 2023 +0000"
      },
      "message": "flashrom.c: Sort initial error checks in create_erase_layout()\n\nWith the original order, we might report the wrong error in case\ncalloc() returns `NULL` for `nmemb \u003d\u003d 0`.\n\nChange-Id: If1330ab1cbde817fb7ef91f7dc6ace219cb6ecbc\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72555\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "632131590aa13544515f84822f94eb8f54d78e38",
      "tree": "7ba2063d0a8136be60866dc40fa79f11b2415598",
      "parents": [
        "7a480310de5f7ec35d2d2acc7b60ca1ff8296944"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Apr 24 12:00:58 2023 +0000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue May 02 14:28:17 2023 +0000"
      },
      "message": "chipset_enable: Mark C236 as DEP\n\nAs reported working by Tomas on the ML:\nhttps://mail.coreboot.org/hyperkitty/list/flashrom@flashrom.org/thread/2YSYIYKBUL5K26ZR5XIBV2YCXSNRWTNT/\n\nChange-Id: I575956d7e121350530e5b3e4e21384c0ea338d8f\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/74857\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "7a480310de5f7ec35d2d2acc7b60ca1ff8296944",
      "tree": "c358fc379a93b9ccee17742564c7cbbbed00962e",
      "parents": [
        "d33bea4a0cb0921ba85f69fb6ca1fa27c68dc67b"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Apr 10 14:54:22 2023 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue May 02 14:26:43 2023 +0000"
      },
      "message": "test_build: Add simple sanity check for explicit erase (-E)\n\nChange-Id: I210bd45431d2fa67118ab357df1b946bc83a3235\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/74323\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "d33bea4a0cb0921ba85f69fb6ca1fa27c68dc67b",
      "tree": "f751dd7908b3a17a9def2d66ba496c65f7f4662d",
      "parents": [
        "18cc8d3deb67ddf42ac0cb47e8ab303481b38c17"
      ],
      "author": {
        "name": "Aarya Chaumal",
        "email": "aarya.chaumal@gmail.com",
        "time": "Thu Jul 14 12:51:14 2022 +0530"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Apr 20 21:01:25 2023 +0000"
      },
      "message": "flashrom.c: Add a function to get list of sectors that need erasing\n\nAdd a function that returns a list of sectors (as seen by the first\nerase function) that need erasing.\n\nChange-Id: Ic57ca1cca3d1646543f6b5939ba9c35db8d08256\nSigned-off-by: Aarya Chaumal \u003caarya.chaumal@gmail.com\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72552\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "18cc8d3deb67ddf42ac0cb47e8ab303481b38c17",
      "tree": "f6bb6635687853025a72151369829df1acb1d64b",
      "parents": [
        "05017c10ea859170973cc3163767e70c117ad21a"
      ],
      "author": {
        "name": "Aarya Chaumal",
        "email": "aarya.chaumal@gmail.com",
        "time": "Fri Jul 15 16:51:27 2022 +0530"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Apr 20 21:01:25 2023 +0000"
      },
      "message": "flashrom.c: Add function to get a flattened view of the chip erase blocks\n\nAdd a function to flatten out the addresses of the flash chip as per the\ndifferent erase functions. This function will return a list of layouts\nwhich is dynamically allocated. So after use all the layouts as well as\nthe list itself should be freed. The free_erase_layout function does\nthat.\n\nChange-Id: Iafe78de00daa55f7114bd4ce09465dd88074ece4\nSigned-off-by: Aarya Chaumal \u003caarya.chaumal@gmail.com\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72551\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "05017c10ea859170973cc3163767e70c117ad21a",
      "tree": "ad2248c3c437f184a6120a2affcc5a4a6cb4ce74",
      "parents": [
        "2f7c1df8293e359706ae9bb01314202ecb62981f"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Mar 19 14:24:55 2023 +0000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Apr 20 21:00:40 2023 +0000"
      },
      "message": "meson.build: Update default status for jlink_spi\n\nIn commit 07dd1219ff15 (Makefile: Enable jlink_spi by default) we\nforgot to update the `meson.build` file. We actually never needed\nthe `\u0027default\u0027 : false` because our Meson setup would disable it\nautomatically if the library is missing.\n\nChange-Id: I9c68d00a7cbf3c8be50cd1e58e54262bf14bd779\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/73855\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "2f7c1df8293e359706ae9bb01314202ecb62981f",
      "tree": "2cbb632fdc8a674b09f74d9b68e85d54508c9c9a",
      "parents": [
        "5ff6fdc75bdbdbeac9bb43bee7c72bed82dbe059"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Mar 07 23:36:44 2023 +0000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Apr 04 10:19:22 2023 +0000"
      },
      "message": "ft2232_spi: Fix resource leaking on failed init\n\nMove the allocation of `spi_data` down. OOM errors are less likely,\nhence it won\u0027t hurt to check that late. OTOH, it simplifies error\nhandling when we separate init parts that require dynamic resources\nfrom those that don\u0027t.\n\nChange-Id: Ibfc35832e71eb05571801216763af238c1dfd1eb\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/73575\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "5ff6fdc75bdbdbeac9bb43bee7c72bed82dbe059",
      "tree": "3990b4ed4aec9d2df88bb31791cb945aa99181d1",
      "parents": [
        "3b9c86dca807b8940e4af74c42ee911d4c03530e"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 15 23:43:12 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Apr 04 10:12:02 2023 +0000"
      },
      "message": "flashrom.c: Write whole layout regions at once\n\nWe used to write per erase block, right after erasing in case\nwe had to. To ease integration of a new erase-block selection,\nthe write step is postponed now, after all blocks in a region\nthat need erasing are erased.\n\nThis also moves the decision whether to call erase_block() on\na given block to a higher level and prepares for the new erase-\nblock selection algorithm.\n\nChange-Id: I325c4873f9bde8183e9f43239929075ac31b80cc\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72550\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "3b9c86dca807b8940e4af74c42ee911d4c03530e",
      "tree": "ca9870bdd95c42ef2da7027a5fbd19066b938f51",
      "parents": [
        "b8e81051b451a993cb6c21a49b51dad5f096adad"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 15 22:58:06 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Apr 04 10:12:02 2023 +0000"
      },
      "message": "flashrom.c: Extract write loop into new write_range()\n\nerase_block() and write_block() use the same loop logic to decide what\nparts of a range need to be written. Move that into a new function,\nwrite_range().\n\nChange-Id: I13637978c03419ef06fbf3d4e0640c4630c49964\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72549\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "b8e81051b451a993cb6c21a49b51dad5f096adad",
      "tree": "b37dfbfbfcdfa0f3213f85b08e7adf9bda43bc75",
      "parents": [
        "d34af7a7d741c4b71b7d560984058a5f96900597"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 15 22:40:14 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Apr 04 10:12:02 2023 +0000"
      },
      "message": "flashrom.c: Simplify read_erase_write_block()\n\nSince erase_block() learned to handle potentially unaligned regions,\nand read_erase_write_block() uses it internally, we don\u0027t have to\nhandle that inside the latter anymore. This allows a much simpler\nimplementation. Also change the name to write_block().\n\nChange-Id: I46826951d8bd345957368da83f8d4e8b3b6c53b2\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72548\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "d34af7a7d741c4b71b7d560984058a5f96900597",
      "tree": "555984700c27b5975526bdfcb21ba1619190bdab",
      "parents": [
        "3ac761c3c47a6476b8b0f9ce613b32914b163c46"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 15 23:58:18 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Apr 04 10:12:02 2023 +0000"
      },
      "message": "flashrom.c: Drop retry logic for failed erase/write\n\nNow that we check first if an erase function should work with the\ngiven programmer, we can drop the retry logic. This also simplifies\nsurrounding return codes a little.\n\nChange-Id: I6db645dd3496f7c7f97c51aa5e8e088119012261\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72547\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "3ac761c3c47a6476b8b0f9ce613b32914b163c46",
      "tree": "146db2e06439bf76f4c66fd48facb10ec3c0bf79",
      "parents": [
        "b77607f048e5cdfbf8fb1e9ad3b110c9a67e80e0"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Jan 16 02:43:17 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Apr 04 10:12:02 2023 +0000"
      },
      "message": "layout: Verify that regions to be written are granularity aligned\n\nThis will be important with the new erase/write strategy when we don\u0027t\nwrite per erase block anymore.\n\nChange-Id: Ie3c74ff4313c9d72ac92d3226804e0407088c17d\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72546\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "b77607f048e5cdfbf8fb1e9ad3b110c9a67e80e0",
      "tree": "700075b85574ba14e043073866ef3e3946d2a357",
      "parents": [
        "2f75379fa20f5415c70b837001473ff8ba070ab7"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Jan 16 02:25:45 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Apr 04 10:12:02 2023 +0000"
      },
      "message": "flashrom.c: Introduce gran_to_bytes()\n\nChange-Id: Ib41f9581060350f41620e9e377b9bafa58677882\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72545\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "2f75379fa20f5415c70b837001473ff8ba070ab7",
      "tree": "0f549c33c16f70f1c619926d91ce217e95eccd6a",
      "parents": [
        "b1d4b1d6b8a7876496af6b8af422d1c8058d5f4e"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Mar 28 00:46:50 2023 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Apr 04 09:59:35 2023 +0000"
      },
      "message": "internal: Don\u0027t try linux_mtd on x86\n\nWe assume that the first MTD device found represents the \"internal\"\nfirmware flash. This is true on many architectures, and assumed to\nbe working. On x86, however, there is traditionally no MTD device.\nOne exception is the `spi-intel` driver, but this one is tagged\n\"DANGEROUS\" and often makes trouble if a Linux distribution enabled\nit nevertheless.\n\nSo, let\u0027s disable the internal/MTD automatism on x86. Flashrom has\nbetter drivers, and if somebody runs into a situation where the MTD\ndriver would work but the internal one doesn\u0027t, they can still use\n`linux_mtd` explicitly.\n\nChange-Id: I813980786a09fe64f541906e1963b0abd8b93cb5\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/73987\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Matt DeVillier \u003cmatt.devillier@gmail.com\u003e\n"
    },
    {
      "commit": "b1d4b1d6b8a7876496af6b8af422d1c8058d5f4e",
      "tree": "345667dcd81b78d57450f65bef9f8a1dc61188a0",
      "parents": [
        "da09599c1230e7461129c19fea919e2b536a26ba"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Mar 17 13:32:06 2023 +0000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 18 13:28:45 2023 +0000"
      },
      "message": "manibuilder: Update overrides for missing libraries\n\nNow that we bail-out on missing dependencies again, we have a lot of\nadditional overrides to provide.\n\nChange-Id: I5401c88b85333b5a6d6d5ed9f34fb83e0c677364\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/73777\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "da09599c1230e7461129c19fea919e2b536a26ba",
      "tree": "c0fc80701833e0c014c2c143bc1be7db82c214e8",
      "parents": [
        "6f6a1c3f55fc3b8dfe936a81287bb71c1e0d011d"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Mar 17 13:02:31 2023 +0000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 18 13:28:45 2023 +0000"
      },
      "message": "README,manibuilder: Update environment overrides for DJGPP\n\nThe currently documented DJGPP setup doesn\u0027t utilize pkg-config, hence\nwe have to specify the presence of libpci explicitly.\n\nChange-Id: I1e5cc9e0235fd49948edd9d39087735b8685638e\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/73776\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "6f6a1c3f55fc3b8dfe936a81287bb71c1e0d011d",
      "tree": "a4b403b5eb9f955546fd4dff1c5a6d091bf41c20",
      "parents": [
        "547b9b099c38ef76aef785b17e471786aaf66522"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Mar 17 12:56:49 2023 +0000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 18 13:28:45 2023 +0000"
      },
      "message": "manibuilder: Move environment overrides into new Makefile.env\n\nChange-Id: I7e1db64ab04c99a472770123865589278778e5f3\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/73775\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "547b9b099c38ef76aef785b17e471786aaf66522",
      "tree": "0310cc7e3b7324d342005299ff3a0bae6e042b1e",
      "parents": [
        "b750149939df1ecb020e31626634804f32eb143a"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Mar 17 14:50:44 2023 +0000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 18 13:28:45 2023 +0000"
      },
      "message": "manibuilder/anita: Compensate for missing pkg-config\n\nThe old anita:7.1 images don\u0027t have pkg-config and packages are not\navailable anymore. Hence configure the available libraries manually.\n\nChange-Id: Id86f77690cd595380fd32c9d7633dcacac9d258a\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/73774\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "b750149939df1ecb020e31626634804f32eb143a",
      "tree": "79dc1682a0992d038e762ce590bf2931dd3f5926",
      "parents": [
        "f7dea1ad514ba90235fc68cda1958206e0731a66"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Mar 17 12:42:16 2023 +0000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 18 13:28:45 2023 +0000"
      },
      "message": "manibuilder/anita: Move environment overrides to Makefile.anita\n\nAlso be specific where we have to allow warnings and drop a long unused\noverride for anita:7.1-sparc.\n\nChange-Id: I962ecbbeee2813237421ab866b54f2de79cc4a20\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/73773\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "f7dea1ad514ba90235fc68cda1958206e0731a66",
      "tree": "71b0db7de14a830d7cee7b888d781ec4581a2cf8",
      "parents": [
        "24ad6b2bcc6db66db859929e5e0c7fc1b690be8b"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Mar 17 13:15:50 2023 +0000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 18 13:21:47 2023 +0000"
      },
      "message": "Makefile: Mark Linux-specific libgpiod as unsupported on other OS\u0027s\n\nChange-Id: Ia453149bd0883900d470303337e772b8f7f716fa\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/73772\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "24ad6b2bcc6db66db859929e5e0c7fc1b690be8b",
      "tree": "d73622a8310527a5ae78a218bc62899f92fcd912",
      "parents": [
        "d2ba438392611073335ab8a5d130202be2b1721e"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Mar 17 00:21:38 2023 +0000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 18 13:21:47 2023 +0000"
      },
      "message": "Makefile: Mark unsupported libraries for DOS (DJGPP)\n\nDOS will probably never get USB support.\n\nChange-Id: I6bcc67dc35740b58752663bfcb1c947ba7f70581\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/73771\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "d2ba438392611073335ab8a5d130202be2b1721e",
      "tree": "53a2ea07022c0e85a0352691185e1c7cf71c5a63",
      "parents": [
        "6272eb658c1b58a696f4f06b855fa9c506d8e9d1"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Mar 17 00:20:12 2023 +0000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 18 13:21:47 2023 +0000"
      },
      "message": "Makefile: Fix typo DEPENDS_ON_LIBFTDI --\u003e DEPENDS_ON_LIBFTDI1\n\nChange-Id: I51ca78b64109f8f7bd1b73d4f275ca38e4f1dfd8\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/73770\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "6272eb658c1b58a696f4f06b855fa9c506d8e9d1",
      "tree": "fefb73e45a0df65d879c009d7b9f6115d6c47676",
      "parents": [
        "59848a94cfc19e626239b934fecf40243d1279ad"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Mar 16 22:59:50 2023 +0000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 18 13:21:47 2023 +0000"
      },
      "message": "Makefile.include: Add line continuations between $(eval) calls\n\nOlder GNU Make versions (e.g. v4.1) don\u0027t like the `mark_missing_deps`\nmacro without line continuations. Probably because the lines are tech-\nnically empty after evaluation.\n\nChange-Id: I790c21999b2fc9c698f6bf9302f670470fe1bab8\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/73749\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "59848a94cfc19e626239b934fecf40243d1279ad",
      "tree": "c2dcdfe75ba618e7e8a834f86d67ad8d32db457a",
      "parents": [
        "2044af08cad0c36fa4fd677294f56929569eb72d"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 04 00:41:18 2023 +0000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Mar 17 15:24:18 2023 +0000"
      },
      "message": "manibuilder: Add official AlmaLinux images\n\nThe dockerfile is a mix from the CentOS and the Fedora one. For Meson,\nwe require an additional repository, `powertools` in AlmaLinux 8 and\n`crb` in AlmaLinux 9. As `ccache` is missing, we have to override $(CC).\n\nChange-Id: I33c62a5cc9bf05c626179acb35250a8a3293f8c1\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/73473\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "2044af08cad0c36fa4fd677294f56929569eb72d",
      "tree": "76cc669406f12382e92acc03e8587f9e842da752",
      "parents": [
        "494561a7700ecd0053677a72dc20d6422749418e"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 04 00:40:47 2023 +0000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Mar 17 15:24:18 2023 +0000"
      },
      "message": "manibuilder/fedora: Add official multi-arch tags for 35, 36 and 37\n\nChange-Id: I1ea30cb509ea1d24b0c08488ba5433b3cfe8ac4c\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/73472\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "494561a7700ecd0053677a72dc20d6422749418e",
      "tree": "ec7fbaa2bccf984cd4e1d183cadfb355a9c74b47",
      "parents": [
        "f137f44acd36359e9daa4f1bf0a4b8bc847cb077"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Mar 03 17:12:32 2023 +0000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Mar 17 15:24:18 2023 +0000"
      },
      "message": "manibuilder/debian: Add official multi-arch tags for Bookworm\n\nChange-Id: I7915d75d7df89c4d583528c328f37b8694397fc4\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/73435\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    }
  ],
  "next": "f137f44acd36359e9daa4f1bf0a4b8bc847cb077"
}
