)]}'
{
  "commit": "972cec282c061dadd3c501221d20d8b6437057e7",
  "tree": "10dd150d40a182f9911df4020e2b004ef097f17e",
  "parents": [
    "1db2b759026debc8f1cd45f3182b9e14124f9c7e"
  ],
  "author": {
    "name": "Michael Karcher",
    "email": "flashrom@mkarcher.dialup.fu-berlin.de",
    "time": "Thu Nov 26 14:50:52 2009 +0000"
  },
  "committer": {
    "name": "Carl-Daniel Hailfinger",
    "email": "c-d.hailfinger.devel.2006@gmx.net",
    "time": "Thu Nov 26 14:50:52 2009 +0000"
  },
  "message": "Refine support for the JEDEC Software Data Protection\n\nThis patch removes the extremely dangerous unprotect_jedec function\nwhich is not used at all within flashrom code, and renames the\nmisleadingly named protect_jedec function to start_program_jedec.\n\nCalls to protect_jedec after flashing are removed, because a) on LPC\nchips, the command sent by protoct_jedec is not even in the datasheet\nand b) on parallel chips, the block write command issued before already\ncontained the software protection sequence, so software protection is\ndefinitely enabled.\n\nThis patch also removes two clones of protect_jedec\n\nBackground: JEDEC Software Data Protection started as an optional\nfeature, which was disabled on the first single-voltage-flash chips.\nThe software data protection is the need to prefix a write with a magic\n\"write enable\" command, while without write protection every write\naccess into the chip\u0027s address space modifies flash content. This magic\nwrite enable command also tells the flash chip that the programmer\nobviously support sending write-enable commands and turns off the \"any\nwrite modifies flash content\" mode. There also exist a two-command (6\nwrites) sequence that disables Software Data Protection completey, which\nshould only ever be used to prepare updating with a device that can\u0027t\nhandle software data protection.\n\nCorresponding to flashrom svn r783.\n\nSigned-off-by: Michael Karcher \u003cflashrom@mkarcher.dialup.fu-berlin.de\u003e\nAcked-by: Sean Nelson \u003caudiohacked@gmail.com\u003e\nAcked-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b274d56c049344318c15de23a2b84310cf8810b6",
      "old_mode": 33188,
      "old_path": "82802ab.c",
      "new_id": "58d3467324f21f111d58b69cedadfaac1b25e210",
      "new_mode": 33188,
      "new_path": "82802ab.c"
    },
    {
      "type": "modify",
      "old_id": "008af2840dff6607b8f46d1d29089a206a3d237c",
      "old_mode": 33188,
      "old_path": "flash.h",
      "new_id": "1a1d8f851dcc32c68e33a942343676e98a0320f2",
      "new_mode": 33188,
      "new_path": "flash.h"
    },
    {
      "type": "modify",
      "old_id": "f352c6be080f28c3ed379b5a15ad20668ccc388a",
      "old_mode": 33188,
      "old_path": "jedec.c",
      "new_id": "0a5eda0cab4e6343863ff6605b8754f5d02fadc2",
      "new_mode": 33188,
      "new_path": "jedec.c"
    },
    {
      "type": "modify",
      "old_id": "28e5da451353d72051460545adbee9b781e16314",
      "old_mode": 33188,
      "old_path": "m29f400bt.c",
      "new_id": "5c36db9679c208b62ce21082733d943e14263314",
      "new_mode": 33188,
      "new_path": "m29f400bt.c"
    },
    {
      "type": "modify",
      "old_id": "c4c0f03e8c10c85d1ceca40be9ef590dd93656ae",
      "old_mode": 33188,
      "old_path": "sharplhf00l04.c",
      "new_id": "1234ae4fdd1bd923c3b5fa9b4e824963c8302804",
      "new_mode": 33188,
      "new_path": "sharplhf00l04.c"
    },
    {
      "type": "modify",
      "old_id": "44819e5e5ccb465823c41e6e6ea15114d00508dd",
      "old_mode": 33188,
      "old_path": "stm50flw0x0x.c",
      "new_id": "0ae6eb814d4ef7518a6bdf8571b39bb177267be4",
      "new_mode": 33188,
      "new_path": "stm50flw0x0x.c"
    }
  ]
}
