)]}'
{"id":"openocd~master~Ifa3c7ddf2698b2c87037fb48f783844034a7140e","project":"openocd","branch":"master","attention_set":{},"removed_from_attention_set":{"1000021":{"account":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"last_update":"2024-05-11 11:54:11.000000000","reason":"Change was submitted"},"1000410":{"account":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"last_update":"2024-05-07 08:57:05.000000000","reason":"\u003cGERRIT_ACCOUNT_1000410\u003e replied on the change","reason_account":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"}}},"hashtags":[],"change_id":"Ifa3c7ddf2698b2c87037fb48f783844034a7140e","subject":"cortex_a: drop useless cache invalidate on mem write","status":"MERGED","created":"2024-05-04 18:43:29.000000000","updated":"2024-05-11 11:54:11.000000000","submitted":"2024-05-11 11:54:11.000000000","submitter":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"total_comment_count":1,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"8229","meta_rev_id":"ecd8a2d3269ad3aa0881ede6f33382a7be6fb898","_number":8229,"owner":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"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":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},{"tag":"autogenerated:gerrit:merged","value":1,"date":"2024-05-11 11:54:11.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":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"all":[{"tag":"autogenerated:gerrit:merged","value":1,"date":"2024-05-11 11:54:11.000000000","permitted_voting_range":{"min":1,"max":2},"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},{"tag":"autogenerated:gerrit:merged","value":2,"date":"2024-05-11 11:54:11.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},{"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":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2024-05-04 18:43:29.000000000","updated_by":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"reviewer":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"state":"REVIEWER"},{"updated":"2024-05-06 00:15:10.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"}],"messages":[{"id":"289d16cdcc9c33d0e7363ae2a7318c474af5279e","tag":"autogenerated:gerrit:newPatchSet","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":"2024-05-04 18:43:29.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"7f4aa36f5e9f8443d6df5fd86c363142b31d6568","tag":"autogenerated:jenkins-gerrit-trigger","author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"real_author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"date":"2024-05-06 00:15:10.000000000","message":"Patch Set 1: Verified+1\n\nBuild Successful \n\nhttps://build.openocd.org/job/openocd-gerrit/19529/ : SUCCESS\n\nhttps://build.openocd.org/job/openocd-gerrit-build/18689/ : SUCCESS","accounts_in_message":[],"_revision_number":1},{"id":"ad347f0a89e792d7ce4e6f5a21a48e4d614f22ce","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":"2024-05-06 13:41:46.000000000","message":"Patch Set 1: Code-Review+1","accounts_in_message":[],"_revision_number":1},{"id":"d54c7b91648302f913f261383a4cc77a945274bb","author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"real_author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"date":"2024-05-07 08:57:05.000000000","message":"Patch Set 1: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"726479fcad2e26a2d12d76a11af614d9143344c9","author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"real_author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"date":"2024-05-07 08:57:32.000000000","message":"Patch Set 1: Code-Review+2","accounts_in_message":[],"_revision_number":1},{"id":"ecd8a2d3269ad3aa0881ede6f33382a7be6fb898","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":"2024-05-11 11:54:11.000000000","message":"Change has been successfully cherry-picked as dbef02789fb1f30ae77020754b1468549fd16510","accounts_in_message":[],"_revision_number":2}],"current_revision":"dbef02789fb1f30ae77020754b1468549fd16510","revisions":{"dbef02789fb1f30ae77020754b1468549fd16510":{"kind":"NO_CODE_CHANGE","_number":2,"created":"2024-05-11 11:54:11.000000000","uploader":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"ref":"refs/changes/29/8229/2","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/29/8229/2","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/29/8229/2 \u0026\u0026 git checkout -b change-8229 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/29/8229/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/29/8229/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/29/8229/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/29/8229/2","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/29/8229/2 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"bc9ca5f4a82ccbbdbe07108a83f7979b53e89889","subject":"ipdbg: fix double free of virtual-ir data"}],"author":{"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","date":"2024-05-02 13:24:57.000000000","tz":120},"committer":{"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","date":"2024-05-11 11:54:11.000000000","tz":0},"subject":"cortex_a: drop useless cache invalidate on mem write","message":"cortex_a: drop useless cache invalidate on mem write\n\nThe initial OpenOCD code for Cortex-A (ARMv7a) [1] was merged in\n2009 but, due to lack of public documentation for ARMv7a, it was\nalmost a simple copy/paste from the existing code for Cortex-M\n(ARMv7m).\n\nOn Cortex-M the same AP provides access to both CPU debug and CPU\nmemory. This feature is not present on ARMv7a.\nTo still keep some communality with ARMv7m code, the change [2]\nsplits the CPU debug access from the CPU memory access by using\ntwo independent AP; this is copied from the system architecture of\nTI OMAP3530 which provides to DAP a direct AHB-AP memory bus on\nAP#0, separated from AP#1 for the APB-AP CPU debug.\nBut the direct memory access through the system bus breaks the\ncoherency between memory and CPU caches, so change [3] added some\ncache invalidation to avoid issues.\n\nThe code to allow ARMv7a CPU to really read/write in CPU memory\nwas added by change [4] in 2011. Such still not optimized\nimplementation was very slow, so it did not replace the access\nthrough the system bus. A selection through DAP\u0027s \u0027apsel\" command\nwas used to select between the two modes.\n\nOnly in 2015, with change [5], the speed of CPU read/write was\nimproved using the DCC_FAST_MODE. But the direct access to the\nmemory through the system bus remained.\n\nFinally, with change [6] in 2018 the system bus access was dropped\nfor good, as the new virtual target \"mem_ap\" could implement such\naccess in a more clean way.\nOnly memory access through CPU remained for ARMv7a.\nNevertheless, a useless cache invalidation remained in the code,\ndecreasing the speed of the write access.\n\nDrop the useless cache invalidate on CPU memory write and the\nassociated comment, not anymore valid.\nDrop the now unused function armv7a_cache_auto_flush_on_write().\n\nThis provides a speedup of between 4 and 8, depending on adapter\nand JTAG/SWD speed.\n\nLink: [1] 7a93100c2dfe (\"Add minimalist Cortex A8 file\")\nLink: [2] 1d0b276c9f75 (\"The rest of the Cortex-A8 support from Magnus: ...\")\nLink: [3] d4e4d65d284f (\"Cache invalidation when writing to memory\")\nLink: [4] 05ab8bdb813a (\"cortex_a9: implement read/write memory through APB-AP\")\nLink: [5] 0228f8e8274d (\"Cortex A: fix extra memory read and non-word sizes\")\nLink: [6] fac9be64d944 (\"target/cortex_a: remove buggy memory AP accesses\")\n\nChange-Id: Ifa3c7ddf2698b2c87037fb48f783844034a7140e\nSigned-off-by: Antonio Borneo \u003cborneo.antonio@gmail.com\u003e\nReviewed-on: https://review.openocd.org/c/openocd/+/8229\nTested-by: jenkins\nReviewed-by: Oleksij Rempel \u003clinux@rempel-privat.de\u003e\n"}},"37f28569f5901f0c971ba1c1a0c119e6fd0d5b21":{"kind":"REWORK","_number":1,"created":"2024-05-04 18:43:29.000000000","uploader":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"ref":"refs/changes/29/8229/1","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/29/8229/1","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/29/8229/1 \u0026\u0026 git checkout -b change-8229 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/29/8229/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/29/8229/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/29/8229/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/29/8229/1","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/29/8229/1 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"bc9ca5f4a82ccbbdbe07108a83f7979b53e89889","subject":"ipdbg: fix double free of virtual-ir data"}],"author":{"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","date":"2024-05-02 13:24:57.000000000","tz":120},"committer":{"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","date":"2024-05-04 17:28:54.000000000","tz":120},"subject":"cortex_a: drop useless cache invalidate on mem write","message":"cortex_a: drop useless cache invalidate on mem write\n\nThe initial OpenOCD code for Cortex-A (ARMv7a) [1] was merged in\n2009 but, due to lack of public documentation for ARMv7a, it was\nalmost a simple copy/paste from the existing code for Cortex-M\n(ARMv7m).\n\nOn Cortex-M the same AP provides access to both CPU debug and CPU\nmemory. This feature is not present on ARMv7a.\nTo still keep some communality with ARMv7m code, the change [2]\nsplits the CPU debug access from the CPU memory access by using\ntwo independent AP; this is copied from the system architecture of\nTI OMAP3530 which provides to DAP a direct AHB-AP memory bus on\nAP#0, separated from AP#1 for the APB-AP CPU debug.\nBut the direct memory access through the system bus breaks the\ncoherency between memory and CPU caches, so change [3] added some\ncache invalidation to avoid issues.\n\nThe code to allow ARMv7a CPU to really read/write in CPU memory\nwas added by change [4] in 2011. Such still not optimized\nimplementation was very slow, so it did not replace the access\nthrough the system bus. A selection through DAP\u0027s \u0027apsel\" command\nwas used to select between the two modes.\n\nOnly in 2015, with change [5], the speed of CPU read/write was\nimproved using the DCC_FAST_MODE. But the direct access to the\nmemory through the system bus remained.\n\nFinally, with change [6] in 2018 the system bus access was dropped\nfor good, as the new virtual target \"mem_ap\" could implement such\naccess in a more clean way.\nOnly memory access through CPU remained for ARMv7a.\nNevertheless, a useless cache invalidation remained in the code,\ndecreasing the speed of the write access.\n\nDrop the useless cache invalidate on CPU memory write and the\nassociated comment, not anymore valid.\nDrop the now unused function armv7a_cache_auto_flush_on_write().\n\nThis provides a speedup of between 4 and 8, depending on adapter\nand JTAG/SWD speed.\n\nLink: [1] 7a93100c2dfe (\"Add minimalist Cortex A8 file\")\nLink: [2] 1d0b276c9f75 (\"The rest of the Cortex-A8 support from Magnus: ...\")\nLink: [3] d4e4d65d284f (\"Cache invalidation when writing to memory\")\nLink: [4] 05ab8bdb813a (\"cortex_a9: implement read/write memory through APB-AP\")\nLink: [5] 0228f8e8274d (\"Cortex A: fix extra memory read and non-word sizes\")\nLink: [6] fac9be64d944 (\"target/cortex_a: remove buggy memory AP accesses\")\n\nChange-Id: Ifa3c7ddf2698b2c87037fb48f783844034a7140e\nSigned-off-by: Antonio Borneo \u003cborneo.antonio@gmail.com\u003e\n"}}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","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":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"}}]}],"submit_requirements":[{"name":"Verified","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Verified\u003dMAX -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX","-label:Verified\u003dMIN"],"failing_atoms":[]}},{"name":"Code-Review","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX","-label:Code-Review\u003dMIN"],"failing_atoms":[]}}]}
