)]}'
{"id":"openocd~master~If839cb531042f4e6f135743462be932ac881ab4c","project":"openocd","branch":"master","attention_set":{"1000853":{"account":{"_account_id":1000853,"name":"Marc Schink","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"last_update":"2026-01-27 17:09:43.000000000","reason":"\u003cGERRIT_ACCOUNT_1002489\u003e replied on the change","reason_account":{"_account_id":1002489,"name":"Nguyen Huy Hoang","email":"huyhoang3082001@gmail.com","username":"hhoang308"}}},"removed_from_attention_set":{"1002489":{"account":{"_account_id":1002489,"name":"Nguyen Huy Hoang","email":"huyhoang3082001@gmail.com","username":"hhoang308"},"last_update":"2026-01-30 01:09:26.000000000","reason":"\u003cGERRIT_ACCOUNT_1002489\u003e replied on the change","reason_account":{"_account_id":1002489,"name":"Nguyen Huy Hoang","email":"huyhoang3082001@gmail.com","username":"hhoang308"}}},"hashtags":[],"change_id":"If839cb531042f4e6f135743462be932ac881ab4c","subject":"target/rtt: support 64-bit targets by using dynamic offsets","status":"NEW","created":"2026-01-21 16:55:56.000000000","updated":"2026-03-24 11:23:42.000000000","submit_type":"CHERRY_PICK","mergeable":true,"submittable":false,"total_comment_count":15,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"066679f6fafcdd897eb50688be469957603b7b49","_number":9396,"owner":{"_account_id":1002489,"name":"Nguyen Huy Hoang","email":"huyhoang3082001@gmail.com","username":"hhoang308"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"all":[{"_account_id":1000853,"name":"Marc Schink","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},{"tag":"autogenerated:jenkins-gerrit-trigger","value":1,"date":"2026-01-29 01:31:05.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":-2,"max":2},"_account_id":1000853,"name":"Marc Schink","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},{"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":{"CC":[{"_account_id":1002047,"name":"Evgeniy Naydanov","email":"eugnay@gmail.com","username":"en-sc"}],"REVIEWER":[{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},{"_account_id":1000853,"name":"Marc Schink","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-01-21 16:56:07.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-01-21 16:57:27.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-01-21 20:40:37.000000000","updated_by":{"_account_id":1000853,"name":"Marc Schink","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"reviewer":{"_account_id":1000853,"name":"Marc Schink","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"state":"REVIEWER"},{"updated":"2026-03-24 11:23:42.000000000","updated_by":{"_account_id":1002047,"name":"Evgeniy Naydanov","email":"eugnay@gmail.com","username":"en-sc"},"reviewer":{"_account_id":1002047,"name":"Evgeniy Naydanov","email":"eugnay@gmail.com","username":"en-sc"},"state":"CC"}],"messages":[{"id":"42b33119ddc9c2f8f1449582690926a4c61c8d46","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1002489,"name":"Nguyen Huy Hoang","email":"huyhoang3082001@gmail.com","username":"hhoang308"},"real_author":{"_account_id":1002489,"name":"Nguyen Huy Hoang","email":"huyhoang3082001@gmail.com","username":"hhoang308"},"date":"2026-01-21 16:55:56.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"05015f280285df50204b6f86bf28241b9439341a","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-01-21 16:57:27.000000000","message":"Patch Set 1: Verified-1\n\nBuild Failed \n\nhttps://build.openocd.org/job/openocd-gerrit-build/21671/ : FAILURE\n\nhttps://build.openocd.org/job/openocd-gerrit/22559/ : FAILURE","accounts_in_message":[],"_revision_number":1},{"id":"d1f2de66f4a00add10c71d920b10e31533c452b3","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1002489,"name":"Nguyen Huy Hoang","email":"huyhoang3082001@gmail.com","username":"hhoang308"},"real_author":{"_account_id":1002489,"name":"Nguyen Huy Hoang","email":"huyhoang3082001@gmail.com","username":"hhoang308"},"date":"2026-01-21 17:06:38.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":"a9730d8d83c108d2a87e8c1689d7ef41d09a504a","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-01-21 17:28:57.000000000","message":"Patch Set 2: Verified+1\n\nBuild Successful \n\nhttps://build.openocd.org/job/openocd-gerrit-build/21672/ : SUCCESS\n\nhttps://build.openocd.org/job/openocd-gerrit/22560/ : SUCCESS","accounts_in_message":[],"_revision_number":2},{"id":"836572e2635e0b9b6741858ba3d19e36092dbcaa","author":{"_account_id":1000853,"name":"Marc Schink","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"real_author":{"_account_id":1000853,"name":"Marc Schink","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"date":"2026-01-21 20:40:37.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"612b97661a3aee7f01348a412eb07daf22d85482","author":{"_account_id":1002489,"name":"Nguyen Huy Hoang","email":"huyhoang3082001@gmail.com","username":"hhoang308"},"real_author":{"_account_id":1002489,"name":"Nguyen Huy Hoang","email":"huyhoang3082001@gmail.com","username":"hhoang308"},"date":"2026-01-22 02:21:15.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"ebb2620de03f62482db06d7a6676d2a427ba954d","author":{"_account_id":1000853,"name":"Marc Schink","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"real_author":{"_account_id":1000853,"name":"Marc Schink","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"date":"2026-01-23 08:34:52.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"1c3d7d4cf7d5470f9e638f3f3a21b9905d55408f","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1002489,"name":"Nguyen Huy Hoang","email":"huyhoang3082001@gmail.com","username":"hhoang308"},"real_author":{"_account_id":1002489,"name":"Nguyen Huy Hoang","email":"huyhoang3082001@gmail.com","username":"hhoang308"},"date":"2026-01-24 16:38:39.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":"9be581db9dae85b815695ff491c7c89a836fb544","author":{"_account_id":1002489,"name":"Nguyen Huy Hoang","email":"huyhoang3082001@gmail.com","username":"hhoang308"},"real_author":{"_account_id":1002489,"name":"Nguyen Huy Hoang","email":"huyhoang3082001@gmail.com","username":"hhoang308"},"date":"2026-01-24 16:44:24.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"bee5bdf67fffacf0fe397f4345229638f1132d8b","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-01-24 17:03:25.000000000","message":"Patch Set 3: Verified+1\n\nBuild Successful \n\nhttps://build.openocd.org/job/openocd-gerrit-build/21677/ : SUCCESS\n\nhttps://build.openocd.org/job/openocd-gerrit/22565/ : SUCCESS","accounts_in_message":[],"_revision_number":3},{"id":"156b96da78357fe1c3bd74f647f976a8abebb360","author":{"_account_id":1000853,"name":"Marc Schink","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"real_author":{"_account_id":1000853,"name":"Marc Schink","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"date":"2026-01-26 20:32:05.000000000","message":"Patch Set 3:\n\n(5 comments)","accounts_in_message":[],"_revision_number":3},{"id":"52feb2f8a8e8d1e2f9d80bed2835e7b5702395f3","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1002489,"name":"Nguyen Huy Hoang","email":"huyhoang3082001@gmail.com","username":"hhoang308"},"real_author":{"_account_id":1002489,"name":"Nguyen Huy Hoang","email":"huyhoang3082001@gmail.com","username":"hhoang308"},"date":"2026-01-27 16:55:57.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":"99bed3deb43e6324ff562dc8c529fabac5e18fbc","author":{"_account_id":1002489,"name":"Nguyen Huy Hoang","email":"huyhoang3082001@gmail.com","username":"hhoang308"},"real_author":{"_account_id":1002489,"name":"Nguyen Huy Hoang","email":"huyhoang3082001@gmail.com","username":"hhoang308"},"date":"2026-01-27 17:09:43.000000000","message":"Patch Set 4:\n\n(5 comments)","accounts_in_message":[],"_revision_number":4},{"id":"47a1b99803a4edb51fdd91f905bbfce3b2478e30","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-01-28 20:23:20.000000000","message":"Patch Set 4: Verified-1\n\nBuild Failed \n\nhttps://build.openocd.org/job/openocd-gerrit-build/21690/ : FAILURE\n\nhttps://build.openocd.org/job/openocd-gerrit/22578/ : FAILURE","accounts_in_message":[],"_revision_number":4},{"id":"b90bbc3787ff217b346d07f81faa0990841bbb3e","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1002489,"name":"Nguyen Huy Hoang","email":"huyhoang3082001@gmail.com","username":"hhoang308"},"real_author":{"_account_id":1002489,"name":"Nguyen Huy Hoang","email":"huyhoang3082001@gmail.com","username":"hhoang308"},"date":"2026-01-29 01:15:04.000000000","message":"Patch Set 5: Published edit on patch set 4.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"changekind:NO_CHANGE\")\n","accounts_in_message":[],"_revision_number":5},{"id":"f1d6aba8f4d2bcb7bc3d893650de42fe4a813b59","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-01-29 01:31:05.000000000","message":"Patch Set 5: Verified+1\n\nBuild Successful \n\nhttps://build.openocd.org/job/openocd-gerrit-build/21694/ : SUCCESS\n\nhttps://build.openocd.org/job/openocd-gerrit/22582/ : SUCCESS","accounts_in_message":[],"_revision_number":5},{"id":"7f932dc98b653741f44b3e57dc85589f1fa831a3","author":{"_account_id":1002489,"name":"Nguyen Huy Hoang","email":"huyhoang3082001@gmail.com","username":"hhoang308"},"real_author":{"_account_id":1002489,"name":"Nguyen Huy Hoang","email":"huyhoang3082001@gmail.com","username":"hhoang308"},"date":"2026-01-30 01:09:26.000000000","message":"Patch Set 5:\n\n(1 comment)","accounts_in_message":[],"_revision_number":5}],"current_revision":"52c5e2e853ad2b816a378f3744e7118f49c561d8","revisions":{"17723a3c6e128cad160806b1d9aa7d9077f6f132":{"kind":"REWORK","_number":1,"created":"2026-01-21 16:55:56.000000000","uploader":{"_account_id":1002489,"name":"Nguyen Huy Hoang","email":"huyhoang3082001@gmail.com","username":"hhoang308"},"ref":"refs/changes/96/9396/1","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/96/9396/1","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/96/9396/1 \u0026\u0026 git checkout -b change-9396 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/96/9396/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/96/9396/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/96/9396/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/96/9396/1","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/96/9396/1 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"60d11a881fb2d1f34584ba975749feb6fc1c9d03","subject":"adapter/jlink: Use new log level for adapter I/O"}],"author":{"name":"hhoang308","email":"huyhoang3082001@gmail.com","date":"2026-01-21 16:53:20.000000000","tz":420},"committer":{"name":"hhoang308","email":"huyhoang3082001@gmail.com","date":"2026-01-21 16:53:20.000000000","tz":420},"subject":"target/rtt: support 64-bit targets by using dynamic offsets","message":"target/rtt: support 64-bit targets by using dynamic offsets\n\nThe current RTT implementation hardcodes the channel structure size to\n24 bytes and uses fixed offsets for control block members. This conforms\nto the ILP32 (32-bit) layout but fails on LP64 (64-bit) targets such as\nRISC-V 64-bit or AArch64.\n\nOn 64-bit targets:\n- Pointers are 8 bytes, increasing the channel struct size to 32 bytes.\n- Member offsets are shifted due to alignment.\n- Critically, the \u0027read_pos\u0027 offset moves from 0x10 (32-bit) to 0x18\n  (64-bit).\n\nThe existing code writes to offset 0x10 to update the read position. On\na 64-bit target, offset 0x10 corresponds to \u0027SizeOfBuffer\u0027. This\noverwrites the buffer size with the read position value, causing memory\ncorruption and immediate firmware crashes (boot loops).\n\nThis patch introduces a dynamic parameter structure that selects the\ncorrect offsets and sizes at runtime based on \u0027target-\u003eaddress_bits\u0027.\nIt has been verified on a RISC-V 64-bit target running Zephyr RTOS.\n\nChange-Id: If839cb531042f4e6f135743462be932ac881ab4c\nSigned-off-by: hhoang308 \u003chuyhoang3082001@gmail.com\u003e\n"}},"31834643f49893d7c9b18acf28e45d587bd98f27":{"kind":"REWORK","_number":2,"created":"2026-01-21 17:06:38.000000000","uploader":{"_account_id":1002489,"name":"Nguyen Huy Hoang","email":"huyhoang3082001@gmail.com","username":"hhoang308"},"ref":"refs/changes/96/9396/2","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/96/9396/2","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/96/9396/2 \u0026\u0026 git checkout -b change-9396 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/96/9396/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/96/9396/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/96/9396/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/96/9396/2","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/96/9396/2 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"60d11a881fb2d1f34584ba975749feb6fc1c9d03","subject":"adapter/jlink: Use new log level for adapter I/O"}],"author":{"name":"hhoang308","email":"huyhoang3082001@gmail.com","date":"2026-01-21 16:53:20.000000000","tz":420},"committer":{"name":"hhoang308","email":"huyhoang3082001@gmail.com","date":"2026-01-21 17:06:26.000000000","tz":420},"subject":"target/rtt: support 64-bit targets by using dynamic offsets","message":"target/rtt: support 64-bit targets by using dynamic offsets\n\nThe current RTT implementation hardcodes the channel structure size to\n24 bytes and uses fixed offsets for control block members. This conforms\nto the ILP32 (32-bit) layout but fails on LP64 (64-bit) targets such as\nRISC-V 64-bit or AArch64.\n\nOn 64-bit targets:\n- Pointers are 8 bytes, increasing the channel struct size to 32 bytes.\n- Member offsets are shifted due to alignment.\n- Critically, the \u0027read_pos\u0027 offset moves from 0x10 (32-bit) to 0x18\n  (64-bit).\n\nThe existing code writes to offset 0x10 to update the read position. On\na 64-bit target, offset 0x10 corresponds to \u0027SizeOfBuffer\u0027. This\noverwrites the buffer size with the read position value, causing memory\ncorruption and immediate firmware crashes (boot loops).\n\nThis patch introduces a dynamic parameter structure that selects the\ncorrect offsets and sizes at runtime based on \u0027target-\u003eaddress_bits\u0027.\nIt has been verified on a RISC-V 64-bit target running Zephyr RTOS.\n\nChange-Id: If839cb531042f4e6f135743462be932ac881ab4c\nSigned-off-by: hhoang308 \u003chuyhoang3082001@gmail.com\u003e\n"}},"3580d027b8edc9d5789a49e63e37d5a10019bafb":{"kind":"REWORK","_number":3,"created":"2026-01-24 16:38:39.000000000","uploader":{"_account_id":1002489,"name":"Nguyen Huy Hoang","email":"huyhoang3082001@gmail.com","username":"hhoang308"},"ref":"refs/changes/96/9396/3","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/96/9396/3","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/96/9396/3 \u0026\u0026 git checkout -b change-9396 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/96/9396/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/96/9396/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/96/9396/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/96/9396/3","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/96/9396/3 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"60d11a881fb2d1f34584ba975749feb6fc1c9d03","subject":"adapter/jlink: Use new log level for adapter I/O"}],"author":{"name":"hhoang308","email":"huyhoang3082001@gmail.com","date":"2026-01-21 16:53:20.000000000","tz":420},"committer":{"name":"hhoang308","email":"huyhoang3082001@gmail.com","date":"2026-01-24 16:35:21.000000000","tz":420},"subject":"target/rtt: support 64-bit targets by using dynamic offsets","message":"target/rtt: support 64-bit targets by using dynamic offsets\n\nThe current RTT implementation hardcodes the channel structure size to\n24 bytes and uses fixed offsets for control block members. This conforms\nto the ILP32 (32-bit) layout but fails on LP64 (64-bit) targets such as\nRISC-V 64-bit or AArch64.\n\nOn 64-bit targets:\n- Pointers are 8 bytes, increasing the channel struct size to 32 bytes.\n- Member offsets are shifted due to alignment.\n- Critically, the \u0027read_pos\u0027 offset moves from 0x10 (32-bit) to 0x18\n  (64-bit).\n\nThe existing code writes to offset 0x10 to update the read position. On\na 64-bit target, offset 0x10 corresponds to \u0027SizeOfBuffer\u0027. This\noverwrites the buffer size with the read position value, causing memory\ncorruption and immediate firmware crashes (boot loops).\n\nThis patch introduces a dynamic parameter structure that selects the\ncorrect offsets and sizes at runtime based on \u0027target-\u003eaddress_bits\u0027.\nIt has been verified on a RISC-V 64-bit target running Zephyr RTOS.\n\nChange-Id: If839cb531042f4e6f135743462be932ac881ab4c\nSigned-off-by: hhoang308 \u003chuyhoang3082001@gmail.com\u003e\n"}},"dcc0188b49b2a1f7ecaf3a84940c6acc2f0b43c4":{"kind":"REWORK","_number":4,"created":"2026-01-27 16:55:57.000000000","uploader":{"_account_id":1002489,"name":"Nguyen Huy Hoang","email":"huyhoang3082001@gmail.com","username":"hhoang308"},"ref":"refs/changes/96/9396/4","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/96/9396/4","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/96/9396/4 \u0026\u0026 git checkout -b change-9396 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/96/9396/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/96/9396/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/96/9396/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/96/9396/4","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/96/9396/4 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"60d11a881fb2d1f34584ba975749feb6fc1c9d03","subject":"adapter/jlink: Use new log level for adapter I/O"}],"author":{"name":"hhoang308","email":"huyhoang3082001@gmail.com","date":"2026-01-21 16:53:20.000000000","tz":420},"committer":{"name":"hhoang308","email":"huyhoang3082001@gmail.com","date":"2026-01-27 16:54:10.000000000","tz":420},"subject":"target/rtt: support 64-bit targets by using dynamic offsets","message":"target/rtt: support 64-bit targets by using dynamic offsets\n\nThe current RTT implementation hardcodes the channel structure size to\n24 bytes and uses fixed offsets for control block members. This conforms\nto the ILP32 (32-bit) layout but fails on LP64 (64-bit) targets such as\nRISC-V 64-bit or AArch64.\n\nOn 64-bit targets:\n- Pointers are 8 bytes, increasing the channel struct size to 32 bytes.\n- Member offsets are shifted due to alignment.\n- Critically, the \u0027read_pos\u0027 offset moves from 0x10 (32-bit) to 0x18\n  (64-bit).\n\nThe existing code writes to offset 0x10 to update the read position. On\na 64-bit target, offset 0x10 corresponds to \u0027SizeOfBuffer\u0027. This\noverwrites the buffer size with the read position value, causing memory\ncorruption and immediate firmware crashes (boot loops).\n\nThis patch introduces a dynamic parameter structure that selects the\ncorrect offsets and sizes at runtime based on \u0027target-\u003eaddress_bits\u0027.\nIt has been verified on a RISC-V 64-bit target running Zephyr RTOS.\n\nChange-Id: If839cb531042f4e6f135743462be932ac881ab4c\nSigned-off-by: hhoang308 \u003chuyhoang3082001@gmail.com\u003e\n"}},"52c5e2e853ad2b816a378f3744e7118f49c561d8":{"kind":"REWORK","_number":5,"created":"2026-01-29 01:15:04.000000000","uploader":{"_account_id":1002489,"name":"Nguyen Huy Hoang","email":"huyhoang3082001@gmail.com","username":"hhoang308"},"ref":"refs/changes/96/9396/5","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/96/9396/5","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/96/9396/5 \u0026\u0026 git checkout -b change-9396 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/96/9396/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/96/9396/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/96/9396/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/96/9396/5","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/96/9396/5 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"60d11a881fb2d1f34584ba975749feb6fc1c9d03","subject":"adapter/jlink: Use new log level for adapter I/O"}],"author":{"name":"hhoang308","email":"huyhoang3082001@gmail.com","date":"2026-01-21 16:53:20.000000000","tz":420},"committer":{"name":"Nguyen Huy Hoang","email":"huyhoang3082001@gmail.com","date":"2026-01-29 01:15:04.000000000","tz":0},"subject":"target/rtt: support 64-bit targets by using dynamic offsets","message":"target/rtt: support 64-bit targets by using dynamic offsets\n\nThe current RTT implementation hardcodes the channel structure size to\n24 bytes and uses fixed offsets for control block members. This conforms\nto the ILP32 (32-bit) layout but fails on LP64 (64-bit) targets such as\nRISC-V 64-bit or AArch64.\n\nOn 64-bit targets:\n- Pointers are 8 bytes, increasing the channel struct size to 32 bytes.\n- Member offsets are shifted due to alignment.\n- Critically, the \u0027read_pos\u0027 offset moves from 0x10 (32-bit) to 0x18\n  (64-bit).\n\nThe existing code writes to offset 0x10 to update the read position. On\na 64-bit target, offset 0x10 corresponds to \u0027SizeOfBuffer\u0027. This\noverwrites the buffer size with the read position value, causing memory\ncorruption and immediate firmware crashes (boot loops).\n\nThis patch introduces a dynamic parameter structure that selects the\ncorrect offsets and sizes at runtime based on \u0027target-\u003eaddress_bits\u0027.\nIt has been verified on a RISC-V 64-bit target running Zephyr RTOS.\n\nChange-Id: If839cb531042f4e6f135743462be932ac881ab4c\nSigned-off-by: hhoang308 \u003chuyhoang3082001@gmail.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"]}}]}
