)]}'
{"id":"openocd~master~If6adaec0445748f3e97078bf980c502eff4d5001","project":"openocd","branch":"master","attention_set":{},"removed_from_attention_set":{"1002512":{"account":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"last_update":"2026-05-17 20:52:07.000000000","reason":"Change was submitted"},"1000021":{"account":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"last_update":"2026-05-17 20:52:04.000000000","reason":"removed on reply"}},"hashtags":[],"change_id":"If6adaec0445748f3e97078bf980c502eff4d5001","subject":"jtag/drivers: add T-Head CK-Link JTAG adapter driver","status":"MERGED","created":"2026-04-23 19:13:21.000000000","updated":"2026-05-17 20:52:07.000000000","submitted":"2026-05-17 20:52:07.000000000","submitter":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"total_comment_count":35,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"9586","meta_rev_id":"2370f362562545907678278b3777e772688a377e","_number":9586,"owner":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"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"},{"tag":"autogenerated:gerrit:merged","value":1,"date":"2026-05-17 20:52:07.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":"2026-05-17 20:52:07.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":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"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-04-23 19:13:31.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":"CC"},{"updated":"2026-04-23 20:26:11.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":"2026-04-24 02:29:17.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":"CC"},{"updated":"2026-05-09 21:44:11.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"}],"messages":[{"id":"94632044df4674d89af38e8ba00f9747308633cd","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"real_author":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"date":"2026-04-23 19:13:21.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"92a71b7d9df476e9c43ebc81bb277195c2da07e3","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":"2026-04-23 20:26:11.000000000","message":"Patch Set 1: Verified+1\n\nBuild Successful \n\nhttps://build.openocd.org/job/openocd-gerrit-build/22149/ : SUCCESS\n\nhttps://build.openocd.org/job/openocd-gerrit/23047/ : SUCCESS","accounts_in_message":[],"_revision_number":1},{"id":"9ac0888920fd2bfed54bb21ede80f1522eb95f64","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":"2026-04-24 02:29:17.000000000","message":"Patch Set 1:\n\n(6 comments)","accounts_in_message":[],"_revision_number":1},{"id":"d9f6a17a442411294926706e3d1fc2bd67434ba8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"real_author":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"date":"2026-04-27 14:30:54.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"changekind:NO_CHANGE\")\n","accounts_in_message":[],"_revision_number":2},{"id":"6029a775fc89b3f9164294bdc488738365534c42","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":"2026-04-27 14:57:53.000000000","message":"Patch Set 2: Verified+1\n\nBuild Successful \n\nhttps://build.openocd.org/job/openocd-gerrit-build/22179/ : SUCCESS\n\nhttps://build.openocd.org/job/openocd-gerrit/23077/ : SUCCESS","accounts_in_message":[],"_revision_number":2},{"id":"4d184841fe9db6548b55d6a2177e60399ec5669c","author":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"real_author":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"date":"2026-04-27 15:34:52.000000000","message":"Patch Set 1:\n\n(4 comments)","accounts_in_message":[],"_revision_number":1},{"id":"66b9f0ebb65b2f84fb2316d96ef5c15ad0e1dd68","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":"2026-04-28 12:53:44.000000000","message":"Patch Set 2:\n\n(4 comments)","accounts_in_message":[],"_revision_number":2},{"id":"69b9f0c84eee97ecab1c137d2d128e0a6323c460","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"real_author":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"date":"2026-04-28 19:58:56.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"changekind:NO_CHANGE\")\n","accounts_in_message":[],"_revision_number":3},{"id":"b8bafb4d30b3415e49d9d1cd1f1970447744e8dd","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":"2026-04-28 20:34:19.000000000","message":"Patch Set 3: Verified+1\n\nBuild Successful \n\nhttps://build.openocd.org/job/openocd-gerrit-build/22196/ : SUCCESS\n\nhttps://build.openocd.org/job/openocd-gerrit/23094/ : SUCCESS","accounts_in_message":[],"_revision_number":3},{"id":"9a7ed3b6aa1d09fa8fb398ec79fc87b091060d5e","author":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"real_author":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"date":"2026-04-29 12:51:31.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"d8eb542cdbcac3a724fb3bb9f24cb5bfe32f6a5f","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":"2026-05-02 15:21:55.000000000","message":"Patch Set 3:\n\n(7 comments)","accounts_in_message":[],"_revision_number":3},{"id":"f391529faacd8ac61d392ea86ef3048394df6f86","author":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"real_author":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"date":"2026-05-02 15:59:28.000000000","message":"Patch Set 3:\n\n(6 comments)","accounts_in_message":[],"_revision_number":3},{"id":"1c58ed71c6a7cedd685e06273113006369420e50","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"real_author":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"date":"2026-05-04 22:16:04.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"changekind:NO_CHANGE\")\n","accounts_in_message":[],"_revision_number":4},{"id":"af67edbf8b19f5dd6aacf370272886837e174c2b","author":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"real_author":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"date":"2026-05-04 22:17:12.000000000","message":"Patch Set 4:\n\n(5 comments)","accounts_in_message":[],"_revision_number":4},{"id":"a1bf5abc669181a258d9daf99522b65a200f90be","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":"2026-05-04 22:18:28.000000000","message":"Patch Set 4: Verified-1\n\nBuild Failed \n\nhttps://build.openocd.org/job/openocd-gerrit-build/22208/ : FAILURE\n\nhttps://build.openocd.org/job/openocd-gerrit/23106/ : FAILURE","accounts_in_message":[],"_revision_number":4},{"id":"bbfcb3a7043c971abebb67c109bee0c4e0aded3b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"real_author":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"date":"2026-05-04 22:21:52.000000000","message":"Uploaded patch set 5.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"changekind:NO_CHANGE\")\n","accounts_in_message":[],"_revision_number":5},{"id":"76ab4cfce8fec35e9fde06414e65d09ea937a08a","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":"2026-05-04 23:48:18.000000000","message":"Patch Set 5: Verified+1\n\nBuild Successful \n\nhttps://build.openocd.org/job/openocd-gerrit-build/22209/ : SUCCESS\n\nhttps://build.openocd.org/job/openocd-gerrit/23107/ : SUCCESS","accounts_in_message":[],"_revision_number":5},{"id":"b9ef5ebec26828b8d82828d0477a17916875e8e4","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":"2026-05-08 13:52:20.000000000","message":"Patch Set 1:\n\nNo Builds Executed","accounts_in_message":[],"_revision_number":1},{"id":"a417ab23929036aa10c1f1721c78c8222ec5d019","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":"2026-05-08 13:52:23.000000000","message":"Patch Set 2:\n\nNo Builds Executed","accounts_in_message":[],"_revision_number":2},{"id":"3db11c2801ca6e5a83bccb9713c3612eecadcc7e","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":"2026-05-08 13:52:25.000000000","message":"Patch Set 3:\n\nNo Builds Executed","accounts_in_message":[],"_revision_number":3},{"id":"ab9c3f0d56cdbb81416a10c5d5985a8fc6b70d33","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":"2026-05-08 13:52:26.000000000","message":"Patch Set 4:\n\nNo Builds Executed","accounts_in_message":[],"_revision_number":4},{"id":"ff5694dd0d47e3569ba7f9ee145275f7a4867085","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":"2026-05-09 01:58:53.000000000","message":"Patch Set 5: -Verified","accounts_in_message":[],"_revision_number":5},{"id":"4854240f504ea4b123d225622975824ae8363920","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":"2026-05-09 13:39:47.000000000","message":"Patch Set 5: Verified+1\n\nBuild Successful \n\nhttps://build.openocd.org/job/openocd-gerrit-build/22299/ : SUCCESS\n\nhttps://build.openocd.org/job/openocd-gerrit/23197/ : SUCCESS","accounts_in_message":[],"_revision_number":5},{"id":"32d185e1e22167a83930c1090762bc4c46478c0c","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":"2026-05-09 21:44:11.000000000","message":"Patch Set 5: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"3a981e15986a20ccf853b975af089d7c72f737f8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"real_author":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"date":"2026-05-10 20:38:13.000000000","message":"Uploaded patch set 6.\n\nOutdated Votes:\n* Code-Review+1 (copy condition: \"changekind:NO_CHANGE OR is:MIN\")\n* Verified+1 (copy condition: \"changekind:NO_CHANGE\")\n","accounts_in_message":[],"_revision_number":6},{"id":"93554ee0dbdef62b88ab0b419aa0e95933a3fb9e","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"real_author":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"date":"2026-05-10 20:39:50.000000000","message":"Uploaded patch set 7: Patch Set 6 was rebased.","accounts_in_message":[],"_revision_number":7},{"id":"be26adee97d3d81d5e05e26607aba3b594a6f030","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":"2026-05-10 20:39:53.000000000","message":"Patch Set 6: Verified-1\n\nBuild Failed \n\nhttps://build.openocd.org/job/openocd-gerrit-build/22320/ : ABORTED\n\nhttps://build.openocd.org/job/openocd-gerrit/23220/ : ABORTED","accounts_in_message":[],"_revision_number":6},{"id":"48b9c429c3538f304533408f77a1fc58e42ccad6","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":"2026-05-10 21:00:51.000000000","message":"Patch Set 7: Verified+1\n\nBuild Successful \n\nhttps://build.openocd.org/job/openocd-gerrit-build/22321/ : SUCCESS\n\nhttps://build.openocd.org/job/openocd-gerrit/23221/ : SUCCESS","accounts_in_message":[],"_revision_number":7},{"id":"01de93ebddeaa2bfe617c7108b569166ee272bed","author":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"real_author":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"date":"2026-05-11 12:13:20.000000000","message":"Patch Set 7:\n\n(1 comment)","accounts_in_message":[],"_revision_number":7},{"id":"ff6a9e4e2f1162bf7127fff981b47bf7f4a14c1a","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":"2026-05-17 20:52:04.000000000","message":"Patch Set 7: Code-Review+2","accounts_in_message":[],"_revision_number":7},{"id":"2370f362562545907678278b3777e772688a377e","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":"2026-05-17 20:52:07.000000000","message":"Change has been successfully cherry-picked as 97a11c4f5319a4cdfe8cc1668b4ccf7680c1b639","accounts_in_message":[],"_revision_number":8}],"current_revision":"97a11c4f5319a4cdfe8cc1668b4ccf7680c1b639","revisions":{"97a11c4f5319a4cdfe8cc1668b4ccf7680c1b639":{"kind":"REWORK","_number":8,"created":"2026-05-17 20:52:07.000000000","uploader":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"ref":"refs/changes/86/9586/8","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/86/9586/8","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/8 \u0026\u0026 git checkout -b change-9586 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/8 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/8 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/8 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/86/9586/8","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/8 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"2a0cc01c6b87c34fe008e9085f514b6c29bfb1d2","subject":"rtos: linux: drop local get_buffer()"}],"author":{"name":"William Markezana","email":"william.markezana@gmail.com","date":"2026-04-10 16:45:43.000000000","tz":-240},"committer":{"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","date":"2026-05-17 20:52:07.000000000","tz":0},"subject":"jtag/drivers: add T-Head CK-Link JTAG adapter driver","message":"jtag/drivers: add T-Head CK-Link JTAG adapter driver\n\nDriver for T-Head CK-Link Lite V2 probes, including the Bouffalo Lab\nBL616/BL702 CK-Link clones used as built-in debuggers on BL61x/BL70x\nevaluation boards. The wire protocol is a framed command format over\nUSB bulk endpoints, reverse-engineered from T-Head\u0027s DebugServer.\n\nImplements JTAG_SCAN via the probe\u0027s batch opcode, with IR caching\nacross execute_queue boundaries and end-of-queue flush so OpenOCD\u0027s\nCapture-IR validation reads real hardware data. Speed is programmable\n(freq_kHz \u003d 48000 / (N+1), capped at the DebugServer-validated 2526\nkHz). Probes are matched against a built-in VID/PID list (overridable\nvia \u0027adapter usb vid_pid\u0027) and by adapter serial.\n\nKnown protocol limitations, surfaced as one-time warnings:\n\n  - Single batch entry encodes IR/DR bit-counts in single bytes;\n    scans \u003e 255 bits are clamped with TDI pass-through on the\n    un-shifted portion.\n  - The T-Head DTM\u0027s Capture-IR returns the current IR value rather\n    than the IEEE 1149.1 \u0027xxx01\u0027 pattern; init pre-loads IR \u003d IDCODE.\n  - No TMS-sequence opcode: JTAG_TMS and JTAG_PATHMOVE return\n    ERROR_JTAG_NOT_IMPLEMENTED.\n  - Multi-TAP chains are not supported.\n  - RTCK is not supported.\n\nTested against BL618 and BL702 evaluation boards.\n\nChange-Id: If6adaec0445748f3e97078bf980c502eff4d5001\nSigned-off-by: William Markezana \u003cwilliam.markezana@gmail.com\u003e\nReviewed-on: https://review.openocd.org/c/openocd/+/9586\nTested-by: jenkins\nReviewed-by: Antonio Borneo \u003cborneo.antonio@gmail.com\u003e\n"}},"e37057465e6fe31036447986ec47cbf28db35684":{"kind":"REWORK","_number":1,"created":"2026-04-23 19:13:21.000000000","uploader":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"ref":"refs/changes/86/9586/1","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/86/9586/1","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/1 \u0026\u0026 git checkout -b change-9586 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/86/9586/1","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/1 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"7e508338ed0dd3ce2b5fb5b6654ff51125258812","subject":"target/riscv: add target_was_examined() checks"}],"author":{"name":"William Markezana","email":"william.markezana@gmail.com","date":"2026-04-10 16:45:43.000000000","tz":-240},"committer":{"name":"William Markezana","email":"william.markezana@gmail.com","date":"2026-04-23 19:13:10.000000000","tz":-240},"subject":"jtag/drivers: add T-Head CK-Link JTAG adapter driver","message":"jtag/drivers: add T-Head CK-Link JTAG adapter driver\n\nAdd support for the T-Head CK-Link Lite V2 probe family, including the\nBouffalo Lab BL616/BL702 CK-Link clones used as built-in debuggers on\nBL618/BL702 evaluation boards. The wire protocol is a framed command\nformat over USB bulk endpoints, reverse-engineered from T-Head\u0027s\nDebugServer binary.\n\nThe driver implements:\n\n  - Full DebugServer init sequence: selfreg setup, operational clock,\n    5-wire -\u003e 2-wire -\u003e 5-wire mode toggle (effective TAP reset).\n  - JTAG_SCAN via the probe\u0027s single-entry batch opcode with IR caching\n    across execute_queue boundaries; end-of-queue flush populates the\n    IR scan\u0027s in_value with hardware-captured Capture-IR data.\n  - Opcode-aware response-frame checksum validation. Selfreg reads use\n    sum-mod-256; JTAG batch responses exclude the last dr_tdo byte.\n  - Clock-divider control (freq_kHz \u003d 48000 / (N+1)) with once-warning\n    clamp when the requested speed exceeds the DebugServer-validated\n    ceiling (2526 kHz).\n  - libusb serial-number filter via adapter_get_required_serial()\n    and kernel-driver auto-detach on Linux.\n  - TCL command \u0027cklink vid_pid (vid pid)+\u0027 to override defaults.\n\nKnown protocol limitations, surfaced as one-time warnings rather than\nsilent data loss:\n\n  - Scans exceed 255 bits: the batch opcode encodes bit-counts in single\n    bytes. Clamp + TDI pass-through for the un-shifted portion, which\n    gives OpenOCD\u0027s bypass chain-length probe the expected end-of-chain\n    marker.\n  - Back-to-back IR scans: the batch opcode requires both IR and DR\n    phases; mid-queue flushing a deferred IR with a dummy DR would\n    trigger spurious DMI transactions. Single-TAP chains only.\n  - JTAG_TMS, JTAG_PATHMOVE: no TMS-sequence opcode exposed. Return\n    ERROR_JTAG_NOT_IMPLEMENTED.\n  - RTCK: not supported, return ERROR_JTAG_NOT_IMPLEMENTED.\n\nTested against BL618 (VID 0x42bf, PID 0xb210) and BL702 eval boards:\nIDCODE read, RISC-V DM examine, halt, register read, memory read,\nsingle-step, hardware breakpoints, GDB RSP server all functional.\n\nChange-Id: If6adaec0445748f3e97078bf980c502eff4d5001\nSigned-off-by: William Markezana \u003cwilliam.markezana@gmail.com\u003e\n"}},"a8fb4b4508e4d33a21440125d29fe5c24f0b07bb":{"kind":"REWORK","_number":3,"created":"2026-04-28 19:58:56.000000000","uploader":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"ref":"refs/changes/86/9586/3","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/86/9586/3","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/3 \u0026\u0026 git checkout -b change-9586 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/86/9586/3","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/3 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"7e508338ed0dd3ce2b5fb5b6654ff51125258812","subject":"target/riscv: add target_was_examined() checks"}],"author":{"name":"William Markezana","email":"william.markezana@gmail.com","date":"2026-04-10 16:45:43.000000000","tz":-240},"committer":{"name":"William Markezana","email":"william.markezana@gmail.com","date":"2026-04-28 19:58:49.000000000","tz":-240},"subject":"jtag/drivers: add T-Head CK-Link JTAG adapter driver","message":"jtag/drivers: add T-Head CK-Link JTAG adapter driver\n\nDriver for T-Head CK-Link Lite V2 probes, including the Bouffalo Lab\nBL616/BL702 CK-Link clones used as built-in debuggers on BL61x/BL70x\nevaluation boards. The wire protocol is a framed command format over\nUSB bulk endpoints, reverse-engineered from T-Head\u0027s DebugServer.\n\nImplements JTAG_SCAN via the probe\u0027s batch opcode, with IR caching\nacross execute_queue boundaries and end-of-queue flush so OpenOCD\u0027s\nCapture-IR validation reads real hardware data. Speed is programmable\n(freq_kHz \u003d 48000 / (N+1), capped at the DebugServer-validated 2526\nkHz). Probes are matched by VID/PID (extendable via \u0027cklink vid_pid\u0027)\nand by adapter serial.\n\nKnown protocol limitations, surfaced as one-time warnings:\n\n  - Single batch entry encodes IR/DR bit-counts in single bytes;\n    scans \u003e 255 bits are clamped with TDI pass-through on the\n    un-shifted portion.\n  - The T-Head DTM\u0027s Capture-IR returns the current IR value rather\n    than the IEEE 1149.1 \u0027xxx01\u0027 pattern; init pre-loads IR \u003d IDCODE.\n  - No TMS-sequence opcode: JTAG_TMS and JTAG_PATHMOVE return\n    ERROR_JTAG_NOT_IMPLEMENTED.\n  - Multi-TAP chains are not supported.\n  - RTCK is not supported.\n\nTested against BL618 and BL702 evaluation boards.\n\nChange-Id: If6adaec0445748f3e97078bf980c502eff4d5001\nSigned-off-by: William Markezana \u003cwilliam.markezana@gmail.com\u003e\n"}},"62f6483119ce511ffede5e607bc46ec4a1f0f5e2":{"kind":"REWORK","_number":2,"created":"2026-04-27 14:30:54.000000000","uploader":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"ref":"refs/changes/86/9586/2","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/86/9586/2","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/2 \u0026\u0026 git checkout -b change-9586 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/86/9586/2","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/2 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"7e508338ed0dd3ce2b5fb5b6654ff51125258812","subject":"target/riscv: add target_was_examined() checks"}],"author":{"name":"William Markezana","email":"william.markezana@gmail.com","date":"2026-04-10 16:45:43.000000000","tz":-240},"committer":{"name":"William Markezana","email":"william.markezana@gmail.com","date":"2026-04-27 14:30:16.000000000","tz":-240},"subject":"jtag/drivers: add T-Head CK-Link JTAG adapter driver","message":"jtag/drivers: add T-Head CK-Link JTAG adapter driver\n\nAdd support for the T-Head CK-Link Lite V2 probe family, including the\nBouffalo Lab BL616/BL702 CK-Link clones used as built-in debuggers on\nBL618/BL702 evaluation boards. The wire protocol is a framed command\nformat over USB bulk endpoints, reverse-engineered from T-Head\u0027s\nDebugServer binary.\n\nThe driver implements:\n\n  - Full DebugServer init sequence: selfreg setup, operational clock,\n    5-wire JTAG -\u003e 2-wire cJTAG -\u003e 5-wire JTAG mode toggle (acts as\n    an effective TAP reset; the probe\u0027s wire driver re-initializes on\n    each switch).\n  - JTAG_SCAN via the probe\u0027s single-entry batch opcode with IR caching\n    across execute_queue boundaries; end-of-queue flush populates the\n    IR scan\u0027s in_value with hardware-captured Capture-IR data.\n  - Opcode-aware response-frame checksum validation. Selfreg reads use\n    sum-mod-256; JTAG batch responses exclude the last dr_tdo byte.\n  - Clock-divider control (freq_kHz \u003d 48000 / (N+1)) with once-warning\n    clamp when the requested speed exceeds the DebugServer-validated\n    ceiling (2526 kHz).\n  - libusb serial-number filter via adapter_get_required_serial()\n    and kernel-driver auto-detach on Linux.\n  - TCL command \u0027cklink vid_pid (vid pid)+\u0027 to override defaults.\n\nKnown protocol limitations, surfaced as one-time warnings rather than\nsilent data loss:\n\n  - Scans exceed 255 bits: the batch opcode encodes bit-counts in single\n    bytes. Clamp + TDI pass-through for the un-shifted portion, which\n    gives OpenOCD\u0027s bypass chain-length probe the expected end-of-chain\n    marker.\n  - Back-to-back IR scans: the batch opcode requires both IR and DR\n    phases; mid-queue flushing a deferred IR with a dummy DR would\n    trigger spurious DMI transactions. Single-TAP chains only.\n  - JTAG_TMS, JTAG_PATHMOVE: no TMS-sequence opcode exposed. Return\n    ERROR_JTAG_NOT_IMPLEMENTED.\n  - RTCK: not supported, return ERROR_JTAG_NOT_IMPLEMENTED.\n\nTested against BL618 (VID 0x42bf, PID 0xb210) and BL702 eval boards:\nIDCODE read, RISC-V DM examine, halt, register read, memory read,\nsingle-step, hardware breakpoints, GDB RSP server all functional.\n\nChange-Id: If6adaec0445748f3e97078bf980c502eff4d5001\nSigned-off-by: William Markezana \u003cwilliam.markezana@gmail.com\u003e\n"}},"fbd3a66e66f7a9437bd97959461bd2df7a959ba2":{"kind":"REWORK","_number":5,"created":"2026-05-04 22:21:52.000000000","uploader":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"ref":"refs/changes/86/9586/5","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/86/9586/5","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/5 \u0026\u0026 git checkout -b change-9586 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/86/9586/5","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/5 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"4e9b167e1ae5ccb437eb0538440988b3f0ec53cb","subject":"tcl: stm32mp2xx: set CSW for Cortex-M33 D-Cache coherency"}],"author":{"name":"William Markezana","email":"william.markezana@gmail.com","date":"2026-04-10 16:45:43.000000000","tz":-240},"committer":{"name":"William Markezana","email":"william.markezana@gmail.com","date":"2026-05-04 22:21:45.000000000","tz":-240},"subject":"jtag/drivers: add T-Head CK-Link JTAG adapter driver","message":"jtag/drivers: add T-Head CK-Link JTAG adapter driver\n\nDriver for T-Head CK-Link Lite V2 probes, including the Bouffalo Lab\nBL616/BL702 CK-Link clones used as built-in debuggers on BL61x/BL70x\nevaluation boards. The wire protocol is a framed command format over\nUSB bulk endpoints, reverse-engineered from T-Head\u0027s DebugServer.\n\nImplements JTAG_SCAN via the probe\u0027s batch opcode, with IR caching\nacross execute_queue boundaries and end-of-queue flush so OpenOCD\u0027s\nCapture-IR validation reads real hardware data. Speed is programmable\n(freq_kHz \u003d 48000 / (N+1), capped at the DebugServer-validated 2526\nkHz). Probes are matched against a built-in VID/PID list (overridable\nvia \u0027adapter usb vid_pid\u0027) and by adapter serial.\n\nKnown protocol limitations, surfaced as one-time warnings:\n\n  - Single batch entry encodes IR/DR bit-counts in single bytes;\n    scans \u003e 255 bits are clamped with TDI pass-through on the\n    un-shifted portion.\n  - The T-Head DTM\u0027s Capture-IR returns the current IR value rather\n    than the IEEE 1149.1 \u0027xxx01\u0027 pattern; init pre-loads IR \u003d IDCODE.\n  - No TMS-sequence opcode: JTAG_TMS and JTAG_PATHMOVE return\n    ERROR_JTAG_NOT_IMPLEMENTED.\n  - Multi-TAP chains are not supported.\n  - RTCK is not supported.\n\nTested against BL618 and BL702 evaluation boards.\n\nChange-Id: If6adaec0445748f3e97078bf980c502eff4d5001\nSigned-off-by: William Markezana \u003cwilliam.markezana@gmail.com\u003e\n"}},"1507451a12cfd7ee73f0d9ed2c85c848b4341547":{"kind":"REWORK","_number":4,"created":"2026-05-04 22:16:04.000000000","uploader":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"ref":"refs/changes/86/9586/4","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/86/9586/4","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/4 \u0026\u0026 git checkout -b change-9586 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/86/9586/4","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/4 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"4e9b167e1ae5ccb437eb0538440988b3f0ec53cb","subject":"tcl: stm32mp2xx: set CSW for Cortex-M33 D-Cache coherency"}],"author":{"name":"William Markezana","email":"william.markezana@gmail.com","date":"2026-04-10 16:45:43.000000000","tz":-240},"committer":{"name":"William Markezana","email":"william.markezana@gmail.com","date":"2026-05-02 15:51:05.000000000","tz":-240},"subject":"jtag/drivers: add T-Head CK-Link JTAG adapter driver","message":"jtag/drivers: add T-Head CK-Link JTAG adapter driver\n\nDriver for T-Head CK-Link Lite V2 probes, including the Bouffalo Lab\nBL616/BL702 CK-Link clones used as built-in debuggers on BL61x/BL70x\nevaluation boards. The wire protocol is a framed command format over\nUSB bulk endpoints, reverse-engineered from T-Head\u0027s DebugServer.\n\nImplements JTAG_SCAN via the probe\u0027s batch opcode, with IR caching\nacross execute_queue boundaries and end-of-queue flush so OpenOCD\u0027s\nCapture-IR validation reads real hardware data. Speed is programmable\n(freq_kHz \u003d 48000 / (N+1), capped at the DebugServer-validated 2526\nkHz). Probes are matched against a built-in VID/PID list (overridable\nvia \u0027adapter usb vid_pid\u0027) and by adapter serial.\n\nKnown protocol limitations, surfaced as one-time warnings:\n\n  - Single batch entry encodes IR/DR bit-counts in single bytes;\n    scans \u003e 255 bits are clamped with TDI pass-through on the\n    un-shifted portion.\n  - The T-Head DTM\u0027s Capture-IR returns the current IR value rather\n    than the IEEE 1149.1 \u0027xxx01\u0027 pattern; init pre-loads IR \u003d IDCODE.\n  - No TMS-sequence opcode: JTAG_TMS and JTAG_PATHMOVE return\n    ERROR_JTAG_NOT_IMPLEMENTED.\n  - Multi-TAP chains are not supported.\n  - RTCK is not supported.\n\nTested against BL618 and BL702 evaluation boards.\n\nChange-Id: If6adaec0445748f3e97078bf980c502eff4d5001\nSigned-off-by: William Markezana \u003cwilliam.markezana@gmail.com\u003e\n"}},"2e765342773a1aeb09aaf3aec7f3fd60ef35f36f":{"kind":"TRIVIAL_REBASE","_number":7,"created":"2026-05-10 20:39:50.000000000","uploader":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"ref":"refs/changes/86/9586/7","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/86/9586/7","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/7 \u0026\u0026 git checkout -b change-9586 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/86/9586/7","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/7 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"f9212ff31137ee8656cdf99ccac9d74cbd7164d6","subject":"tcl/interface: add Microchip DV22S07A OpenOCD Debug Probe"}],"author":{"name":"William Markezana","email":"william.markezana@gmail.com","date":"2026-04-10 16:45:43.000000000","tz":-240},"committer":{"name":"William Markezana","email":"william.markezana@gmail.com","date":"2026-05-10 20:39:07.000000000","tz":-240},"subject":"jtag/drivers: add T-Head CK-Link JTAG adapter driver","message":"jtag/drivers: add T-Head CK-Link JTAG adapter driver\n\nDriver for T-Head CK-Link Lite V2 probes, including the Bouffalo Lab\nBL616/BL702 CK-Link clones used as built-in debuggers on BL61x/BL70x\nevaluation boards. The wire protocol is a framed command format over\nUSB bulk endpoints, reverse-engineered from T-Head\u0027s DebugServer.\n\nImplements JTAG_SCAN via the probe\u0027s batch opcode, with IR caching\nacross execute_queue boundaries and end-of-queue flush so OpenOCD\u0027s\nCapture-IR validation reads real hardware data. Speed is programmable\n(freq_kHz \u003d 48000 / (N+1), capped at the DebugServer-validated 2526\nkHz). Probes are matched against a built-in VID/PID list (overridable\nvia \u0027adapter usb vid_pid\u0027) and by adapter serial.\n\nKnown protocol limitations, surfaced as one-time warnings:\n\n  - Single batch entry encodes IR/DR bit-counts in single bytes;\n    scans \u003e 255 bits are clamped with TDI pass-through on the\n    un-shifted portion.\n  - The T-Head DTM\u0027s Capture-IR returns the current IR value rather\n    than the IEEE 1149.1 \u0027xxx01\u0027 pattern; init pre-loads IR \u003d IDCODE.\n  - No TMS-sequence opcode: JTAG_TMS and JTAG_PATHMOVE return\n    ERROR_JTAG_NOT_IMPLEMENTED.\n  - Multi-TAP chains are not supported.\n  - RTCK is not supported.\n\nTested against BL618 and BL702 evaluation boards.\n\nChange-Id: If6adaec0445748f3e97078bf980c502eff4d5001\nSigned-off-by: William Markezana \u003cwilliam.markezana@gmail.com\u003e\n"}},"ddfce1209cb9738e9d9fd3739fdd40d0e690e490":{"kind":"REWORK","_number":6,"created":"2026-05-10 20:38:13.000000000","uploader":{"_account_id":1002512,"name":"will-tm","email":"william.markezana@gmail.com","username":"will-tm"},"ref":"refs/changes/86/9586/6","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/86/9586/6","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/6 \u0026\u0026 git checkout -b change-9586 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/86/9586/6","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/86/9586/6 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"4e9b167e1ae5ccb437eb0538440988b3f0ec53cb","subject":"tcl: stm32mp2xx: set CSW for Cortex-M33 D-Cache coherency"}],"author":{"name":"William Markezana","email":"william.markezana@gmail.com","date":"2026-04-10 16:45:43.000000000","tz":-240},"committer":{"name":"William Markezana","email":"william.markezana@gmail.com","date":"2026-05-10 20:38:10.000000000","tz":-240},"subject":"jtag/drivers: add T-Head CK-Link JTAG adapter driver","message":"jtag/drivers: add T-Head CK-Link JTAG adapter driver\n\nDriver for T-Head CK-Link Lite V2 probes, including the Bouffalo Lab\nBL616/BL702 CK-Link clones used as built-in debuggers on BL61x/BL70x\nevaluation boards. The wire protocol is a framed command format over\nUSB bulk endpoints, reverse-engineered from T-Head\u0027s DebugServer.\n\nImplements JTAG_SCAN via the probe\u0027s batch opcode, with IR caching\nacross execute_queue boundaries and end-of-queue flush so OpenOCD\u0027s\nCapture-IR validation reads real hardware data. Speed is programmable\n(freq_kHz \u003d 48000 / (N+1), capped at the DebugServer-validated 2526\nkHz). Probes are matched against a built-in VID/PID list (overridable\nvia \u0027adapter usb vid_pid\u0027) and by adapter serial.\n\nKnown protocol limitations, surfaced as one-time warnings:\n\n  - Single batch entry encodes IR/DR bit-counts in single bytes;\n    scans \u003e 255 bits are clamped with TDI pass-through on the\n    un-shifted portion.\n  - The T-Head DTM\u0027s Capture-IR returns the current IR value rather\n    than the IEEE 1149.1 \u0027xxx01\u0027 pattern; init pre-loads IR \u003d IDCODE.\n  - No TMS-sequence opcode: JTAG_TMS and JTAG_PATHMOVE return\n    ERROR_JTAG_NOT_IMPLEMENTED.\n  - Multi-TAP chains are not supported.\n  - RTCK is not supported.\n\nTested against BL618 and BL702 evaluation boards.\n\nChange-Id: If6adaec0445748f3e97078bf980c502eff4d5001\nSigned-off-by: William Markezana \u003cwilliam.markezana@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":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\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":[]}}]}
