)]}'
{
  "log": [
    {
      "commit": "3311f1cdb8a68f6eeee108dc085b00f725e520f4",
      "tree": "7b77b0389fee7246d4c42a7e52980debcd57abb9",
      "parents": [
        "50bf19f54f3fd93b5af43a3c5c641a71cd57b4c1"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 14 12:22:18 2026 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Jul 18 10:21:45 2026 +0000"
      },
      "message": "Migrate flashprog_bus_probe() into libflashprog/chip.c\n\nAlso move the cleanup of `found_id` structures into a new\nflashprog_bus_probe_cleanup(). We clean up locally, right\nafter matching the IDs against chip entries. This way, we\nsave us the state tracking in `registered_master`.\n\nChange-Id: Idcd837bd16c743a245a14a6c8f2a7dfca5fe5b42\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/491\n"
    },
    {
      "commit": "50bf19f54f3fd93b5af43a3c5c641a71cd57b4c1",
      "tree": "b8f1f80b4964164c456ab83e80c3d2f68b367d3a",
      "parents": [
        "4ccc89b22d6e567d3dced87633373fa060167275"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 14 12:14:18 2026 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Jul 18 10:21:45 2026 +0000"
      },
      "message": "Replace flashprog_chip_match() w/ simpler flashprog_bus_match_chip()\n\nWe drop all the prints that were kept for comparison with the old probe\nsequence. Now that we actually don\u0027t run a probe function per chip from\nthe database, the output would be quite confusing.\n\nThe remaining dropped boilerplate is not needed anymore, as all callers\nalready take care of flashprog_bus_probe() special cases like ID_NONE.\n\nChange-Id: Icf0f37df4b5cf26fe7e2535cbaa15040631bdd1c\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/490\n"
    },
    {
      "commit": "d4926fe5421f468f781b55ad86543ce504ae51d3",
      "tree": "21519041a72bea4a811db8f011b62cfe5f554615",
      "parents": [
        "d9301140e2c7a796b5092279cec1bbb7abebfc09"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Mar 08 21:37:52 2026 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Jul 18 10:21:45 2026 +0000"
      },
      "message": "libflashprog: Introduce new probing API flashprog_flash_probe_chip()\n\nThis new probing API acts about the same as the old one, except that\nit accepts a `struct flashprog_chip *` handle instead of a chip name.\nUnder the hood, however, it uses our new bus probing directly.\n\nWe introduce a new function, flashprog_flash_prepare_context(), that\ncreates a flash context from a probed chip, and the bus it was found\non. This will be the single place that creates flash contexts in the\nfuture.\n\nChange-Id: I1a344aedf573d92f8f297e6eed8daadb511ebc10\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/484\n"
    },
    {
      "commit": "d9301140e2c7a796b5092279cec1bbb7abebfc09",
      "tree": "39f3b21a1f0898a80d8ddea9dcb3a0f7c899bb7e",
      "parents": [
        "f96666338ff82c93808a1f366df6467998c1b5a8"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Mar 08 21:19:27 2026 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Jul 18 10:21:45 2026 +0000"
      },
      "message": "libflashprog: Add new API to probe all buses for chips\n\nThe new flashprog_chips_probe() will supersede our existing logic to\nprobe for an unspecified chip. It returns an enumeration of detected\nchips. It\u0027s up to the caller to handle multiple chip matches.\n\nChange-Id: I21ec201b92289995430130d72823fe4ca8b03bb6\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/483\n"
    },
    {
      "commit": "0d2b45ee8afc1f41670f08a6b3cf666805598543",
      "tree": "32e89b901580fe8efd218ed252c197872f27b6bc",
      "parents": [
        "48d4a0437ecc25d7c23df16fa1eda0d8f4ae5156"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Mar 23 22:42:46 2026 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Jul 18 10:21:45 2026 +0000"
      },
      "message": "libflashprog: Allow to query bus types, voltage, and test status\n\nThis is mostly an export of the long stable internal structures. We do\nsome renames, though,  and provide the voltage range as floating point\nnumbers. While we are at it, also rename:\n* flashprog_test_status.wp      \u003d\u003e .block_protection,\n* BUS_PROG                      \u003d\u003e BUS_OPAQUE,\n* BUS_NONSPI                    \u003d\u003e BUS_PRESPI.\nThe last one is a pseudonym for the older, memory-mapped buses, and\ndoesn\u0027t include BUS_OPAQUE.\n\nAlso try to name the captured test state consistently, either `tested`\nor `status`.\n\nChange-Id: Ibefb923fa5f566daa804651aa1a9bfe5602ca364\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/482\n"
    },
    {
      "commit": "48d4a0437ecc25d7c23df16fa1eda0d8f4ae5156",
      "tree": "c457f37c2e9bea3b26798bf6b9d66241f4a1587d",
      "parents": [
        "484ef6184ec0da775deb9748c8a29f262b3f0eb7"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Mar 08 16:07:28 2026 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Jul 18 10:21:45 2026 +0000"
      },
      "message": "libflashprog: Start a new API for chip enumeration\n\nFor now, allow to query all chips, their vendor, name and size.\n\nThere\u0027s a tricky optimization coming up: We don\u0027t want to allocate\nadditional memory when enumerating the chip database. But, we also\nwant to use the same API interface to access information about de-\ntected chips, which requires dynamic memory.  So we have to handle\nthese distinct cases explicitly.  Where `struct flashprog_chips *`\nis used, we set it to the special value `FLASHCHIPS_DB`  to denote\nthe flash database. For `struct flashprog_chip *` pointers, we add\nchip_from_db(), which tells us whether the given pointer is within\nthe database range.\n\nChange-Id: I7ecc12e1b74ca11f2be1b3472d6e470da44bfef1\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/481\n"
    }
  ]
}
