)]}'
{
  "log": [
    {
      "commit": "cfd607d36b8009eb41a7ca8e2a3e96eb9243d37b",
      "tree": "a40041ba8bb70562f8fa832e2630171014d3b7d1",
      "parents": [
        "ec287e2f7645220852130f9d68c3969b83992640"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Dec 22 00:25:58 2018 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Feb 24 10:59:09 2025 +0000"
      },
      "message": "layout: Show a warning if no region is included\n\nThis seems better than a plain success message for a (probably\naccidental) no-op run.\n\nChange-Id: I53b749ce42ecc6c267b6cbe71413d536ec3965c5\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/313\nReviewed-by: Felix Singer \u003cfelixsinger@posteo.net\u003e\n"
    },
    {
      "commit": "ec287e2f7645220852130f9d68c3969b83992640",
      "tree": "f62b768ee47c76d5678b42ccc757b4cde9fa2f99",
      "parents": [
        "39a4f7d5a0d89494a3ed92ffa07e7a69f755cbdc"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Dec 04 22:43:40 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Feb 24 10:56:47 2025 +0000"
      },
      "message": "ich_descriptors_tool: Change region name EC/BMC -\u003e EC_BMC\n\nThe region names are used to produce file names for extraction.\nThey better not contain any slash.\n\nChange-Id: Id45df466e7a15fac89b8afb390bb21ea6c573d58\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/312\nReviewed-by: Felix Singer \u003cfelixsinger@posteo.net\u003e\n"
    },
    {
      "commit": "39a4f7d5a0d89494a3ed92ffa07e7a69f755cbdc",
      "tree": "bff14ca76e24ec28e6cee0c7a4401c3e72404bed",
      "parents": [
        "404529d755d07f450babca258dcff5f85a8713d9"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Dec 04 22:40:37 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Feb 24 10:56:47 2025 +0000"
      },
      "message": "sb600spi: Request more `lspci` details\n\nWhen asking the use for `lspci` output, suggest to use `sudo` and\n`-xxx`. The standard registers dumped with `-x` are not very inte-\nresting, and `-xxx` requires root access.\n\nChange-Id: I7a5bc5eb425542d8109ad504cbf77d33e43459b1\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/311\nReviewed-by: Felix Singer \u003cfelixsinger@posteo.net\u003e\n"
    },
    {
      "commit": "404529d755d07f450babca258dcff5f85a8713d9",
      "tree": "d357131655c6ae6e5f14317937b44a10caa8bfea",
      "parents": [
        "fbea0fe4bd35092aee567864653589445edbcdd6"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.huber@secunet.com",
        "time": "Thu Jan 30 23:14:14 2025 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Feb 24 08:00:28 2025 +0000"
      },
      "message": "memory_bus.c: Add missing copyright notice\n\nThe logic that was moved into `memory_bus.c` was originally introduced\nby commit 4e32ec19 (Refine physical address mapping of flash chips).\nEverything else is just boiler plate.\n\nChange-Id: Ied2e9ba1f55aa79abe705d6bd5314938e670b1f2\nSigned-off-by: Nico Huber \u003cnico.huber@secunet.com\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/319\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "fbea0fe4bd35092aee567864653589445edbcdd6",
      "tree": "651920682a8bbb4b91eb9967187c4fedf7416b02",
      "parents": [
        "c90d6c425094d39c1bc1114c64e2560acf073412"
      ],
      "author": {
        "name": "Felix Singer",
        "email": "felixsinger@posteo.net",
        "time": "Mon Feb 17 21:50:08 2025 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 20:59:56 2025 +0000"
      },
      "message": "udev rules: Restore mode/group configuration\n\nuaccess grants seat sessions access to the devices, but there might be\nrobot-like setups which need access as well. So, restore the mode/group\nconfiguration and grant users in the `plugdev` group read/write\naccess. This does not conflict with uaccess.\n\nChange-Id: Icf3e2582d7c4313b53a946880d1330079b1e0074\nSigned-off-by: Felix Singer \u003cfelixsinger@posteo.net\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/320\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "c90d6c425094d39c1bc1114c64e2560acf073412",
      "tree": "b66c1e54ebd36007afebb90db1b7a8e0d406ff8a",
      "parents": [
        "ee8cf1c9c6218681f78193ba29c890bf9b7ba30a"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 02 23:37:59 2025 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 17:23:14 2025 +0000"
      },
      "message": "flashchips: Add some 25LC series EEPROMs\n\nChange-Id: Iff02282cc1b9e76ce681467fb4b228a7f078b06f\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/316\nReviewed-by: ftr4 ftr4 \u003cftr4@sharklasers.com\u003e\n"
    },
    {
      "commit": "ee8cf1c9c6218681f78193ba29c890bf9b7ba30a",
      "tree": "63429fd591599bc1bd63e0007d0f648324f4dd80",
      "parents": [
        "4e6155afd4b0e1f5cf190cdd21fa83a656c4088a"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 02 23:17:25 2025 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 17:23:14 2025 +0000"
      },
      "message": "Provide no-op probe function, always returning 1\n\nChange-Id: Ic0567a0da29790dbde24c432f3f1d4d109156165\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/315\n"
    },
    {
      "commit": "4e6155afd4b0e1f5cf190cdd21fa83a656c4088a",
      "tree": "395a5592506087f34ec696887eb965ec335f8b5d",
      "parents": [
        "9512c9c16c73e46b6190c9c9fd9ea0555a4d7e24"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 02 23:05:09 2025 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 17:23:14 2025 +0000"
      },
      "message": "spi25: Add SPI25_EEPROM enum and handle \u003c 3-byte addresses\n\nChange-Id: I043f6ea987a07853b8c50e34b3cd63faf995ecbc\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/314\n"
    },
    {
      "commit": "9512c9c16c73e46b6190c9c9fd9ea0555a4d7e24",
      "tree": "64dd2e31837a0feb64034f3404d0d68e2fce9178",
      "parents": [
        "06fbccc61ea5cc8410cb795554dffcfdda111139"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.huber@secunet.com",
        "time": "Thu Jan 30 22:38:18 2025 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 17:01:45 2025 +0000"
      },
      "message": "Add missing copyright notices to recently created files\n\nAdd copyright notices for new CLI code (2023), the AMD SPI100\ndriver (2023), and new SPI support code for dual/quad i/o and\nQPI (2024). Initially, some code was moved from `flashprog.c`\ninto `spi25_prepare.c` which dates back to 2017 and 2018.\n\nChange-Id: I980382b8950e2aea6880f4b56df23d4eafc6bb3d\nSigned-off-by: Nico Huber \u003cnico.huber@secunet.com\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/318\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "06fbccc61ea5cc8410cb795554dffcfdda111139",
      "tree": "18bea04deb690c8cad0ff1a77ddadbe1147c5bae",
      "parents": [
        "bc001daac6232df01eb4c20e5b701553bcd22ca5"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Nov 08 17:36:28 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 12:05:52 2025 +0000"
      },
      "message": "flashchips: Add GigaDevice GD25LB256E 1.8V part\n\nThis chip has WPS and DC bits in unsupported configuration registers.\nHence we can\u0027t support QPI and block protection for now.\n\nDatasheet used:\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20230627/DS-00513-GD25LB256E-Rev2.0.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20241211/DS-00573-GD25LR256E-Rev1.6.pdf\n\nChange-Id: I0dab32efab33d34a4c29ca84a5e1e1fe0b408e07\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/304\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "bc001daac6232df01eb4c20e5b701553bcd22ca5",
      "tree": "d855b3746bce72cb0ff6de98506c687c660ec46b",
      "parents": [
        "7d0f556db8e793df25f54504c6ebfccbcf62f292"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Nov 08 17:11:56 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 12:05:52 2025 +0000"
      },
      "message": "flashchips: Add some GigaDevice GD25L*256 1.8V parts\n\nHere\u0027s a bunch of chips that all share the same ID. They differ however\nin their block-protection support (which is where we split them), their\nsupport for native 4BA commands, and their logic to configure dummy cy-\ncles in SPI mode.\n\nDatasheets used:\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20220714/DS-00301-GD25LQ256D-Rev2.0.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20220714/DS-00282-GD25LE256D-Rev1.7.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20220714/DS-00314-GD25LB256D-Rev1.4.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20240729/DS-00562-GD25LQ255E-Rev1.2.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20241211/DS-01085-GD25LQ256H-Rev1.1.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20241211/DS-01113-GD25LE256H-Rev1.1.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20230926/DS-00978-GD25LB256F-Rev1.0.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20220714/DS-00619-GD25LE255E-Rev1.2.pdf\n\nChange-Id: Id995c53f371c9b83dabe5fb6f881954a7e7f4f59\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/303\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "7d0f556db8e793df25f54504c6ebfccbcf62f292",
      "tree": "424f9ca6daba9a658f4a721139221f016a423e3f",
      "parents": [
        "7f8c12d63d214bfd2b3ba841a3e3633ab82d825d"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Nov 08 15:06:22 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 12:05:52 2025 +0000"
      },
      "message": "flashchips: Update GigaDevice 1.8V family up to GD25LQ128\n\nThese chips all are supposed to support  volatile status-register writes\nand feature the most usual block-protection bits. The 1.695V limit looks\ncertainly like a typo. All datasheets found start at 1.65V.\n\nDatasheets used:\nhttps://treetoptech.com/Resources/Datasheets/GD25LQ32C_Rev1.3.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20220714/DS-00230-GD25LQ32D-Rev2.2.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20240902/DS-00543-GD25LQ32E-Rev1.6.pdf\nhttps://www.mouser.com/datasheet/2/870/gd25lq64c_rev3_4_20190615-2486443.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20240729/DS-00593-GD25LQ64E-Rev1.4.pdf\nhttps://www.tme.com/Document/3677f0b602f733a6800806f5bd7a79f9/gd25lq128c.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20220714/DS-00291-GD25LQ128D-Rev1.9.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20240729/DS-00533-GD25LQ128E-Rev1.2.pdf\n\nChange-Id: I581c3936fbae43f13b01ebf01bf94e68c3150efd\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/302\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "7f8c12d63d214bfd2b3ba841a3e3633ab82d825d",
      "tree": "3b0580d5fe3e86efd8381a99d638022aea639990",
      "parents": [
        "565471ce44b21aa39698b0cd876020b9dbacd690"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Nov 08 14:24:14 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 12:05:52 2025 +0000"
      },
      "message": "flashchips: Add GigaDevice GD25LQ20, update family up to GD25LQ16\n\nThey all are supposed to support volatile status-register writes and\nfeature the most usual block-protection bits. The 1.695V limit looks\ncertainly like a typo. All datasheets found start at 1.65V.\n\nDatasheets used:\nhttps://device.report/m/0dd9581d418568153f88153cd3bd298f85f83fba817fc6b242405e98002f7c44.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20220714/DS-00347-GD25LQ20C-Rev1.5.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20221129/DS-00785-GD25LQ20E-Rev1.2.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20221129/DS-00663-GD25LQ40E-Rev1.2.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20220714/DS-00405-GD25LQ80C-Rev1.9.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20220714/DS-00583-GD25LQ80E-Rev1.3.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20220714/DS-00289-GD25LQ16C-Rev2.1.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20240902/DS-00576-GD25LQ16E-Rev1.4.pdf\n\nChange-Id: I23b3b199d9c6fd7b42de468cbe8b3945774f15e8\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/301\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "565471ce44b21aa39698b0cd876020b9dbacd690",
      "tree": "aee9b5c6f67060e8b580fe44d231287794142ae6",
      "parents": [
        "6ee2f8958e20c30d52758d37a41f8f043345d5ff"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Nov 08 13:07:52 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 12:05:52 2025 +0000"
      },
      "message": "flashchips: Add GigaDevice GD25B512ME..GD55B02GE 3.3V parts\n\nThese E versions have different, peculiar IDs (0x47 prefix) and\ndon\u0027t support dual-output/-io commands.  They have special non-\nvolatile dummy-cycle registers,  hence we don\u0027t support QPI and\nblock-protection for now.\n\nDatasheets used:\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20230321/DS-00649-GD25B512ME-Rev1.6.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20241211/DS-00742-GD25R512ME-Rev1.2.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20230321/DS-00650-GD55B01GE-Rev1.4.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20230321/DS-00651-GD55B02GE-Rev1.4.pdf\n\nChange-Id: Iffbb5b53383373a5bf677742e2730deaf486883d\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/299\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "6ee2f8958e20c30d52758d37a41f8f043345d5ff",
      "tree": "4564611b4980dbfea1d0bfde6e439e66a6e07cbe",
      "parents": [
        "c230c69c7d4c8403859c4735241158624eade964"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Oct 27 12:15:50 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 12:05:52 2025 +0000"
      },
      "message": "flashchips: Update GigaDevice GD25Q/B/R 128Mbit, 3.3V parts\n\nRename and move the GD25B128B/GD25Q128B entry so that it lives closer to\nthe other similar chips (the B version is just a Q with fixed QE\u003d1, thus\nsort it by Q). All the other, newer chips support volatile status regis-\nter writes, however differ in QIO/QPI support. In particular, the newest\nchips have a non-volatile dummy-cycle configuration bit, which we do not\nsupport at the moment.\n\nDatasheets used:\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20220714/DS-00220-GD25Q127C-Rev2.3.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20241211/DS-00319-GD25R127D-Rev1.4.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20220714/DS-00277-GD25B127D-Rev1.5.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20241211/DS-00480-GD25Q128E-Rev1.4.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20241211/DS-01121-GD25Q128H-Rev1.1.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20241211/DS-00751-GD25R128E-Rev1.0.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20240902/DS-00594-GD25B128E-Rev1.1.pdf\nhttps://www.gigadevice.com.cn/Public/Uploads/uploadfile/files/20240902/DS-01137-GD25B128H-Rev1.1.pdf\n\nChange-Id: If2893e59e73d06ecc542c9eb2bb429f2c4e469b9\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/297\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "c230c69c7d4c8403859c4735241158624eade964",
      "tree": "59154a1fc4d6d3a1295bf176d43ed4a425c43c96",
      "parents": [
        "06e0264aa076bb9359274692850bf9010a1fe5c7"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Oct 26 01:16:23 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 12:05:52 2025 +0000"
      },
      "message": "flashchips: Add remaining Puya PY25Q..H 3.3V parts\n\nThe remaining chips use 32-bit addresses (4BA). They seem to support\nthe maximum of fast-read commands, also in QPI/4BA mode.\n\nDatasheets used:\nhttps://www.puyasemi.com/download_path/%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8C/Flash/PY25Q256HB_Datasheet_V1.3.pdf\nhttps://www.puyasemi.com/download_path/%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8C/Flash/PY25R256HB_Datasheet_V1.0.pdf\nhttps://www.puyasemi.com/download_path/%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8C/Flash/PY25F256HB_Datasheet_V1.2.pdf\nhttps://www.puyasemi.com/download_path/%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8C/Flash/PY25Q512HB_Datasheet_V1.2.pdf\nhttps://www.puyasemi.com/download_path/%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8C/Flash/PY25F512HB_Datasheet_V1.2.pdf\nhttps://www.puyasemi.com/download_path/%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8C/Flash/PY25Q01GHB_Datasheet_V1.2.pdf\n\nChange-Id: I2ace2734d9dcf0920fb12f607d57fc419db8563e\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/296\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "06e0264aa076bb9359274692850bf9010a1fe5c7",
      "tree": "c72b5d6086fe5de5c64730bdcc144521c7099d58",
      "parents": [
        "fe21b43203c08f597c1295dba556323e63b3f209"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Oct 26 00:46:11 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 12:05:52 2025 +0000"
      },
      "message": "flashchips: Add Puya PY25Q..H family up to PY25Q128H\n\nThese are all the 3.3V parts of the family  with only 24-bit\naddresses (3BA). First two (PY25Q40HB, PY25Q80HB) don\u0027t have\na configuration register and no WPS bit.  From PY25Q64HA on,\nthe voltage range starts from 2.7V (instead of the 2.3V they\nhad before). There are versions with fixed quad-enable bits.\nAlas, they use different IDs,  so we need duplicate database\nentries again.\n\nDatasheets used:\nhttps://www.puyasemi.com/download_path/%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8C/Flash/PY25Q80HB_Datasheet_V1.7.pdf\nhttps://www.puyasemi.com/download_path/%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8C/Flash/PY25Q16HB_Datasheet_V1.6.pdf\nhttps://www.puyasemi.com/download_path/%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8C/Flash/PY25Q32HB_Datasheet_V1.7.pdf\nhttps://www.puyasemi.com/download_path/%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8C/Flash/PY25Q64HA_Datasheet_V1.9.pdf\nhttps://www.puyasemi.com/download_path/%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8C/Flash/PY25F64HA_Datasheet_V1.1.pdf\nhttps://www.puyasemi.com/download_path/%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8C/Flash/PY25Q128HA_Datasheet_V2.0.pdf\nhttps://www.puyasemi.com/download_path/%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8C/Flash/PY25R128HA_Datasheet_V1.0.pdf\nhttps://www.puyasemi.com/download_path/%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8C/Flash/PY25F128HA_Datasheet_V1.2.pdf\n\nChange-Id: I9f97e686604cf722af36c799dc0c5c1e7e942a26\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/295\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "fe21b43203c08f597c1295dba556323e63b3f209",
      "tree": "05161bf0efd4ca85f8483a92d8d014e457332c67",
      "parents": [
        "1c5d8296f9997e6b773352688fce59c24c1aafd5"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Oct 25 23:51:05 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 12:05:52 2025 +0000"
      },
      "message": "flashchips: Add remaining P25Q..H family 3.3V chips\n\nThey all support QPI, and WPS for individual sector protection.\nHowever,  the original P25Q32H and P25Q64H have a different de-\nfault setting for the dummy cycles in QPI mode. Hence, we need\nduplicate database entries once more.\n\nDatasheets used:\nhttps://www.puyasemi.com/download_path/%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8C/Flash/P25Q32H_Datasheet_V1.4.pdf\nhttps://www.puyasemi.com/download_path/%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8C/Flash/P25Q32SH_Datasheet_V1.9.pdf\nhttps://www.puyasemi.com/download_path/%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8C/Flash/P25Q64H_Datasheet_V1.4.pdf\nhttps://www.puyasemi.com/download_path/%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8C/Flash/P25Q64SH_Datasheet_V1.5.pdf\nhttps://www.puyasemi.com/download_path/%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8C/Flash/P25Q128H_Datasheet_V1.6.pdf\n\nChange-Id: I700747a6bc1762f113846aa62f55681fa2c8cfbb\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/294\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "1c5d8296f9997e6b773352688fce59c24c1aafd5",
      "tree": "f1ac20fa75e0d2198f7ef0f132d136b89201d751",
      "parents": [
        "b0cae5e30ef780f73b89b8c4ff43c651a3612698"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Oct 25 23:21:02 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 12:05:52 2025 +0000"
      },
      "message": "flashchips: Add Puya P25Q40SH, P25Q80SH, P25Q16SH 3.3V parts\n\nThese are updated versions of the original `H\u0027 chips. They have\na configuration register that is read/written like a third sta-\ntus register, also support QPI,  and have a WPS bit for indivi-\ndual sector protection. Because of the WPS bit, they need their\nown database entries, even though they share the old IDs.\n\nDatasheets used:\nhttps://www.puyasemi.com/download_path/%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8C/Flash/P25Q40SH_Datasheet_V1.9.pdf\nhttps://www.puyasemi.com/download_path/%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8C/Flash/P25Q80SH_Datasheet_V1.5.pdf\nhttps://www.puyasemi.com/download_path/%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8C/Flash/P25Q16SH_Datasheet_V1.8.pdf\n\nChange-Id: I203bec24b8f4028f50388fb79350d0bf388f404d\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/293\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "b0cae5e30ef780f73b89b8c4ff43c651a3612698",
      "tree": "6321ef6d3dbe4140a4094bb63f26fe66dd26d6b3",
      "parents": [
        "b09136b0971913cf7f984355c1005f65575aba44"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Oct 25 23:03:40 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 12:05:52 2025 +0000"
      },
      "message": "flashchips: Add Puya P25Q06H, P25Q11H, P25Q21H 3.3V parts\n\nThese look like an update to  the original quad-i/o chips. They\nhave a configuration register that is read/written like a third\nstatus register. Otherwise, they seem very much compatible, but\nhave different IDs.\n\nDatasheet used:\nhttps://www.puyasemi.com/download_path/%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8C/Flash/P25Q21H_11H_06H_Datasheet_V2.1.pdf\n\nChange-Id: I984c574bcfd7275a2234c1db13935c01d12fab72\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/292\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "b09136b0971913cf7f984355c1005f65575aba44",
      "tree": "c11416105bf9ff3bb8a8a8b2a1ade79f9e63278c",
      "parents": [
        "ed8b82c17e285de43437325fe7c402186719da8c"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Oct 25 22:52:30 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 12:05:52 2025 +0000"
      },
      "message": "flashchips: Add Puya P25Q05..16H 3.3V parts\n\nAll quad-i/o chips with block-protection similar to Winbond. One\nspecialty is a page-erase operation.  At the upper end (P25Q08H,\nP25Q16H), they have a configuration register that is read like a\nthird status register however written like a second (31h, accor-\nding to the datasheets).\n\nDatasheets used:\nhttps://www.puyasemi.com/download_path/%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8C/Flash/P25Q40H_20H_10H_05H_Datasheet_V2.0.pdf\nhttps://www.puyasemi.com/download_path/%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8C/Flash/P25Q80H_Datasheet_V1.7.pdf\nhttps://www.puyasemi.com/download_path/%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8C/Flash/P25Q16H_Datasheet_V2.1.pdf\n\nChange-Id: I8ca43d19603cd11fd9cf06d2afc930b1096548d3\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/291\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "ed8b82c17e285de43437325fe7c402186719da8c",
      "tree": "e252a99cb8978e5fc27eda846dc8c92de9058024",
      "parents": [
        "4a351349eb0e2156adc06cb628f4db64d7857d40"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Oct 22 00:12:03 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 12:05:52 2025 +0000"
      },
      "message": "flashchips: Add Fudan FM25Q128 3.3V part\n\nThis chip has non-volatile DC bits that control the number of dummy\ncycles for all fast-read commands in all modes. As we don\u0027t check\nsuch bits, we don\u0027t enable any fast reads for now. Otherwise it\nlooks well featured. Block protection seems to follow Winbonds\nscheme, however without SEC and SRL bits.\n\nDatasheet used:\nhttp://eng.fmsh.com/nvm/FM25Q128_ds_eng.pdf\n\nChange-Id: I9cda2fdbc13c20eda999555d09c9a847d0192536\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/290\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "4a351349eb0e2156adc06cb628f4db64d7857d40",
      "tree": "9a58cfe7e2eb88a4417b96c0194e042a99e782aa",
      "parents": [
        "7f7bffa8b4c71d0cf652d94c1386284cdd5a012a"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Oct 22 00:03:52 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 12:05:52 2025 +0000"
      },
      "message": "flashchips: Add Fudan FM25Q08A 3.3V part\n\nThis chip is almost identical to the older FM25Q08, however\nthe CMP bit is at a different offset. /o\\\n\nDatasheet used:\nhttp://eng.fmsh.com/nvm/FM25Q08A_ds_eng.pdf\n\nChange-Id: I703487c24491d0be1c90579af798bd5c7457148a\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/289\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "7f7bffa8b4c71d0cf652d94c1386284cdd5a012a",
      "tree": "01c190da882dd96fd5563396a8dba41039ae8ba8",
      "parents": [
        "c591518dca2c097d907787858d177707158bc10e"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Oct 21 23:57:11 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 12:05:52 2025 +0000"
      },
      "message": "flashchips: Add Fudan FM25Q64, update FM25Q08..Q32\n\nFor all bits that matter to us,  these chips seem to have the same\nstatus-register layout. The FM25Q64 differs in a few bits that are\nout-of-scope, and additionally supports a WRSR2.\n\nDatasheets used:\nhttp://eng.fmsh.com/nvm/FM25Q08_ds_eng.pdf\nhttp://eng.fmsh.com/nvm/FM25Q16_ds_eng.pdf\nhttp://eng.fmsh.com/nvm/FM25Q32_ds_eng.pdf\nhttp://eng.fmsh.com/nvm/FM25Q64_ds_eng.pdf\n\nChange-Id: I820ed60366d19ab4d87f8c02b4018ffb5591ca5f\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/288\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "c591518dca2c097d907787858d177707158bc10e",
      "tree": "0bdc1e5ece5d1fc5935c50f845a82a928723ea71",
      "parents": [
        "fea6e16e177fc7a9fd5acd75f812272bcadab163"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Oct 21 23:40:10 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 12:05:52 2025 +0000"
      },
      "message": "flashchips: Add Fudan FM25Q02/Q04 3.3V parts\n\nThese smallest two in the series seem to have the same status-\nregister layout. They look almost feature-complete, with only\na SEC-bit missing.\n\nDatasheets used:\nhttp://eng.fmsh.com/nvm/FM25Q02_ds_eng.pdf\nhttp://eng.fmsh.com/nvm/FM25Q04_ds_eng.pdf\n\nChange-Id: Ic267ddd2b33b63e72ad923f2bbe0af29aaa6bf93\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/287\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "fea6e16e177fc7a9fd5acd75f812272bcadab163",
      "tree": "1a00a179b4076d6b6e885f47547b439c5c87b64d",
      "parents": [
        "56d727e3829923c01b21d4f8d2a281acbb2c83bf"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Oct 20 23:11:57 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 12:05:52 2025 +0000"
      },
      "message": "flashchips: Add Winbond W25Q16JV_M (DTR version)\n\nFully featured 3.3V version of Winbond\u0027s 16Mbit chip.\n\nDatasheet used:\nhttps://www.winbond.com/resource-files/w25q16jv_dtr%20reve%2002092018%20plus.pdf\n\nChange-Id: I3150b4690c73c1118b6819b83b9dfab55ddf3c8f\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/286\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "56d727e3829923c01b21d4f8d2a281acbb2c83bf",
      "tree": "3200a071d02f9f5726da294a9577d70d5c2a8570",
      "parents": [
        "c64a80362eabce9bbdc44c79b9d2fbd1e77389c2"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Oct 20 22:46:12 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 12:05:52 2025 +0000"
      },
      "message": "flashchips: Add newer gen. XTX Tech. XT25F..F 3.3V parts\n\nThese F versions don\u0027t support QPI but have a 3rd status register.\nThere are non-volatile DC bits,  that control the number of dummy\ncycles for dual- and quad-i/o reads. As we don\u0027t check such bits,\nwe only enable dual- and quad-output commands for now.\n\nDatasheets used:\nhttps://en.xtxtech.com/download/?AId\u003d516\nhttps://en.xtxtech.com/download/?AId\u003d257\nhttps://en.xtxtech.com/download/?AId\u003d450\nhttps://en.xtxtech.com/download/?AId\u003d454\nhttps://en.xtxtech.com/download/?AId\u003d531\n\nChange-Id: Icc187d835a65357a72854d0a04c17e9f54beaee9\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/285\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "c64a80362eabce9bbdc44c79b9d2fbd1e77389c2",
      "tree": "14a32474129ea9057efa2c3c471b6267edad21ca",
      "parents": [
        "46e42096032e85265b0740b47c86f4975cf365ef"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Oct 20 19:14:19 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 12:05:52 2025 +0000"
      },
      "message": "flashchips: Add XTX Tech. XT25F..B 3.3V family\n\nThese are old versions of the 3.3V family, that don\u0027t seem to be\nmanufactured anymore.  Except for the smallest 16Mbit chip, they\nhave QPI support which newer versions lack. The block-protection\nseems to follow Winbond\u0027s model.\n\nDatasheets used:\nhttps://xonstorage.blob.core.windows.net/pdf/xtx_xt25f16bsoigu_xonjuly20_20_link.pdf\nhttps://www.lcsc.com/datasheet/lcsc_datasheet_2410121518_XTX-XT25F32BSOIGU-S_C558851.pdf\nhttps://www.lcsc.com/datasheet/lcsc_datasheet_2411220126_XTX-XT25F64BSSIGU_C3202692.pdf\nhttps://www.lcsc.com/datasheet/lcsc_datasheet_2410121527_XTX-XT25F128BSSIGU_C558845.pdf\n\nChange-Id: Ifc5607674fabf1466155d821e7d5e88886d3b21b\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/284\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "46e42096032e85265b0740b47c86f4975cf365ef",
      "tree": "c4d77e4da37ec5b45fc3aafdff84c5c5a76c8095",
      "parents": [
        "6bc88e72d97a140cf657571a2f4a4f3e1c643954"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Oct 20 18:21:43 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 12:05:52 2025 +0000"
      },
      "message": "flashchips: Add XTX Tech. XT25F02E/04D/08B 3.3V parts\n\nThese are old chips with rather limited capabilities. Their\nblock-protection ranges are rather special, hence not added\nat the moment.\n\nDatasheets used:\nhttps://en.xtxtech.com/download/?AId\u003d118\nhttps://en.xtxtech.com/download/?AId\u003d136\nhttps://en.xtxtech.com/download/?AId\u003d51\n\nChange-Id: I28ec5087be63b394b0f387ca01e2391823680272\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/283\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "6bc88e72d97a140cf657571a2f4a4f3e1c643954",
      "tree": "58bb0483d5951b1648707ff651a318ffe27b7623",
      "parents": [
        "3cddff471a7c5ada2770bd5c3e928e85fe2d037d"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Oct 20 16:32:08 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 12:05:52 2025 +0000"
      },
      "message": "flashchips: Add Boya/BoHong BY25Q32/64/128 3.3V variants\n\nAdd all remaining 3BA, 3.3V parts of the BY25Q family. Once more,\ndatasheets look very similar.  The whole family supports volatile\nstatus-register writes, three status registers, and all the usual\ndual- and quad-i/o instructions.  Also, they use the common, Win-\nbond-like block protection bits.\n\nDatasheets used:\nhttp://en.boyamicro.com/download/SPI_NOR_Flash/BY25Q32BS.pdf\nhttp://en.boyamicro.com/download/SPI_NOR_Flash/BY25Q32CS.pdf\nhttp://en.boyamicro.com/download/SPI_NOR_Flash/BY25Q32ES.pdf\nhttp://en.boyamicro.com/download/SPI_NOR_Flash/BY25Q64AS.pdf\nhttp://en.boyamicro.com/download/SPI_NOR_Flash/BY25Q64ES.pdf\nhttp://en.boyamicro.com/download/SPI_NOR_Flash/BY25Q128AS.pdf\nhttp://en.boyamicro.com/download/SPI_NOR_Flash/BY25Q128ES.pdf\nhttp://en.boyamicro.com/download/SPI_NOR_Flash/BY25Q128FS.pdf\n\nChange-Id: Iff9c0459d215669025bc2af8b619fcf17c56f528\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/282\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "3cddff471a7c5ada2770bd5c3e928e85fe2d037d",
      "tree": "2a2b5b44965fbbf695ee172d9bd0ac032b841fb5",
      "parents": [
        "34e3de6f9e89801eb34927bc372a084e934042f2"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Oct 20 15:18:53 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 12:05:52 2025 +0000"
      },
      "message": "flashchips: Complete Boya/BoHong BY25D family\n\nExcept for the sizes, the datasheets look the same. All chips support\ndual-output fast reads.  There is some overlap with the BY25Q family,\nbut given the small sizes (2MiB max.), it doesn\u0027t seem worthwhile to\nadd additional entries for these chips.\n\nThe block protection of the BY25Ds is rather peculiar, hence not con-\nfigured:  It looks like hardcoded CMP\u003d1, SEC\u003d1 with 8KiB sectors and\nno 32KiB limit.\n\nDatasheets used:\nhttp://en.boyamicro.com/download/SPI_NOR_Flash/BY25D05AS.pdf\nhttp://en.boyamicro.com/download/SPI_NOR_Flash/BY25D10AS.pdf\nhttp://en.boyamicro.com/download/SPI_NOR_Flash/BY25D20AS.pdf\nhttp://en.boyamicro.com/download/SPI_NOR_Flash/BY25D40AS.pdf\nhttp://en.boyamicro.com/download/SPI_NOR_Flash/BY25D40ES.pdf\nhttp://en.boyamicro.com/download/SPI_NOR_Flash/BY25D80AS.pdf\nhttp://en.boyamicro.com/download/SPI_NOR_Flash/BY25D16AS.pdf\nhttp://en.boyamicro.com/download/SPI_NOR_Flash/BY25Q80BS.pdf\nhttp://en.boyamicro.com/download/SPI_NOR_Flash/BY25Q80ES.pdf\nhttp://en.boyamicro.com/download/SPI_NOR_Flash/BY25Q16BS.pdf\nhttp://en.boyamicro.com/download/SPI_NOR_Flash/BY25Q16ES.pdf\n\nChange-Id: Ie3f8578c152fcedd3ccb60873018d92e1dc80876\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/281\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "34e3de6f9e89801eb34927bc372a084e934042f2",
      "tree": "11a9b565564d0290c0cacd20f18e89313ceceaf9",
      "parents": [
        "f050370395afb0f4658458697984075dce551123"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Oct 20 13:00:12 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 12:05:52 2025 +0000"
      },
      "message": "flashchips: Add Zetta Device ZD25LQ64/128 1.8V parts\n\nDatasheets for both look very much the same. Block protection and\nQPI implementations seem to follow Winbond.\n\nDatasheets used:\nhttp://www.zettadevice.com/upload/file/pdf/DS_Zetta_25LQ64_RevA_20180801.pdf\nhttp://www.zettadevice.com/upload/file/20150821/DS_Zetta_25LQ128_RevA_20180815.pdf\n\nChange-Id: Iea8c4076105910b4e0975b02a92f287ded745eae\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/280\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "f050370395afb0f4658458697984075dce551123",
      "tree": "1032bb666c324b818d855208faa69a5c2d26e7eb",
      "parents": [
        "d40037a83dd03b91042c0725ba4dac2d6b7ffc92"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Nov 08 16:15:53 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 12:05:52 2025 +0000"
      },
      "message": "selfcheck: Check dummy-cycle settings when QPI is advertised\n\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\n\nChange-Id: I8395a721dc12fbe078f63b3af7e6404cc45437fa\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/279\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "d40037a83dd03b91042c0725ba4dac2d6b7ffc92",
      "tree": "877e9d73b89d0d0f8174340c0d29ff890b46e96b",
      "parents": [
        "2a1036b98c44529c64db645c481c0b35c81b21b0"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Oct 20 23:20:46 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 12:05:52 2025 +0000"
      },
      "message": "selfcheck: Check for WP functions when BP bits are given\n\nWhen block-protect bits in a status/configuration register are\nadvertised, check for the respective function pointers.\n\nChange-Id: I3cabb7ecbe7b21371720690b8f08a922b3b4c4aa\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/278\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "2a1036b98c44529c64db645c481c0b35c81b21b0",
      "tree": "c72d463a2c50ce6f3145a38637094bedbb9b56a7",
      "parents": [
        "d4e41d353604cb19938305590efbc81642152422"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Oct 20 23:19:49 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 12:05:52 2025 +0000"
      },
      "message": "flashchips: Fix up GD25Q128C write-protect support\n\nThe SPI write-protection functions were missing in the GD25Q128C\nentry. Fix that.\n\nDatasheet used:\nhttps://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf\n\nChange-Id: Ibda9f224fb5f57a0878246c324bceb2089dd70ae\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/277\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "d4e41d353604cb19938305590efbc81642152422",
      "tree": "50d1ec87c227b58de5c56723bfb86b6c09b1e305",
      "parents": [
        "04c1cf789b0468de5fd1368469d90b6fc75b3c46"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Oct 18 14:59:54 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 23 12:05:52 2025 +0000"
      },
      "message": "flashchips: Add SST26VF080A\n\nSimple 8Mbit SPI flash, with one caveat though: SFDP reports 0xd8 as\nboth 32KiB and 64KiB eraser.  The datasheet[1] lists this too in the\nSFDP table,  however otherwise consistently states that erase blocks\nare uniform, and lists 0x52 as the 32KiB eraser.  For now, we\u0027ll try\nthe latter.\n\n[1] https://ww1.microchip.com/downloads/aemDocuments/documents/MPD/ProductDocuments/DataSheets/SST26VF080A-2.5V-3.0V-8-Mbit-Serial-Quad-IO-%28SQI%29-Flash-Memory-20006203C.pdf\n\nChange-Id: I7d66ff23ef9ded7365e9c75a1aff0a68678a4ba0\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/263\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "04c1cf789b0468de5fd1368469d90b6fc75b3c46",
      "tree": "3a907becee99560f497f6758342bc1d48c712662",
      "parents": [
        "eb2c04185f8f471c768b742d66e4c552effdd9cb"
      ],
      "author": {
        "name": "Arthur Heymans",
        "email": "arthur@aheymans.xyz",
        "time": "Thu Jan 09 16:04:45 2025 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Jan 31 11:40:27 2025 +0000"
      },
      "message": "Add .envrc\n\nhttps://direnv.net/ with use nix, requires the shell.nix to be placed at\nthe project root. This is a very common setup.\n\nChange-Id: I6eff8cca03aaa35c68a034ba1f553946c893377c\nSigned-off-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/317\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "eb2c04185f8f471c768b742d66e4c552effdd9cb",
      "tree": "a92b76fff56165acb60db7e65e503d13e4d2c33e",
      "parents": [
        "e05e3343366340048c421ab0bfa744ea077185c8"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Nov 14 14:22:43 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Nov 21 20:31:44 2024 +0000"
      },
      "message": "cli_wp: Fix bail-out when multiple chips are detected\n\nWe need to bail out in this case, too. Otherwise flashprog tries to\nuse the null pointer `flash\u0027.\n\nChange-Id: Id2588c7e8065169236cf56d67a524779c51f2577\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/310\n"
    },
    {
      "commit": "e05e3343366340048c421ab0bfa744ea077185c8",
      "tree": "0dabe05c1720cf63137fd1df44e03e9ea07a1cff",
      "parents": [
        "efad610a409c48139d8e482b36dca82cc0d73b44"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Nov 14 14:08:56 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Nov 21 20:31:44 2024 +0000"
      },
      "message": "cli_common: Rename local `optarg\u0027 variable\n\nSome toolchains complain that this shadows the global from \u003cgetopt.h\u003e.\nAlas,  toolchains seem inconsistent in the decision when to warn about\nshadowing of globals from system headers and when not to.  Hence, just\nrename `optarg\u0027 -\u003e `opt_arg\u0027.\n\nChange-Id: Ic973f6076109156ec5ca77ea032bd13e5a452d5b\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/309\n"
    },
    {
      "commit": "efad610a409c48139d8e482b36dca82cc0d73b44",
      "tree": "984e6c5bc135d1a55afd97d80919419c11ced052",
      "parents": [
        "09289fbb5a4c6c61748844db2b97af0d0e60d319"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 10 15:07:16 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 10 14:20:08 2024 +0000"
      },
      "message": "manibuilder: Include NetBSD (anita tags) in `native\u0027 target\n\nThe NetBSD images can now run with KVM on compatible architectures.\nHence they are a lot faster, and can be treated as native.\n\nChange-Id: Ica5124dba752ea58216adbc15e4a9e1c04100444\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/276\n"
    },
    {
      "commit": "09289fbb5a4c6c61748844db2b97af0d0e60d319",
      "tree": "39099bc88b74802ed4ef5d8d56c64c0bcc19c70b",
      "parents": [
        "1457cc6a0500d006a516b63ede5654dc404a69c3"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Nov 09 22:56:25 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 10 14:20:08 2024 +0000"
      },
      "message": "manibuilder: Replace unmaintained DEFAULT_TAGS list\n\nAFAIR, I\u0027ve only used the `working\u0027 target for flashprog releases\nso far. The default became a little stale, so just remove it. For\na quicker test, the `native\u0027 target is still around.\n\nChange-Id: I1dad9ce6dcb1ab77e8c174e801f3b9830b33b190\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/275\n"
    },
    {
      "commit": "1457cc6a0500d006a516b63ede5654dc404a69c3",
      "tree": "23d134c0c8b99c323dd303d33e27304fb70a5bcb",
      "parents": [
        "1faffa5666f6828a15b10bff63ac6ad9ac701fcb"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Nov 09 22:49:59 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 10 14:20:08 2024 +0000"
      },
      "message": "manibuilder: Stop build testing oldest, EOL targets\n\nThese old targets can\u0027t compile the complete flashprog code anymore.\nAs they are all EOL, just remove them. As a bonus, this also reduces\nour quirk handling a lot.\n\nChange-Id: I0c1d7914e5d2bcce508ea6b8ce3a82d909081975\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/274\n"
    },
    {
      "commit": "1faffa5666f6828a15b10bff63ac6ad9ac701fcb",
      "tree": "e6d0a1b983a8d70de37cf203ed57728b16638ed3",
      "parents": [
        "61dbe36e8cb35c5142e70609d3281901d55f2386"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Nov 09 22:44:53 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 10 14:20:08 2024 +0000"
      },
      "message": "manibuilder: Fix Ubuntu Noble Numbat (24.04) for amd64\n\nSome parts of the Dockerfile.ubuntu accidentally broke the apt setup for\namd64. Check for the newer `/etc/apt/sources.list.d/ubuntu.sources\u0027, and\nskip the old hacks if it exists.\n\nChange-Id: Iae42ba548e5ffa228922bd060a38450e969e4405\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/273\n"
    },
    {
      "commit": "61dbe36e8cb35c5142e70609d3281901d55f2386",
      "tree": "813ab00ae14ad3d77a5fbf9a28b79dbfbd1cc7a9",
      "parents": [
        "63d30a26b7abfdbf6dc60fd0607173cd1b8b05db"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Nov 01 15:02:44 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 10 14:20:08 2024 +0000"
      },
      "message": "udev rules: Use `uaccess\u0027 tag instead of `plugdev\u0027 group\n\nNot all systems have a `plugdev\u0027 group.  The `uaccess\u0027 tag, however,\nseems to be the standard these days  (seems to exist for about a de-\ncade on major distros). We rename the file to have a higher priority\nby default. At least on ArchLinux, it has to precede `73-seat-late\u0027.\n\nTested on ArchLinux (local session) and Raspbian (remote session).\n\nChange-Id: Iadcc74b32b92660fbf86b235e65692369535f7a6\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/266\n"
    },
    {
      "commit": "63d30a26b7abfdbf6dc60fd0607173cd1b8b05db",
      "tree": "8de92e7468c02069c4868130c6554cd0d3ca9571",
      "parents": [
        "6ce26a72f721461d3de48c12cd1dc09a96b5519c"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Nov 01 14:18:30 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 10 14:20:08 2024 +0000"
      },
      "message": "install: Install binary into bin/, not sbin/\n\nThere are plenty of ways today to run flashprog as a normal,\nnon-root user. Hence it should live in bin/, where it can be\nshared by root and others.\n\nChange-Id: Ia614ea234237668cb4d6a0c1915e41975aae70d4\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/265\n"
    },
    {
      "commit": "6ce26a72f721461d3de48c12cd1dc09a96b5519c",
      "tree": "7ca4f4b528dd04b73af42d05b721d4c30c00ca7a",
      "parents": [
        "612519b2c54a008744891540407f2c8ff251083d"
      ],
      "author": {
        "name": "Alexandru M Stan",
        "email": "ams@frame.work",
        "time": "Fri Oct 11 22:47:24 2024 -0700"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 10 14:00:40 2024 +0000"
      },
      "message": "flashchips: add Winbond W25R512NW / W74M51NW\n\nI used W25Q256JW as a template and just increased every erase size\ncalculation.\n\nDatasheet can be found by form contact only via\nhttps://www.winbond.com/hq/product/code-storage-flash-memory/serial-nor-flash/?__locale\u003den_TW\u0026partNo\u003dW25R512NW\n\nI tested it by running:\ndd if\u003d/dev/urandom of\u003d/tmp/random.bin bs\u003d1M count\u003d64\nsudo /tmp/flashrom/build/flashrom -p ft2232_spi:type\u003d2232H -w /tmp/random.bin --progress\nsudo /tmp/flashrom/build/flashrom -p ft2232_spi:type\u003d2232H -v /tmp/random.bin\nAnd I saw \"Verifying flash... VERIFIED.\"\n\nChange-Id: Ibf670e4014a22e4636789768b759cb51f75cd046\nSigned-off-by: Alexandru M Stan \u003cams@frame.work\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/84752\nOriginal-Reviewed-by: Anastasia Klimchuk \u003caklm@chromium.org\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/272\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "612519b2c54a008744891540407f2c8ff251083d",
      "tree": "f264bf5339ab332436dfd9acaa86d76b7492c1cf",
      "parents": [
        "d5a61efe4e73675570eba7d537b4ec7e476946cb"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Nov 06 23:37:11 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 10 13:58:05 2024 +0000"
      },
      "message": "ichspi: Add Intel Arrow Lake support\n\nARL looks much like a desktop version of Meteor Lake. Hardware registers\nseem to be the same, and the descriptor mostly differs in strap settings\n(as far as we are concerned).\n\nOdd enough, the old (pre 500 series) format for processor straps is used\nagain. For the descriptor detection, we shuffle the old default for Ibex\nPeak around, and make Arrow Lake the default for everything with over 80\nPCH traps.\n\nTested `ich_descriptors_tool\u0027 output for a GIGABYTE Z890M GAMING X BIOS.\n\nDocuments used:\n  * Intel® Core™ Ultra 200S Series Processors Datasheet, Volumes 1 and 2\n  * Arrow Lake-S and Arrow Lake-HX Client Platform\n    SPI Programming Guide\n\nChange-Id: Ibaaeb896273eed3806561ba8c01d89770d27ff18\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/270\n"
    },
    {
      "commit": "d5a61efe4e73675570eba7d537b4ec7e476946cb",
      "tree": "615c8bc476cf847c2d0bea4f7f1f154eede67e5a",
      "parents": [
        "5e0d9b04a07f5646038020e1a45dd04c0b14e8f3"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Nov 06 23:55:44 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 10 13:58:05 2024 +0000"
      },
      "message": "ichspi: Add Intel Lunar Lake support\n\nHardware looks much the same as Meteor Lake. The descriptor, however,\nknows 7 masters and regions are named a bit differently. Hence, add a\nnew enum entry for Lunar Lake.\n\nTested `ich_descriptors_tool\u0027 output for an MSI Prestige 13 A2VMG BIOS.\n\nDocuments used:\n  * Intel® Core™ Ultra 200V Series Processors Datasheet, Volumes 1 and 2\n  * Lunar Lake Client Platform\n    SPI Programming Guide\n\nChange-Id: Ia377872cba56a3db6d853b7ce1bd495e5a03a868\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/271\n"
    },
    {
      "commit": "5e0d9b04a07f5646038020e1a45dd04c0b14e8f3",
      "tree": "70386babe868ba7282cbbb0d8bc53880286025e8",
      "parents": [
        "0ef2eb8f041ad6918dd41f4837d39be8811889c9"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Jul 19 21:44:52 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 10 13:58:05 2024 +0000"
      },
      "message": "ichspi: Add Intel Meteor Lake SoC\n\nHardware looks the same as C740 series / Emmitsburg. The descriptor\nis somewhere between the latter and latest desktop platforms.\n\nOutput of `ich_descriptors_tool\u0027 with an image from Google/Rex looks\nreasonable.\n\nTested probing and reading on a Lenovo L16 ThinkPad.\n\nDocuments used:\n  * Intel® Core™ Ultra Processor Datasheet, Volumes 1 and 2\n  * Meteor Lake/Arrow Lake-U / H Client Platform\n    SPI Programming Guide\n\nChange-Id: I7f1d162622a141fadcad715b064f92b1ccf7c72a\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/189\n"
    },
    {
      "commit": "0ef2eb8f041ad6918dd41f4837d39be8811889c9",
      "tree": "978d212a6cc5031e589162c49a36e4353e91c937",
      "parents": [
        "42daab10a7704bfbe4a0af1a07748b8858649301"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Jul 19 21:38:17 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 10 13:58:05 2024 +0000"
      },
      "message": "ichspi: Add Intel Snow Ridge SoC\n\nHardware looks the same as C740 series / Emmitsburg. The descriptor,\nhowever, has very different frequency settings and different regions\nand masters.\n\nThe output of `ich_descriptors_tool\u0027 tested with an image from Intel\nlooks reasonable.\n\nChange-Id: I9f9dc4414af63cbe48d22ef2955df28e297d7e4c\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/188\n"
    },
    {
      "commit": "42daab10a7704bfbe4a0af1a07748b8858649301",
      "tree": "9a9aa5465db9f58aa9d0c55f9807a2f694a98e05",
      "parents": [
        "af26008fbabdd780bc6966acca4ad2481520b304"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Jul 16 00:27:27 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 10 13:58:05 2024 +0000"
      },
      "message": "ichspi: Properly add Emmitsburg PCH\n\nThe Emmitsburg or C740 series PCH is actually ahead of all the other,\ncurrently supported chipsets. Finally, Intel added new registers that\ncarry the read and write access permissions for all 16 regions.\n\nThe old FRAP register seems to be still around, so we print both new\nand old registers. For the detailed report we use the new registers,\nthough.\n\nWe also adapt the descriptor detection slightly: We check for `NM \u003d\u003d 6`\njust like we did for Lewisburg. This way we won\u0027t treat a huge range of\nISL (ICH/PCH strap length) values as Emmitsburg, which should result in\nless false positives.\n\nThe output of `ich_descriptors_tool\u0027 tested on some Supermicro firmware\nlooks reasonable.  Also tested read/erase/write in `swseq\u0027 and  `hwseq\u0027\nmodes with 7 series PCH, reading with ADL-P. All logs still report FRAP\nsettings correctly.\n\nChange-Id: Ibf5ebe2e2edfe5e5ae26bf1136648bf6354b0aa9\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/187\n"
    },
    {
      "commit": "af26008fbabdd780bc6966acca4ad2481520b304",
      "tree": "4462465349f22b4a69725e4b060c26822ef814f0",
      "parents": [
        "82fe12380a10ce24680ef7e4e4ea682ecc58a20c"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Jul 19 18:19:48 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 10 13:58:05 2024 +0000"
      },
      "message": "ich_descriptors_tool: Add missing options for EHL \u0026 C620\n\nAdd a missing usage line for Elkhart Lake (EHL), and a new option\nfor C620 series Lewisburg (LWB).\n\nChange-Id: I98492eb924c3d4abf4b5f57f940a24e2fc726cf4\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/186\n"
    },
    {
      "commit": "82fe12380a10ce24680ef7e4e4ea682ecc58a20c",
      "tree": "79dad3c3ba40a89360bab43d786ef8b3c0c44b9a",
      "parents": [
        "157b81865725e9c544c9da323ab8ff93ff2c1ae5"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Jul 19 17:28:47 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 10 13:58:05 2024 +0000"
      },
      "message": "ich_descriptors: Hard code number of masters for newer gens\n\nThe number of masters (NM) field is ignored by the hardware and often\nnot updated in Intel\u0027s tooling.  Since PCH100 / Skylake,  it\u0027s always\nbeen 2 masters for the small core, 5 for the big core,  and 6 for the\nserver platforms.\n\nChange-Id: I4975f5b55981791fa5b10c4731af8f330cbbefa8\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/185\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\n"
    },
    {
      "commit": "157b81865725e9c544c9da323ab8ff93ff2c1ae5",
      "tree": "7c41dfdb3639efd6f68edcfe1b4841fb8f33bd88",
      "parents": [
        "db878fb03658e560b9b19728d11c99ccbb961165"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Jul 19 17:48:12 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 10 13:58:05 2024 +0000"
      },
      "message": "ich_descriptors: Guard MCH strap handling by chipset version\n\nAt some point, Intel abandoned the classic MCH/processor strap layout\nidentified by the FMSBA/MSL fields.  Avoid misinterpreting the fields\nthat replaced them by guarding all FMSBA/MSL references.\n\nChange-Id: Ib1ce357bd4db85282903cb7aa5ad6d6066b62c2d\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/184\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\n"
    },
    {
      "commit": "db878fb03658e560b9b19728d11c99ccbb961165",
      "tree": "c8b65acbd471be943b66ef4ace420d8be638f266",
      "parents": [
        "b3cc2c6d3b39cc3c97d4130257b805a152a79b4c"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Jul 19 17:37:09 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 10 13:58:05 2024 +0000"
      },
      "message": "ich_descriptors: Drop chipset detection based on `freq_read`\n\nFinish what commit 72a9dc0db4e6 (ich_descriptors: Don\u0027t base chipset\ndetection on `freq_read`) started:  This was the original check that\n`ifdtool\u0027 used to distinguish pre/post PCH100 descriptors.  Bringing\nthis into flashrom never helped, on better days it was only a mainte-\nnance burden, sometimes it even triggered the wrong path. Let\u0027s drop\nit before adding more platforms.\n\nChange-Id: Ic76f36df91e2816281a51fea1e693113b1d3db9c\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/183\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\n"
    },
    {
      "commit": "b3cc2c6d3b39cc3c97d4130257b805a152a79b4c",
      "tree": "a8175496af3d776dcd5b528a045bc8853d5f3455",
      "parents": [
        "8e4151ddb5b4533aa004594e5009ad92159b0651"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Jul 15 00:45:17 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 10 13:58:05 2024 +0000"
      },
      "message": "ich_descriptors: Unify pretty printing of PCH100+ masters\n\nThe newer platforms mostly differ in names and numbers of masters and\nregions.  Make that obvious, and write a generic printing loop. Hope-\nfully this will make future additions easier.\n\nChange-Id: I3e616064743e9558f799159ef8b702f2bbd8ec89\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/182\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\n"
    },
    {
      "commit": "8e4151ddb5b4533aa004594e5009ad92159b0651",
      "tree": "64a5d90d128a7e4997cf8e6c4af84e5c72a7498f",
      "parents": [
        "6d72efaff26d50626008f7f52f710cf2e263b5c6"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Aug 25 13:01:23 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 10 13:58:05 2024 +0000"
      },
      "message": "chipset_enable: Remove hidden-spidev workaround for Elkhart Lake\n\nWe already use the ID of the SPI device here.\n\nChange-Id: I0edce3468399184f295d5be53893c7297a912e8f\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/253\n"
    },
    {
      "commit": "6d72efaff26d50626008f7f52f710cf2e263b5c6",
      "tree": "9feda016aaca2da0b89d55d4c2aab70dbca8f72b",
      "parents": [
        "092a699d02a5003b323ed6df5a9e1b1241c4d620"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Aug 25 13:01:23 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 10 13:58:05 2024 +0000"
      },
      "message": "chipset_enable: Remove hidden-spidev workaround for all 14nm PCHs\n\nWhen the 300 and 400 series PCH (Cannon Point, Comet Point)  support\nwas added, we did not know if all firmware will be consistent in the\ndecision not to hide the SPI PCI devices.  A few years later, we can\nconfirm that it is: Grepping[1] through the `linuxhw\u0027 database[2] re-\nveals that we actually gain some hardware support, when matching the\nSPI PCI device directly.\n\nH410 and B460 are actually 22nm \"PCH V\", so they keep the workaround.\n\nJasper Lake already used the PCI ID of the SPI device.\n\nTested read/erase/write on CM246 (Cannon Point).\n\n[1] diff -u \u003c(git grep -lE \u00271f.5.*8086:(9da4|02a4|34a4|a324|06a4)\u0027 \\\n              | grep -v README) \\\n            \u003c(git grep -lE \u00271f.0.*8086:(9d84|028[45]|a30[3-68-ac-e]|3482|068[457c-e]|0697)\u0027 \\\n              | grep -v README)\n[2] https://github.com/linuxhw/LsPCI/\n\nChange-Id: I1b490207818d3a44c8037b6d4046eefe6ead7bda\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/252\n"
    },
    {
      "commit": "092a699d02a5003b323ed6df5a9e1b1241c4d620",
      "tree": "b71c0d02ae41304cd22da77dd6c80da084a7cea7",
      "parents": [
        "5bbd3241aa74908d916e42ce37ed94f1f0bce4f3"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Aug 25 12:45:18 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 10 13:58:05 2024 +0000"
      },
      "message": "chipset_enable: Remove hidden-spidev workaround for TGP+\n\nWhen the 500 series PCH (Tiger Point) support was added, we did\nnot know if all firmware will be consistent in the decision not\nto hide the SPI PCI devices.  A few years later, we can confirm\nthat it is: Grepping[1] through the `linuxhw\u0027 database[2] shows\nthat we actually gain some hardware support,  when matching the\nSPI PCI device directly.\n\nFor Alder Lake and Raptor Lake, we already used the PCI IDs of\nthe SPI device.\n\nTested read on Alder Lake P, read/erase/write on RM590E (Tiger\nPoint) which was previously not detected.\n\n[1] diff -u \u003c(git grep -lE \u00271f.5.*8086:(a0a4|43a4)\u0027 | grep -v README) \\\n            \u003c(git grep -lE \u00271f.0.*8086:(a08[123678]|438[1-df])\u0027 | grep -v README)\n[2] https://github.com/linuxhw/LsPCI/\n\nChange-Id: I2474d94be53fe01f8bd01d924098fa28fd43d657\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/251\n"
    },
    {
      "commit": "5bbd3241aa74908d916e42ce37ed94f1f0bce4f3",
      "tree": "2f06cb896db5c8b838e723319ae24b560c641251",
      "parents": [
        "a08847581ff039e901644922c65efd07dba62cc1"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Aug 25 12:40:46 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 10 13:58:05 2024 +0000"
      },
      "message": "chipset_enable: Add missing PCI ID for Intel PCH H410\n\nThis is a Comet Point PCH V (22nm).\n\nChange-Id: I9b27163d63f7676391a9579d706caeee17979275\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/250\n"
    },
    {
      "commit": "a08847581ff039e901644922c65efd07dba62cc1",
      "tree": "65fca18733796e382116eae9d3945a8c0a01cdf5",
      "parents": [
        "5eb7a58c1bc34f64c43f98578ce5b9be21a3f152"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Aug 25 12:29:44 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 10 13:58:05 2024 +0000"
      },
      "message": "chipset_enable: Factor PCH100 hidden-spidev workaround out\n\nIntel mandates that the SPI PCI device,  usually 00:1f.5, is hidden\non all 22nm PCHs. This applies to the whole 100 and 200 series PCHs\nas well as some special 300 and 400 series PCHs, and the respective\nserver PCHs and small-core SoCs.\n\nTo cope with the hidden PCI device, we match the LPC PCI device and\nthen crudely assume that the SPI device exists too (only its vendor\nand device IDs are hidden). We don\u0027t need this workaround for newer\ngenerations where the PCI device isn\u0027t hidden anymore,  hence split\nit out.\n\nTested read on Alder Lake P, read/erase/write on CM246 (Cannon Point).\n\nChange-Id: I77b5240b99015ecf56773f4a34436cfd3c83bdf6\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/249\n"
    },
    {
      "commit": "5eb7a58c1bc34f64c43f98578ce5b9be21a3f152",
      "tree": "fe01f2dc6954114e565a0a5eaad30b54a29d21db",
      "parents": [
        "7427569e2572cc8182e056876c0c67ddae213fc3"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Nov 05 10:30:19 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Nov 06 11:15:42 2024 +0000"
      },
      "message": "Drop 1s delay before automatic verification\n\nThis delay was added in commit 8ab49e72af84 (Disallow erase/write for\nknown bad chips so people won\u0027t try without a clear understanding) to\nhelp with \"a few reports where verify directly after erase had unplea-\nsant side effects\".\n\nSince 2011 however,  commit b4061f61cdf9  (Move erase verification to\ngeneric code),  we read each erased block back directly,  without any\ndelay.  So it seems the original problem is either gone, or would hit\nus much earlier.\n\nGrepping through 3 years of mailing-list archives, also didn\u0027t reveal\nanything specific.  Most reports of failed verifications could be ex-\nplained with write protections. More recent ones were about SPI flash\nchips with auto address increment (AAI) writes, where flashrom didn\u0027t\nerase automatically before writing  (and hence gave rather suspicious\nresults).\n\nChange-Id: I9871ee7085156816bfffb117cda60b9267990609\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/269\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\n"
    },
    {
      "commit": "7427569e2572cc8182e056876c0c67ddae213fc3",
      "tree": "0dd0104a5a0556a715a2126301eb6e52ab163374",
      "parents": [
        "5a9d6ea76f7c1f06f60b9cbbda885add2fb0eaeb"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Aug 16 13:49:10 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Nov 06 11:12:38 2024 +0000"
      },
      "message": "libflashprog: Run programmer_shutdown() on failed setup\n\nThe programmer init functions can already register shutdown functions\nthat we missed to call should the initialization fail. The callers of\nflashprog_programmer_init() can\u0027t take care of it, because they never\nreceive a valid handle in this case.\n\nChange-Id: I03111d8096fac908f8808480a4df513fca8d84f5\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/243\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\n"
    },
    {
      "commit": "5a9d6ea76f7c1f06f60b9cbbda885add2fb0eaeb",
      "tree": "3d1a61cd5643bfbce077d48c74d2e66a0e82249e",
      "parents": [
        "e149fbe31368a8502d31391346a679064014ac81"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Aug 16 13:47:49 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Nov 06 11:12:38 2024 +0000"
      },
      "message": "chipset_enable: Fix memory leaks introduced with AMD SPI100\n\nThe libpci function pci_get_dev() allocates a device struct that\nneeds to be free\u0027d with pci_free_dev() manually.\n\nChange-Id: Ic14f0931beb660b05cfe3f6e6d43b649dce8fff4\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/242\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\n"
    },
    {
      "commit": "e149fbe31368a8502d31391346a679064014ac81",
      "tree": "2a42a0d9db27c9e686e69ae63099cf014e6c8d49",
      "parents": [
        "07ebc68943bb19d561f8a79e52fefd144720bdcc"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Aug 21 10:23:53 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Nov 05 20:42:52 2024 +0000"
      },
      "message": "Only try to check erase opcodes for SPI25 chips\n\nCalling spi_get_opcode_from_erasefn() is only valid when\nthe SPI25 command set is advertised. Note, this includes\nAT45 chips that are partially compatible.\n\nChange-Id: I1800e9a4bc1079a37758722e1924a13cd3e7a4c5\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/248\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\n"
    },
    {
      "commit": "07ebc68943bb19d561f8a79e52fefd144720bdcc",
      "tree": "35e8df18c88db93aeb45965212aad34a75731177",
      "parents": [
        "240531045697cde87ecddf731c15d7fa84d5628f"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Aug 21 10:18:27 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Nov 05 20:42:52 2024 +0000"
      },
      "message": "Avoid NULL deref in check_block_eraser()\n\nspi_get_opcode_from_erasefn() can return NULL. It already prints a\nproper error message, so we only have to propagate the error.\n\nChange-Id: I7dbbb15c9364fcb505c3ff1b5f034185527483dc\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/247\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\n"
    },
    {
      "commit": "240531045697cde87ecddf731c15d7fa84d5628f",
      "tree": "5e467fea700ceeaea24b2241bd95bca67bf85630",
      "parents": [
        "9897063f72c2290d312954d34e305f472101a73b"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.huber@secunet.com",
        "time": "Tue Sep 10 17:13:05 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 03 18:03:32 2024 +0000"
      },
      "message": "chipset_enable: Mark Intel QM87 as DEP\n\nThis one is used in the ThinkPad T440p and was tested with HEADS.\nAs usual, support depends on the chipset configuration and locks.\n\nChange-Id: Ife9475a9862804fdb5c3c166e2ba978aae962f48\nSigned-off-by: Nico Huber \u003cnico.huber@secunet.com\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/258\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "9897063f72c2290d312954d34e305f472101a73b",
      "tree": "008e9415c6df6d4a528f16184c9f342c3d068712",
      "parents": [
        "c972aedf9bbbcb5993135514095ab445cd6375e1"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Aug 30 02:14:05 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 03 17:54:48 2024 +0000"
      },
      "message": "flashchips: Allow volatile register writes for W25Q128.V\n\nMost status register bits can be written either volatile (with an\nEWSR prefix) or non-volatile (WREN prefix).\n\nTested setting a volatile QE and also volatile WP settings.\n\nChange-Id: I8fcd4d33027325150f9bb1a39865368a4b8995b5\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/255\n"
    },
    {
      "commit": "c972aedf9bbbcb5993135514095ab445cd6375e1",
      "tree": "583f09e7278e25f2cbc7898276bdcb48625ef255",
      "parents": [
        "8f7122cd1183a4224b14131483d549df497b22a6"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Aug 30 02:06:41 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 03 17:54:48 2024 +0000"
      },
      "message": "flashchips: Configure WP for MX25L25635F/45G\n\nTested with an RPi and `linux_spi\u0027.\n\nChange-Id: I76134fdbc73faaba3f9b78a5c5798da4d8940e28\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/254\n"
    },
    {
      "commit": "8f7122cd1183a4224b14131483d549df497b22a6",
      "tree": "29a124ddc5e06cab3eb3f4f71d4b21b2f642c04d",
      "parents": [
        "eed122d401a9da5fb438e73e8c7d905092481110"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Feb 11 18:28:33 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 03 17:54:48 2024 +0000"
      },
      "message": "cli: Add new write-protect CLI\n\nAdd a new write-protect CLI that is based on the classic-CLI feature\nin flashrom/master. The syntax is slighty different: With the new\nCLI wrapper, we can either call it as `flashprog write-protect` or\n`flashprog wp`. To keep the CLI code clean, we allow only one write-\nprotection operation per call.\n\nFor instance, the write-protection status can then be queried like\nthis:\n\n  $ flashprog wp status -p ch341a_spi\n\nChange-Id: I32818b58c9db939719913fc63063c41a27876554\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72991\n"
    },
    {
      "commit": "eed122d401a9da5fb438e73e8c7d905092481110",
      "tree": "6c6f292ec515f21aab5b78db29b197004b2b918b",
      "parents": [
        "1f693db7ecb074c42172a3914ed63f4e08de7560"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Feb 11 02:05:07 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 03 17:54:48 2024 +0000"
      },
      "message": "layout: Implement flashprog_layout_get_region_range()\n\nSimilar to the function found in flashrom/master, implement a\nlibflashprog API to query the range of a layout region.\n\nChange-Id: Idb3b1a4d24a34847102d66ee0e2cb4d93ae99eac\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72990\n"
    },
    {
      "commit": "1f693db7ecb074c42172a3914ed63f4e08de7560",
      "tree": "a76bbbbd7bed2281f677bef1b2e3ce957e63ecb1",
      "parents": [
        "85c2cf81ffae0d1ef65d25652dd5422162d38187"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Feb 11 18:28:33 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 03 17:54:48 2024 +0000"
      },
      "message": "cli: Add new `config\u0027 CLI for status/config registers\n\nAdd a new CLI mode to query and update status and configuration\nregisters of SPI NOR chips.  Programmer initialization and chip\ninitialization works the same as with the classic CLI (`-p\u0027 and\n`-c\u0027 options). There are two commands `get\u0027 and `set\u0027 where the\nformer is implied if no command is given. For a start, only the\n`quad-enable\u0027 bit can be accessed  (for chips that advertise it\nin the database).\n\nThe `--temporary\u0027 option  allows to use a volatile write status\nregister command if the flash chip supports it. So changes made\nwith this option will not be written to flash and are lost when\nthe chip is reset.\n\nFor instance, the quad-enable bit can then be queried like this\n\n  $ flashprog config get -p ch341a_spi quad-enable\n\nor written with\n\n  $ flashprog config set -p ch341a_spi quad-enable 1\n\nor\n\n  $ flashprog config set -p ch341a_spi --temporary quad-enable 1\n\nChange-Id: I6b9d26c67e6ad65be5df367d2db7942bb98f27ac\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/195\n"
    },
    {
      "commit": "85c2cf81ffae0d1ef65d25652dd5422162d38187",
      "tree": "0227041853e65605f3464240ac48c435a724edbd",
      "parents": [
        "24c0977a70cf5e135434dad466024505f8965f66"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Nov 02 13:47:06 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 03 17:54:48 2024 +0000"
      },
      "message": "cli: Implement \"command\" option parser\n\nAdd a new helper getopt_command() that works like a POSIX-compliant\n(i.e. no `argv` permutating) getopt_long(),  except that it doesn\u0027t\nsearch for options with a `--\u0027 prefix but those without.\n\nChange-Id: I18b63ee4e5b523e2f4cfcd0c8764ea9353927236\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/268\n"
    },
    {
      "commit": "24c0977a70cf5e135434dad466024505f8965f66",
      "tree": "c219d3dbad6ebdc697bcfa3923772a497e7bb62e",
      "parents": [
        "b82aadcbbf173fcaf6c93c7d8cc664bf33b0dd21"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Nov 02 13:46:21 2024 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 03 17:54:48 2024 +0000"
      },
      "message": "cli: Add print function for generic CLI options\n\nChange-Id: I3d5d73c6184dd65c9eacbb2f69c6e1a565d41ab0\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/267\n"
    },
    {
      "commit": "b82aadcbbf173fcaf6c93c7d8cc664bf33b0dd21",
      "tree": "f2038c52d252f78ee97adaf56d614b10eb92884f",
      "parents": [
        "a705043179ab641794f497c2ebf6a60d7f3d9b3e"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Feb 11 18:27:30 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 03 17:54:48 2024 +0000"
      },
      "message": "cli: Move some declarations into `cli.h`\n\nThis will help to keep new CLIs clean from internal headers.\n\nChange-Id: I3e5515ae5645fcdce56c13df1ff23de829bbbdb9\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72989\n"
    },
    {
      "commit": "a705043179ab641794f497c2ebf6a60d7f3d9b3e",
      "tree": "1ade082eb16bd84ba9685fe4a1c7275b47e2561d",
      "parents": [
        "d39c7d6ca6d7adacc07b98e4d0e3efe476d649e6"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Feb 11 18:01:26 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 03 17:54:48 2024 +0000"
      },
      "message": "cli: Add a new CLI wrapper\n\nThis new CLI wrapper introduces a command mode,  like we are used from\nGit for instance. The first argument specifies the command mode, which\nis `prog` for the classic flashprog CLI.  As an alternative to a first\nargument,  it can be called as `flashprog-cmd`, `flashcmd`, or `fcmd`,\nvia symbolic links for instance. Splitting CLI functions will allow us\nto add more CLI features, that can be developed independently from the\nclassic CLI.\n\nFor instance, flashprog could then be called like this:\n\n  $ flashprog -p ch341a_spi\n  $ fprog -p ch341a_spi\n\nFor the future \"config\" CLI, more aliases are possible, e.g.:\n\n  $ flashprog config -p ch341a_spi\n  $ flashprog-config -p ch341a_spi\n  $ flashcfg -p ch341a_spi\n  $ fconfig -p ch341a_spi\n\nChange-Id: I98cb110b47ebce52daf2e0972fc4565ef9d40242\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72988\n"
    },
    {
      "commit": "d39c7d6ca6d7adacc07b98e4d0e3efe476d649e6",
      "tree": "f8b3a36e914800b81b1b314e781b20e95e768736",
      "parents": [
        "df6ce9ff64e5e005ddd51353e519ec87388e47d9"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Feb 11 00:53:08 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 03 17:54:48 2024 +0000"
      },
      "message": "cli: Extract basic CLI init into cli_common\n\nMove the first initialization steps (log callback setting,\nversion/banner printing, and libflashprog init) into a new\nfunction cli_init(). This will be shared by other CLIs.\n\nChange-Id: I9f19006aac18ffcdc05159957d58a2668c41e2b1\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72987\n"
    },
    {
      "commit": "df6ce9ff64e5e005ddd51353e519ec87388e47d9",
      "tree": "a1baf7268de195c3c4f21de183b3dc9c870ba034",
      "parents": [
        "0da839bac81da604cc7102c4dabf97efb6bda57c"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Feb 11 16:16:04 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 03 17:54:48 2024 +0000"
      },
      "message": "cli: Extract log argument parsing into cli_common\n\nMove log argument parsing into `cli_common.c` as it\u0027s also useful for\nother CLIs. Also add a NULL-check for the strdup() return value.\n\nChange-Id: I9b1c9ae2e490edd3560b11b84fddd79e4d396e1d\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72986\n"
    },
    {
      "commit": "0da839bac81da604cc7102c4dabf97efb6bda57c",
      "tree": "bce2cb7a129f42b86402ae2e4fd4523704238ff6",
      "parents": [
        "d91822a91d179e0b27629341a3d1a436110b8028"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Feb 11 01:40:07 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 03 17:54:48 2024 +0000"
      },
      "message": "cli: Extract layout argument processing\n\nMove the processing of layout arguments (i.e. actual reading\nof layout files / data from flash) into a shared function,\ncli_process_layout_args().\n\nThis changes the sequence in `cli_classic.c` slightly: A layout\nfile is now read and parsed after the programmer init / chip\nprobing.\n\nChange-Id: Ibb6574a27bcabc923a53ec355afd384da0665e4c\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72985\n"
    },
    {
      "commit": "d91822a91d179e0b27629341a3d1a436110b8028",
      "tree": "cc466b329f29b6ca819b9b059c67419fc0c087d1",
      "parents": [
        "e7899a9c40624eab4cd68595fbcaed91c0ace29a"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Feb 11 00:43:54 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 03 17:54:48 2024 +0000"
      },
      "message": "cli: Extract layout argument parsing into cli_common\n\nMove the parsing logic for layout sources into the new function\ncli_parse_layout_args(). This way it can be shared with other CLIs.\n\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\n\nChange-Id: Idcbb136d31477cdb0aebec4af0c4cbc873f26011\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72984\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "e7899a9c40624eab4cd68595fbcaed91c0ace29a",
      "tree": "6a330fcc1fb75b8c9112994c16698ba758d41c54",
      "parents": [
        "34e783ad1d2fded9fecef4c623d95ad96ee6dada"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Feb 11 00:39:47 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 03 17:54:48 2024 +0000"
      },
      "message": "cli: Move all long-option keys into cli.h\n\nGather all long-option key values in `cli.h` so we can have a single\nenum that counts the numbers up and thus provides unique values.\n\nChange-Id: Id9fb27b442308ee7a7d59282f6db1f8f18ef20f2\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72983\n"
    },
    {
      "commit": "34e783ad1d2fded9fecef4c623d95ad96ee6dada",
      "tree": "bf713cf732a504a0aa2018b46e9f44699bb5c51a",
      "parents": [
        "e68b08b386631f5a44dfa30bf437e0b4dfdd3350"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Feb 11 00:30:27 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 03 17:54:48 2024 +0000"
      },
      "message": "cli: Extract flash argument parsing into cli_common\n\nMove the parsing logic for `-c` and `-p` into the new function\ncli_parse_flash_args(). This way it can be shared with other CLIs.\n\nWe start a new header file `cli.h` for common CLI functions.\n\nChange-Id: If3f5eff0a2f56a1235038b19b3c1d6586536fd5d\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72982\n"
    },
    {
      "commit": "e68b08b386631f5a44dfa30bf437e0b4dfdd3350",
      "tree": "0053657501b6e52788072870592f7666209a40ae",
      "parents": [
        "6898f5b13d4cc0b5864b0f1f898af10fb1815797"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Feb 11 00:00:54 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 03 17:54:48 2024 +0000"
      },
      "message": "cli_classic: Rewrite programmer argument parsing\n\nOnly break programmer name and arguments and use the libflashprog\nAPI to do the actual programmer lookup. This assumes that program-\nmer names don\u0027t contain a colon. Otherwise it should yield the\nsame results as the old code.\n\nChange-Id: Ie70df81a0531470a6bb005d78346719b4da49134\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72981\n"
    },
    {
      "commit": "6898f5b13d4cc0b5864b0f1f898af10fb1815797",
      "tree": "5717fe27dd3924f083b6403dd7eeb31d15a683e4",
      "parents": [
        "55e788491607997ca93c86e58a38f2ac5dc73afe"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jul 21 15:59:57 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 03 17:54:48 2024 +0000"
      },
      "message": "spi25_statusreg: Prefer volatile status register writes\n\nNow that libflashprog API users can choose whether to target volatile\nor non-volatile status register bits, we turn around the default beha-\nvior if both are supported. This way, we won\u0027t unnecessarily wear sta-\ntus registers in cases where we automatically disable protections.\n\nChange-Id: I92d84e4a140169464e318c7f84690b7665fdb29f\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/194\n"
    },
    {
      "commit": "55e788491607997ca93c86e58a38f2ac5dc73afe",
      "tree": "90be6d93bedff5fc983054de1e474d31aff6f559",
      "parents": [
        "fbba4545dd9ec5ea7f3416370d6b71ccc85e3f7e"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jul 21 00:46:19 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 03 17:54:48 2024 +0000"
      },
      "message": "Introduce FLASHPROG_FLAG_NON_VOLATILE_WRSR\n\nAdd a new flag to our flash context that tells us if we should use\nvolatile or non-volatile status-register writes by default. Use it\nin the write-protection API. The logic to disable block protection\nautomatically stays as is for now, until we have established tools\nto manually control the protection.\n\nChange-Id: Ie9a41b6404991075e2bf76bcffbd4e9887c62c79\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/193\n"
    },
    {
      "commit": "fbba4545dd9ec5ea7f3416370d6b71ccc85e3f7e",
      "tree": "5cb5537e495872d534531df5f6f8f4dfa5c8655f",
      "parents": [
        "768cfc461105e11852706154c85a312831821f4d"
      ],
      "author": {
        "name": "Jakob Haufe",
        "email": "sur5r@sur5r.net",
        "time": "Wed Oct 23 20:45:08 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Nov 02 10:30:21 2024 +0000"
      },
      "message": "Install udev rules\n\nChange-Id: Id8bb6b0fa005e1e9ba09411f59aa1ac8b2f6f1c6\nSigned-off-by: Jakob Haufe \u003csur5r@sur5r.net\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/264\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "768cfc461105e11852706154c85a312831821f4d",
      "tree": "1a77bf477fca555ea53b38e4fc9e9b7c5fbf8a7e",
      "parents": [
        "d128a0ae87086b37c0e5d7a8d934bcdee173402f"
      ],
      "author": {
        "name": "Naresh Solanki",
        "email": "naresh.solanki@9elements.com",
        "time": "Fri Oct 04 20:17:34 2024 +0530"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Oct 14 18:42:03 2024 +0000"
      },
      "message": "flashchips: Add GigaDevice GD25LR512ME\n\nTested on Birman+ board.\n\nChange-Id: I056d9245809c6fddae0123b8ed667deb5d00d6f6\nSigned-off-by: Naresh Solanki \u003cnaresh.solanki@9elements.com\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/262\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "d128a0ae87086b37c0e5d7a8d934bcdee173402f",
      "tree": "e28ec82c6450d6abc520b9fd7f70d2d776f61dac",
      "parents": [
        "c6a924aa66d7bbd56f28754c44668cc4f054c13d"
      ],
      "author": {
        "name": "Nicholas Chin",
        "email": "nic.c3.14@gmail.com",
        "time": "Fri Sep 27 22:57:22 2024 -0600"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Sep 29 23:37:04 2024 +0000"
      },
      "message": "flashchips: Remove unsupported erase blocks for Winbond W25X{16,32,64}\n\nThis family of chips does not support the 0x52 (32 KiB block erase) and\n0x60 (chip erase) opcodes according to their datasheet.\n\nChange-Id: I35ecc4265fdee208855a4ce8f74880fdc8dfa326\nSigned-off-by: Nicholas Chin \u003cnic.c3.14@gmail.com\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/260\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "c6a924aa66d7bbd56f28754c44668cc4f054c13d",
      "tree": "bbcf88953a2ebc99f4382dbc9c9198ae40397b20",
      "parents": [
        "dac4239136fcbfdd29e5f71cfe8d570d5be26494"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.huber@secunet.com",
        "time": "Wed Sep 04 15:09:52 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Sep 10 10:25:06 2024 +0000"
      },
      "message": "Don\u0027t mention writing when erasing only (-E)\n\nThe old messages were misleading and caused confusion. Probably nobody\nnoticed because `-E\u0027 is rarely used.\n\nChange-Id: I9ed2ba717fbffc274d5d044e1053e6f23f1fdac5\nSigned-off-by: Nico Huber \u003cnico.huber@secunet.com\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/256\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Nicholas Chin \u003cnic.c3.14@gmail.com\u003e\n"
    },
    {
      "commit": "dac4239136fcbfdd29e5f71cfe8d570d5be26494",
      "tree": "4068869ae91e978984a79e8eab8b0202aa716293",
      "parents": [
        "56d236bda45dfe9069fd29773965aa269506e0a9"
      ],
      "author": {
        "name": "Nicholas Chin",
        "email": "nic.c3.14@gmail.com",
        "time": "Tue Jul 30 20:01:59 2024 -0600"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Aug 19 10:58:13 2024 +0000"
      },
      "message": "ch347_spi: Add \u0027spimode\u0027 parameter\n\nThis allows the SPI mode (clock polarity and phase) of the CH347 to be\nselected. By default mode 0 is used, as most flash chips are compatible\nwith this mode. I have noticed that the CH347 is able to work at higher\nclock speeds with some chips when set to mode 1, despite the chip not\nofficially having support for this configuration.\n\nChange-Id: I7938519e23e9e014c016f9d7f130d1ac191a09fa\nSigned-off-by: Nicholas Chin \u003cnic.c3.14@gmail.com\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/244\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "56d236bda45dfe9069fd29773965aa269506e0a9",
      "tree": "8b8642038a81db8fe0eae273c7a6a59e571f6f5c",
      "parents": [
        "3b9f152b4d53eef7f10f82cca6e808a223ac11e8"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Jul 13 15:51:37 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Aug 16 22:02:16 2024 +0000"
      },
      "message": "chipset_enable: Add some newer AMD code names\n\nThese were found in the `linuxhw\u0027 database[1] to\nuse the same id/revision.\n\n[1] https://github.com/linuxhw/LsPCI/\n\nChange-Id: I131cacc6712d11ecd96e6c7d1b802488f48cf246\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/171\n"
    },
    {
      "commit": "3b9f152b4d53eef7f10f82cca6e808a223ac11e8",
      "tree": "4a99b0f7431ca0611607bb8b0331d7c0cc5f6360",
      "parents": [
        "522160f57af9a3dd2054d6912d071b6210f61769"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jul 28 16:09:29 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Aug 16 22:02:16 2024 +0000"
      },
      "message": "chipset_enable: Probe AMD SPIBAR first and bail on ff\n\nTesting on a ThinkPad T14s Gen3 has shown that the LPC device\u0027s\nPCI config space can return all `ff\u0027 for everything from offset\n0x44 on. Reasons are unknown at this point, so it seems best to\ncheck for this and bail out.\n\nChange-Id: I92dcbdc2eb31652faaad1dba3ad6978de0c8024b\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/200\n"
    },
    {
      "commit": "522160f57af9a3dd2054d6912d071b6210f61769",
      "tree": "de346028eede3fa9f5ca775109a52c395f5e2dc5",
      "parents": [
        "639d563b3f0084ed053384c468663be342cba775"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Aug 11 11:03:05 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Aug 15 19:47:52 2024 +0000"
      },
      "message": "meson: Add ft4222_spi\n\nForgot to update Meson when adding the new FT4222\nprogrammer driver. Fix that.\n\nChange-Id: I967715b31291e5221326d9cc0ce620ab59e775b3\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/241\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "639d563b3f0084ed053384c468663be342cba775",
      "tree": "5f1606c04718dd1393cd8161b8ab7bb26d895245",
      "parents": [
        "cbbd601b2a538d5493ec09064f53c1ba3c5ce855"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Aug 02 23:22:34 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Aug 08 21:58:11 2024 +0000"
      },
      "message": "README: Update flashprog.org URLs\n\nFiles are still not uploaded, but this is where they would be.\n\nChange-Id: Ifad18305e9f9463081cd07cd2d0baf5e78db1942\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/224\n"
    },
    {
      "commit": "cbbd601b2a538d5493ec09064f53c1ba3c5ce855",
      "tree": "ce2b626c8d16001721a5c6d5a9b476088598bddd",
      "parents": [
        "79451f1824e289ad74254d6a7b60a24390fbf1d4"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Aug 02 23:17:03 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Aug 08 21:58:11 2024 +0000"
      },
      "message": "README: Update dependency list and Linux package names\n\nSync these with the wiki \"Downloads\" page, add some additional\ncomments.\n\nChange-Id: I33f63ebffd77e1a20fc849e720bcfb1e476a6a17\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/223\n"
    },
    {
      "commit": "79451f1824e289ad74254d6a7b60a24390fbf1d4",
      "tree": "abe021b3793ee7822275c8cfd84125f750964661",
      "parents": [
        "5b4695ce8ba39f289436bd1a680e11c165721408"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Aug 02 22:51:55 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Aug 08 21:58:11 2024 +0000"
      },
      "message": "README: Rename \"Packaging\" -\u003e \"Source Packaging\"\n\nShould be less confusing for binary-package maintainers.\n\nChange-Id: I60ded87c9665a51343b284ef7ae5a58021896c3e\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/222\n"
    },
    {
      "commit": "5b4695ce8ba39f289436bd1a680e11c165721408",
      "tree": "8550f6fdd54b522f0009109310db541edbb74d18",
      "parents": [
        "7224085ced4e015ad86673d061cd723b17492608"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Aug 02 22:56:25 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Aug 08 21:58:11 2024 +0000"
      },
      "message": "README: Dial laptop warning down a little\n\nSo far no issues with laptops of the last decade.\n\nChange-Id: If0e0f7b75bf33385ea0ae42aed1014542d8c1f7e\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/221\n"
    },
    {
      "commit": "7224085ced4e015ad86673d061cd723b17492608",
      "tree": "98d8f20b04cc465c24c2c499e484de943227cf82",
      "parents": [
        "448457ad4bce249d0165d77f23ea18fb4946508c"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jul 28 00:04:37 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Aug 08 21:56:13 2024 +0000"
      },
      "message": "udev rules: Add some more IDs\n\nAdd IDs for Altera USB Blaster, DirtyJTAG, FTDI FT232H, FTDI FT4222H,\nand PICkit2.\n\nChange-Id: I33c69d1ab5db44d6b9761b3d062ed4b66b798f92\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/199\nReviewed-by: Nicholas Chin \u003cnic.c3.14@gmail.com\u003e\n"
    },
    {
      "commit": "448457ad4bce249d0165d77f23ea18fb4946508c",
      "tree": "a1de3df939258bdb95852e1d86807fcdbdb8af88",
      "parents": [
        "e39549b56a4a79a7e4fffa987451b8197053e7ea"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jul 28 00:02:54 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Aug 08 21:56:13 2024 +0000"
      },
      "message": "ch347_spi: Add CH347F ID and loop over the entries\n\nTested with CH347T in mode 1 and CH347F.\n\nChange-Id: I2f8246521b359c5cf574b952b32bee603abcc800\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/198\nReviewed-by: Nicholas Chin \u003cnic.c3.14@gmail.com\u003e\n"
    },
    {
      "commit": "e39549b56a4a79a7e4fffa987451b8197053e7ea",
      "tree": "afb761d5402a536539d4fb2d881c76704a98444e",
      "parents": [
        "dfd064759b416463244aafea80a5b7120ef8e4e1"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Jul 27 23:58:32 2024 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Aug 08 21:56:13 2024 +0000"
      },
      "message": "ch347_spi: Search for compatible USB interface\n\nThe newer CH347F version uses a different interface number. Hence,\nlook for the interface with \"vendor specific\" class, which is what\nthe SPI interface uses.\n\nTested with the original CH347T in mode 1 and upcoming CH347F.\n\nChange-Id: I16d66b2562d9d2ec1540949d63752e939540db5d\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/197\nReviewed-by: Nicholas Chin \u003cnic.c3.14@gmail.com\u003e\n"
    }
  ],
  "next": "dfd064759b416463244aafea80a5b7120ef8e4e1"
}
