)]}'
{"id":"openocd~master~Ifb22e6149939d893f386706e99b928691ec1d41b","project":"openocd","branch":"master","attention_set":{},"removed_from_attention_set":{"1001929":{"account":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"last_update":"2021-12-23 18:47:39.000000000","reason":"Doug Brunner replied on the change"},"1000697":{"account":{"_account_id":1000697,"name":"Fredrik Hederstierna","email":"fredrik.hederstierna@gmail.com"},"last_update":"2021-12-15 17:49:56.000000000","reason":"Fredrik Hederstierna replied on the change"},"1000687":{"account":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"last_update":"2022-01-05 17:57:08.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"Ifb22e6149939d893f386706e99b928691ec1d41b","subject":"flash/nor/efr32: fixed lockbits and user data","status":"MERGED","created":"2021-10-26 00:38:30.000000000","updated":"2022-01-05 17:57:08.000000000","submitted":"2022-01-05 17:57:08.000000000","submitter":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"total_comment_count":19,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"6665","meta_rev_id":"a22a5fd352e829a0891f5c8fd0d504536b8912ca","_number":6665,"owner":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":1000697,"name":"Fredrik Hederstierna","email":"fredrik.hederstierna@gmail.com"},{"value":0,"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},{"tag":"autogenerated:gerrit:merged","value":1,"date":"2022-01-05 17:57:08.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]}],"values":{"-1":"Fails"," 0":"No score","+1":"Verified"},"description":"","default_value":0},"Code-Review":{"approved":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"all":[{"tag":"autogenerated:gerrit:merged","value":1,"date":"2022-01-05 17:57:08.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":1000697,"name":"Fredrik Hederstierna","email":"fredrik.hederstierna@gmail.com"},{"tag":"autogenerated:gerrit:merged","value":2,"date":"2022-01-05 17:57:08.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},{"value":0,"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]}],"values":{"-2":"This shall not be merged","-1":"I would prefer this is not merged as is"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me, approved"},"description":"","default_value":0}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},{"_account_id":1000697,"name":"Fredrik Hederstierna","email":"fredrik.hederstierna@gmail.com"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2021-10-26 01:27:22.000000000","updated_by":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"reviewer":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2021-11-06 01:03:25.000000000","updated_by":{"_account_id":1000697,"name":"Fredrik Hederstierna","email":"fredrik.hederstierna@gmail.com"},"reviewer":{"_account_id":1000697,"name":"Fredrik Hederstierna","email":"fredrik.hederstierna@gmail.com"},"state":"CC"},{"updated":"2021-11-08 06:25:02.000000000","updated_by":{"_account_id":1000697,"name":"Fredrik Hederstierna","email":"fredrik.hederstierna@gmail.com"},"reviewer":{"_account_id":1000697,"name":"Fredrik Hederstierna","email":"fredrik.hederstierna@gmail.com"},"state":"REVIEWER"},{"updated":"2021-11-08 16:46:41.000000000","updated_by":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"reviewer":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"state":"CC"},{"updated":"2021-12-23 14:57:55.000000000","updated_by":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"reviewer":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"state":"REVIEWER"}],"messages":[{"id":"fe3b323fdca6daa55a8360e79d0da199409f5a6a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"real_author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"date":"2021-10-26 00:38:30.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"e6fe20d6b94a8ca986f2a9f282852a0d2d906bdf","author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"real_author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"date":"2021-10-26 01:27:22.000000000","message":"Patch Set 1: Verified+1\n\nBuild Successful \n\nhttps://build.openocd.org/job/openocd-gerrit/15439/ : SUCCESS\n\nhttps://build.openocd.org/job/openocd-gerrit-build/14657/ : SUCCESS","accounts_in_message":[],"_revision_number":1},{"id":"a28bf619d5ff704453f66ffd206bad81ef9771d3","author":{"_account_id":1000697,"name":"Fredrik Hederstierna","email":"fredrik.hederstierna@gmail.com"},"real_author":{"_account_id":1000697,"name":"Fredrik Hederstierna","email":"fredrik.hederstierna@gmail.com"},"date":"2021-11-06 01:03:25.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"b3fc5ba30068912d3125904cbb73ec5484d0f739","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"real_author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"date":"2021-11-06 23:09:01.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"939c2dbb07af1d1e83ebffd961e17c51ffe4195d","author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"real_author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"date":"2021-11-06 23:10:27.000000000","message":"Patch Set 2:\n\n(2 comments)","accounts_in_message":[],"_revision_number":2},{"id":"43fc50bd2cff799fa21fa9d12b8883c70d6ca564","author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"real_author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"date":"2021-11-06 23:19:46.000000000","message":"Patch Set 2: Verified-1\n\nBuild Failed \n\nhttps://build.openocd.org/job/openocd-gerrit/15453/ : FAILURE\n\nhttps://build.openocd.org/job/openocd-gerrit-build/14671/ : FAILURE","accounts_in_message":[],"_revision_number":2},{"id":"59e68ff8716ab6e3d2bd4303d1f84d8dc4054243","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"real_author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"date":"2021-11-07 00:53:14.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"6fe9fdf0b1a068e5451985e45f383d6dffa199fd","author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"real_author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"date":"2021-11-07 01:08:40.000000000","message":"Patch Set 3: Verified+1\n\nBuild Successful \n\nhttps://build.openocd.org/job/openocd-gerrit/15454/ : SUCCESS\n\nhttps://build.openocd.org/job/openocd-gerrit-build/14672/ : SUCCESS","accounts_in_message":[],"_revision_number":3},{"id":"9a2dc3e6272296b6e5fe70938e6b5f22665a8b64","author":{"_account_id":1000697,"name":"Fredrik Hederstierna","email":"fredrik.hederstierna@gmail.com"},"real_author":{"_account_id":1000697,"name":"Fredrik Hederstierna","email":"fredrik.hederstierna@gmail.com"},"date":"2021-11-08 06:25:02.000000000","message":"Patch Set 3: Code-Review+1","accounts_in_message":[],"_revision_number":3},{"id":"08cb2b2f0a256055ca249cf2ea10ec1d5363e65e","author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"real_author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"date":"2021-11-08 16:46:41.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"154948e4680d657b930dc98bea2b432f08b1236b","author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"real_author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"date":"2021-11-08 21:28:23.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"3fd1e37a54a0b1c5b78674f41a8b7a097ca7fa50","author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"real_author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"date":"2021-11-08 21:55:55.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"15b84614c842e76d41422924391220d2ce119b01","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"real_author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"date":"2021-11-12 01:58:36.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"89b6284c2a9eb1b998d8c09250570ae39fcd2b2c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"real_author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"date":"2021-11-12 02:11:25.000000000","message":"Uploaded patch set 5: Commit message was updated.","accounts_in_message":[],"_revision_number":5},{"id":"0af3e25e2c4e67a019e308e9e74a02f5681bb7f9","author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"real_author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"date":"2021-11-12 02:14:10.000000000","message":"Patch Set 4: Verified-1\n\nBuild Failed \n\nhttps://build.openocd.org/job/openocd-gerrit-build/14735/ : ABORTED\n\nhttps://build.openocd.org/job/openocd-gerrit/15517/ : SUCCESS","accounts_in_message":[],"_revision_number":4},{"id":"46e9e1c2e144be5aea02d043c62264d300ce274d","author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"real_author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"date":"2021-11-12 02:26:23.000000000","message":"Patch Set 5: Verified+1\n\nBuild Successful \n\nhttps://build.openocd.org/job/openocd-gerrit/15518/ : SUCCESS\n\nhttps://build.openocd.org/job/openocd-gerrit-build/14736/ : SUCCESS","accounts_in_message":[],"_revision_number":5},{"id":"77244eba2d412c9f13f9fd213607dbeb2186ad24","author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"real_author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"date":"2021-11-12 02:35:11.000000000","message":"Patch Set 5:\n\n(2 comments)","accounts_in_message":[],"_revision_number":5},{"id":"f541669e2479426ffa6cf53bf80473412b4abcb3","author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"real_author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"date":"2021-11-29 22:18:52.000000000","message":"Patch Set 5:\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"3ba692f7c4f1e7e7b926865b9f02e2f0aec2f4b9","author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"real_author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"date":"2021-11-30 07:13:16.000000000","message":"Patch Set 5:\n\n(2 comments)","accounts_in_message":[],"_revision_number":5},{"id":"d1055a1454a99f875e67bcebd3de8e84d32c96d2","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"real_author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"date":"2021-12-09 20:57:06.000000000","message":"Uploaded patch set 6.","accounts_in_message":[],"_revision_number":6},{"id":"520f799ea1925d73f64473c3469a23029e6a0a77","author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"real_author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"date":"2021-12-09 20:59:35.000000000","message":"Patch Set 6:\n\n(3 comments)","accounts_in_message":[],"_revision_number":6},{"id":"e85c4be0f732caab61845560a2085252a8163a74","author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"real_author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"date":"2021-12-09 21:16:33.000000000","message":"Patch Set 6: Verified+1\n\nBuild Successful \n\nhttps://build.openocd.org/job/openocd-gerrit/15691/ : SUCCESS\n\nhttps://build.openocd.org/job/openocd-gerrit-build/14908/ : SUCCESS","accounts_in_message":[],"_revision_number":6},{"id":"48297b1f8108bef4a34776132366b29e541fb6b4","author":{"_account_id":1000697,"name":"Fredrik Hederstierna","email":"fredrik.hederstierna@gmail.com"},"real_author":{"_account_id":1000697,"name":"Fredrik Hederstierna","email":"fredrik.hederstierna@gmail.com"},"date":"2021-12-15 17:49:56.000000000","message":"Patch Set 6: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"f100079e49c0923f0c2f9a0aad34fef98bdebcb7","author":{"_account_id":1000697,"name":"Fredrik Hederstierna","email":"fredrik.hederstierna@gmail.com"},"real_author":{"_account_id":1000697,"name":"Fredrik Hederstierna","email":"fredrik.hederstierna@gmail.com"},"date":"2021-12-15 17:53:57.000000000","message":"Patch Set 6:\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"6aaf5169a32a403bc7a7fbee5da97723dcef8118","author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"real_author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"date":"2021-12-21 23:45:27.000000000","message":"Patch Set 6:\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"e29e5c1e17bc1f05ea42dcce1b97c980c340b906","author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"real_author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"date":"2021-12-23 14:57:55.000000000","message":"Patch Set 6: Code-Review+2","accounts_in_message":[],"_revision_number":6},{"id":"b3234eb800464c287b20d702068e08e37f8db4c3","author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"real_author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"date":"2021-12-23 18:47:39.000000000","message":"Patch Set 6:\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"62ec2b6a32f59cf046e9a1d6405b841112b4e972","author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"real_author":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"date":"2022-01-05 17:44:33.000000000","message":"Patch Set 6:\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"a22a5fd352e829a0891f5c8fd0d504536b8912ca","tag":"autogenerated:gerrit:merged","author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"real_author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"date":"2022-01-05 17:57:08.000000000","message":"Change has been successfully cherry-picked as aad87180586a43500f8af1cf79255c7293bb258b","accounts_in_message":[],"_revision_number":7}],"current_revision":"aad87180586a43500f8af1cf79255c7293bb258b","revisions":{"aad87180586a43500f8af1cf79255c7293bb258b":{"kind":"REWORK","_number":7,"created":"2022-01-05 17:57:08.000000000","uploader":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"ref":"refs/changes/65/6665/7","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/65/6665/7","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/7 \u0026\u0026 git checkout -b change-6665 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/65/6665/7","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/7 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"d27d66bc1bdbef0cbfe43d88597576e173317c01","subject":"Document how vector registers are exposed to gdb."}],"author":{"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","date":"2021-10-25 17:15:07.000000000","tz":-420},"committer":{"name":"Tomas Vanek","email":"vanekt@fbl.cz","date":"2022-01-05 17:57:08.000000000","tz":0},"subject":"flash/nor/efr32: fixed lockbits and user data","message":"flash/nor/efr32: fixed lockbits and user data\n\nChanged flash driver to support writing to the user data page, as well as to any portion of the lockbits page above 512 bytes (the amount used for the actual page lock words). The top part of the lockbits page is used on at least the EFR32xG1 chips for the SiLabs bootloader encryption keys.\n\nAs presented to the user, the lockbits page is the same size as the other pages, but any attempt to write to its low 512 bytes is an error. To enforce this, efr32x_write is renamed to efm32x_priv_write and a wrapper function is provided in its place. If the user erases the lockbits page, the driver rewrites the cached lock words after the erase. When the driver erases the lockbits page in order to update the lock words, it first takes a copy of anything stored in the top part of the page, and re-programs it after the erase operation.\n\nThere are now multiple instances of flash_bank for each target, and the flash_bank instances must share their cached lock words to operate as intended. Therefore, when a bank is created, the global flash bank list is used to find any other banks that share the same target. Since some banks in the global list are invalid at the time free_driver_priv is called, reference counting is used to decide when to free driver_priv.\n\nTo avoid the need to find the lockbits flash_bank from another flash_bank, efm32x_priv_write and efm32x_erase_page now take an absolute address.\n\nThere didn\u0027t seem to be any reason to prohibit unprotecting individual flash pages, so that limitation is removed from efm32x_protect().\n\nThis addresses ticket #185.\n\nValgrind-clean, except for 2x 4kiB not freed/still reachable blocks that were allocated by libudev.\nNo new Clang analyzer warnings, no new sanitizer warnings.\n\nSigned-off-by: Doug Brunner \u003cdoug.a.brunner@gmail.com\u003e\nChange-Id: Ifb22e6149939d893f386706e99b928691ec1d41b\nReviewed-on: https://review.openocd.org/c/openocd/+/6665\nTested-by: jenkins\nReviewed-by: Fredrik Hederstierna \u003cfredrik.hederstierna@gmail.com\u003e\nReviewed-by: Tomas Vanek \u003cvanekt@fbl.cz\u003e\n"}},"2a91240fde7aca18d040c7b311d1667260947087":{"kind":"REWORK","_number":6,"created":"2021-12-09 20:57:06.000000000","uploader":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"ref":"refs/changes/65/6665/6","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/65/6665/6","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/6 \u0026\u0026 git checkout -b change-6665 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/65/6665/6","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/6 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"b1de11616099fe97f3534fa0f268c10dfd6ecf2b","subject":"gdb_server: added and improved several debug prints"}],"author":{"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","date":"2021-10-25 17:15:07.000000000","tz":-420},"committer":{"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","date":"2021-12-09 20:54:20.000000000","tz":-480},"subject":"flash/nor/efr32: fixed lockbits and user data","message":"flash/nor/efr32: fixed lockbits and user data\n\nChanged flash driver to support writing to the user data page, as well as to any portion of the lockbits page above 512 bytes (the amount used for the actual page lock words). The top part of the lockbits page is used on at least the EFR32xG1 chips for the SiLabs bootloader encryption keys.\n\nAs presented to the user, the lockbits page is the same size as the other pages, but any attempt to write to its low 512 bytes is an error. To enforce this, efr32x_write is renamed to efm32x_priv_write and a wrapper function is provided in its place. If the user erases the lockbits page, the driver rewrites the cached lock words after the erase. When the driver erases the lockbits page in order to update the lock words, it first takes a copy of anything stored in the top part of the page, and re-programs it after the erase operation.\n\nThere are now multiple instances of flash_bank for each target, and the flash_bank instances must share their cached lock words to operate as intended. Therefore, when a bank is created, the global flash bank list is used to find any other banks that share the same target. Since some banks in the global list are invalid at the time free_driver_priv is called, reference counting is used to decide when to free driver_priv.\n\nTo avoid the need to find the lockbits flash_bank from another flash_bank, efm32x_priv_write and efm32x_erase_page now take an absolute address.\n\nThere didn\u0027t seem to be any reason to prohibit unprotecting individual flash pages, so that limitation is removed from efm32x_protect().\n\nThis addresses ticket #185.\n\nValgrind-clean, except for 2x 4kiB not freed/still reachable blocks that were allocated by libudev.\nNo new Clang analyzer warnings, no new sanitizer warnings.\n\nSigned-off-by: Doug Brunner \u003cdoug.a.brunner@gmail.com\u003e\nChange-Id: Ifb22e6149939d893f386706e99b928691ec1d41b\n"}},"995e86bf54d3e593a78be606dc7370cf8a9e0810":{"kind":"NO_CODE_CHANGE","_number":5,"created":"2021-11-12 02:11:25.000000000","uploader":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"ref":"refs/changes/65/6665/5","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/65/6665/5","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/5 \u0026\u0026 git checkout -b change-6665 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/65/6665/5","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/5 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"b2ab2241f20fd3da11c92f8edde4639ab8ce996f","subject":"jimtcl: revert temporary workaround for memory leak in jimtcl 0.80"}],"author":{"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","date":"2021-10-25 17:15:07.000000000","tz":-420},"committer":{"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","date":"2021-11-12 02:10:55.000000000","tz":-480},"subject":"flash/nor/efr32: fixed lockbits and user data","message":"flash/nor/efr32: fixed lockbits and user data\n\nChanged flash driver to support writing to the user data page, as well as to any portion of the lockbits page above 512 bytes (the amount used for the actual page lock words). The top part of the lockbits page is used on at least the EFR32xG1 chips for the SiLabs bootloader encryption keys.\n\nAs presented to the user, the lockbits page is the same size as the other pages, but any attempt to write to its low 512 bytes is an error. To enforce this, efr32x_write is renamed to efm32x_priv_write and a wrapper function is provided in its place. If the user erases the lockbits page, the driver rewrites the cached lock words after the erase. When the driver erases the lockbits page in order to update the lock words, it first takes a copy of anything stored in the top part of the page, and re-programs it after the erase operation.\n\nSince there are now multiple instances of flash_bank for each target, and the flash_bank instances must share their cached lock words to operate as intended, a strategy similar to the AT91SAM3/4 drivers is adopted: each target has a corresponding entry in a global linked list, and the flash_bank instances point to it. Reference counting is used to decide when to free the entry from the linked list.\n\nTo avoid the need to find the lockbits flash_bank from another flash_bank, efm32x_priv_write and efm32x_erase_page now take an absolute address.\n\nThis addresses ticket #185.\n\nUnable to run Valgrind on my machine (Windows 10 with mingw64), but no new Clang analyzer warnings.\n\nSigned-off-by: Doug Brunner \u003cdoug.a.brunner@gmail.com\u003e\nChange-Id: Ifb22e6149939d893f386706e99b928691ec1d41b\n"}},"a4b8f9aed0d0b6f8a3346733487bc9973b1e33b9":{"kind":"REWORK","_number":4,"created":"2021-11-12 01:58:36.000000000","uploader":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"ref":"refs/changes/65/6665/4","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/65/6665/4","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/4 \u0026\u0026 git checkout -b change-6665 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/65/6665/4","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/4 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"b2ab2241f20fd3da11c92f8edde4639ab8ce996f","subject":"jimtcl: revert temporary workaround for memory leak in jimtcl 0.80"}],"author":{"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","date":"2021-10-25 17:15:07.000000000","tz":-420},"committer":{"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","date":"2021-11-12 01:56:02.000000000","tz":-480},"subject":"flash/nor/efr32: fixed lockbits and user data","message":"flash/nor/efr32: fixed lockbits and user data\n\nChanged flash driver to support writing to the user data page, as well as to any portion of the lockbits page above 512 bytes (the amount used for the actual page lock words). The top part of the lockbits page is used on at least the EFR32xG1 chips for the SiLabs bootloader encryption keys.\n\nAs presented to the user, the lockbits page is the same size as the other pages, but any attempt to write to its low 512 bytes is an error. To enforce this, efr32x_write is renamed to efm32x_priv_write and a wrapper function is provided in its place. If the user erases the lockbits page, the driver rewrites the cached lock words after the erase. When the driver erases the lockbits page in order to update the lock words, it first takes a copy of anything stored in the top part of the page, and re-programs it after the erase operation.\n\nSince there are now multiple instances of flash_bank for each target, and the flash_bank instances must share their cached lock words to operate as intended, a strategy similar to the AT91SAM3/4 drivers is adopted: each target has a corresponding entry in a global linked list, and the flash_bank instances point to it. Reference counting is used to decide when to free the entry from the linked list.\n\nTo avoid the need to find the lockbits flash_bank from another flash_bank, efm32x_priv_write and efm32x_erase_page now take an absolute address.\n\nThis addresses ticket #185.\n\nSigned-off-by: Doug Brunner \u003cdoug.a.brunner@gmail.com\u003e\nChange-Id: Ifb22e6149939d893f386706e99b928691ec1d41b\n"}},"0a96e4a7065e7b62c803e583a6325ce1938dbc65":{"kind":"REWORK","_number":3,"created":"2021-11-07 00:53:14.000000000","uploader":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"ref":"refs/changes/65/6665/3","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/65/6665/3","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/3 \u0026\u0026 git checkout -b change-6665 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/65/6665/3","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/3 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"5148a1324aeef62d85aaeaa1c061df8e874e4c12","subject":"rtos: use struct member names instead of comments"}],"author":{"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","date":"2021-10-25 17:15:07.000000000","tz":-420},"committer":{"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","date":"2021-11-07 00:52:59.000000000","tz":-420},"subject":"flash/nor/efr32: fixed lockbits and user data","message":"flash/nor/efr32: fixed lockbits and user data\n\nChanged flash driver so that nonzero base addresses and sizes for flash blocks defined in tcl are respected.\nAdded user data and lockbits pages to the tcl configuration.\nThis addresses ticket #185.\n\nSigned-off-by: Doug Brunner \u003cdoug.a.brunner@gmail.com\u003e\nChange-Id: Ifb22e6149939d893f386706e99b928691ec1d41b\n"}},"e129b28d0f5be66d0df532a515e0da5de8aa8577":{"kind":"REWORK","_number":2,"created":"2021-11-06 23:09:01.000000000","uploader":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"ref":"refs/changes/65/6665/2","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/65/6665/2","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/2 \u0026\u0026 git checkout -b change-6665 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/65/6665/2","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/2 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"5148a1324aeef62d85aaeaa1c061df8e874e4c12","subject":"rtos: use struct member names instead of comments"}],"author":{"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","date":"2021-10-25 17:15:07.000000000","tz":-420},"committer":{"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","date":"2021-11-06 23:08:46.000000000","tz":-420},"subject":"flash/nor/efr32: fixed lockbits and user data","message":"flash/nor/efr32: fixed lockbits and user data\n\nChanged flash driver so that nonzero base addresses and sizes for flash blocks defined in tcl are respected.\nAdded user data and lockbits pages to the tcl configuration.\nThis addresses ticket #185.\n\nSigned-off-by: Doug Brunner \u003cdoug.a.brunner@gmail.com\u003e\nChange-Id: Ifb22e6149939d893f386706e99b928691ec1d41b\n"}},"0673aab8796d30cfbd73431af9152a37db8f1fd0":{"kind":"REWORK","_number":1,"created":"2021-10-26 00:38:30.000000000","uploader":{"_account_id":1001929,"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","username":"doug-a-brunner"},"ref":"refs/changes/65/6665/1","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/65/6665/1","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/1 \u0026\u0026 git checkout -b change-6665 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/65/6665/1","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/65/6665/1 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"97db87c22eec204edfebd55973ee1211a1dba6d3","subject":"jtag/core: remove unused variable"}],"author":{"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","date":"2021-10-25 17:15:07.000000000","tz":-420},"committer":{"name":"Doug Brunner","email":"doug.a.brunner@gmail.com","date":"2021-10-26 00:38:13.000000000","tz":-420},"subject":"flash/nor/efr32: fixed lockbits and user data","message":"flash/nor/efr32: fixed lockbits and user data\n\nChanged flash driver so that nonzero base addresses and sizes for flash blocks defined in tcl are respected.\nAdded user data and lockbits pages to the tcl configuration.\nThis addresses ticket #185.\n\nSigned-off-by: Doug Brunner \u003cdoug.a.brunner@gmail.com\u003e\nChange-Id: Ifb22e6149939d893f386706e99b928691ec1d41b\n"}}},"requirements":[],"submit_records":[{"status":"CLOSED","labels":[{"label":"Verified","status":"OK","applied_by":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"OK","applied_by":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"}}]}],"submit_requirements":[{"name":"Verified","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Verified\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dCustom-Rule"],"failing_atoms":[]}},{"name":"Code-Review","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Code-Review\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dCustom-Rule"],"failing_atoms":[]}}]}
