)]}'
{"id":"openocd~master~Ib2b943cec7c522613323eed6172dd0f526d663f1","project":"openocd","branch":"master","hashtags":[],"change_id":"Ib2b943cec7c522613323eed6172dd0f526d663f1","subject":"target/sjc: Add SJC authentication for I.MX6x","status":"NEW","created":"2014-05-21 13:11:34.000000000","updated":"2014-05-23 04:20:12.000000000","submit_type":"CHERRY_PICK","submittable":false,"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"f575fedf996444625c763b13bb7943de82fbe552","_number":2148,"owner":{"_account_id":1000645,"name":"Roy Spliet","email":"rspliet@mpi-sws.org","username":"rspliet"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":1000160,"name":"Paul Fertser","email":"fercerpav@gmail.com","username":"pfertser"},{"value":1,"date":"2014-05-21 13:48:59.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,"date":"2014-05-23 04:20:12.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":1000160,"name":"Paul Fertser","email":"fercerpav@gmail.com","username":"pfertser"},{"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"]},{"_account_id":1000160,"name":"Paul Fertser","email":"fercerpav@gmail.com","username":"pfertser"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2014-05-21 13:48:59.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":"2014-05-23 04:20:12.000000000","updated_by":{"_account_id":1000160,"name":"Paul Fertser","email":"fercerpav@gmail.com","username":"pfertser"},"reviewer":{"_account_id":1000160,"name":"Paul Fertser","email":"fercerpav@gmail.com","username":"pfertser"},"state":"REVIEWER"}],"messages":[{"id":"c5b069d366e37cd39ef91c3cbe252ad772cc87d6","author":{"_account_id":1000645,"name":"Roy Spliet","email":"rspliet@mpi-sws.org","username":"rspliet"},"real_author":{"_account_id":1000645,"name":"Roy Spliet","email":"rspliet@mpi-sws.org","username":"rspliet"},"date":"2014-05-21 13:11:34.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"dc5966d950b893d9175c48dbd032a3eadd18b983","author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"real_author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"date":"2014-05-21 13:48:59.000000000","message":"Patch Set 1: Verified+1\n\nBuild Successful \n\nhttp://openocd.zylin.com/jenkins/job/openocd-gerrit/4499/ : SUCCESS\n\nhttp://openocd.zylin.com/jenkins/job/openocd-gerrit-build/3944/ : SUCCESS","accounts_in_message":[],"_revision_number":1}],"current_revision":"4e12d082da6d2d8171aaf0b99e65ed3d6938590c","revisions":{"4e12d082da6d2d8171aaf0b99e65ed3d6938590c":{"kind":"REWORK","_number":1,"created":"2014-05-21 13:11:34.000000000","uploader":{"_account_id":1000645,"name":"Roy Spliet","email":"rspliet@mpi-sws.org","username":"rspliet"},"ref":"refs/changes/48/2148/1","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/48/2148/1","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/48/2148/1 \u0026\u0026 git checkout -b change-2148 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/48/2148/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/48/2148/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/48/2148/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/48/2148/1","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/48/2148/1 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"266638247dcdc17fc59d80fff979445b35a8f7a0","subject":"drivers/jlink: Revert workaround for \"certain osciloscope\""}],"author":{"name":"Roy Spliet","email":"rspliet@mpi-sws.org","date":"2014-05-21 12:46:57.000000000","tz":120},"committer":{"name":"Roy Spliet","email":"rspliet@mpi-sws.org","date":"2014-05-21 13:11:32.000000000","tz":120},"subject":"target/sjc: Add SJC authentication for I.MX6x","message":"target/sjc: Add SJC authentication for I.MX6x\n\nI.MX6x has three JTAG modes: No Debug, Secure JTAG, JTAG Enabled. The mode of operation is determined with a set of e-fuses on the SoC. Although most development boards are in \"JTAG enabled\" mode, devices in consumer hands are more likely to be in \"Secure JTAG\" mode.\nThe Secure JTAG Controller (SJC) is designed to authenticate JTAG access. In \"Secure JTAG\" mode by default the Debug Access Port is not accessible until a challenge/response mechanism is successfully fulfilled.\nThis patch adds support for a SJC target, that registers the sjc_init command. This command does three things:\n1) Try to authenticate with the SJC. It does so by fetching the challenge from the SJC, finding it in a database file containing challenge/response pairs, and uploading the response if found. If not found, it will not authenticate\n2) Enable the SDMA device, which is disabled by default by the SJC\n3) Set the IR scan chain to a state that devices are in IDMODE, so that scan chain interrogation succeeds.\n\nThis code is tested on the Boundary Devices Sabre Lite, featuring an I.MX6Q. Several imporant notes/concerns:\n- This patch should not interfere with devices in \"JTAG Enabled\" mode: when there is no challenge/response pair in the database file, authentication is not attempted.\n- SJC is currently implemented as a \"target\" device, with shims for the required debugging methods. This seemed the cleanest way of registering the sjc_init command, but ideally the OpenOCD APIs would be extended for non-debugging devices like SJC.\n- Documentation of the SJC states that authentication should be performed every time the SJC is reset. Currently sjc_init is executed on the post-reset event of the SJC, ensuring auth is done before scan chain interrogation. According to backlog, it is executed more than once, which is harmless but superfluous.\n- The IR scan chain reset works, but is not the tidiest solution. Main problem here is that IDCODE has a non-standard opcode. Right now it assumes 0xE for all devices except the SJC, which has opcode 0x0. For the DAP this is valid, for the SDMA there is no IDCODE command but 0xE is documented as \"reserved + bypass\". As a result, scan chain interrogation succeeds on the I.MX6Q after authentication.\n\nChange-Id: Ib2b943cec7c522613323eed6172dd0f526d663f1\nSigned-off-by: Roy Spliet \u003crspliet@mpi-sws.org\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"]}}]}
