)]}'
{
  "log": [
    {
      "commit": "be42cf24728907ace7db5c572b097288485dca5c",
      "tree": "deeeaebe268b862f7fa21e2d044bafb6499f406f",
      "parents": [
        "006d08d64ba33d5400dc87e458727df615c381ef"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Feb 21 17:40:44 2026 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jun 28 09:29:37 2026 +0000"
      },
      "message": "Make flash-size limiting of atapromise a general --force feature\n\nTo allow accessing at least part of flash chips behind this size-limited\ncontroller,  the `atapromise\u0027 driver used a local function that adjusted\na chip description.  As flashprog would have bailed out earlier already,\nthis was only ever usable with the `--force\u0027 flag.\n\nThe same adjustment can be used with other programmers. Making it a glo-\nbal feature also gets rid of a driver peculiarity and removes the depen-\ndency on `flashctx` in the `atapromise\u0027 driver.\n\nThe logic enforces a complete chip erase if any erase is necessary. So,\nwhile this should make part of the chip fully read/writable, content of\nthe inaccessible area will be lost on write.\n\nChange-Id: I6bce8ff7781f683b001f76154621f22bd03687bc\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/431\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "006d08d64ba33d5400dc87e458727df615c381ef",
      "tree": "c76c5840f8757bbf7368c1f8e60aeb75fcb4db2a",
      "parents": [
        "81deae9ff171410104a1c1840290cc4e48b2b2fc"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Mar 10 22:33:22 2026 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jun 28 09:29:37 2026 +0000"
      },
      "message": "programmer: Move .max_rom_decode into struct master_common\n\nThis is useful information from a chipdriver perspective. It also saves\nus the open-coded tracking of the \"registered master\" in `cli_classic.c`\nright away.\n\nChange-Id: I532e9b1802184520852fe0b45650239ea252a60d\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/430\n"
    },
    {
      "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": "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": "842d678f07439e133e69fc775a848dcd66369446",
      "tree": "c01716fbc4220c1211749772d6a566e6d70701d7",
      "parents": [
        "aa714dd3dd7090e1fa7175f3a32a252b04817261"
      ],
      "author": {
        "name": "Richard Hughes",
        "email": "richard@hughsie.com",
        "time": "Fri Jan 15 09:48:12 2021 +0000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Mar 27 08:32:15 2024 +0000"
      },
      "message": "libflashrom: Return progress state to the library user\n\nProjects using libflashrom like fwupd expect the user to wait for the\noperation to complete. To avoid the user thinking the process has\n\"hung\" or \"got stuck\" report back the progress complete of the erase,\nwrite and read operations.\n\nAdd a new --progress flag to the CLI to report progress of operations.\n\nInclude a test for the dummy spi25 device.\n\nTested: ./test_build.sh; ./flashrom -p lspcon_i2c_spi:bus\u003d7 -r /dev/null --progress\n\nflashrom-stable:\n* Closer to original libflashrom API.\n* Split update_progress() into progress_start/_set/_add/_finish:\n  Simplifies progress calls scattered through the code base. We let\n  the core code in `flashprog.c` handle the total progress. Only API\n  is flashprog_progress_add().  Erase progress is completely handled\n  in `flashprog.c`. Fine grained read/write progress can be reported\n  at the chip/programmer level.\n* Add calls to all chip read/write paths and opaque programmers\n  except for read_memmapped() (which is handled in follow ups).\n* At least one wrinkle left: Erasing unaligned regions will slightly\n  overshoot total progress.\n\nChange-Id: I7197572bb7f19e3bdb2bde855d70a0f50fd3854c\nSigned-off-by: Richard Hughes \u003crichard@hughsie.com\u003e\nSigned-off-by: Daniel Campello \u003ccampello@chromium.org\u003e\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/49643\nOriginal-Reviewed-by: Edward O\u0027Callaghan \u003cquasisec@chromium.org\u003e\nOriginal-Reviewed-by: Anastasia Klimchuk \u003caklm@chromium.org\u003e\nOriginal-Reviewed-by: Thomas Heijligen \u003csrc@posteo.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/74731\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "89569d60e3aeeec651496b2e7a2e6064d782ab3b",
      "tree": "bf0c3951886de60086d32ff6e1a850adad926da6",
      "parents": [
        "929d2e1b17a448d3352dbecb6a620ee0c1e65a58"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 12 23:31:40 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 09 10:30:24 2024 +0000"
      },
      "message": "memory_mapped: Reduce `decode_sizes` to a single `max_rom_decode`\n\nWe used to store the maximum decode size, i.e. the maximum memory-mapped\nrange of the flash chip, per bus type (Parallel, LPC, FWH, SPI). There\nwas no programmer in the tree that really made use of it, though:\n* The chipset drivers usually focus on a single bus type. And even if\n  they advertise the whole default set (PAR, LPC, FWH), they only pro-\n  vide a maximum decode size for one of them. The latter is probably\n  wrong, should really more than one bus type be supported.\n* PCI and external programmers all support only a single bus type, with\n  the exception of `serprog` which doesn\u0027t set a maximum decode size.\n\nWhat made the distinction even less useful is that for some chips that\nsupport multiple bus types, i.e. LPC+FWH, we can\u0027t even detect which\ntype it is. The existing code around this also only tried to provide\nthe best possible warning message at the expense of breaking the pro-\ngrammer abstraction.\n\nHence, unify the set of sizes into a single `max_rom_decode` property.\nWe store it inside the `registered_master` struct right away, to avoid\nany more use of globals.\n\nChange-Id: I2aaea18d5b4255eb843a625b016ee74bb145ed85\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72531\n"
    },
    {
      "commit": "2b66ad9c4465432e6f2aff2e95f1e7a556bfc3f0",
      "tree": "187edbfe8e16593df21b2c4cb9c392e1011fd339",
      "parents": [
        "4517e9242e8d871db5159ff8afd215f015832c7d"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Jan 11 20:15:15 2023 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Mar 09 10:30:24 2024 +0000"
      },
      "message": "Start implementing struct flashprog_programmer\n\nOur libflashprog API was already prepared for a programmer level context\nstored in an opaque `struct flashprog_programmer`. We start filling this\nstruct with a pointer to the programmer driver (entry in the programmer\ntable) and a mutable copy of the parameter string.\n\nChange-Id: If9a795627b1e50ea6006569e723f400ff337be20\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/72525\n"
    },
    {
      "commit": "c3b02dce51aad2766512d1939a1b7447c2d526b8",
      "tree": "58069f464bb8a777ef06e93767813a4c5a042cb0",
      "parents": [
        "a02df33fbf1c196395a61049e60895d4ae0e0a5b"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Aug 12 01:13:45 2023 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Sep 18 19:24:39 2023 +0000"
      },
      "message": "Rebrand to flashprog and update URLs\n\nMostly automated `sed` work. As of now, URLs to the old wiki are broken\neither way, so changing them shouldn\u0027t hurt. Other URLs (e.g. to mailing\nlist archives) were hopefully filtered correctly.\n\nChange-Id: I9d43bfd0e675eff2fcbad05f304b9ce9f5006b08\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashrom-stable/+/21\n"
    },
    {
      "commit": "a7cb7e959e4510820f452d6d8da2df3b4bd4ba02",
      "tree": "4a449cb03a202b8c5578b0b90f67e670a4044db9",
      "parents": [
        "0b587f921aebd36aaa9f69faea0d2601386d7379"
      ],
      "author": {
        "name": "Anastasia Klimchuk",
        "email": "aklm@chromium.org",
        "time": "Fri Nov 25 18:10:43 2022 +1100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 12 01:11:46 2023 +0000"
      },
      "message": "cli, manpage: Clean up occurrences of old image argument\n\n--include argument was introduced and replaced --image argument in\ncommit 45d50a101e8073191e6d88143990ed91d3bfe815\n\nThis patch cleans up remaining few places where old `--image`\nargument was mentioned so that now all the documentation has\n`--include`. --image is deprecated.\n\nBoth old --image and new --include have the same short version -i\nand it remains the same. The code remains the same since the code\nhandles --include already.\n\nTested by running\nflashrom -h\nman ./flashrom.8.tmpl\n\nTicket: https://ticket.coreboot.org/issues/372\n\nChange-Id: If457e2b8548034868105b515125d7e8b4d5f6134\nSigned-off-by: Anastasia Klimchuk \u003caklm@chromium.org\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/70003\nOriginal-Reviewed-by: Edward O\u0027Callaghan \u003cquasisec@chromium.org\u003e\nOriginal-Reviewed-by: Felix Singer \u003cfelixsinger@posteo.net\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/71737\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "92ae5bbb4c1a7666d0ea36e93194070b402e30f3",
      "tree": "fb254d0b924aae29d893936b1002f6b6f2ddbb5d",
      "parents": [
        "d4390883dfdeb9f348cfefc7c27e8711acd3451e"
      ],
      "author": {
        "name": "Edward O\u0027Callaghan",
        "email": "quasisec@google.com",
        "time": "Mon Sep 05 11:13:56 2022 +1000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 29 12:29:02 2023 +0000"
      },
      "message": "cli_classic.c: Make count_max_decode_exceedings() pure\n\nPass by argument the max_rom_decode structure such that the\nfunction is pure and defined upon its parameters.\n\nNote, unfortunately a itermediate step of a \u0027_\u0027 suffix is\nrequired for the \u0027max_rom_decode\u0027 parameter as to not alias\nthe global symbol within the function body.\n\nChange-Id: Ia01f77993deab68e251850008e885828e55b9462\nSigned-off-by: Edward O\u0027Callaghan \u003cquasisec@google.com\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/68479\nOriginal-Reviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nOriginal-Reviewed-by: Felix Singer \u003cfelixsinger@posteo.net\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72364\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "aba3658513da245a61ba59cfab9dba5facdb1054",
      "tree": "5924d8009154e6b59aa2e10a2f66a263fcf2d358",
      "parents": [
        "00ea3898669aa35bb3f208c1d17f34e3a5c50795"
      ],
      "author": {
        "name": "Edward O\u0027Callaghan",
        "email": "quasisec@google.com",
        "time": "Mon Sep 05 11:09:28 2022 +1000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 29 12:29:02 2023 +0000"
      },
      "message": "flashrom.c: Move count_max_decode_exceeding() to cli\n\nThe count_max_decode_exceeding() function is only ever called\nwithin the cli_classic logic so move it there and make it\nstatic. This further cleans up the flashrom.c symbol namespace.\n\nChange-Id: If050eab7db8560676c03d5005a2b391313a0d642\nSigned-off-by: Edward O\u0027Callaghan \u003cquasisec@google.com\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/68438\nOriginal-Reviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72362\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "2a768e4bdcec155f2abea5f231a17d7493359e37",
      "tree": "e3c1a4258fd3d9a04507bd0edbe06406951cbe5c",
      "parents": [
        "317b4ec62214d35bb514c34667a04fa11b161799"
      ],
      "author": {
        "name": "Felix Singer",
        "email": "felixsinger@posteo.net",
        "time": "Sun May 22 02:04:18 2022 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 29 12:29:02 2023 +0000"
      },
      "message": "cli_classic.c: Make use of bool type in the main function\n\nUse the bool type instead of integer in the main function where\npossible, since this represents the purpose of some variables much\nbetter. Also, then we don\u0027t have to use the \"!!\" operator to turn any\nnumber into one or zero, which is used as an equivalent to true and\nfalse.\n\nAlso, since we have booleans and integers now, slightly change the\nordering of the variable declarations, so that the integers come before\nthe booleans.\n\nTested some parameters using the following commands:\n\nflashrom -L\n\nflashrom -p dummy\n\nflashrom -p dummy:emulate\u003dSST25VF040.REMS,image\u003dfoo2 -c \"SST25LF040A\" --progress -v foo1\n\nflashrom -p dummy:emulate\u003dSST25VF040.REMS,image\u003dfoo2 -c \"SST25LF040A\" --progress -w foo1\n\nflashrom -p dummy:emulate\u003dSST25VF040.REMS,image\u003dfoo2 -c \"SST25LF040A\" --progress -r foo1\n\nflashrom -p dummy:emulate\u003dSST25VF040.REMS,image\u003dfoo2 -c \"SST25LF040A\" --progress -E\n\nSigned-off-by: Felix Singer \u003cfelixsinger@posteo.net\u003e\nChange-Id: I06572da040e12ac88f8e5fc39f60a9e212b86bd7\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/64564\nOriginal-Reviewed-by: Evan Benn \u003cevanbenn@google.com\u003e\nOriginal-Reviewed-by: Thomas Heijligen \u003csrc@posteo.de\u003e\nOriginal-Reviewed-by: Anastasia Klimchuk \u003caklm@chromium.org\u003e\nOriginal-Reviewed-by: Alexander Goncharov \u003cchat@joursoir.net\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72344\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "2d17041c5e170b42785e99d2aaedb98abb9bf040",
      "tree": "b60bbb992860f4c8d5bca7ff2c67ebcba2f26647",
      "parents": [
        "f6a273b353355fd3817a00135019fd71e3543683"
      ],
      "author": {
        "name": "Edward O\u0027Callaghan",
        "email": "quasisec@google.com",
        "time": "Mon Nov 15 15:47:15 2021 +1100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 29 12:29:02 2023 +0000"
      },
      "message": "flashrom: Drop read_flash_to_file() usage\n\nAspire towards a goal of making cli_classic more of just\na user of libflashrom than having quasi-parallel paths in\nflashrom.c\n\nThis converts remaining read_flash_to_file() usage to the\ndo_read() provider wrapper around libflashrom.\n\nTested: `\nsudo ./flashrom -p ft2232_spi:type\u003d232H,divisor\u003d1000 -f -r out -c W25X05\nFlashrom output:\n\nNo EEPROM/flash device found.\nForce read (-f -r -c) requested, pretending the chip is there:\nAssuming Winbond flash chip \"W25X05\" (64 kB, SPI) on ft2232_spi.\nPlease note that forced reads most likely contain garbage.\nBlock protection could not be disabled!\nReading flash... done.\nData read:\n\nxxd out-1khz\n00000000: 0000 07ff ffff e000 0000 7fff fffe 0000  ................\n00000010: 0007 ffff ffe0 0000 007f ffff fe00 0000  ................\n00000020: 07ff ffff e000 0000 7fff fffe 0000 0007  ................\n00000030: ffff ffe0 0000 007f ffff fe00 0000 0fff  ................\nxxd out-100khz\n00000000: b6db 6db6 db6d b6db 6db6 db6d b6db 6db6  ..m..m..m..m..m.\n00000010: db6d b6db 6db6 db6d b6db 6db6 db6d b6db  .m..m..m..m..m..\n00000020: 6db6 db6d b6db 6db6 db24 9249 2492 4924  m..m..m..$.I$.I$\n00000030: 9249 2492 4924 9249 2492 4924 9249 2492  .I$.I$.I$.I$.I$.\n`\n\nChange-Id: I4b690b688acf9d5deb46e8642a252a2132ea8c73\nSigned-off-by: Edward O\u0027Callaghan \u003cquasisec@google.com\u003e\nOriginal-Tested-by: Nikolai Artemiev \u003cnartemiev@google.com\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/59291\nOriginal-Reviewed-by: Anastasia Klimchuk \u003caklm@chromium.org\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72336\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "e276765eca031c6900d37b22b89e686283f39c91",
      "tree": "97c22e96f45e7e7cb0520941a2d7d292d716fa18",
      "parents": [
        "17affdcd24896b6bb7e73137e9d026ad66a36dfd"
      ],
      "author": {
        "name": "Thomas Heijligen",
        "email": "thomas.heijligen@secunet.com",
        "time": "Thu Apr 07 17:48:53 2022 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 29 12:29:02 2023 +0000"
      },
      "message": "Drop STANDALONE mode\n\nSTANDALONE mode was used to build flashrom without having support for\nfile handling. This was relevant to build libflashrom on top of\nlibpayload. For a while now, the code which is covered by STANDALONE has\nmoved to cli_*.c and is not used for libflashrom. Therefore we can drop\nSTANDALONE mode.\n\nChange-Id: I58fb82270a9884a323d9850176708d230fdc5165\nSigned-off-by: Thomas Heijligen \u003cthomas.heijligen@secunet.com\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/63469\nOriginal-Reviewed-by: Edward O\u0027Callaghan \u003cquasisec@chromium.org\u003e\nOriginal-Reviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nOriginal-Reviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72321\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "d58496b41eec27f52804c0dc6573a8612f2f0ec6",
      "tree": "39c58b697326c7a83dcb583b9e87eb906349c83f",
      "parents": [
        "dbf6a8a9317699b59ad7d2ab604096777e42ce7a"
      ],
      "author": {
        "name": "Edward O\u0027Callaghan",
        "email": "quasisec@google.com",
        "time": "Thu Feb 03 12:52:02 2022 +1100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 29 12:29:02 2023 +0000"
      },
      "message": "cli_classic: Use flashrom_init() from API\n\nflashrom_init() already does delay calibration and self-checking\nvia the canonical libflashrom API. Port the cli implementation\nto go via the libflashrom API entry-point natively.\n\nTested: ```sudo ./flashrom -p internal --flash-size\n\u003csnip\u003e\nFound Programmer flash chip \"Opaque flash chip\" (16384 kB, Programmer-specific) mapped at physical address 0x0000000000000000.\n16777216\n```\n\nChange-Id: I07faeed876f678c35355621a080c7852eed16824\nSigned-off-by: Edward O\u0027Callaghan \u003cquasisec@google.com\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/61582\nOriginal-Reviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nOriginal-Reviewed-by: Anastasia Klimchuk \u003caklm@chromium.org\u003e\nOriginal-Reviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72299\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "91eaebca98619760b7bd568f6320289fea5a669e",
      "tree": "95269009a591283d5eb167b1705c99d9c42f5574",
      "parents": [
        "136bf43381af5d528d4d3a13085a5ad63c6e73ef"
      ],
      "author": {
        "name": "Edward O\u0027Callaghan",
        "email": "quasisec@google.com",
        "time": "Thu Feb 03 14:49:23 2022 +1100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 29 12:29:02 2023 +0000"
      },
      "message": "cli_classic: Replace programmer_shutdown() with libflashrom call\n\nflashrom_programmer_shutdown(NULL) is an equiv call\nto programmer_shutdown() however this further decouples\ncli from flashrom core logic at link-time, prefering to\ninstead enter via libflashrom instead.\n\nTested: `make`.\n\nChange-Id: Ie194fa2e891797a29d05d7e9d0c7226fd62c0679\nSigned-off-by: Edward O\u0027Callaghan \u003cquasisec@google.com\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/61584\nOriginal-Reviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72297\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "136bf43381af5d528d4d3a13085a5ad63c6e73ef",
      "tree": "9f703c86e3932fe70e518571d1373d4eb4052563",
      "parents": [
        "b9d63d33a1f66bd9a3c4a4581a6ed4d89fb8400d"
      ],
      "author": {
        "name": "Edward O\u0027Callaghan",
        "email": "quasisec@google.com",
        "time": "Thu Feb 03 14:39:29 2022 +1100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 29 12:29:02 2023 +0000"
      },
      "message": "cli_classic: Use flashrom_flash_getsize() over raw access\n\nUse native libflashrom entry-points for getting flash\nsize over accessing internal struct members within cli\ncode.\n\nTested: `sudo ./flashrom -p internal --get-size`.\n\nflashrom-stable: Squashed fixup for format string\n\nChange-Id: Iff70a0de1dee517c4e38c45b1540c42326a13340\nSigned-off-by: Edward O\u0027Callaghan \u003cquasisec@google.com\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/61583\nOriginal-Reviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72296\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "98cfa69207c6558fce9b71f8d0510b3130afd67e",
      "tree": "82a951c69051eb9d9491cf4a87dbf0a9de4e3ce0",
      "parents": [
        "306c8b76f7fd6326371b2208f516d5090cdb8370"
      ],
      "author": {
        "name": "Edward O\u0027Callaghan",
        "email": "quasisec@google.com",
        "time": "Mon Dec 13 12:46:12 2021 +1100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 29 12:29:02 2023 +0000"
      },
      "message": "flashrom.c: Move do_*() helpers into cli_classic.c\n\nThese helpers are only used by the CLI logic and so we localise\nthem here to move towards cli_classic being a pure libflashrom\nuser.\n\nChange-Id: If1112155e2421e0178fd73f847cbb80868387433\nSigned-off-by: Edward O\u0027Callaghan \u003cquasisec@google.com\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/60070\nOriginal-Reviewed-by: Anastasia Klimchuk \u003caklm@chromium.org\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72290\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "c72d20aa8f6a05dda4e0d0a616cdeccc897736e2",
      "tree": "5e2166c061b70a2b6e653e8fd9f5f616295c0513",
      "parents": [
        "83aa6afc09f89d78b27f02d1005847b17128e81e"
      ],
      "author": {
        "name": "Edward O\u0027Callaghan",
        "email": "quasisec@google.com",
        "time": "Mon Dec 13 12:30:03 2021 +1100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 29 12:29:02 2023 +0000"
      },
      "message": "cli_classic.c: Convert do_erase() to libflashrom call\n\nInline emergency_help_message() to cli_classic call site.\nThis leaves do_erase() a redudant wrapper and moves us a step\ncloser to cli_classic as a pure libflashrom user by using\nflashrom_flash_erase().\n\nTested: `flashrom -E`\n\nChange-Id: I8566164e7dbad69cf478b24208014f10fb99e4d0\nSigned-off-by: Edward O\u0027Callaghan \u003cquasisec@google.com\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/60068\nOriginal-Reviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nOriginal-Reviewed-by: Anastasia Klimchuk \u003caklm@chromium.org\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72287\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "345f65aac482e813d36e74ad7508254cf8f58c4d",
      "tree": "289105d2e073651d36913820997db11550a2b612",
      "parents": [
        "d9b57717471346b89da335bdf14ade85426efbfe"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri May 14 01:11:08 2021 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 29 12:29:02 2023 +0000"
      },
      "message": "layout: Tidy up the include-args API\n\nMove all forward declarations into `layout.h`, use consistent naming.\n\nChange-Id: I0e87c9d91b9bc4d78f9cee98caff6985803f7be7\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/54287\nOriginal-Reviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nOriginal-Reviewed-by: Anastasia Klimchuk \u003caklm@chromium.org\u003e\nOriginal-Reviewed-by: Edward O\u0027Callaghan \u003cquasisec@chromium.org\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72223\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "d9b57717471346b89da335bdf14ade85426efbfe",
      "tree": "13901f46bcd8b00d33ceb1eb881e101f914ac323",
      "parents": [
        "e0ed4120f70c9642951c74ba6698405fbec75c08"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri May 14 01:07:28 2021 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 29 12:29:02 2023 +0000"
      },
      "message": "layout: Kill the global layout\n\nChange-Id: Ic302e9c5faf1368e5ca244ce461e55e14f916ab8\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/54286\nOriginal-Reviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72222\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "5bd990c2ab8ceb263d598a2348d7020ce774784f",
      "tree": "0ee2bdd6b6aa9af15becf68d7afd4142df0bf99c",
      "parents": [
        "92e0b62fc37a6d89975ced41f5ec3c3715404f33"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jun 16 19:46:46 2019 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 29 12:29:02 2023 +0000"
      },
      "message": "layout: Introduce flashrom_layout_new()\n\nIt initializes an empty layout. Currently the maximum number of entries\nhas to be specified, which will vanish once we use dynamic allocation\nper entry.\n\nWe replace the two special cases `single_layout` and `ich_layout` with\ndynamically allocated layouts. As a result, we have to take care to\nrelease the `default_layout` in a flashctx once we are done with it.\n\nChange-Id: I2ae7246493ff592e631cce924777925c7825e398\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/33543\nOriginal-Reviewed-by: Edward O\u0027Callaghan \u003cquasisec@chromium.org\u003e\nOriginal-Reviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72214\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "8577756804bcb21acb715b8c301eb71997f05b4a",
      "tree": "4618e519b2d1d640c0da7db72497a7a82bd6940b",
      "parents": [
        "d1fbc465c6625b1f84378c603c335f6f794a0ee1"
      ],
      "author": {
        "name": "Jack Rosenthal",
        "email": "jrosenth@chromium.org",
        "time": "Fri Apr 09 10:03:14 2021 -0600"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 22 00:55:18 2023 +0000"
      },
      "message": "cli_classic: prevent corruption of flash when stdout/stderr is closed\n\nWhile it\u0027s not posixly-correct, it\u0027s possible that a user, script, or\napplication may attempt to start flashrom with stdout or stderr\nclosed.  It\u0027s possible that we\u0027ll get a file descriptor of 1 or 2 when\nopening a flash device (such as Linux MTD), and flashrom will send\ngarbage debug logs to the flash:\n\n  # bash -c \"exec \u003e\u0026- flashrom ...\"\n\n  Observed corruption:\n  43 40 45 42 45 44 00 00 00 00 00 00 01 00 00 00 |C@EBED..........|\n  00 02 00 00 63 65 73 73 66 75 6c 6c 79 0a 46 6f |....cessfully.Fo|\n  75 6e 64 20 50 72 6f 67 72 61 6d 6d 65 72 20 66 |und Programmer f|\n  6c 61 73 68 20 63 68 69 70 20 22 4f 70 61 71 75 |lash chip \"Opaqu|\n  65 20 66 6c 61 73 68 20 63 68 69 70 22 20 28 38 |e flash chip\" (8|\n  31 39 32 20 6b 42 2c 20 50 72 6f 67 72 61 6d 6d |192 kB, Programm|\n  65 72 2d 73 70 65 63 69 66 69 63 29 20 6d 61 70 |er-specific) map|\n  70 65 64 20 61 74 20 70 68 79 73 69 63 61 6c 20 |ped at physical |\n  61 64 64 72 65 73 73 20 30 78 30 30 30 30 30 30 |address 0x000000|\n  30 30 2e 0a ff ff ff ff ff ff ff ff ff ff ff ff |00..............|\n  ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|\n  ...\n\nWhile for most applications, closing stdout or stderr would just lead\nto obsure bugs, for flashrom, we should have extra safety guards, as\nthis could mean that we might be bricking a device instead.\n\nAdd a basic safety check.\n\nSigned-off-by: Jack Rosenthal \u003cjrosenth@chromium.org\u003e\nChange-Id: I751c9dd88ad1d30283b94bd2185b4f8f25569c8f\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/52215\nOriginal-Reviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72166\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "40407b60cccd64a655647d48a80d686ddafc4b13",
      "tree": "cc03a5ce347e3cbbac4b829026ed2578e194b4a8",
      "parents": [
        "332fdabea41b542c7ab3f56d9c1d9c5fdc492d63"
      ],
      "author": {
        "name": "Idwer Vollering",
        "email": "vidwer@gmail.com",
        "time": "Tue Dec 08 00:24:39 2020 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Jan 13 01:34:15 2023 +0000"
      },
      "message": "cli_classic.c: fix minor cosmetic bug when support for wiki page generation is not compiled in\n\nChange-Id: I222fd7aa5d633fe81ef1894d67dcb25ba0dd8937\nSigned-off-by: Idwer Vollering \u003cvidwer@gmail.com\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/48430\nOriginal-Reviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/71736\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Elyes Haouas \u003cehaouas@noos.fr\u003e\n"
    },
    {
      "commit": "a60f641a7f8b1a4cd602eecb8ddc247e40777400",
      "tree": "91cb81687cbd41227f4c40ab2c07a75f210169a0",
      "parents": [
        "721396876e9bca4307e46fe01bb9c0936e01d234"
      ],
      "author": {
        "name": "Angel Pons",
        "email": "th3fanbus@gmail.com",
        "time": "Tue Mar 31 15:02:02 2020 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Jan 13 01:34:15 2023 +0000"
      },
      "message": "cli_classic.c: Prevent memory leak\n\nIf the `--flash-contents` switch is specified more than once, it will\nresult in a memory leak. Therefore, allow this option only once.\n\nChange-Id: I530933c9a6431580fe4645396bb363939472a80a\nSigned-off-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/39972\nOriginal-Reviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/71733\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "d12b6bcbb667c6c852b7d0b521bc0f2f3963f856",
      "tree": "a337cfd6d9e665484409922ec4f9a82a7a292676",
      "parents": [
        "251e3cd04c311812cb81d8d96c95a392653e38c8"
      ],
      "author": {
        "name": "Daniel Campello",
        "email": "campello@chromium.org",
        "time": "Mon Mar 14 11:43:16 2022 -0600"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 05 16:35:01 2023 +0000"
      },
      "message": "flashrom.8.tmpl: Clarify man entries for -w/-v/-x\n\nThis change adds follow up changes to the man page:\n - Explain (-) argument for -w/-v operations\n - Expand on region name handling of -x operation\n\nAlso updates cli_classic.c to match with --help output.\n\nflashrom-stable:\n* Fixed -v description (reads from stdin)\n* s/ B/.B/\n\nChange-Id: I0cba593da3926c8587027789f4e1e89a2329ca7f\nSigned-off-by: Daniel Campello \u003ccampello@chromium.org\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/62794\nOriginal-Reviewed-by: Edward O\u0027Callaghan \u003cquasisec@chromium.org\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/71556\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "84e9c913082ce2d243593e3659ec3a0af22ea9cd",
      "tree": "1d753a41959b8fef39bbe9d4f61032b5142ec299",
      "parents": [
        "acd9c948b1fbea6dc79560cd12042898f82c3636"
      ],
      "author": {
        "name": "Thomas Heijligen",
        "email": "thomas.heijligen@secunet.de",
        "time": "Tue Jun 01 16:22:14 2021 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 05 16:15:22 2023 +0000"
      },
      "message": "CONFIG_DEFAULT_PROGRAMMER_NAME: Use programmer name instead of enum\n\nCONFIG_DEFAULT_PROGRAMER_NAME replaces CONFIG_DEFAULT_PROGRAMMER.\nIt uses the name of the programmer for identification.\nmake CONFIG_DEFAULT_PROGRAMER_NAME\u003ddummy and\nmeson -Ddefault_programmer_name\u003ddummy will extend to\nCONFIG_DEFAULT_PROGRAMER_NAME\u003d\u0026programmer_dummy in the code.\n\nChange-Id: I976447787c6f6bfbdc0145d80d61e1ddcf97ac33\nSigned-off-by: Thomas Heijligen \u003cthomas.heijligen@secunet.de\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/55123\nOriginal-Reviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/71380\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "acd9c948b1fbea6dc79560cd12042898f82c3636",
      "tree": "1cf8deb4c7dda694f8a666ba42451faf6461f162",
      "parents": [
        "e0e93cf59fe2fb45f1e325e0dcc939cc054cbfa8"
      ],
      "author": {
        "name": "Thomas Heijligen",
        "email": "thomas.heijligen@secunet.de",
        "time": "Tue Jun 01 14:51:13 2021 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 05 16:15:22 2023 +0000"
      },
      "message": "cli_classic: replace enum programmer with programmer_entry*\n\nChange-Id: I4c45f278addeea0d486a316435e8dc15d93cbd70\nSigned-off-by: Thomas Heijligen \u003cthomas.heijligen@secunet.de\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/55122\nOriginal-Reviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nOriginal-Reviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/71379\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "e0e93cf59fe2fb45f1e325e0dcc939cc054cbfa8",
      "tree": "38f1faaae8d2a12dba5a80bad703e3d2c8d68c9e",
      "parents": [
        "9163b814032c566b224ee8e58742448a99a3b73d"
      ],
      "author": {
        "name": "Thomas Heijligen",
        "email": "thomas.heijligen@secunet.de",
        "time": "Tue Jun 01 14:37:12 2021 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 05 16:15:22 2023 +0000"
      },
      "message": "programmer_init: use struct programmer_entry*\n\nChange-Id: Iacf0f25abc94a84c5d52c8d69a3e8640817b060a\nSigned-off-by: Thomas Heijligen \u003cthomas.heijligen@secunet.de\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/55121\nOriginal-Reviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/71378\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "d45cb595e031ea6917f154f01eda3b234226f4f0",
      "tree": "2073712010f8c8e680ba82fa6d75e59f1edceab6",
      "parents": [
        "cc853d84ed2f8ecafc1f6daa443f8baa4c871805"
      ],
      "author": {
        "name": "Thomas Heijligen",
        "email": "thomas.heijligen@secunet.de",
        "time": "Wed May 19 14:12:18 2021 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 05 16:15:22 2023 +0000"
      },
      "message": "programmer_table: replace PROGRAMMER_INVALID with programmer_table_size\n\nChange-Id: Icaaeefe001de604df9d7fdd06f05a5ed39fdbd84\nSigned-off-by: Thomas Heijligen \u003cthomas.heijligen@secunet.de\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/55117\nOriginal-Reviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/71374\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "633d6db1b5718305cf4daf87cf4a93d17bc3821e",
      "tree": "59ec962a28ab34ea99554db9b44ec804fead7e2d",
      "parents": [
        "bbfacffca88042d7f85d910b732bf88253573c76"
      ],
      "author": {
        "name": "Thomas Heijligen",
        "email": "thomas.heijligen@secunet.de",
        "time": "Wed Mar 31 19:09:44 2021 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 05 16:15:22 2023 +0000"
      },
      "message": "programmer_table: convert entries to pointers\n\nAllows us to move the individual entries into their respective\ndriver files.\n\nChange-Id: Ifbb0ee4db5a85b1cd2afeafe4dca838579f79878\nSigned-off-by: Thomas Heijligen \u003cthomas.heijligen@secunet.de\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/52945\nOriginal-Reviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/71369\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "8eaef7d9d3e189fcffd0afbe55c8ddbadcc524f8",
      "tree": "ed8ade2bb6610993a27aa9b240d5cbdfd7ecc42d",
      "parents": [
        "b499b67d1b112141792a71ad9119d51dd9052684"
      ],
      "author": {
        "name": "Daniel Campello",
        "email": "campello@chromium.org",
        "time": "Thu Apr 15 10:36:04 2021 -0600"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jan 05 16:15:22 2023 +0000"
      },
      "message": "flashrom.c: allow - as filename for stdin\n\nAllows - as filename for -w/-v options. It is sometimes useful to\nscript flashrom and allowing it to work with pipes allows for more\nflexibility in this specific use-case.\n\nSigned-off-by: Daniel Campello \u003ccampello@chromium.org\u003e\nChange-Id: I97889cfdf7ba9a257e182c4ee2b20075cfa58d4d\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/52383\nOriginal-Reviewed-by: Edward O\u0027Callaghan \u003cquasisec@chromium.org\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/71350\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "8b60fc7a5bac409f8a4e0648f1fba51aa3497afb",
      "tree": "8ce22803fb0e3410725e5719bae4f36de162045f",
      "parents": [
        "16ec45c0fc9ad172b66f07a94c64a3a17c111ca0"
      ],
      "author": {
        "name": "Edward O\u0027Callaghan",
        "email": "quasisec@chromium.org",
        "time": "Thu Sep 26 11:17:20 2019 +1000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Oct 17 08:29:35 2019 +0000"
      },
      "message": "cli_classic: Tidy up some repeated handling patterns into funcs\n\nIntroduce cli_classic_single_operation() to consolidate the repeating\npattern of multiple CLI operations at once. Also modify\ncli_classic_abort_usage() to take an optional error abort string and\nprint it to stderr, this allows for trimming a few more lines off the\ncli implementation.\n\nV.2: A few fixes upon review:\n  - Trim off some unnecessary braces for single line branches.\n  - Pass \u0027operation_specified\u0027 by reference.\n  - Rename a function.\nV.3: Fix print order of cli_classic_abort_usage().\n\nChange-Id: I54598efdaee2b95cb278b0f2aac05f48bbd95bef\nSigned-off-by: Edward O\u0027Callaghan \u003cquasisec@chromium.org\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom/+/35611\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "16ec45c0fc9ad172b66f07a94c64a3a17c111ca0",
      "tree": "88cc20846088743086e4a678d6cee118a662790f",
      "parents": [
        "2a8d4390fa85160b79f9ccf3d2a8c676595611e7"
      ],
      "author": {
        "name": "Edward O\u0027Callaghan",
        "email": "quasisec@chromium.org",
        "time": "Fri Oct 04 20:24:53 2019 +1000"
      },
      "committer": {
        "name": "Edward O\u0027Callaghan",
        "email": "quasisec@chromium.org",
        "time": "Thu Oct 17 01:26:21 2019 +0000"
      },
      "message": "cli_classic: Fix first line of --help to match manpage\n\nMake the first line of --help in usage to align with the\nformat of the man page, including fixing any missing options.\n\nV.2: Add an extra space.\n\nChange-Id: I44f82c6a54fddb54bf268fe6eb22e50acb6025cf\nSigned-off-by: Edward O\u0027Callaghan \u003cquasisec@chromium.org\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom/+/35793\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "4a84ec273a487c27f91bd3df70cbdf8894af70e1",
      "tree": "faee09346d0a195ac778befa68a87c5f669cfe22",
      "parents": [
        "de77ad4678cb33ca0b58edf89fab8113eb304bcd"
      ],
      "author": {
        "name": "Jacob Garber",
        "email": "jgarber1@ualberta.ca",
        "time": "Thu Jul 25 19:12:31 2019 -0600"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Oct 04 14:35:20 2019 +0000"
      },
      "message": "tree: Enable -Wwrite-strings\n\nWhen compiling, this warning gives string literals the type const char[]\nto help catch accidental modification (which is undefined behaviour).\nThere currently aren\u0027t any instances of this in flashrom, so let\u0027s\nenable this warning to keep it that way. This requires adding const\nqualifiers to the declarations of several variables that work with\nstring literals.\n\nChange-Id: I62d9bc194938a0c9a0e4cdff7ced8ea2e14cc1bc\nSigned-off-by: Jacob Garber \u003cjgarber1@ualberta.ca\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom/+/34577\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: David Hendricks \u003cdavid.hendricks@gmail.com\u003e\nReviewed-by: Edward O\u0027Callaghan \u003cquasisec@chromium.org\u003e\n"
    },
    {
      "commit": "7d6b526ef5b7b11f89eee37062e91590f5fa7f43",
      "tree": "c10247a7a5f2f15f83e9f55d1a85c03edb8d682f",
      "parents": [
        "0cd11d8919c66351b9508f58ca0a7f7aaad6dd59"
      ],
      "author": {
        "name": "Edward O\u0027Callaghan",
        "email": "quasisec@chromium.org",
        "time": "Mon Sep 23 22:53:14 2019 +1000"
      },
      "committer": {
        "name": "Edward O\u0027Callaghan",
        "email": "quasisec@chromium.org",
        "time": "Fri Oct 04 10:45:15 2019 +0000"
      },
      "message": "cli_classic: Add convenient \u0027--{flash,get}-size\u0027 cli opt\n\nWe have this in the ChromiumOS fork of flashrom which we rely\non to obtain the current flash chip in use. This ports it for\nupstream consumption.\n\nV.2: Constrain number_of_operations to one as per Nico\u0027s comment.\nV.3: Rename \u0027--get-size\u0027 to \u0027--flash-size\u0027 however keep old arg as\n     \u0027undocumented\u0027 for back-compat.\nV.4: Add missing --help line.\nV.5: Add man page entry.\nV.6: Use printf() directly.\n\nChange-Id: I8f002f3b2012aec4d26b0e81456697b9a5de28d6\nSigned-off-by: Edward O\u0027Callaghan \u003cquasisec@chromium.org\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom/+/35592\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "0cd11d8919c66351b9508f58ca0a7f7aaad6dd59",
      "tree": "4034df1770ba21ccc57c9af8249e275cf2ea7352",
      "parents": [
        "ca598dabc3e658b3b80fd41143417d884d436e06"
      ],
      "author": {
        "name": "Edward O\u0027Callaghan",
        "email": "quasisec@chromium.org",
        "time": "Mon Sep 23 22:46:12 2019 +1000"
      },
      "committer": {
        "name": "Edward O\u0027Callaghan",
        "email": "quasisec@chromium.org",
        "time": "Fri Oct 04 10:43:50 2019 +0000"
      },
      "message": "cli_classic: Add convenient \u0027--flash-name\u0027 cli opt\n\nWe have this in the ChromiumOS fork of flashrom which we rely\non to obtain the current flash chip in use. This ports it for\nupstream consumption.\n\nV.2: Constrain number_of_operations to one as per Nico\u0027s comment.\nV.3: Move two goto\u0027s outside inner if-else block.\nV.4: Add missing --help line.\nV.5: Add man page entry.\nv.6: Use printf() directly.\n\nChange-Id: I23d574a2f8eaf809a5c0524490db9e3a560ede56\nSigned-off-by: Edward O\u0027Callaghan \u003cquasisec@chromium.org\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom/+/35591\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "519be66fc59558971dd653afe69ccaf1a633b492",
      "tree": "74f0912de156a86d56111f377db080246e5205e9",
      "parents": [
        "ef78de4a21323b8c459337356289218211f2c5ce"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Dec 23 20:03:35 2018 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Jul 31 08:26:59 2019 +0000"
      },
      "message": "Fix -Wsign-compare trouble\n\nMostly by changing to `unsigned` types where applicable, sometimes\n`signed` types, and casting as a last resort.\n\nChange-Id: I08895543ffb7a48058bcf91ef6500ca113f2d305\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom/+/30409\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Jacob Garber \u003cjgarber1@ualberta.ca\u003e\n"
    },
    {
      "commit": "ef78de4a21323b8c459337356289218211f2c5ce",
      "tree": "5f6b24b01b1091c97ce32e72fb8424c2d8e9b9c1",
      "parents": [
        "5800f5841de2fd74bfc6590978bd034a6c9e6102"
      ],
      "author": {
        "name": "Elyes HAOUAS",
        "email": "ehaouas@noos.fr",
        "time": "Thu Jul 18 15:08:10 2019 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Jul 19 16:20:08 2019 +0000"
      },
      "message": "cli_classic: Fix Memory leak\n\nFound-by: scan-build 7.0.1-8\nChange-Id: I84e642b57b95953f376569e443ef8d8eda7bf98f\nSigned-off-by: Elyes HAOUAS \u003cehaouas@noos.fr\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom/+/34405\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "0a0b45bba6c1f467958c92620110a731d4917c89",
      "tree": "d5d6b03b2dfb1e1db99770fddf4e4a9f50a5969b",
      "parents": [
        "deeac7e41a311a0806af0e65a2ce5c6673f9cf92"
      ],
      "author": {
        "name": "Jacob Garber",
        "email": "jgarber1@ualberta.ca",
        "time": "Wed Jun 26 10:35:11 2019 -0600"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Jun 28 06:42:41 2019 +0000"
      },
      "message": "cli_classic: Remove old usage warnings\n\nWe are at version 1.1 now, and the user interface change in 0.9.6 was\nto make setting the programmer mandatory. This was done all the way\nback in 2012, so it is safe to remove these warnings now.\n\nChange-Id: If1b379b7b8234d50a2f0a4f522f15820a1a6603c\nSigned-off-by: Jacob Garber \u003cjgarber1@ualberta.ca\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom/+/33815\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "b04fef91c100d815265bc1948e61a62f284c42ef",
      "tree": "9446fe01e60f38fde4dd777602a1e8dab2cce8cd",
      "parents": [
        "ee13d0c8fa365455002b109ded7f94f990be8347"
      ],
      "author": {
        "name": "Arthur Heymans",
        "email": "arthur@aheymans.xyz",
        "time": "Tue Feb 05 17:35:05 2019 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Jun 17 08:03:12 2019 +0000"
      },
      "message": "layout.c: Don\u0027t use global variables for included regions\n\nThis removes the use of global variables for included region arguments\nand also uses a linked list to store the arguments.\n\nChange-Id: I6534cc58b8dcc6256c2730c809286d8083669a6c\nSigned-off-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom/+/31247\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "6eca76123ca765e4afcfac43bfe2f27a5f977a97",
      "tree": "ed67581d106d0267c236ee643957684cd4eb919b",
      "parents": [
        "3578ec6a3d7187438c4093f4bb7ac2bb6d4184cb"
      ],
      "author": {
        "name": "Richard Hughes",
        "email": "richard@hughsie.com",
        "time": "Wed Dec 19 15:40:27 2018 +0000"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Jan 05 16:25:49 2019 +0000"
      },
      "message": "Fix a tiny memory leak in the CLI tool\n\nChange-Id: Iec696cb15dcf437f08e1e4f2a5a1faa0df6fd081\nSigned-off-by: Richard Hughes \u003crichard@hughsie.com\u003e\nReviewed-on: https://review.coreboot.org/c/30408\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "c82900b661420989856a969cd9edf27410b758eb",
      "tree": "2f0ac2c60530769830ee6386047712fb46cdccd0",
      "parents": [
        "4acc3f3a8990cda15f04e5eabf028c5cda0d6619"
      ],
      "author": {
        "name": "Arthur Heymans",
        "email": "arthur@aheymans.xyz",
        "time": "Wed Jan 10 12:48:16 2018 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Oct 23 21:15:05 2018 +0000"
      },
      "message": "Add support to get layout from fmap (e.g. coreboot rom)\n\nFlashmap, or simply fmap, is a binary data format for describing\nregion offsets, sizes, and certain attributes and is widely used by\ncoreboot. This patch adds support for the fmap data format version 1.1\nand adds --fmap and --fmap-file arguments.\n\nUsing --fmap will make flashrom to search the ROM content for fmap\ndata. Using --fmap-file will make flashrom search a supplied file\nfor fmap data.\n\nAn example of how to update the COREBOOT region of a ROM:\nflashrom -p programmer --fmap -w coreboot.rom -i COREBOOT\nflashrom -p programmer --fmap-file coreboot.rom -w coreboot.rom -i COREBOOT\n\nThe fmap functions are mostly copied from cbfstool.\n\nCurrently it is made mutually exclusive with other layout options until\nwe are more clever about this input.\n\nChange-Id: I0e7fad38ed79a84d41358e1f175c36d255786c12\nSigned-off-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\nSigned-off-by: David Hendricks \u003cdhendricks@fb.com\u003e\nReviewed-on: https://review.coreboot.org/23203\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nTested-by: David Hendricks \u003cdavid.hendricks@gmail.com\u003e\nReviewed-by: Werner Zeh \u003cwerner.zeh@siemens.com\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "e083880279119677e443fc16b4694f8c81bf2c40",
      "tree": "03413b996779bc4c86ec41590f3e7bcdd97d0ef5",
      "parents": [
        "124ef38f7afc61ad7c713c22aad7c5c7f79bdb9b"
      ],
      "author": {
        "name": "Elyes HAOUAS",
        "email": "ehaouas@noos.fr",
        "time": "Mon Apr 02 11:14:02 2018 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Apr 24 20:21:41 2018 +0000"
      },
      "message": "Remove address from GPLv2 headers\n\nChange-Id: I7bfc339673cbf5ee2d2ff7564c4db04ca088d0a4\nSigned-off-by: Elyes HAOUAS \u003cehaouas@noos.fr\u003e\nReviewed-on: https://review.coreboot.org/25381\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n"
    },
    {
      "commit": "f701f343117270b4373320eb25ae259b8e513b7d",
      "tree": "2749940aec9f2b1dc0ad53069079b78f225d76cf",
      "parents": [
        "3a826043dbd389b4be2f5783c1b984ba297b8179"
      ],
      "author": {
        "name": "Paul Kocialkowski",
        "email": "contact@paulk.fr",
        "time": "Mon Jan 15 01:10:36 2018 +0300"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Feb 11 16:54:14 2018 +0000"
      },
      "message": "Add support for reading the current flash contents from a file\n\nWhen developing software that has to be flashed to a flash chip to be\nexecuted, it often takes a long time to read the current flash contents\n(for flashrom to know what pages to erase and reprogram) each time\nwhen writing the new image. However, when the flash was just reprogrammed,\nits current state is known to be the previous image that was flashed\n(assuming it was verified).\n\nThus, it makes sense to provide that image as a file for the flash contents\ninstead of wasting valuable time read the whole flash each time.\n\nChange-Id: Idf153b6955f37779ae9bfb228a434ed10c304947\nSigned-off-by: Mike Banon \u003cmikebdp2@gmail.com\u003e\nSigned-off-by: Paul Kocialkowski \u003ccontact@paulk.fr\u003e\nReviewed-on: https://review.coreboot.org/23263\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "d152fb95e2b7fda62a85f6c8e4112ba9f353a8d6",
      "tree": "cfd2ea28b75cb90db72f488ee237a068d0cb52a4",
      "parents": [
        "731316a9128c4015bc0facd1743afeb3a080129e"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.huber@secunet.com",
        "time": "Mon Jun 19 12:57:10 2017 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Jul 13 16:27:55 2017 +0000"
      },
      "message": "Drop redundant `enum msglevel`\n\nUse `enum flashrom_log_level` instead to avoid further confusion.\n\nChange-Id: I1895cb8f60da3abf70c9c2953f52414cd2cc10a9\nSigned-off-by: Nico Huber \u003cnico.huber@secunet.com\u003e\nReviewed-on: https://review.coreboot.org/20268\nReviewed-by: Paul Menzel \u003cpaulepanter@users.sourceforge.net\u003e\nReviewed-by: Philippe Mathieu-Daudé \u003cf4bug@amsat.org\u003e\nReviewed-by: Stefan Reinauer \u003cstefan.reinauer@coreboot.org\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "7258cf5197d2f1502430ad1c64027af2b341b7a6",
      "tree": "46a19bfde42801cf0b9a6fb8754affd0b60578af",
      "parents": [
        "3145423c5330256310f57207a445e50878474b3a"
      ],
      "author": {
        "name": "Urja Rannikko",
        "email": "urjaman@gmail.com",
        "time": "Sat Jun 17 11:31:57 2017 +0300"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jun 18 13:19:43 2017 +0200"
      },
      "message": "fixup! Kill doit()\n\nFix building with CONFIG_INTERNAL\u003dno because force_boardmismatch\ndoesn\u0027t exist when internal is not enabled.\n\nChange-Id: Id9e715f09ef934bc36221b3e72c578ae96e0a3af\nSigned-off-by: Urja Rannikko \u003curjaman@gmail.com\u003e\nReviewed-on: https://review.coreboot.org/20250\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n"
    },
    {
      "commit": "305f417ea565a18c1e87dcf5d97307369b721c6c",
      "tree": "75fd4a1087415f99a64d0a5f26eaddcb54969883",
      "parents": [
        "ad18631b59d814b38bb6757df93fac17937a6bc9"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.huber@secunet.com",
        "time": "Fri Jun 14 11:55:26 2013 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Jun 14 11:43:32 2017 +0200"
      },
      "message": "Add option to read ROM layout from IFD\n\nAdd an option --ifd to read the ROM layout from an Intel Firmware\nDescriptor (IFD). Works the same as the -l option, if given, -i\nspecifies the images to update.\n\nv2: o Rebased on libflashrom, use libflashrom interface.\n    o Use functions from ich_descriptors.c.\n\nv3: o Move ich_descriptors.o to LIB_OBJS, thus build it independent\n      of arch and programmers.\n    o Bail out if we aren\u0027t compiled for little endian.\n    o Update flashrom.8.tmpl.\n\nv4: o Incorporated David\u0027s comments.\n    o Removed single-character `-d` option.\n\nv5: Changed region names to match the output of `ifdtool --layout ...`\n\nChange-Id: Ifafff2bf6d5c5e62283416b3269723f81fdc0fa3\nSigned-off-by: Nico Huber \u003cnico.huber@secunet.com\u003e\nReviewed-on: https://review.coreboot.org/17953\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Stefan Reinauer \u003cstefan.reinauer@coreboot.org\u003e\n"
    },
    {
      "commit": "3828b39263d008fb6cc5ebdbe7fb49bc6f926566",
      "tree": "594149187c7dc540df85d7e86eec2ccd74ff8af2",
      "parents": [
        "99d1595329190de2a09785e8e2017ecfc397eb23"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.huber@secunet.com",
        "time": "Mon May 02 17:04:59 2016 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Jun 14 11:30:48 2017 +0200"
      },
      "message": "cli_classic: Remove layout-for-write-only check\n\nChange-Id: I0f5e9623ca75bc4503aeb45ae346d7573c0fef2c\nSigned-off-by: Nico Huber \u003cnico.huber@secunet.com\u003e\nReviewed-on: https://review.coreboot.org/17951\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: David Hendricks \u003cdavid.hendricks@gmail.com\u003e\n"
    },
    {
      "commit": "99d1595329190de2a09785e8e2017ecfc397eb23",
      "tree": "52f806b11bcfcd39ff7a7a05b222e9cf432cedcb",
      "parents": [
        "70eed9ff60af62604a856940d5b126909e2d679e"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.huber@secunet.com",
        "time": "Mon May 02 16:54:24 2016 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Jun 09 14:00:27 2017 +0200"
      },
      "message": "cli_classic: Add option (-N, --noverify-all)\n\nThis option specifies to verify included regions only after a write.\nIt also reduces the data read before the write.\n\nv2: o Changed short option name to `-N`.\n    o Added section in the manual page.\n\nChange-Id: I40b5983f56d62821d17b827b88b73d1d41a30bd7\nSigned-off-by: Nico Huber \u003cnico.huber@secunet.com\u003e\nReviewed-on: https://review.coreboot.org/17950\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Stefan Reinauer \u003cstefan.reinauer@coreboot.org\u003e\n"
    },
    {
      "commit": "899e4ec810a1e2f3d377bc2095ba3d25b234a797",
      "tree": "270ac1d7101251d95a295effcbe5cf01ce2250f4",
      "parents": [
        "1878110848f36c53667c9855f0a413c43e64597f"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.huber@secunet.com",
        "time": "Fri Apr 29 18:39:01 2016 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Jun 03 20:19:30 2017 +0200"
      },
      "message": "Kill doit()\n\nNo words can describe this feeling.\n\nv2: Rejoice while removing more, orphaned code (layout.c).\n\nChange-Id: Id81177c50b4410e68dcf8ebab48386a94cd9b714\nSigned-off-by: Nico Huber \u003cnico.huber@secunet.com\u003e\nReviewed-on: https://review.coreboot.org/17949\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: David Hendricks \u003cdavid.hendricks@gmail.com\u003e\n"
    },
    {
      "commit": "1878110848f36c53667c9855f0a413c43e64597f",
      "tree": "66bacd63991be932b3d031dfe280576449b3280e",
      "parents": [
        "a9fc4f4ebf335f3f20a47a48f2b9c2b00a4de696"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.huber@secunet.com",
        "time": "Mon Dec 10 13:34:12 2012 +0000"
      },
      "committer": {
        "name": "David Hendricks",
        "email": "david.hendricks@gmail.com",
        "time": "Sat Jun 03 20:15:56 2017 +0200"
      },
      "message": "Adapt CLI to use new libflashrom interface\u0027 print callback\n\nThis renames CLI\u0027s print() to flashrom_print_cb() and registers it\nthrough the new libflashrom interface.\n\nv2: Add libflashrom.o to LIB_OBJS now that everything can be linked\n    together.\n\nChange-Id: Idf19978eb8e340d258199193d2978f37409e9983\nSigned-off-by: Nico Huber \u003cnico.huber@secunet.com\u003e\nReviewed-on: https://review.coreboot.org/17948\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: David Hendricks \u003cdavid.hendricks@gmail.com\u003e\n"
    },
    {
      "commit": "e814a9b6e83deea2bbc9d287e8a9ee0a409a969e",
      "tree": "538c50b664d4222baaf5880a2f998fc4b482a7c7",
      "parents": [
        "b5f9d5c40221e645fd3a5c2d7ece3e8df1330b04"
      ],
      "author": {
        "name": "Jernej Škrabec",
        "email": "jernej.skrabec@planet.si",
        "time": "Fri Dec 12 00:32:03 2014 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Fri Dec 12 00:32:03 2014 +0000"
      },
      "message": "Add support for Spansion S25FL127S\n\nThis flash chip can be configured (one time) to use 64 KiB or 256 KiB sectors.\nAdditionally, in the 64 KiB mode it supports 16 4 KiB sub-sectors that can be\n(one time) programmed to be on the top or bottom of the device. The sub-sectors\ncan be erased with the 0x20 opcode but because this opcode does not work\nwith the remaining sectors and flashrom can not cope with that the 0x20\nopcode is not supported yet.\n\nThis patch adds two definitions, one for the 64 KiB and 256 KiB configuration\nrespectively. The device also shares the RDID with the various S25FL128\ndevices so we have to increase the maximum number of successfully probed\nchips to 8.\n\nThe 64 KiB mode was tested on real hardware.\n\nCorresponding to flashrom svn r1858.\n\nSigned-off-by: Jernej Škrabec \u003cjernej.skrabec@planet.si\u003e\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\n"
    },
    {
      "commit": "4e32ec19b124a7431d1e3fd9f7e75196b7495a7e",
      "tree": "5ca7051747f8161639957c37d984cbe8f878271a",
      "parents": [
        "583ea32911f67641daef9d05b3e65176b6923f94"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sat Aug 30 23:39:51 2014 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sat Aug 30 23:39:51 2014 +0000"
      },
      "message": "Refine physical address mapping of flash chips\n\n - Create distinct functions for mapping and unmapping for flash chips.\n - Map only when needed: map before probing and unmap immediately\n   after it. Map again when a single chip was probed successfully before\n   taking any actual actions and clean up afterwards.\n - Map special function chip registers centrally together with flash space\n   instead of within (some) probing methods after successful probes.\n - Save the used base addresses of the mappings in struct flashctx as well.\n - Do not try to (un)map the zero-sized chip definitions that are merely hacks.\n   This also fixes the printing of wrong warnings for these chip definitions\n   introduced in r1765.\n\nCorresponding to flashrom svn r1847.\n\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "9e3a6984da1bb38af37ce4bb54af8f7475b7c766",
      "tree": "409e4bf78b9d726f6aa413933987055b6a1c0439",
      "parents": [
        "9b32de94f5104cb7fa12816b7fa561b804df6ed8"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Fri Aug 15 17:17:59 2014 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Fri Aug 15 17:17:59 2014 +0000"
      },
      "message": "Refine handling chips that exceed maximum programmer sizes\n\n - Change check_max_decode() to return the number of (common) busses\n   where the flash chip exceeds the supported size of the programmer.\n - Refine its signature to use a flashctx pointer only.\n - Move CLI-related bits to cli_classic.c.\n - Rename check_max_decode() to count_max_decode_exceedings() to\n   better reflect what it (now) really does.\n - Refine the messages printed by the caller to better integrate with the new\n   setup, and simplify them.\n\nCorresponding to flashrom svn r1842.\n\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "9b32de94f5104cb7fa12816b7fa561b804df6ed8",
      "tree": "9501e463b76abf831d62bfd1a9a9ac2f8939476e",
      "parents": [
        "a8cf3620a42ca5927253822a813e3fbae1d6e7bf"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Fri Aug 08 23:52:33 2014 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Fri Aug 08 23:52:33 2014 +0000"
      },
      "message": "Refactor some CLI-relevant parts\n\nBegin to move functions that clearly belong to the (command line)\nuser interface out of flashrom\u0027s core files like flashrom.c.\n\n - Refine messages within check_chip_supported(), rename it to\n   print_chip_support_status() and move it to newly created cli_common.c.\n - Move flashbuses_to_text() to cli_common.c as well.\n - Move global verbosity variables to cli_output.c.\n\nCorresponding to flashrom svn r1841.\n\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "88b19257cb41c97123d832460c944abc588a8e89",
      "tree": "3d74f91b2cf63664a9054169f7cc2509e849be91",
      "parents": [
        "7608d368fcd566a60ab47755eb1c9263ca9d7b35"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Wed Aug 06 14:36:27 2014 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Wed Aug 06 14:36:27 2014 +0000"
      },
      "message": "Add support for S25FL128P, S25FL129P and refine it for S25FL128S chips\n\nAdditionally to the existing S25FL128S......0 definition this patch\nadds S25FL128P......0, S25FL128P......1 and S25FL128S......1, as well as\nS25FL129P......0 and S25FL129P......1 definitions.\nS25FL12xP seem to be the predecessor families of S25FL128S. All\nassociated chips can not be distinguished with RDID alone.\n\nBesides the new chips, this patch also fixes the name of the  previously\nsupported S25FL128S model with uniform 256 kB sectors\n(S25FL128P......1 not 0) and adds the hybrid sector version (0) as well.\n\nDue to the shared IDs the user has to select the right chip manually\nwith the -c parameter. To make this even possible, this patch enlarges\nthe respective array for results to 6.\n\nTested-by: Antonio Ospite \u003cao2@ao2.it\u003e\nwith a S25FL129P......0.\n\nCorresponding to flashrom svn r1838.\n\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\n"
    },
    {
      "commit": "a5bcbceb581f27cfc0055369d3dd9cfd1ae00bfa",
      "tree": "5daecd880a16b7011be28e064fb7550f3e6b7e58",
      "parents": [
        "82b6ec1df30d3fca55547f230c76718d6e613b2a"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sat Jul 19 22:03:29 2014 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sat Jul 19 22:03:29 2014 +0000"
      },
      "message": "Rename programmer registration functions\n\nRegister_programmer suggests that we register a programmer. However,\nthat function registers a master for a given bus type, and a programmer\nmay support multiple masters (e.g. SPI, FWH). Rename a few other\nfunctions to be more consistent.\n\nCorresponding to flashrom svn r1831.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\n"
    },
    {
      "commit": "265fcac1b64154b8419c469ded75ec77d6c87828",
      "tree": "2024a49710df58beb390dd05b425bf1b686a3eb8",
      "parents": [
        "0ccec8f21228fab9e5e57c9392f6feafbf296ef1"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Mon Jun 02 00:12:23 2014 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Mon Jun 02 00:12:23 2014 +0000"
      },
      "message": "Add default arguments for the default programmer (only)\n\nThis code exists thanks to food for thought from Urja Rannikko.\n\nCorresponding to flashrom svn r1814.\n\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "20da4aa82cc11f25a6a4a52fd2bed219e6e1d829",
      "tree": "37658633f881d908f9781bdf9e7b82d1395dac39",
      "parents": [
        "f3607d191aefa5bf4ffb301652be2f4e242eb88c"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Wed May 07 22:07:23 2014 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Wed May 07 22:07:23 2014 +0000"
      },
      "message": "Remove programmer_shutdown() from doit()\n\nBecause the programmer initialization that has to be called way\nearlier and independently elsewhere, it does not make a lot of sense\nto deinit within doit(). Also, free the logfile name at the end of\nmain() to catch more execution paths and because this moves it to\nthe other cleanup instructions.\n\nCorresponding to flashrom svn r1788.\n\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\n"
    },
    {
      "commit": "8268fdb90227af0293d2fbfcf92f971af44cb001",
      "tree": "4a5f50d844a729a5806abfed35e79169ca9fd6d2",
      "parents": [
        "a6a0d2000a1197e90faaf8d9e7697c96f1deb934"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Mon Sep 23 14:21:06 2013 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Mon Sep 23 14:21:06 2013 +0000"
      },
      "message": "layout: Verify layout entries before building a new image using them\n\nThis fixes a SEGFAULT if a layout entry is included that addresses memory\noutside the current chip\u0027s address range. flashrom will only abort if the\noffending region(s) is/are included else it will just warn.\n\nIt will print warnings for regions with negative or zero-length address ranges\nand bail out after checking all of them.\n\nAlso, abort for non-write operations if a layout file is given because there is\nno layout support for other operations yet.\n\nCorresponding to flashrom svn r1751.\n\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "949ccc8a7ed2a7ad075103e064ad92483ffa8720",
      "tree": "8aaa82d92b1b7366c53552da0b089bf83f37e55f",
      "parents": [
        "88ee040ab98a1ffa0c7d8faf6aac1187500e4974"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sun Sep 15 14:01:06 2013 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sun Sep 15 14:01:06 2013 +0000"
      },
      "message": "layout: Add a method to cleanup layout data structures\n\nAdd layout_cleanup() to layout.c and hook it up in cli_classic.c.\n\nCorresponding to flashrom svn r1749.\n\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "c4f44df55fbe624e283ce3db83e1dea6925fd5da",
      "tree": "23f602150eecb4599d675e45ff1a61640953d52e",
      "parents": [
        "463dd6953eed14930ae9819c7194ea1cc3b8ef40"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Mon Aug 12 22:58:43 2013 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Mon Aug 12 22:58:43 2013 +0000"
      },
      "message": "Fix verification operation\n\nI broke this in r1702 where I enabled avoidance of the verification step if\nwe did not modify anything in the erase/write step. The problem is that\nall_skipped is initialized to true and hence it would only ever verify if\nthere have been changes noted in the erase/write step. This obviously\nbreaks the verification operation (-v/--verify) because there we never\nenter the erase/write loop.\n\nThe better alternative would be to enable (the implicit) verification\nin the write loop and not in cli_classic.c. This would require a bigger\nchange due to the existance of dont_verify_it. Eventually this is the\nright thing to do but not so shortly before a release.\n\nCorresponding to flashrom svn r1707.\n\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "0554ca5cd33fe2cc599cfdbe91fff03c8fa752c5",
      "tree": "1d37d76b5b3d810c6b2a1286a5de7c2b60ce69a0",
      "parents": [
        "305e0b999a7d452a845709d5558c17a31afe178c"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Thu Jul 25 22:54:25 2013 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Thu Jul 25 22:54:25 2013 +0000"
      },
      "message": "Add a bunch of new/tested stuff and various small changes 18\n\nTested mainboards:\nOK:\n - ASUS C60M1-I\n   http://www.flashrom.org/pipermail/flashrom/2013-February/010578.html\n - ASUS P8H77-I\n   http://www.flashrom.org/pipermail/flashrom/2013-March/010607.html\n - ASUS P8H77-M\n   http://www.flashrom.org/pipermail/flashrom/2013-May/010994.html\n - ASUS P8P67 LE (B2)\n   http://www.flashrom.org/pipermail/flashrom/2013-May/010972.html\n - Elitegroup GeForce6100PM-M2 (V3.0)\n   http://www.flashrom.org/pipermail/flashrom/2013-July/011177.html\n - GIGABYTE GA-P55A-UD7\n   http://www.flashrom.org/pipermail/flashrom/2013-July/011302.html\n - MSI B75MA-E33 (MS-7808)\n   http://www.flashrom.org/pipermail/flashrom/2013-March/010659.html\n - MSI H77MA-G43 (MS-7756)\n   http://www.flashrom.org/pipermail/flashrom/2013-April/010853.html\n - MSI KA780G (MS-7551)\n   http://paste.flashrom.org/view.php?id\u003d1617\n - SAPPHIRE IPC-E350M1\n   Reported by xvilka on IRC\n - Supermicro X8DTG-D\n   http://www.flashrom.org/pipermail/flashrom/2013-July/011305.html\nNOT OK:\n - ASRock Fatal1ty Z77 Performance\n   http://www.flashrom.org/pipermail/flashrom/2013-January/010467.html\n - ASRock Z68 Extreme4\n   http://www.flashrom.org/pipermail/flashrom/2013-May/010984.html\n - ASUS P8B75-M LE\n   http://www.flashrom.org/pipermail/flashrom/2013-April/010867.html\n - ASUS P8P67-M PRO\n   http://www.flashrom.org/pipermail/flashrom/2013-February/010541.html\n - ASUS P8Z68-V LE\n   http://www.flashrom.org/pipermail/flashrom/2013-February/010582.html\n - Intel DQ77MK\n   http://paste.flashrom.org/view.php?id\u003d1603\n - Supermicro X9DRD-7LN4F\n   http://paste.flashrom.org/view.php?id\u003d1582\n - Supermicro X9SCE-F\n   http://www.flashrom.org/pipermail/flashrom/2013-February/010588.html\n - Supermicro X9SCM-F\n   http://www.flashrom.org/pipermail/flashrom/2013-February/010527.html\n - Tyan S7066\n   http://www.flashrom.org/pipermail/flashrom/2013-March/010630.html\n\nChipsets:\n - Marked Intel B75 as tested\n   http://www.flashrom.org/pipermail/flashrom/2013-March/010659.html\n - Marked Intel H77 as tested\n   http://www.flashrom.org/pipermail/flashrom/2013-March/010607.html\n - Removed 10de:03e2 because it is apparently the MCP61 host bridge.\n   It was reclassified to Host Bridge in the PCI device ID database and there\n   is at least one report suggesting this configuration too:\n   http://www.flashrom.org/pipermail/flashrom/2012-August/009716.html\n - Added MCP89 which hopefully works with the code for previous versions.\n   Thanks to James Laird for submitting this change.\n\nTested flash chips:\n - Atmel AT25DF641(A) to PREW (+PREW)\n   http://www.flashrom.org/pipermail/flashrom/2013-June/011113.html\n - Atmel AT25F512 to PREW (+PREW)\n   http://www.flashrom.org/pipermail/flashrom/2013-April/010904.html\n   Also, change its ID according to Modification of PCN SC040401A:\n   \"There has been a change in the returned value of the Product Identification\n   (RDID) command, the AT25F512A RDID code is 65h compared to 60h from\n   the AT25F512 product.\"\n   It seems to be quite likely that all AT25F512 are fully functional relabeled\n   AT25F1024 chips. There are even some hints in the datasheet:\n   in table 6 they stress that address pin 16 needs to be low under all circum-\n   stances; while continuous reads can wrap around on the AT25F1024 the DS\n   notes \"For the AT25F512, the read command must be terminated when the\n   highest address (00FFFF) is reached.\" OTOH the lock bit semantics are\n   different, but this has not been tested thoroughly\n - Atmel AT25F512A to PREW (+PREW)\n   http://paste.flashrom.org/view.php?id\u003d1569\n - Eon EN25F05 to PREW (+PREW)\n   http://paste.flashrom.org/view.php?id\u003d1571\n - Macronix MX25L12805(D) to PREW (+REW)\n   http://www.flashrom.org/pipermail/flashrom/2013-April/010913.html\n - Spansion S25FL256S......0 and S25FL512S to P/!R!E!W (+P)\n   Tested by Stefan Tauner\n - Micron/Numonyx/ST M25PX80 to PREW (+PREW)\n   Tested by Stefan Tauner\n - Micron/Numonyx/ST N25Q032..3E and N25Q128..3E to PREW (+PREW)\n   Tested by Stefan Tauner\n - Micron/Numonyx/ST N25Q256..3E and N25Q512..3G to P/!R!E!W (+P)\n   Tested by Stefan Tauner\n - SST SST25VF040B to PREW (+PREW)\n   http://paste.flashrom.org/view.php?id\u003d1574\n - SST SST25VF040B.REMS to PREW (+EW)\n   http://paste.flashrom.org/view.php?id\u003d1575\n - ST M25P05-A to PREW (+PREW)\n   http://paste.flashrom.org/view.php?id\u003d1576\n - ST M29W512B to PREW (+W)\n   http://www.flashrom.org/pipermail/flashrom/2013-March/010635.html\n - Winbond W25Q64.W to PREW (+PREW)\n   Tested by the chromiumos guys.\n - Winbond W25Q128.V to PREW (+REW)\n   http://www.flashrom.org/pipermail/flashrom/2013-June/011108.html\n - Winbond W25X20 to PREW (+PREW)\n   http://www.flashrom.org/pipermail/flashrom/2013-May/010990.html\n\nMiscellaneous:\n - Add Lenovo X201 to the laptop whitelist.\n - Add chip IDs for the ESMT F25L..QA family.\n - Add chip IDs for a few Macronix MX25 models.\n - The list of flashchips is not sorted strictly alphabetically and should not be\n   either. Refine the comment explaining the scheme on top of the list.\n - Support -L output of chip sizes with up to 6 decimal places (up to 4 Gb).\n - Use z length modifier in (more) prints for size_t types.\n - Remove chips \u003e16MB again because our current implementation of memory mapping\n   the flash chip violates common rules by mapping a window as large as the chip.\n   This leads to failing mmaps as can be seen here:\n   http://paste.flashrom.org/view.php?id\u003d1695\n - Document spispeed parameter of linux_spi (and fix some leaks).\n - Rephrase the \"multiple chips detected\" message because it was confusing.\n - Skip verification step if the image is equal to the flash contents.\n - Tiny other stuff.\n\nCorresponding to flashrom svn r1702.\n\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "bcb2e5a7080cbe0ff21c8ffa5f77b5ba1ea0c472",
      "tree": "a20f41f2259da0fb66c67af221ff3e9ab00015e3",
      "parents": [
        "6282966cc04525828b96273f373e3b105632776b"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.huber@secunet.com",
        "time": "Sun Dec 30 01:23:17 2012 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sun Dec 30 01:23:17 2012 +0000"
      },
      "message": "Constify parameters and globals\n\nThis makes some stuff const (partially to get a more convenient\nlibflashrom interface).\n\nCorresponding to flashrom svn r1639.\n\nSigned-off-by: Nico Huber \u003cnico.huber@secunet.com\u003e\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\n"
    },
    {
      "commit": "b8911d6cecf5044f3e9c444e3086dd269a0279b1",
      "tree": "0fd10acc1591068806f8118e76f8c4c120783afd",
      "parents": [
        "21541a6b22c0ccbfa6b65a6c1d4a76cfd0360ca2"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Wed Dec 26 07:55:00 2012 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Wed Dec 26 07:55:00 2012 +0000"
      },
      "message": "Fix memleaks in cli_classic.c\n\nFrees the memory allocated for the following strings\n- log file name\n- layout file name\n- image file name\n- programmer parameter (and reset the associated global variable in flashrom.c)\n\nAlso, free the flashchip structs allocated by probe_flash.\n\nThe layout image names were not fixed due to the pending layout patches.\n\nThese bugs were found thanks to valgrind.\n\nCorresponding to flashrom svn r1629.\n\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\n"
    },
    {
      "commit": "b226cb1662a4cfe26effadb893a9ac6feb620470",
      "tree": "5edd9fa22131adf00178348951e0455fd93566c1",
      "parents": [
        "e7a39bfc9206998071bf0d18b2caa66aedaf7a3e"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sat Nov 24 18:59:39 2012 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sat Nov 24 18:59:39 2012 +0000"
      },
      "message": "Improve --help and friends\n\nMore clear \"variable\" names, better explanation if no programmer is selected etc.\n\nCorresponding to flashrom svn r1624.\n\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Paul Menzel \u003cpaulepanter@users.sourceforge.net\u003e\n"
    },
    {
      "commit": "ede2fa4d1e5620978f5d630f0b241b613a5992d3",
      "tree": "8d94e7c1a9bfb6d05e5a79935724688e1d64638f",
      "parents": [
        "d7d423bbc1d2564c60daaecd9ab1dca3843c5fea"
      ],
      "author": {
        "name": "Niklas Söderlund",
        "email": "niso@kth.se",
        "time": "Tue Oct 23 13:06:46 2012 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Tue Oct 23 13:06:46 2012 +0000"
      },
      "message": "Remove exit calls from print_supported_chips\n\nPropagate the error code using return values instead, but let cli_classic.c\nstill decide the ultimate return value of the process.\nAlso, remove setting the ret value again after print_supported_wiki() - \nsuccess is the default.\n\nCorresponding to flashrom svn r1614.\n\nSigned-off-by: Niklas Söderlund \u003cniso@kth.se\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\n"
    },
    {
      "commit": "fd0d41353777804d890caf150c749da928da4d79",
      "tree": "9278307eb81e760066cbe758f227edffa5a790b6",
      "parents": [
        "98feaa5c2cd4f6b217ac0dbf57d1b5254bbdcd81"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Tue Sep 25 21:24:55 2012 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Tue Sep 25 21:24:55 2012 +0000"
      },
      "message": "Introduce a compile time option to select a default programmer\n\nHeavily influenced by a discussion with (and based on code from) Peter Stuge.\nPlease read the comment in the Makefile before using this option.\n\nCorresponding to flashrom svn r1607.\n\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Peter Stuge \u003cpeter@stuge.se\u003e\n"
    },
    {
      "commit": "5a7cb847f096dacb0bf96b3aa909f79d76ae8204",
      "tree": "da511e990c1fdded61ee5dcefae38314c3a5a6cc",
      "parents": [
        "dd73d830f7370b5f0bbdaa0780b0ff8d6ff1776a"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sat Aug 25 01:17:58 2012 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sat Aug 25 01:17:58 2012 +0000"
      },
      "message": "Make struct flashchip a field in struct flashctx instead of a complete copy\n\nAll the driver conversion work and cleanup has been done by Stefan.\nflashrom.c and cli_classic.c are a joint work of Stefan and Carl-Daniel.\n\nCorresponding to flashrom svn r1579.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "4e3391f50510914a20b0b0e6d0ed0d752b011243",
      "tree": "b2c3584edc8b1167b9c8016d8f509b879eff6dca",
      "parents": [
        "d6bb828b017eaf89d5a4c52803ebc0029725383b"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sun Jul 22 12:01:43 2012 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sun Jul 22 12:01:43 2012 +0000"
      },
      "message": "Always require the --programmer parameter if any flash chip access is requested\n\nFix a few man page oddities as well.\n\nCorresponding to flashrom svn r1552.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\n"
    },
    {
      "commit": "1c1554888875840f3d64231978aa891154b05f53",
      "tree": "c51dcfb54bf8bac3933e42b5e07168e74f7439cb",
      "parents": [
        "edab1d2bc08777a8aab639687f220e7dbebd8c1b"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed Jun 06 09:17:06 2012 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed Jun 06 09:17:06 2012 +0000"
      },
      "message": "Add logfile support\n\nUsage: flashrom --output logfile.txt\n\nLogfile output has at least dbg2 verbosity or screen verbosity,\nwhichever is greater.\n\nCorresponding to flashrom svn r1540.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nTested on Linux, Windows and FreeBSD.\nAcked-by: Idwer Vollering \u003cvidwer@gmail.com\u003e\n"
    },
    {
      "commit": "901a3ba023fd64e29309637f5ad835218e1bb2ac",
      "tree": "d0f024b5f8820e6bfdba5d599c607859e2f15a0d",
      "parents": [
        "2cef9164ef1e35e4d1f347ff58722104e8143454"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Mon May 14 22:54:58 2012 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Mon May 14 22:54:58 2012 +0000"
      },
      "message": "Convert printf to msg_* where appropriate\n\nClean up cli_output.c to be more readable.\nUse enum instead of #define for message levels.\nKill a few exit(0) calls.\nPrint the command line arguments in verbose mode.\nMove actions (--list-supported etc.) after argument sanity checks.\nReduce the number of code paths which have their own\nprogrammer_shutdown().\n\nCorresponding to flashrom svn r1536.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\n"
    },
    {
      "commit": "b428e97cb1fcd8937b5a2cb75317acc4d4e4390a",
      "tree": "f82c61c4dfb3dec5c7d1c6f061fb65cc0d791028",
      "parents": [
        "5b5547126d9e80ce6e9c8572b7eb810990618b57"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Thu Feb 16 20:31:25 2012 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Thu Feb 16 20:31:25 2012 +0000"
      },
      "message": "Reenable forced read\n\nForced read functionality was disabled when programmer registration was\nmerged in r1475.\n\nWe now support registering more than one controller at once for each bus\ntype. This can happen e.g. if one SPI controller has an attached flash\nchip and one controller doesn\u0027t. In such a case we rely on the probe\nmechanism to find exactly one chip, and the probe mechanism will\nremember which controller/bus the flash chip is attached to. A forced\nread does not have the luxury of knowing which compatible controller to\nuse, so this case is handled by always picking the first one. That may\nor may not be the correct one, but there is no way (yet) to specify\nwhich controller a flash chip is attached to.\n\nCorresponding to flashrom svn r1496.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\n"
    },
    {
      "commit": "4628445ccbac208840614527d332fb8f59c3f687",
      "tree": "8d36cfbbef0787c3884ab3265ff63ebd213a542d",
      "parents": [
        "2d927fbd7bbfd6d03280757d447991a60c690c6e"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed Jan 11 02:10:11 2012 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed Jan 11 02:10:11 2012 +0000"
      },
      "message": "Postpone layout file reading\n\nLayout file reading should happen after option parsing like all other\nfile accesses.\nGuard against multiple --layout parameters.\n\nFollowup fix for r1483: Remove -m short option from getopt.\n\nCorresponding to flashrom svn r1484.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\n"
    },
    {
      "commit": "2d927fbd7bbfd6d03280757d447991a60c690c6e",
      "tree": "7f14a4305d587d4ff56c1b3f764a9016dba5d03b",
      "parents": [
        "9bcf2684d7781de71551ab14d3c3be46890ca432"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed Jan 04 00:48:27 2012 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed Jan 04 00:48:27 2012 +0000"
      },
      "message": "Replace --mainboard with -p internal:mainboard\n\nNOTE:\nThe --list-supported-wiki output changed to use -p internal:mainboard\u003d\ninstead of -m\nThe --list-supported output changed the heading of the mainboard list\nfrom\n\nVendor Board   Status  Required option\nto\nVendor Board   Status  Required value for\n                       -p internal:mainboard\u003d\n\nFix lb_vendor_dev_from_string() not to write to the supplied string.\n\nCorresponding to flashrom svn r1483.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\n"
    },
    {
      "commit": "9bcf2684d7781de71551ab14d3c3be46890ca432",
      "tree": "20ffb99db71ee422b2196d82742fdc2197ab40e7",
      "parents": [
        "104b0d9f1e1e41bda61f82a688971f3a31074d73"
      ],
      "author": {
        "name": "Louis Yung-Chieh Lo",
        "email": "yjlou@chromium.org",
        "time": "Sun Dec 25 09:12:16 2011 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sun Dec 25 09:12:16 2011 +0000"
      },
      "message": "Add deferred --image processing\n\nThe general idea and most of the code are based on the following\ncommits in the chromiumos flashrom tree:\n\nCorresponding to flashrom svn r1482.\n\n8fc0740356ca15d02fb1c65ab43b10844f148c3b\nbb9049c66ca55e0dc621dd2c70b5d2cb6e5179bf\nSigned-off-by: Louis Yung-Chieh Lo \u003cyjlou@chromium.org\u003e\n\nand the main part:\nd0ea9ed71e7f86bb8e8db2ca7c32a96de25343d8\nSigned-off-by: David Hendricks \u003cdhendrix@chromium.org\u003e\n\nThis implementation does not defer the processing until doit(), but after the\nargument parsing loop only (doit() should not contain argument checks).\n\nThis allows to specify -i and -l parameters in any order.\n\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: David Hendricks \u003cdhendrix@google.com\u003e\n"
    },
    {
      "commit": "222bf1013f39808e42479cd2f1cc2687cc59e657",
      "tree": "ea9c5b838bc0cc30b373d6450e1c705f18bab638",
      "parents": [
        "3cf335eba0067ad44bb32957a841decf1a52bc59"
      ],
      "author": {
        "name": "Michael Karcher",
        "email": "flashrom@mkarcher.dialup.fu-berlin.de",
        "time": "Thu Dec 22 23:27:03 2011 +0000"
      },
      "committer": {
        "name": "Michael Karcher",
        "email": "flashrom@mkarcher.dialup.fu-berlin.de",
        "time": "Thu Dec 22 23:27:03 2011 +0000"
      },
      "message": "Fix programmer-centric probe (patch v2)\n\nAs reported by Stefan Tauner on IRC, the new programmer-centric logic\nis broken by re-using occupied members of the flashes array when changing\nto the next programmer. This fixes it.\n\npatch v2:\n  prevent probing one chip per programmer even if the array is full. Using\n  a do-while loop was a bad idea.\n\nCorresponding to flashrom svn r1479.\n\nSigned-off-by: Michael Karcher \u003cflashrom@mkarcher.dialup.fu-berlin.de\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "c40cff7b86848f5b248d7fcf20f7d517b60c385d",
      "tree": "7f9db61c7b4868e513c4702cfe57bb35ae695266",
      "parents": [
        "8a3c60cdd0e5632173567923ae1927763e31e857"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Tue Dec 20 00:19:29 2011 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Tue Dec 20 00:19:29 2011 +0000"
      },
      "message": "Have all programmer init functions register bus masters/programmers\n\nAll programmer types (Parallel, SPI, Opaque) now register themselves\ninto a generic programmer list and probing is now programmer-centric\ninstead of chip-centric.\nRegistering multiple SPI/... masters at the same time is now possible\nwithout any problems. Handling multiple flash chips is still unchanged,\nbut now we have the infrastructure to deal with \"dual BIOS\" and \"one\nflash behind southbridge and one flash behind EC\" sanely.\n\nA nice side effect is that this patch kills quite a few global variables\nand improves the situation for libflashrom.\n\nHint for developers:\nstruct {spi,par,opaque}_programmer now have a void *data pointer to\nstore any additional programmer-specific data, e.g. hardware\nconfiguration info.\n\nNote:\nflashrom -f -c FOO -r forced_read.bin\ndoes not work anymore. We have to find an architecturally clean way to\nsolve this.\n\nCorresponding to flashrom svn r1475.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Michael Karcher \u003cflashrom@mkarcher.dialup.fu-berlin.de\u003e\n"
    },
    {
      "commit": "63fd9026f1e82b67a65072fda862ba7af35839e1",
      "tree": "7d9ffba077715cf9e75c9f4a36d0d7f11a3181f6",
      "parents": [
        "83c92e983aaf11fb6f5bafb6744275c50add193c"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed Dec 14 22:25:15 2011 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed Dec 14 22:25:15 2011 +0000"
      },
      "message": "Use struct flashctx instead of struct flashchip for flash chip access\n\nStruct flashchip is used only for the flashchips array and for\noperations which do not access hardware, e.g. printing a list of\nsupported flash chips.\n\nstruct flashctx (flash context) contains all data available in\nstruct flashchip, but it also contains runtime information like\nmapping addresses. struct flashctx is expected to grow additional\nmembers over time, a prime candidate being programmer info.\nstruct flashctx contains all of struct flashchip with identical\nmember layout, but struct flashctx has additional members at the end.\n\nThe separation between struct flashchip/flashctx shrinks the memory\nrequirement of the big flashchips array and allows future extension\nof flashctx without having to worry about bloat.\n\nCorresponding to flashrom svn r1473.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Michael Karcher \u003cflashrom@mkarcher.dialup.fu-berlin.de\u003e\n"
    },
    {
      "commit": "eaacd2d4e7485d747e4e0bbd54b7bb44cf3fd179",
      "tree": "5e023363074cbe351bc6ded9f20c3f116e6c6f1c",
      "parents": [
        "f382e352ac63108ec0f912ff52b538c99f46c340"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed Nov 09 23:40:00 2011 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed Nov 09 23:40:00 2011 +0000"
      },
      "message": "Register Parallel/LPC/FWH programmers the same way SPI programmers are registered\n\nAll programmers are now calling programmer registration functions and\ndirect manipulations of buses_supported are not needed/possible anymore.\n\nNote: Programmers without parallel/LPC/FWH chip support should not call\nregister_par_programmer().\n\nAdditional fixes:\nSet max_rom_decode.parallel for drkaiser.\nRemove abuse of programmer_map_flash_region in it85spi.\nAnnotate several FIXMEs in it85spi.\n\nCorresponding to flashrom svn r1463.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Michael Karcher \u003cflashrom@mkarcher.dialup.fu-berlin.de\u003e\n"
    },
    {
      "commit": "1d947633b6ff7a3aaad954e15804fa42d2592023",
      "tree": "5e6101bac2850ee22a933a9b08404de9c3fb76f7",
      "parents": [
        "d5c4ab4cfd0de7427e2781fdc2f7a179865c5bc6"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sun Sep 11 22:08:58 2011 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Sun Sep 11 22:08:58 2011 +0000"
      },
      "message": "Print out the flash chip found after the probing loop in verbose mode\n\nThis allows easier identification of the flash chip used in verbose logs.\nThere is no (additional) output if\n* -c is used to specify a flash chip, or\n* multiple chips are detected, or\n* no chips are detected.\n\nCorresponding to flashrom svn r1436.\n\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\n"
    },
    {
      "commit": "2e681601b10c26e0293f285dfcb17d006349e450",
      "tree": "c4bbc8a1958eeae3521810d75d2b90f4bd85625c",
      "parents": [
        "cb24ddbe128eb2ad7ef6e0ef11c4cec461dbbe44"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Thu Sep 08 00:00:29 2011 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Thu Sep 08 00:00:29 2011 +0000"
      },
      "message": "Change programmer selection in cli and generic code\n\nBugfix: Do not accept multiple conflicting --programmer selections.\nRestriction: Do not accept multiple --programmer selections even if\n  there is no conflict.\nUnexport the programmer variable.\nprogrammer_init requires the programmer as first parameter.\nThe default programmer selection is now part of cli_classic.\n\nCorresponding to flashrom svn r1433.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\n"
    },
    {
      "commit": "394ee7832569431352d5f6f70ab345a6b4dd9fa8",
      "tree": "ba86f5ee0e7e5a7ae38a836f95925ef0fdbeaae9",
      "parents": [
        "56787086e3c1f5a33e0d6296818dd36951217db7"
      ],
      "author": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Sat Aug 20 14:14:22 2011 +0000"
      },
      "committer": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Sat Aug 20 14:14:22 2011 +0000"
      },
      "message": "Move the main() function from flashrom.c to cli_classic.c\n\nThe file flashrom.c is part of libflashrom and should thus not contain a\nmain() function, that would break compilation of all frontends using\nlibflashrom. Also, cli_classic.c is the right place anyway, as it\u0027s the\nmain() of the CLI tool.\n\nRename the simple wrapper cli_classic() in cli_classic.c to main(), as\nit\u0027s not really needed.\n\nCorresponding to flashrom svn r1417.\n\nSigned-off-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\n"
    },
    {
      "commit": "082c8b559cd9f3262c9af58ac2f17f2cc8a09d8b",
      "tree": "ce63847ee6cc1e63289e3f658a5d57ebd35b3619",
      "parents": [
        "0528b7fefa6daf35365c1dee0d21bc94e8120f78"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Mon Aug 15 19:54:20 2011 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Mon Aug 15 19:54:20 2011 +0000"
      },
      "message": "Fixup of r1397\n\n- Mixing uninitialized and initialized local variables leads to\n  confusion.\n- ft2232_spi error cases should have gotten some error handling, and\n  that\u0027s the reason the curly braces were there.\n- Fixing typos/wording in some places would have been nice given that\n  those places were touched anyway.\n\nCorresponding to flashrom svn r1413.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\n"
    },
    {
      "commit": "91f4afa1108a35783e9d3d546fe8ea41dc87708f",
      "tree": "a94991ce77532b8767d5d3c6ac0e9ab58f4b9a2c",
      "parents": [
        "1a227954f2c7d0a25d42bcea2ea0b901ceb0f464"
      ],
      "author": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Thu Jul 28 08:13:25 2011 +0000"
      },
      "committer": {
        "name": "Uwe Hermann",
        "email": "uwe@hermann-uwe.de",
        "time": "Thu Jul 28 08:13:25 2011 +0000"
      },
      "message": "Random whitespace and coding-style fixes\n\nAlso, indentation fixes, e.g. due to conversion to msg_*, use ARRAY_SIZE\nwhere possible, wrap overly long line, etc.\n\nCompile-tested. There should be no functional changes.\n\nCorresponding to flashrom svn r1397.\n\nSigned-off-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\nAcked-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\n"
    },
    {
      "commit": "716e09848a85d1b79dd1a4a6ec20707febeee2f0",
      "tree": "5ff0e8e70159b87f162eac1332696c00ae8b4d27",
      "parents": [
        "a08d0f2242a0a5370ed00e6f26be7aef977dd028"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Mon Jul 25 20:38:52 2011 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Mon Jul 25 20:38:52 2011 +0000"
      },
      "message": "Add a bunch of new/tested stuff and various small changes 5\n\n- mark EN25F80 as fully tested\n  http://www.flashrom.org/pipermail/flashrom/2011-July/007329.html\n- mark W25Q16 as fully tested\n  http://www.flashrom.org/pipermail/flashrom/2011-July/007151.html\n- mark W39V040A as fully tested\n  http://www.flashrom.org/pipermail/flashrom/2011-July/007161.html\n- mark Pm25LV040 as fully tested\n  reported by TL1 on IRC\n- mark W49F002U/N as fully tested\n  http://paste.flashrom.org/view.php?id\u003d733g\n- mark W39V080FA as fully tested\n  http://www.flashrom.org/pipermail/flashrom/2011-July/007225.html\n\n- add ASUS P4S533-X to the list of supported boards\n  http://www.flashrom.org/pipermail/flashrom/2011-July/007200.html\n- add ASUS M4A785TD-V EVO to the list of supported boards\n  http://www.flashrom.org/pipermail/flashrom/2011-July/007329.html\n- add GA-945PL-S3P (rev. 6.6) to the list of supported boards\n  reported by TL1 on IRC\n- add MS-7142 (K8MM-V) to the list of supported boards\n  http://www.flashrom.org/pipermail/flashrom/2011-July/007161.html\n- add MS-7369 (K9N Neo V2) to the list of supported boards\n  http://www.flashrom.org/pipermail/flashrom/2011-July/007181.html\n- add X7DBT-INF to the list of supported boards\n  http://www.flashrom.org/pipermail/flashrom/2011-July/007225.html\n\n- mark SiS 645DX chipset enable as OK\n  http://www.flashrom.org/pipermail/flashrom/2011-July/007200.html\n- mark SiS 651 chipset enable as OK\n  http://paste.flashrom.org/view.php?id\u003d733\n\n- move intel_ich_gpio34_raise to the correct line(s)\n- change the output of unlock_w39_fwh_block from 0x%x to 0x%08x\n- fix output for untested chipset enables (missing space)\n- reorder the board enable in print.c entry for GA-8SIMLH added in r1385.\n- minor other fixes\n\n- fix output for multiple found flash chips by adding quotes and commas\n- similarly fix output of \"Found/Assuming\" chips\n\nCorresponding to flashrom svn r1386.\n\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nthe last two points are\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\neverything else is\nAcked-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\n"
    },
    {
      "commit": "1a30d50ad8ff0fa304c9f858e6e0510ce8cbe93a",
      "tree": "202c7c7cf3d6e4057675ea82083199d63d6c8b75",
      "parents": [
        "d5660141ec26bad821c90596a0f0b3db7fa35971"
      ],
      "author": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Tue Jul 19 07:58:06 2011 +0000"
      },
      "committer": {
        "name": "Stefan Tauner",
        "email": "stefan.tauner@alumni.tuwien.ac.at",
        "time": "Tue Jul 19 07:58:06 2011 +0000"
      },
      "message": "Fix a bug breaking layout file handling in r1373\n\nFlorian Zumbiehl discovered that we have broken the -i switch in the\nlast commit resulting in self-contradictory output:\nhttp://paste.flashrom.org/view.php?id\u003d707\n\nCorresponding to flashrom svn r1374.\n\nSigned-off-by: Stefan Tauner \u003cstefan.tauner@alumni.tuwien.ac.at\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "d5660141ec26bad821c90596a0f0b3db7fa35971",
      "tree": "ca25f15fa4cf9714c7e373d51b16058c5c271a49",
      "parents": [
        "25b5a597e1cb72e0e33f1156f84ed59bb9fac35c"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Fri Jul 15 23:47:45 2011 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Fri Jul 15 23:47:45 2011 +0000"
      },
      "message": "Fix and clean up cli_classic.c\n\nDon\u0027t ignore -i if it is specified before -l\nCheck if image mentioned by -i is present in layout file\nConsolidate duplicated programmer_shutdown calls\nKill outdated comments\nFinish parameter checking before -L/-z is executed\n\nCorresponding to flashrom svn r1373.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: David Hendricks \u003cdhendrix@google.com\u003e\n"
    },
    {
      "commit": "8bb2021d77c8ee213b53d671687b7a1179335522",
      "tree": "a77cc4239b59731e98cf6c9681b5a7c665613038",
      "parents": [
        "9d9a1042332cd08aa66eee6f37d80c0f09f47d70"
      ],
      "author": {
        "name": "David Hendricks",
        "email": "dhendrix@google.com",
        "time": "Tue Jun 14 01:35:36 2011 +0000"
      },
      "committer": {
        "name": "David Hendricks",
        "email": "david.hendricks@gmail.com",
        "time": "Tue Jun 14 01:35:36 2011 +0000"
      },
      "message": "Use shutdown callback mechanism to shutdown programmers\n\nThis patch attempts to resolve some programmer shutdown ordering issues\nby having the programmer init functions register shutdown callbacks explicitly\nwherever it makes most sense. Before, assumptions were made that could lead to\nthe internal programmer\u0027s state changing before the external programmer could be\nshut down properly. Now, each programmer cleans up after itself and (hopefully)\nperforms each operation in the correct order.\n\nAs a side-effect, this patch gives us a better usage model for reverse\noperations such as rpci_* and rmmio_*. In the long-run, this should make\nreversing the initialization process easier to understand, less tedious, and\nless error-prone.\n\nIn short, this patch does the following:\n- Registers a shutdown callback during initialization for each programmer.\n- Kills the .shutdown function pointer from programmer_entry struct. Also,\n  make most shutdown functions static.\n- Adds a few minor clean-ups and corrections (e.g. missing physunmap() calls).\n\nTODO: Remove forward declaration of serprog_shutdown() (added to simplify diff)\n\nCorresponding to flashrom svn r1338.\n\nSigned-off-by: David Hendricks \u003cdhendrix@google.com\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n"
    },
    {
      "commit": "064bbc9f37bfcda7e9647e1d895d51747fcc19c9",
      "tree": "b79b459262f18354c0c602b107917e614b4a201c",
      "parents": [
        "dec9cec86e919d2b8a524c1bc6d82bf13b865eb6"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sat May 07 19:19:36 2011 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Sat May 07 19:19:36 2011 +0000"
      },
      "message": "Fix multiple detection of the same chip\n\nr1293 introduced a bug which caused probing to loop at the first found\nchip.\n\nCorresponding to flashrom svn r1296.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Idwer Vollering \u003cvidwer@gmail.com\u003e\n"
    },
    {
      "commit": "4c82318e4ac57b6da384700fb9d454535b62b3ae",
      "tree": "7d92a35b73cef6e339d3dfe1d3635c5843250046",
      "parents": [
        "54ce73a1f5c7ddecc7579c136dbac9c2c201b621"
      ],
      "author": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed May 04 00:39:50 2011 +0000"
      },
      "committer": {
        "name": "Carl-Daniel Hailfinger",
        "email": "c-d.hailfinger.devel.2006@gmx.net",
        "time": "Wed May 04 00:39:50 2011 +0000"
      },
      "message": "Constify flashchips array\n\nThis moves 99.5% of the .data section to .rodata (which ends up in .text).\n\nCorresponding to flashrom svn r1293.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Stefan Reinauer \u003cstefan.reinauer@coreboot.org\u003e\n"
    },
    {
      "commit": "73f8ec8b1e623681c8d6f3a9df142da2a8bed7e3",
      "tree": "4736c1577d6fcb12ce297b723b9a95a1310a1fd8",
      "parents": [
        "ff30d8a5383553d4df035cdcf0e24a0b44d4241a"
      ],
      "author": {
        "name": "Peter Huewe",
        "email": "peterhuewe@gmx.de",
        "time": "Mon Jan 24 19:15:51 2011 +0000"
      },
      "committer": {
        "name": "Stefan Reinauer",
        "email": "stefan.reinauer@coreboot.org",
        "time": "Mon Jan 24 19:15:51 2011 +0000"
      },
      "message": "Fix sparse warning: Using plain integer as NULL pointer\n\nThis patch fixes the \"using plain integer as NULL pointer\" warnings\ngenerated by running sparse on the flashrom source.\n\nCorresponding to flashrom svn r1255.\n\nSigned-off-by: Peter Huewe \u003cpeterhuewe@gmx.de\u003e\nAcked-by: Mathias Krause \u003cmathias.krause@secunet.com\u003e\nAcked-by: Stefan Reinauer \u003cstepan@coreboot.org\u003e\n"
    }
  ],
  "next": "a60faab83ef86bcf2884311db07cf13f445d7f47"
}
