)]}'
{"id":"openocd~master~I8805cc0911667bcb9b7f4ca340d7f4f1cb25d096","project":"openocd","branch":"master","attention_set":{},"removed_from_attention_set":{"1001975":{"account":{"_account_id":1001975,"name":"Steve Marple","email":"stevemarple@googlemail.com","username":"stevemarple"},"last_update":"2022-10-21 18:05:41.000000000","reason":"Change was submitted"},"1000021":{"account":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"last_update":"2022-10-21 18:05:17.000000000","reason":"removed on reply"},"1002041":{"account":{"_account_id":1002041,"name":"Jonathan Bell","email":"jonathan@raspberrypi.com","username":"jonathan.bell"},"last_update":"2022-10-21 18:05:41.000000000","reason":"Change was submitted"},"1000687":{"account":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"last_update":"2022-10-21 18:05:41.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I8805cc0911667bcb9b7f4ca340d7f4f1cb25d096","subject":"jtag/drivers: bcm2835gpio: implement memory barriers when bitbashing","status":"MERGED","created":"2022-10-13 10:04:19.000000000","updated":"2022-10-21 18:05:41.000000000","submitted":"2022-10-21 18:05:41.000000000","submitter":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"total_comment_count":22,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"7258","meta_rev_id":"2941a73171e8f34731b5a5ca79f3e1947a84e16f","_number":7258,"owner":{"_account_id":1002041,"name":"Jonathan Bell","email":"jonathan@raspberrypi.com","username":"jonathan.bell"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},{"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-10-21 18:05:41.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":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"all":[{"tag":"autogenerated:gerrit:merged","value":2,"date":"2022-10-21 18:05:41.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},{"value":0,"_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":[{"_account_id":1001975,"name":"Steve Marple","email":"stevemarple@googlemail.com","username":"stevemarple"}],"reviewers":{"REVIEWER":[{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},{"_account_id":1001975,"name":"Steve Marple","email":"stevemarple@googlemail.com","username":"stevemarple"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2022-10-13 10:31:17.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":"2022-10-13 10:44:49.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":"2022-10-13 19:38:12.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"},{"updated":"2022-10-13 19:38:12.000000000","updated_by":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"reviewer":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"state":"REVIEWER"},{"updated":"2022-10-13 20:53:45.000000000","updated_by":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"reviewer":{"_account_id":1001975,"name":"Steve Marple","email":"stevemarple@googlemail.com","username":"stevemarple"},"state":"REVIEWER"}],"messages":[{"id":"33053ac21c767f49acb3e49d9c0e9dd153287287","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1002041,"name":"Jonathan Bell","email":"jonathan@raspberrypi.com","username":"jonathan.bell"},"real_author":{"_account_id":1002041,"name":"Jonathan Bell","email":"jonathan@raspberrypi.com","username":"jonathan.bell"},"date":"2022-10-13 10:04:19.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"42c83ec30be8471ce15ec0d6f6cebba94eef1501","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-10-13 10:31:17.000000000","message":"Patch Set 1:\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"06fec8cd8744a50f24b611e91d805fa892a1e356","author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"real_author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"date":"2022-10-13 10:44:49.000000000","message":"Patch Set 1: Verified+1\n\nBuild Successful \n\nhttps://build.openocd.org/job/openocd-gerrit-build/16075/ : SUCCESS\n\nhttps://build.openocd.org/job/openocd-gerrit/16864/ : SUCCESS","accounts_in_message":[],"_revision_number":1},{"id":"1c9c82397f75fdfa5669ed8e612d503b8b21ec6a","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-10-13 11:00:34.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"677f7f6d2b6650c697eee896d29b8205025b84e2","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1002041,"name":"Jonathan Bell","email":"jonathan@raspberrypi.com","username":"jonathan.bell"},"real_author":{"_account_id":1002041,"name":"Jonathan Bell","email":"jonathan@raspberrypi.com","username":"jonathan.bell"},"date":"2022-10-13 12:29:49.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"c5b7c828f41a320fb3dec22e504b4dbd481d380b","author":{"_account_id":1002041,"name":"Jonathan Bell","email":"jonathan@raspberrypi.com","username":"jonathan.bell"},"real_author":{"_account_id":1002041,"name":"Jonathan Bell","email":"jonathan@raspberrypi.com","username":"jonathan.bell"},"date":"2022-10-13 12:33:34.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"723d3636f22520252421978a16f16365e65cfc95","author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"real_author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"date":"2022-10-13 13:20:15.000000000","message":"Patch Set 2: Verified+1\n\nBuild Successful \n\nhttps://build.openocd.org/job/openocd-gerrit-build/16076/ : SUCCESS\n\nhttps://build.openocd.org/job/openocd-gerrit/16865/ : SUCCESS","accounts_in_message":[],"_revision_number":2},{"id":"dd00a469d1935761248fdcb5670804da874e767c","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-10-13 19:38:12.000000000","message":"Patch Set 2: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"47c98e74c7971548530099486ead02d2b90b5611","author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"real_author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"date":"2022-10-13 20:52:47.000000000","message":"Patch Set 2:\n\n(3 comments)","accounts_in_message":[],"_revision_number":2},{"id":"474f817d779ab450e6fd9aed4db75eb63d296654","author":{"_account_id":1001975,"name":"Steve Marple","email":"stevemarple@googlemail.com","username":"stevemarple"},"real_author":{"_account_id":1001975,"name":"Steve Marple","email":"stevemarple@googlemail.com","username":"stevemarple"},"date":"2022-10-13 21:10:53.000000000","message":"Patch Set 2:\n\n(2 comments)","accounts_in_message":[],"_revision_number":2},{"id":"5a9f779dbf9cb54a4b9ace4f76989665b1511b6c","author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"real_author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"date":"2022-10-13 21:29:58.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"e7a7b2d0d009af55bcdbcc7e1b915aa79485b8b6","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-10-13 21:38:46.000000000","message":"Patch Set 2:\n\n(3 comments)","accounts_in_message":[],"_revision_number":2},{"id":"7e4e522dc115fc123921528e36a6e05009aeaa13","author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"real_author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"date":"2022-10-13 21:57:44.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"b664881ca48a3c453699481b44f91d8fd272a4f5","author":{"_account_id":1002041,"name":"Jonathan Bell","email":"jonathan@raspberrypi.com","username":"jonathan.bell"},"real_author":{"_account_id":1002041,"name":"Jonathan Bell","email":"jonathan@raspberrypi.com","username":"jonathan.bell"},"date":"2022-10-14 10:48:38.000000000","message":"Patch Set 2:\n\n(3 comments)","accounts_in_message":[],"_revision_number":2},{"id":"68ad3124f1ff0a5a852b3dcc1bf4d24543b1fc45","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1002041,"name":"Jonathan Bell","email":"jonathan@raspberrypi.com","username":"jonathan.bell"},"real_author":{"_account_id":1002041,"name":"Jonathan Bell","email":"jonathan@raspberrypi.com","username":"jonathan.bell"},"date":"2022-10-14 10:58:24.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"30e49d509c391efb5119049a76c9a0c2b2242eec","author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"real_author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"date":"2022-10-14 12:51:42.000000000","message":"Patch Set 3: Verified+1\n\nBuild Successful \n\nhttps://build.openocd.org/job/openocd-gerrit-build/16086/ : SUCCESS\n\nhttps://build.openocd.org/job/openocd-gerrit/16875/ : SUCCESS","accounts_in_message":[],"_revision_number":3},{"id":"a3bc2565a5b644f0da4926a0c8b67250218a2dbd","author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"real_author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"date":"2022-10-14 15:52:53.000000000","message":"Patch Set 3: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"9263b6054f2a46d7c82d6f977aa5be08ebbf048b","author":{"_account_id":1002041,"name":"Jonathan Bell","email":"jonathan@raspberrypi.com","username":"jonathan.bell"},"real_author":{"_account_id":1002041,"name":"Jonathan Bell","email":"jonathan@raspberrypi.com","username":"jonathan.bell"},"date":"2022-10-14 16:42:29.000000000","message":"Patch Set 3:\n\n(3 comments)","accounts_in_message":[],"_revision_number":3},{"id":"6df7d05a8f9ad691d65b84a5eac2b96d9e1e86ef","author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"real_author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"date":"2022-10-21 18:05:17.000000000","message":"Patch Set 3: Code-Review+2","accounts_in_message":[],"_revision_number":3},{"id":"2941a73171e8f34731b5a5ca79f3e1947a84e16f","tag":"autogenerated:gerrit:merged","author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"real_author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"date":"2022-10-21 18:05:41.000000000","message":"Change has been successfully cherry-picked as ee87f2b4a9cac084903087aed6ff8e3a691c674b","accounts_in_message":[],"_revision_number":4}],"current_revision":"ee87f2b4a9cac084903087aed6ff8e3a691c674b","revisions":{"b4410fd4caf9c3d7bda33a207d299f1a2cf88781":{"kind":"REWORK","_number":2,"created":"2022-10-13 12:29:49.000000000","uploader":{"_account_id":1002041,"name":"Jonathan Bell","email":"jonathan@raspberrypi.com","username":"jonathan.bell"},"ref":"refs/changes/58/7258/2","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/58/7258/2","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/58/7258/2 \u0026\u0026 git checkout -b change-7258 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/58/7258/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/58/7258/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/58/7258/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/58/7258/2","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/58/7258/2 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"9d5f833fbd47a5a0631fa1f6f1734f277fdde342","subject":"tcl/target: fix rp2040-core0.cfg work area backup."}],"author":{"name":"Jonathan Bell","email":"jonathan@raspberrypi.com","date":"2022-10-13 09:38:53.000000000","tz":60},"committer":{"name":"Jonathan Bell","email":"jonathan@raspberrypi.com","date":"2022-10-13 12:29:01.000000000","tz":60},"subject":"jtag/drivers: bcm2835gpio: implement memory barriers when bitbashing","message":"jtag/drivers: bcm2835gpio: implement memory barriers when bitbashing\n\nThis GPIO driver is common to SoCs that have in-order ARM cores\n(BCM2835) as well as superscalar (BCM2836-7) and speculative\nout-of-order cores (BCM2711).\n\nFor BCM2837 and BCM2711, the processor can dual-issue stores and\nis free to merge writes to peripheral memory for pages mapped\nMT_NORMAL_NC, which is the default provided by /dev/[gpio]mem.\n\nThis can cause glitches (or missing edges) on GPIO pins when\ntoggled with no delay, as pipelined writes to the same address\ncan get arbitrarily squelched.\n\nTo prevent this happening, make sure the preceding write ops are\nflushed outside the shareable domain by using a memory barrier.\n\nSigned-off-by: Jonathan Bell \u003cjonathan@raspberrypi.com\u003e\nChange-Id: I8805cc0911667bcb9b7f4ca340d7f4f1cb25d096\n"}},"8ded71d4a75801e0c16d98d5d60c7e55d8cb16c4":{"kind":"REWORK","_number":3,"created":"2022-10-14 10:58:24.000000000","uploader":{"_account_id":1002041,"name":"Jonathan Bell","email":"jonathan@raspberrypi.com","username":"jonathan.bell"},"ref":"refs/changes/58/7258/3","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/58/7258/3","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/58/7258/3 \u0026\u0026 git checkout -b change-7258 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/58/7258/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/58/7258/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/58/7258/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/58/7258/3","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/58/7258/3 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"9d5f833fbd47a5a0631fa1f6f1734f277fdde342","subject":"tcl/target: fix rp2040-core0.cfg work area backup."}],"author":{"name":"Jonathan Bell","email":"jonathan@raspberrypi.com","date":"2022-10-13 09:38:53.000000000","tz":60},"committer":{"name":"Jonathan Bell","email":"jonathan@raspberrypi.com","date":"2022-10-14 10:58:12.000000000","tz":60},"subject":"jtag/drivers: bcm2835gpio: implement memory barriers when bitbashing","message":"jtag/drivers: bcm2835gpio: implement memory barriers when bitbashing\n\nThis GPIO driver is common to SoCs that have in-order ARM cores\n(BCM2835) as well as superscalar (BCM2836-7) and speculative\nout-of-order cores (BCM2711).\n\nFor BCM2837 and BCM2711, the processor can dual-issue stores and\nis free to merge writes to peripheral memory for pages mapped\nMT_NORMAL_NC, which is the default provided by /dev/[gpio]mem.\n\nThis can cause glitches (or missing edges) on GPIO pins when\ntoggled with no delay, as pipelined writes to the same address\ncan get arbitrarily squelched.\n\nTo prevent this happening, make sure the preceding write ops are\nflushed outside the shareable domain by using a memory barrier.\n\nSigned-off-by: Jonathan Bell \u003cjonathan@raspberrypi.com\u003e\nChange-Id: I8805cc0911667bcb9b7f4ca340d7f4f1cb25d096\n"}},"becbb510914191ef8a8dc6aaeed3b1d5f35b4f16":{"kind":"REWORK","_number":1,"created":"2022-10-13 10:04:19.000000000","uploader":{"_account_id":1002041,"name":"Jonathan Bell","email":"jonathan@raspberrypi.com","username":"jonathan.bell"},"ref":"refs/changes/58/7258/1","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/58/7258/1","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/58/7258/1 \u0026\u0026 git checkout -b change-7258 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/58/7258/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/58/7258/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/58/7258/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/58/7258/1","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/58/7258/1 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"9d5f833fbd47a5a0631fa1f6f1734f277fdde342","subject":"tcl/target: fix rp2040-core0.cfg work area backup."}],"author":{"name":"Jonathan Bell","email":"jonathan@raspberrypi.com","date":"2022-10-13 09:38:53.000000000","tz":60},"committer":{"name":"Jonathan Bell","email":"jonathan@raspberrypi.com","date":"2022-10-13 10:03:47.000000000","tz":60},"subject":"jtag/drivers: bcm2835gpio: implement memory barriers when bitbashing","message":"jtag/drivers: bcm2835gpio: implement memory barriers when bitbashing\n\nThis GPIO driver is common to SoCs that have in-order ARM cores\n(BCM2835) as well as superscalar (BCM2836-7) and speculative\nout-of-order cores (BCM2711).\n\nFor BCM2837 and BCM2711, the processor can dual-issue stores and\nis free to merge writes to peripheral memory for pages mapped\nMT_NORMAL_NC, which is the default provided by /dev/[gpio]mem.\n\nThis can cause glitches (or missing edges) on GPIO pins when\ntoggled with no delay, as pipelined writes to the same address\ncan get arbitrarily squelched.\n\nTo prevent this happening, make sure the preceding write ops are\nflushed outside the shareable domain by using a memory barrier.\n\nSigned-off-by: Jonathan Bell \u003cjonathan@raspberrypi.com\u003e\nChange-Id: I8805cc0911667bcb9b7f4ca340d7f4f1cb25d096\n"}},"ee87f2b4a9cac084903087aed6ff8e3a691c674b":{"kind":"REWORK","_number":4,"created":"2022-10-21 18:05:41.000000000","uploader":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"ref":"refs/changes/58/7258/4","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/58/7258/4","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/58/7258/4 \u0026\u0026 git checkout -b change-7258 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/58/7258/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/58/7258/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/58/7258/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/58/7258/4","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/58/7258/4 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"a7ea1ef0aa00920c7c7cb9282080e1d617eb9e81","subject":"README: update build dependency list"}],"author":{"name":"Jonathan Bell","email":"jonathan@raspberrypi.com","date":"2022-10-13 09:38:53.000000000","tz":60},"committer":{"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","date":"2022-10-21 18:05:41.000000000","tz":0},"subject":"jtag/drivers: bcm2835gpio: implement memory barriers when bitbashing","message":"jtag/drivers: bcm2835gpio: implement memory barriers when bitbashing\n\nThis GPIO driver is common to SoCs that have in-order ARM cores\n(BCM2835) as well as superscalar (BCM2836-7) and speculative\nout-of-order cores (BCM2711).\n\nFor BCM2837 and BCM2711, the processor can dual-issue stores and\nis free to merge writes to peripheral memory for pages mapped\nMT_NORMAL_NC, which is the default provided by /dev/[gpio]mem.\n\nThis can cause glitches (or missing edges) on GPIO pins when\ntoggled with no delay, as pipelined writes to the same address\ncan get arbitrarily squelched.\n\nTo prevent this happening, make sure the preceding write ops are\nflushed outside the shareable domain by using a memory barrier.\n\nSigned-off-by: Jonathan Bell \u003cjonathan@raspberrypi.com\u003e\nChange-Id: I8805cc0911667bcb9b7f4ca340d7f4f1cb25d096\nReviewed-on: https://review.openocd.org/c/openocd/+/7258\nTested-by: jenkins\nReviewed-by: Antonio Borneo \u003cborneo.antonio@gmail.com\u003e\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":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"}}]}],"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":[]}}]}
