)]}'
{"id":"openocd~master~I0665d94b97ede217394640871dc451ec93410254","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":"2021-11-18 21:09:34.000000000","reason":"Change was submitted"},"1000005":{"account":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"last_update":"2021-11-18 21:09:34.000000000","reason":"Change was submitted"},"1000863":{"account":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"last_update":"2021-11-18 21:09:34.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":"2021-11-10 17:46:27.000000000","reason":"Tomas Vanek replied on the change"}},"hashtags":[],"change_id":"I0665d94b97ede217394640871dc451ec93410254","subject":"target/cortex_m: faster reading of all CPU registers","status":"MERGED","created":"2019-10-16 14:57:05.000000000","updated":"2021-11-18 21:09:34.000000000","submitted":"2021-11-18 21:09:34.000000000","submitter":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"total_comment_count":32,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"5321","meta_rev_id":"b5b86a2f92f2c661102c99ca239900bb65271f83","_number":5321,"owner":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"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":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},{"value":0,"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},{"value":0,"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},{"tag":"autogenerated:gerrit:merged","value":1,"date":"2021-11-18 21:09:34.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},{"value":0,"_account_id":1000716,"name":"Christopher Head","email":"chead@zaber.com","username":"Hawk777"}],"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":"2021-11-18 21:09:34.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":1,"date":"2021-11-18 21:09:34.000000000","permitted_voting_range":{"min":1,"max":2},"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},{"tag":"autogenerated:gerrit:merged","value":2,"date":"2021-11-18 21:09:34.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":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},{"value":0,"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},{"value":0,"_account_id":1000716,"name":"Christopher Head","email":"chead@zaber.com","username":"Hawk777"}],"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":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},{"_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":1000716,"name":"Christopher Head","email":"chead@zaber.com","username":"Hawk777"},{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2019-10-17 13:09:42.000000000","updated_by":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"reviewer":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"state":"REVIEWER"},{"updated":"2021-04-23 16:02:42.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-05-04 22:34:19.000000000","updated_by":{"_account_id":1000716,"name":"Christopher Head","email":"chead@zaber.com","username":"Hawk777"},"reviewer":{"_account_id":1000716,"name":"Christopher Head","email":"chead@zaber.com","username":"Hawk777"},"state":"REVIEWER"},{"updated":"2021-05-05 23:20:10.000000000","updated_by":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"reviewer":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"state":"REVIEWER"},{"updated":"2021-05-07 11:07:45.000000000","updated_by":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"reviewer":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"state":"REVIEWER"}],"messages":[{"id":"02f9fca867e237a8612f30dc32f6858687fd0005","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":"2019-10-16 14:57:05.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"ab1cc760c91d3dbb6488f736620622057ae25c0b","author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"real_author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"date":"2019-10-16 15:16:42.000000000","message":"Patch Set 1: Verified+1\n\nBuild Successful \n\nhttp://build.openocd.org/job/openocd-gerrit/12146/ : SUCCESS\n\nhttp://build.openocd.org/job/openocd-gerrit-build/11454/ : SUCCESS","accounts_in_message":[],"_revision_number":1},{"id":"ea680bdfe4bf4f0c6a9710227cb1e86fe6e9828d","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":"2019-10-16 15:23:58.000000000","message":"Patch Set 1:\n\nGood improvement!\nBut it misses polling/checking S_REGRDY, as in 5319, and this will add an atomic read in the loop that will impact the performance.\nThe result would still be better than current code, but worst than what you describe in the commit message","accounts_in_message":[],"_revision_number":1},{"id":"a3ced338cafc10c680adee047fa353377e8cb26c","author":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"real_author":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"date":"2019-10-16 15:50:17.000000000","message":"Patch Set 1:\n\nAh, yes, this has been on my TODO list for years also.\n\nI got some ideas on how to combine this with S_REGRDY polling efficiently. I\u0027ll try to find some time discuss it, have to dig a bit into this change first.","accounts_in_message":[],"_revision_number":1},{"id":"972f2d3b928efce98a1b5db4267f0253a1c76279","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":"2019-10-16 16:01:12.000000000","message":"Patch Set 1:\n\nMy idea is to queue DHCSR reads before each DCRDR read and check\nthem after dap_run(). Normally we should not see any \"not ready\".\nIn case we encounter a not ready state cortex_m_dap_read_all_regs()\nfails and cortex_m_debug_entry() will set some flag and continue using the legacy register read loop.","accounts_in_message":[],"_revision_number":1},{"id":"cafc25844ed9a83acbe186724255dc912c18e6a3","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":"2019-10-16 16:16:27.000000000","message":"Patch Set 1:\n\nIndeed an interesting idea, but the fallback to legacy register loop is still too slow.\nInstead, passing a flag to cortex_m_dap_read_all_regs() to use atomic read in the loop. First test with flag false, if it fails with S_REGRDY then warn-once and run again with flag true, inside the function itself.\n\nAlso, if I know my system always fails the fast read, then I want to force the slow method only, without test-fail at each time. Adding a new target-configure flag? It can be changed at runtime.","accounts_in_message":[],"_revision_number":1},{"id":"4189695b54bde8cf8c5adda143be1054e3355a2f","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":"2019-10-16 16:23:33.000000000","message":"Patch Set 1:\n\nAdditional reads from DHCSR (no polling, just check) slow down cortex_m_debug_entry() from 23 to 28 ms. Seems me acceptable.","accounts_in_message":[],"_revision_number":1},{"id":"2f8197f52165490c93e81620901417872ece0554","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":"2019-10-16 22:59:38.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"7e70f9d27a8e3f0efc849a803e84f8336b164504","author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"real_author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"date":"2019-10-16 23:19:28.000000000","message":"Patch Set 2: Verified+1\n\nBuild Successful \n\nhttp://build.openocd.org/job/openocd-gerrit/12147/ : SUCCESS\n\nhttp://build.openocd.org/job/openocd-gerrit-build/11455/ : SUCCESS","accounts_in_message":[],"_revision_number":2},{"id":"574467a2c51a6b62728eb4bd3e4490420be9be7c","author":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"real_author":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"date":"2019-10-17 08:17:32.000000000","message":"Patch Set 2:\n\n(4 comments)\n\nIt does go quite a bit faster.","accounts_in_message":[],"_revision_number":2},{"id":"8dea5685f8e430d17f797e75cab10f82eec7bef2","author":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"real_author":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"date":"2019-10-17 08:26:35.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"b00e988190d5e5aeb848ec62c92714f78393002a","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":"2019-10-17 09:35:07.000000000","message":"Patch Set 2:\n\n(2 comments)","accounts_in_message":[],"_revision_number":2},{"id":"964144f758661431373e8526546fd3b62c2c954a","author":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"real_author":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"date":"2019-10-17 13:09:42.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"7f61285adb61f9575f345654bf3c741bf0634b00","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":"2019-10-17 21:08:10.000000000","message":"Patch Set 2:\n\n(6 comments)","accounts_in_message":[],"_revision_number":2},{"id":"e79a3c0c794b886a4b8763f168a72489f03881f6","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":"2019-10-20 13:20:00.000000000","message":"Patch Set 2: Code-Review-1\n\nAndreas, you\u0027re right that armv7m registers need some more work.\nI just submitted http://openocd.zylin.com/#/c/5327/1\nand I\u0027ll return to this one later.","accounts_in_message":[],"_revision_number":2},{"id":"114aa0b5afea6abef1d1948e0071bf942c28ed38","author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"real_author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"date":"2021-01-19 11:58:31.000000000","message":"Patch Set 2:\n\nTomas, http://openocd.zylin.com/#/c/5327/ and the whole cortex-m register rework serie is merged.\n\nare you planning to check this again ?","accounts_in_message":[],"_revision_number":2},{"id":"6903e073917883c8d6f447ff2d587be36c953ef0","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-01-19 12:29:42.000000000","message":"Patch Set 2:\n\nSure! But it needs updated http://openocd.zylin.com/5319","accounts_in_message":[],"_revision_number":2},{"id":"3dfceb76e36b5d8c6abc7dc23816d01e4dbcbeb1","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-04-22 19:07:55.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"faca10dadd6474b7b7545c56303e8f96f144d545","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-04-22 19:40:18.000000000","message":"Patch Set 3: Verified-1\n\nBuild Failed \n\nhttp://build.openocd.org/job/openocd-gerrit/14406/ : FAILURE\n\nhttp://build.openocd.org/job/openocd-gerrit-build/13660/ : FAILURE","accounts_in_message":[],"_revision_number":3},{"id":"9883d37a56ae9df3ca9c194b141d4a2f5fa1b5a0","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-04-22 19:44:47.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"60ffa64bcb78ca5cda493ea194083b7cdc9e4c74","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-04-22 20:41:08.000000000","message":"Patch Set 4: Verified+1\n\nBuild Successful \n\nhttp://build.openocd.org/job/openocd-gerrit/14408/ : SUCCESS\n\nhttp://build.openocd.org/job/openocd-gerrit-build/13662/ : SUCCESS","accounts_in_message":[],"_revision_number":4},{"id":"c1e0be8c9f29c912a49866b6c332899718bcccf1","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-04-23 07:10:05.000000000","message":"Patch Set 2:\n\n(4 comments)","accounts_in_message":[],"_revision_number":2},{"id":"c81d4bae4bd755ad292a1e11fc3165135f347388","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-04-23 07:57:12.000000000","message":"Patch Set 4:\n\nTested on Cortex-M0+, Cortex-M4 FPv4_SP, Cortex-M33 FPv5_SP","accounts_in_message":[],"_revision_number":4},{"id":"a4166db1368deb4c234b79e27e43782405e795f5","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-04-23 15:32:55.000000000","message":"Patch Set 5: Commit message was updated.","accounts_in_message":[],"_revision_number":5},{"id":"1df0bdc53156059b87ccd411afb02c9b248b9fcb","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-04-23 16:02:42.000000000","message":"Patch Set 5: Verified+1\n\nBuild Successful \n\nhttp://build.openocd.org/job/openocd-gerrit/14412/ : SUCCESS\n\nhttp://build.openocd.org/job/openocd-gerrit-build/13666/ : SUCCESS","accounts_in_message":[],"_revision_number":5},{"id":"43150fc8cee87218089061777527e00f6a7b713e","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":"2021-05-05 22:34:38.000000000","message":"Patch Set 5:\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"fc1d93044669112718fb70368d414da9c802df60","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-05-05 23:03:52.000000000","message":"Patch Set 5:\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"96aa61f83bf3d28203989e5bae7ba10df721d18f","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":"2021-05-05 23:20:10.000000000","message":"Patch Set 5: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"6f9e80918bf6df2f1b65629b373ed19271f2908e","author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"real_author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"date":"2021-05-05 23:35:21.000000000","message":"Patch Set 5:\n\nI have checked using JLINK OB on top of ST NULCEO L031K6 with and without debugmsgs on VM and it\u0027s fast\n\nI was curious about the result with ST-Link DAP so I have ran a test on ST NUCLEO G431KB:\ndespite the driver does not support queuing, the fast mode helped gaining some milliseconds (I cannot explain why, maybe due to DEBUG LEVEL 3, I will check further)","accounts_in_message":[],"_revision_number":5},{"id":"c100dbc3594726a1cfe38d535c9572d3ea3ba0be","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-05-06 04:40:22.000000000","message":"Patch Set 5:\n\n(1 comment)\n\n\u003e I have checked using JLINK OB ...\n\nThanks for testing!","accounts_in_message":[],"_revision_number":5},{"id":"4dfc5f595fbb158609a8d586874cddeaf92ec426","author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"real_author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"date":"2021-05-07 11:07:45.000000000","message":"Patch Set 5: Code-Review+1\n\n+ tested OK with ULINK-Plus\n\n \u003e I was curious about the result with ST-Link DAP so I have ran a\n \u003e test on ST NUCLEO G431KB:\n \u003e despite the driver does not support queuing, the fast mode helped\n \u003e gaining some milliseconds (I cannot explain why, maybe due to DEBUG\n \u003e LEVEL 3, I will check further)\n\nchecked again with ST-Link without Debug msgs (just instrumenting the code) \u003d\u003e no gain, expected since ST-Link DAP driver does not support queuing.","accounts_in_message":[],"_revision_number":5},{"id":"766a589bcc9c5808adbcf52707b9b83663571964","author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"real_author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"date":"2021-05-07 11:14:29.000000000","message":"Patch Set 5:\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"7e90c1f4f397db79666cbe43a40e50f200e4d7d3","author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"real_author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"date":"2021-11-08 09:26:08.000000000","message":"Patch Set 5:\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"0f9f670f43287cdae07e3fde23d9a5dd15e43618","tag":"autogenerated:gerrit:newPatchSet","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:02:57.000000000","message":"Uploaded patch set 6.","accounts_in_message":[],"_revision_number":6},{"id":"035621bbf5414a07450243693cbbb6aa927978f6","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:06:49.000000000","message":"Patch Set 6:\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"7b7a8c3ed8e4eee3a622ac63ecf878f64c3a48d4","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-08 16:58:18.000000000","message":"Patch Set 6: Verified+1\n\nBuild Successful \n\nhttps://build.openocd.org/job/openocd-gerrit/15460/ : SUCCESS\n\nhttps://build.openocd.org/job/openocd-gerrit-build/14678/ : SUCCESS","accounts_in_message":[],"_revision_number":6},{"id":"3813bd18bd77898fa751b0f6124c430529b3820d","author":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"real_author":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"date":"2021-11-08 17:41:58.000000000","message":"Patch Set 6: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"7068998dddc1f8fe96326d2767686fc477c69c51","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 19:42:21.000000000","message":"Patch Set 6:\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"6300ad1a777d69189f9374fcfce3af4bcfa77971","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":"2021-11-08 22:15:45.000000000","message":"Patch Set 6:\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"1387154f244f56e46dca6ce09dbf50b24b64d33b","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-09 09:24:09.000000000","message":"Patch Set 6:\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"24e37933cd7628312c0472564e9f103aa3834b30","author":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"real_author":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"date":"2021-11-10 10:04:34.000000000","message":"Patch Set 6:\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"0cc1ff5a213f66c5b2d53df319fe123a9834acbe","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":"2021-11-10 16:58:08.000000000","message":"Patch Set 6: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"1dc87da35485995be2e73fa86f8cf9fb865724c9","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-10 17:46:27.000000000","message":"Patch Set 6:\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"a0c35d574be4e96f6260af14c15ad138bc68f6d2","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-11 21:17:40.000000000","message":"Patch Set 6: Code-Review+2","accounts_in_message":[],"_revision_number":6},{"id":"b5b86a2f92f2c661102c99ca239900bb65271f83","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":"2021-11-18 21:09:34.000000000","message":"Change has been successfully cherry-picked as 88f429ead019fd6df96ec15f0d897385f3cef0d0","accounts_in_message":[],"_revision_number":7}],"current_revision":"88f429ead019fd6df96ec15f0d897385f3cef0d0","revisions":{"1c47e6afdd086fb3be4d42ae52c6e0a78e426194":{"kind":"REWORK","_number":3,"created":"2021-04-22 19:07:55.000000000","uploader":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"ref":"refs/changes/21/5321/3","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/21/5321/3","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/3 \u0026\u0026 git checkout -b change-5321 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/21/5321/3","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/3 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"33a23497fc5453b25de2bdac6b26098a46504608","subject":"cortex_m: poll S_REGRDY on register r/w"}],"author":{"name":"Tomas Vanek","email":"vanekt@fbl.cz","date":"2019-02-05 08:39:11.000000000","tz":60},"committer":{"name":"Tomas Vanek","email":"vanekt@fbl.cz","date":"2021-04-22 19:06:34.000000000","tz":120},"subject":"target/cortex_m: faster reading of all CPU registers","message":"target/cortex_m: faster reading of all CPU registers\n\nWithout the change cortex_m_debug_entry() reads all registers\ncalling cortexm_dap_read_coreregister_u32() for each register with\na poor usage of JTAG/SWD queue.\nIt is time consuming, especially on an USB FS based adapter.\nMoreover if target_request debugmsgs are enabled, DCB_DCRDR\nis saved and restored on each register read.\n\nThis change introduces cortex_m_fast_read_all_regs()\nwhich queues all register reads and a single dap_run() transaction\ndoes all work.\n\ncortex_m_fast_read_all_regs() reads all registers unconditionally\nregardless register cache is valid or not. This is a difference\nfrom the original cortex_m_debug_entry() code.\n\ncortex_m_debug_entry times from -d3 log, Cortex-M4F and CMSIS-DAP\n(Kinetis K28F-FRDM kit)\n\ntarget_request |                time [ms]\ndebugmsgs      | without the change | with the change\n---------------+--------------------+-----------------\ndisable        |        186         |       27\nenable         |        232         |       29\n\nAdded checking of DHCSR.S_REGRDY flag. If \"not ready\" is seen,\ncortex_m-\u003eslow_register_read is set and fallback to the old\nregister read method cortex_m_slow_read_all_regs() is used\ninstead of cortex_m_fast_read_all_regs().\n\nChange-Id: I0665d94b97ede217394640871dc451ec93410254\nSigned-off-by: Tomas Vanek \u003cvanekt@fbl.cz\u003e\n"}},"b5b05c0b604b72a7c75d89e5e106e49f743a7025":{"kind":"REWORK","_number":2,"created":"2019-10-16 22:59:38.000000000","uploader":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"ref":"refs/changes/21/5321/2","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/21/5321/2","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/2 \u0026\u0026 git checkout -b change-5321 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/21/5321/2","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/2 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"95edf570075441d2404404e30082eedf6a0f8372","subject":"cortex_m: poll S_REGRDY on register r/w"}],"author":{"name":"Tomas Vanek","email":"vanekt@fbl.cz","date":"2019-02-05 08:39:11.000000000","tz":60},"committer":{"name":"Tomas Vanek","email":"vanekt@fbl.cz","date":"2019-10-16 22:58:25.000000000","tz":120},"subject":"target/cortex_m: faster reading of all CPU registers","message":"target/cortex_m: faster reading of all CPU registers\n\nWithout the change cortex_m_debug_entry() reads all registers\ncalling cortexm_dap_read_coreregister_u32() for each register with\na poor usage of JTAG/SWD queue.\nIt is time consuming, especially on an USB FS based adapter.\nMoreover if target_request debugmsgs are enabled, DCB_DCRDR\nis saved and restored on each register read.\n\nThis change introduces cortex_m_dap_read_all_regs()\nwhich queues all register reads and a single dap_run() transaction\ndoes all work.\n\ncortex_m_dap_read_all_regs() reads all registers unconditionally\nregardless register cache is valid or not. This is a difference\nfrom the original cortex_m_debug_entry() code.\n\ncortex_m_debug_entry times from -d3 log, Cortex-M4F and CMSIS-DAP\n(Kinetis K28F-FRDM kit)\n\ntarget_request |                time [ms]\ndebugmsgs      | without the change | with the change\n---------------+--------------------+-----------------\ndisable        |        186         |       27\nenable         |        232         |       29\n\nAdded checking of DHCSR.S_REGRDY flag. If \"not ready\" is seen,\ncortex_m-\u003eslow_register_read is set and fallback to the old\nregister read method is used instead of cortex_m_dap_read_all_regs().\n\nChange-Id: I0665d94b97ede217394640871dc451ec93410254\nSigned-off-by: Tomas Vanek \u003cvanekt@fbl.cz\u003e\n"}},"e24338814caffc6af7fa10467995e1af561c7b4e":{"kind":"REWORK","_number":1,"created":"2019-10-16 14:57:05.000000000","uploader":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"ref":"refs/changes/21/5321/1","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/21/5321/1","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/1 \u0026\u0026 git checkout -b change-5321 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/21/5321/1","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/1 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"3a50bb46dc084999f6f7aee8913858ccced49db4","subject":"Update FTDI C232HM cfg, and add two new cfgs from cable modem research"}],"author":{"name":"Tomas Vanek","email":"vanekt@fbl.cz","date":"2019-02-05 08:39:11.000000000","tz":60},"committer":{"name":"Tomas Vanek","email":"vanekt@fbl.cz","date":"2019-10-16 14:56:14.000000000","tz":120},"subject":"target/cortex_m: faster reading of all CPU registers","message":"target/cortex_m: faster reading of all CPU registers\n\nWithout the change cortex_m_debug_entry() reads all registers\ncalling cortexm_dap_read_coreregister_u32() for each register with\na poor usage of JTAG/SWD queue.\nIt is time consuming, especially on an USB FS based adapter.\nMoreover if target_request debugmsgs are enabled, DCB_DCRDR\nis saved and restored on each register read.\n\nThis change introduces cortex_m_dap_read_all_regs()\nwhich queues all register reads and a single dap_run() transaction\ndoes all work.\n\ncortex_m_dap_read_all_regs() reads all registers unconditionally\nregardless register cache is valid or not. This is a difference\nfrom the original cortex_m_debug_entry() code.\n\ncortex_m_debug_entry times from -d3 log, Cortex-M4F and CMSIS-DAP\n(Kinetis K28F-FRDM kit)\n\ntarget_request |                time [ms]\ndebugmsgs      | without the change | with the change\n---------------+--------------------+-----------------\ndisable        |        186         |       23\nenable         |        232         |       25\n\nChange-Id: I0665d94b97ede217394640871dc451ec93410254\nSigned-off-by: Tomas Vanek \u003cvanekt@fbl.cz\u003e\n"}},"88f429ead019fd6df96ec15f0d897385f3cef0d0":{"kind":"REWORK","_number":7,"created":"2021-11-18 21:09:34.000000000","uploader":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"ref":"refs/changes/21/5321/7","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/21/5321/7","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/7 \u0026\u0026 git checkout -b change-5321 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/21/5321/7","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/7 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"65d7629183288595177301ce262dac4ba716618b","subject":"cortex_m: poll S_REGRDY on register r/w"}],"author":{"name":"Tomas Vanek","email":"vanekt@fbl.cz","date":"2019-02-05 08:39:11.000000000","tz":60},"committer":{"name":"Tomas Vanek","email":"vanekt@fbl.cz","date":"2021-11-18 21:09:34.000000000","tz":0},"subject":"target/cortex_m: faster reading of all CPU registers","message":"target/cortex_m: faster reading of all CPU registers\n\nWithout the change cortex_m_debug_entry() reads all registers\ncalling cortex_m_load_core_reg_u32() for each register with\na poor usage of JTAG/SWD queue.\nIt is time consuming, especially on an USB FS based adapter.\nMoreover if target_request debugmsgs are enabled, DCB_DCRDR\nis saved and restored on each register read.\n\nThis change introduces cortex_m_fast_read_all_regs()\nwhich queues all register reads and a single dap_run() transaction\ndoes all work.\n\ncortex_m_fast_read_all_regs() reads all registers unconditionally\nregardless register cache is valid or not. This is a difference\nfrom the original cortex_m_debug_entry() code.\n\ncortex_m_debug_entry times from -d3 log, Cortex-M4F and CMSIS-DAP\n(Kinetis K28F-FRDM kit)\n\ntarget_request |                time [ms]\ndebugmsgs      | without the change | with the change\n---------------+--------------------+-----------------\ndisable        |        186         |       27\nenable         |        232         |       29\n\nAdded checking of DHCSR.S_REGRDY flag. If \"not ready\" is seen,\ncortex_m-\u003eslow_register_read is set and fallback to the old\nregister read method cortex_m_slow_read_all_regs() is used\ninstead of cortex_m_fast_read_all_regs().\n\nChange-Id: I0665d94b97ede217394640871dc451ec93410254\nSigned-off-by: Tomas Vanek \u003cvanekt@fbl.cz\u003e\nReviewed-on: https://review.openocd.org/c/openocd/+/5321\nTested-by: jenkins\nReviewed-by: Andreas Fritiofson \u003candreas.fritiofson@gmail.com\u003e\nReviewed-by: Antonio Borneo \u003cborneo.antonio@gmail.com\u003e\n"}},"8234a01c4014bcbfb5d171645797b167bef4567f":{"kind":"REWORK","_number":6,"created":"2021-11-08 16:02:57.000000000","uploader":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"ref":"refs/changes/21/5321/6","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/21/5321/6","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/6 \u0026\u0026 git checkout -b change-5321 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/21/5321/6","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/6 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"835dde8b99359f00aba077e75f790b7eaec05bb1","subject":"cortex_m: poll S_REGRDY on register r/w"}],"author":{"name":"Tomas Vanek","email":"vanekt@fbl.cz","date":"2019-02-05 08:39:11.000000000","tz":60},"committer":{"name":"Tomas Vanek","email":"vanekt@fbl.cz","date":"2021-11-08 15:59:23.000000000","tz":60},"subject":"target/cortex_m: faster reading of all CPU registers","message":"target/cortex_m: faster reading of all CPU registers\n\nWithout the change cortex_m_debug_entry() reads all registers\ncalling cortex_m_load_core_reg_u32() for each register with\na poor usage of JTAG/SWD queue.\nIt is time consuming, especially on an USB FS based adapter.\nMoreover if target_request debugmsgs are enabled, DCB_DCRDR\nis saved and restored on each register read.\n\nThis change introduces cortex_m_fast_read_all_regs()\nwhich queues all register reads and a single dap_run() transaction\ndoes all work.\n\ncortex_m_fast_read_all_regs() reads all registers unconditionally\nregardless register cache is valid or not. This is a difference\nfrom the original cortex_m_debug_entry() code.\n\ncortex_m_debug_entry times from -d3 log, Cortex-M4F and CMSIS-DAP\n(Kinetis K28F-FRDM kit)\n\ntarget_request |                time [ms]\ndebugmsgs      | without the change | with the change\n---------------+--------------------+-----------------\ndisable        |        186         |       27\nenable         |        232         |       29\n\nAdded checking of DHCSR.S_REGRDY flag. If \"not ready\" is seen,\ncortex_m-\u003eslow_register_read is set and fallback to the old\nregister read method cortex_m_slow_read_all_regs() is used\ninstead of cortex_m_fast_read_all_regs().\n\nChange-Id: I0665d94b97ede217394640871dc451ec93410254\nSigned-off-by: Tomas Vanek \u003cvanekt@fbl.cz\u003e\n"}},"d1a0b13a0d3473c1764db004be86efa9bcdde2b5":{"kind":"NO_CODE_CHANGE","_number":5,"created":"2021-04-23 15:32:55.000000000","uploader":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"ref":"refs/changes/21/5321/5","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/21/5321/5","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/5 \u0026\u0026 git checkout -b change-5321 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/21/5321/5","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/5 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"33a23497fc5453b25de2bdac6b26098a46504608","subject":"cortex_m: poll S_REGRDY on register r/w"}],"author":{"name":"Tomas Vanek","email":"vanekt@fbl.cz","date":"2019-02-05 08:39:11.000000000","tz":60},"committer":{"name":"Tomas Vanek","email":"vanekt@fbl.cz","date":"2021-04-23 15:32:48.000000000","tz":60},"subject":"target/cortex_m: faster reading of all CPU registers","message":"target/cortex_m: faster reading of all CPU registers\n\nWithout the change cortex_m_debug_entry() reads all registers\ncalling cortex_m_load_core_reg_u32() for each register with\na poor usage of JTAG/SWD queue.\nIt is time consuming, especially on an USB FS based adapter.\nMoreover if target_request debugmsgs are enabled, DCB_DCRDR\nis saved and restored on each register read.\n\nThis change introduces cortex_m_fast_read_all_regs()\nwhich queues all register reads and a single dap_run() transaction\ndoes all work.\n\ncortex_m_fast_read_all_regs() reads all registers unconditionally\nregardless register cache is valid or not. This is a difference\nfrom the original cortex_m_debug_entry() code.\n\ncortex_m_debug_entry times from -d3 log, Cortex-M4F and CMSIS-DAP\n(Kinetis K28F-FRDM kit)\n\ntarget_request |                time [ms]\ndebugmsgs      | without the change | with the change\n---------------+--------------------+-----------------\ndisable        |        186         |       27\nenable         |        232         |       29\n\nAdded checking of DHCSR.S_REGRDY flag. If \"not ready\" is seen,\ncortex_m-\u003eslow_register_read is set and fallback to the old\nregister read method cortex_m_slow_read_all_regs() is used\ninstead of cortex_m_fast_read_all_regs().\n\nChange-Id: I0665d94b97ede217394640871dc451ec93410254\nSigned-off-by: Tomas Vanek \u003cvanekt@fbl.cz\u003e\n"}},"170ff9573255ffaaf2b33a9b6f8bc3de935e1df8":{"kind":"REWORK","_number":4,"created":"2021-04-22 19:44:47.000000000","uploader":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"ref":"refs/changes/21/5321/4","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/21/5321/4","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/4 \u0026\u0026 git checkout -b change-5321 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/21/5321/4","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/21/5321/4 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"33a23497fc5453b25de2bdac6b26098a46504608","subject":"cortex_m: poll S_REGRDY on register r/w"}],"author":{"name":"Tomas Vanek","email":"vanekt@fbl.cz","date":"2019-02-05 08:39:11.000000000","tz":60},"committer":{"name":"Tomas Vanek","email":"vanekt@fbl.cz","date":"2021-04-22 19:44:27.000000000","tz":120},"subject":"target/cortex_m: faster reading of all CPU registers","message":"target/cortex_m: faster reading of all CPU registers\n\nWithout the change cortex_m_debug_entry() reads all registers\ncalling cortexm_dap_read_coreregister_u32() for each register with\na poor usage of JTAG/SWD queue.\nIt is time consuming, especially on an USB FS based adapter.\nMoreover if target_request debugmsgs are enabled, DCB_DCRDR\nis saved and restored on each register read.\n\nThis change introduces cortex_m_fast_read_all_regs()\nwhich queues all register reads and a single dap_run() transaction\ndoes all work.\n\ncortex_m_fast_read_all_regs() reads all registers unconditionally\nregardless register cache is valid or not. This is a difference\nfrom the original cortex_m_debug_entry() code.\n\ncortex_m_debug_entry times from -d3 log, Cortex-M4F and CMSIS-DAP\n(Kinetis K28F-FRDM kit)\n\ntarget_request |                time [ms]\ndebugmsgs      | without the change | with the change\n---------------+--------------------+-----------------\ndisable        |        186         |       27\nenable         |        232         |       29\n\nAdded checking of DHCSR.S_REGRDY flag. If \"not ready\" is seen,\ncortex_m-\u003eslow_register_read is set and fallback to the old\nregister read method cortex_m_slow_read_all_regs() is used\ninstead of cortex_m_fast_read_all_regs().\n\nChange-Id: I0665d94b97ede217394640871dc451ec93410254\nSigned-off-by: Tomas Vanek \u003cvanekt@fbl.cz\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":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":[]}}]}
