)]}'
{"id":"openocd~master~Ic99cabb70038d9eb02b8a4da8e3244ee20ccc3c1","project":"openocd","branch":"master","hashtags":[],"change_id":"Ic99cabb70038d9eb02b8a4da8e3244ee20ccc3c1","subject":"target/riscv: implement soft_reset_halt","status":"NEW","created":"2026-07-22 11:15:48.000000000","updated":"2026-07-23 09:54:08.000000000","submit_type":"CHERRY_PICK","submittable":false,"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"465906c774926d04dc96cb3db1ca804b0b57cc66","_number":9790,"owner":{"_account_id":1002315,"name":"liangzhen","email":"zhen.liang@spacemit.com","username":"liangzhen"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:jenkins-gerrit-trigger","value":1,"date":"2026-07-23 09:54:08.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]}],"values":{"-1":"Fails"," 0":"No score","+1":"Verified"},"description":"","default_value":0},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_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"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-07-22 11:27:14.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-07-22 12:19:53.000000000","updated_by":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"reviewer":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"9474414ae1a90c92f0e52485f236a57e7a6a12b9","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1002315,"name":"liangzhen","email":"zhen.liang@spacemit.com","username":"liangzhen"},"real_author":{"_account_id":1002315,"name":"liangzhen","email":"zhen.liang@spacemit.com","username":"liangzhen"},"date":"2026-07-22 11:15:48.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"11838662edf8efbb32634cf59877630587019cee","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-07-22 12:19:53.000000000","message":"Patch Set 1: Verified+1\n\nBuild Successful \n\nhttps://build.openocd.org/job/openocd-gerrit-build/22670/ : SUCCESS\n\nhttps://build.openocd.org/job/openocd-gerrit/23572/ : SUCCESS","accounts_in_message":[],"_revision_number":1},{"id":"128ac70598dd8c5b7e8d7cf0af769bc4a6079819","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1002315,"name":"liangzhen","email":"zhen.liang@spacemit.com","username":"liangzhen"},"real_author":{"_account_id":1002315,"name":"liangzhen","email":"zhen.liang@spacemit.com","username":"liangzhen"},"date":"2026-07-23 09:04:26.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":"cb7f00cf57852b1edcdb5ec9f16641b92903b07f","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-07-23 09:26:59.000000000","message":"Patch Set 2: Verified+1\n\nBuild Successful \n\nhttps://build.openocd.org/job/openocd-gerrit-build/22674/ : SUCCESS\n\nhttps://build.openocd.org/job/openocd-gerrit/23576/ : SUCCESS","accounts_in_message":[],"_revision_number":2},{"id":"c88fd32a812f12c65ecae05bb021db2f2ad40803","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1002315,"name":"liangzhen","email":"zhen.liang@spacemit.com","username":"liangzhen"},"real_author":{"_account_id":1002315,"name":"liangzhen","email":"zhen.liang@spacemit.com","username":"liangzhen"},"date":"2026-07-23 09:32:49.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":"465906c774926d04dc96cb3db1ca804b0b57cc66","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-07-23 09:54:08.000000000","message":"Patch Set 3: Verified+1\n\nBuild Successful \n\nhttps://build.openocd.org/job/openocd-gerrit-build/22675/ : SUCCESS\n\nhttps://build.openocd.org/job/openocd-gerrit/23577/ : SUCCESS","accounts_in_message":[],"_revision_number":3}],"current_revision":"f29c74ac56e1732d567e3e7485fc0cfcc32113dc","revisions":{"bd16b49ee0b3ffdc27c8e9a06f26d1f5b1b0af76":{"kind":"REWORK","_number":1,"created":"2026-07-22 11:15:48.000000000","uploader":{"_account_id":1002315,"name":"liangzhen","email":"zhen.liang@spacemit.com","username":"liangzhen"},"ref":"refs/changes/90/9790/1","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/90/9790/1","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/90/9790/1 \u0026\u0026 git checkout -b change-9790 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/90/9790/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/90/9790/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/90/9790/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/90/9790/1","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/90/9790/1 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"bbe3a3cecf714027a005c259916c411ff2e26f16","subject":"target/riscv: add reset method command support"}],"author":{"name":"Zane Leung","email":"zhen.liang@spacemit.com","date":"2026-07-22 11:14:05.000000000","tz":480},"committer":{"name":"Zane Leung","email":"zhen.liang@spacemit.com","date":"2026-07-22 11:14:05.000000000","tz":480},"subject":"target/riscv: implement soft_reset_halt using hartreset","message":"target/riscv: implement soft_reset_halt using hartreset\n\nAdd riscv_soft_reset_halt() which resets and halts only the current\nhart by temporarily forcing hartreset config, regardless of the global\nreset_config setting. This avoids issuing an ndmreset (full platform\nreset) when only a single hart needs to be reset and halted.\n\nChange-Id: Ic99cabb70038d9eb02b8a4da8e3244ee20ccc3c1\nSigned-off-by: Zane Leung \u003czhen.liang@spacemit.com\u003e\n"}},"f29c74ac56e1732d567e3e7485fc0cfcc32113dc":{"kind":"REWORK","_number":3,"created":"2026-07-23 09:32:49.000000000","uploader":{"_account_id":1002315,"name":"liangzhen","email":"zhen.liang@spacemit.com","username":"liangzhen"},"ref":"refs/changes/90/9790/3","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/90/9790/3","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/90/9790/3 \u0026\u0026 git checkout -b change-9790 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/90/9790/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/90/9790/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/90/9790/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/90/9790/3","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/90/9790/3 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"1bf1ac444a96d9151ae53a1ccf5adf16f8e25e75","subject":"Fix const correctness for strchr and strrchr"}],"author":{"name":"Zane Leung","email":"zhen.liang@spacemit.com","date":"2026-07-23 09:01:15.000000000","tz":480},"committer":{"name":"Zane Leung","email":"zhen.liang@spacemit.com","date":"2026-07-23 09:28:04.000000000","tz":480},"subject":"target/riscv: implement soft_reset_halt","message":"target/riscv: implement soft_reset_halt\n\nImplement soft_reset_halt for both riscv-011 and riscv-013 targets.\n\nFor riscv-013, extract the reset logic into execute_configured_reset()\nwhich accepts an explicit reset config (ndmreset or hartreset).\nsoft_reset_halt uses hartreset to reset and halt only the current hart,\navoiding a full platform reset (ndmreset). This is the correct behavior\nfor soft_reset_halt which should only affect the target hart.\n\nFor riscv-011, soft_reset_halt simply calls assert_reset with\nreset_halt\u003dtrue followed by deassert_reset, matching the existing\nper-hart reset semantics of the 0.11 debug spec.\n\nChange-Id: Ic99cabb70038d9eb02b8a4da8e3244ee20ccc3c1\nSigned-off-by: Zane Leung \u003czhen.liang@spacemit.com\u003e\n"}},"ddb20a021bc2e669d573246b2b38ab1c37257a99":{"kind":"REWORK","_number":2,"created":"2026-07-23 09:04:26.000000000","uploader":{"_account_id":1002315,"name":"liangzhen","email":"zhen.liang@spacemit.com","username":"liangzhen"},"ref":"refs/changes/90/9790/2","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/90/9790/2","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/90/9790/2 \u0026\u0026 git checkout -b change-9790 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/90/9790/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/90/9790/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/90/9790/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/90/9790/2","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/90/9790/2 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"1bf1ac444a96d9151ae53a1ccf5adf16f8e25e75","subject":"Fix const correctness for strchr and strrchr"}],"author":{"name":"Zane Leung","email":"zhen.liang@spacemit.com","date":"2026-07-23 09:01:15.000000000","tz":480},"committer":{"name":"Zane Leung","email":"zhen.liang@spacemit.com","date":"2026-07-23 09:03:42.000000000","tz":480},"subject":"target/riscv: implement soft_reset_halt","message":"target/riscv: implement soft_reset_halt\n\nImplement soft_reset_halt for both riscv-011 and riscv-013 targets.\n\nFor riscv-013, extract the reset logic into execute_configured_reset()\nwhich accepts an explicit reset config (ndmreset or hartreset).\nsoft_reset_halt uses hartreset to reset and halt only the current hart,\navoiding a full platform reset (ndmreset). This is the correct behavior\nfor soft_reset_halt which should only affect the target hart.\n\nFor riscv-011, soft_reset_halt simply calls assert_reset with\nreset_halt\u003dtrue followed by deassert_reset, matching the existing\nper-hart reset semantics of the 0.11 debug spec.\n\nChange-Id: Ic99cabb70038d9eb02b8a4da8e3244ee20ccc3c1\nSigned-off-by: Zane Leung \u003czhen.liang@spacemit.com\u003e\n"}}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"NOT_READY","labels":[{"label":"Verified","status":"OK","applied_by":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"NEED"}]}],"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":"UNSATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","-label:Code-Review\u003dMIN"]}}]}
