)]}'
{"id":"openocd~master~I816940c2022ccca0fabb489aa75d682edd0f6138","project":"openocd","branch":"master","attention_set":{},"removed_from_attention_set":{"1000021":{"account":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"last_update":"2024-04-16 22:25:11.000000000","reason":"\u003cGERRIT_ACCOUNT_1000021\u003e replied on the change","reason_account":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"}},"1001960":{"account":{"_account_id":1001960,"name":"sean-anderson-seco","email":"sean.anderson@seco.com","username":"sean-anderson-seco"},"last_update":"2024-05-04 08:36:23.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I816940c2022ccca0fabb489aa75d682edd0f6138","subject":"tcl/target: Add helpers for booting Xilinx ZynqMP from JTAG","status":"MERGED","created":"2024-02-07 00:04:11.000000000","updated":"2024-05-04 08:36:23.000000000","submitted":"2024-05-04 08:36:23.000000000","submitter":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"total_comment_count":14,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"8133","meta_rev_id":"197727421b0f86c1263a9ac102ad35a56aeed1af","_number":8133,"owner":{"_account_id":1001960,"name":"sean-anderson-seco","email":"sean.anderson@seco.com","username":"sean-anderson-seco"},"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":"2024-05-04 08:36:23.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":"2024-05-04 08:36:23.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":{"CC":[{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"}],"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":"2024-02-07 00:05:24.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":"2024-02-12 18:15:57.000000000","updated_by":{"_account_id":1001960,"name":"sean-anderson-seco","email":"sean.anderson@seco.com","username":"sean-anderson-seco"},"reviewer":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"state":"CC"},{"updated":"2024-02-12 18:15:57.000000000","updated_by":{"_account_id":1001960,"name":"sean-anderson-seco","email":"sean.anderson@seco.com","username":"sean-anderson-seco"},"reviewer":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"state":"CC"},{"updated":"2024-04-16 22:25: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":"a14f5d000e7084510b4732e511ee80f2e1c49b98","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1001960,"name":"sean-anderson-seco","email":"sean.anderson@seco.com","username":"sean-anderson-seco"},"real_author":{"_account_id":1001960,"name":"sean-anderson-seco","email":"sean.anderson@seco.com","username":"sean-anderson-seco"},"date":"2024-02-07 00:04:11.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"35a3e34e29e3176137a0d371206653a34645bece","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1001960,"name":"sean-anderson-seco","email":"sean.anderson@seco.com","username":"sean-anderson-seco"},"real_author":{"_account_id":1001960,"name":"sean-anderson-seco","email":"sean.anderson@seco.com","username":"sean-anderson-seco"},"date":"2024-02-07 00:05:19.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"10ed94e127d684915b9d9a9e0908b1a618a092c4","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":"2024-02-07 00:05:24.000000000","message":"Patch Set 1: Verified-1\n\nBuild Failed \n\nhttps://build.openocd.org/job/openocd-gerrit/19326/ : ABORTED\n\nhttps://build.openocd.org/job/openocd-gerrit-build/18487/ : ABORTED","accounts_in_message":[],"_revision_number":1},{"id":"955488e09078a30a167ad89d2bb79a4b98605288","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":"2024-02-07 00:17:18.000000000","message":"Patch Set 2: Verified+1\n\nBuild Successful \n\nhttps://build.openocd.org/job/openocd-gerrit/19327/ : SUCCESS\n\nhttps://build.openocd.org/job/openocd-gerrit-build/18488/ : SUCCESS","accounts_in_message":[],"_revision_number":2},{"id":"6c22d03f47002185b196d179572b54a2d04d7a9d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1001960,"name":"sean-anderson-seco","email":"sean.anderson@seco.com","username":"sean-anderson-seco"},"real_author":{"_account_id":1001960,"name":"sean-anderson-seco","email":"sean.anderson@seco.com","username":"sean-anderson-seco"},"date":"2024-02-22 17:18:38.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":"f353bca7a03ed5c36d0bb813d70de9c329512429","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":"2024-02-22 17:31:27.000000000","message":"Patch Set 3: Verified+1\n\nBuild Successful \n\nhttps://build.openocd.org/job/openocd-gerrit/19383/ : SUCCESS\n\nhttps://build.openocd.org/job/openocd-gerrit-build/18544/ : SUCCESS","accounts_in_message":[],"_revision_number":3},{"id":"7580036b6f4e49a93d3f7654b551c193823455e6","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":"2024-02-24 17:51:19.000000000","message":"Patch Set 3:\n\n(3 comments)","accounts_in_message":[],"_revision_number":3},{"id":"bb1b07d7d4b184b39d42b68b0cf164a7a9746ef3","author":{"_account_id":1001960,"name":"sean-anderson-seco","email":"sean.anderson@seco.com","username":"sean-anderson-seco"},"real_author":{"_account_id":1001960,"name":"sean-anderson-seco","email":"sean.anderson@seco.com","username":"sean-anderson-seco"},"date":"2024-03-01 19:20:15.000000000","message":"Patch Set 3:\n\n(2 comments)","accounts_in_message":[],"_revision_number":3},{"id":"83b2c51ded161cf04c4452662ca1a83f02e97976","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1001960,"name":"sean-anderson-seco","email":"sean.anderson@seco.com","username":"sean-anderson-seco"},"real_author":{"_account_id":1001960,"name":"sean-anderson-seco","email":"sean.anderson@seco.com","username":"sean-anderson-seco"},"date":"2024-03-01 19:24:05.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":"3fdb88dff3a196548413d9639e17a443016f1cb9","author":{"_account_id":1001960,"name":"sean-anderson-seco","email":"sean.anderson@seco.com","username":"sean-anderson-seco"},"real_author":{"_account_id":1001960,"name":"sean-anderson-seco","email":"sean.anderson@seco.com","username":"sean-anderson-seco"},"date":"2024-03-01 19:25:02.000000000","message":"Patch Set 4:\n\n(3 comments)","accounts_in_message":[],"_revision_number":4},{"id":"4d31ce93727d660c4c712de8224d4d5e7da92ee6","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":"2024-03-01 19:37:20.000000000","message":"Patch Set 4: Verified+1\n\nBuild Successful \n\nhttps://build.openocd.org/job/openocd-gerrit/19404/ : SUCCESS\n\nhttps://build.openocd.org/job/openocd-gerrit-build/18565/ : SUCCESS","accounts_in_message":[],"_revision_number":4},{"id":"efffbf8130035f12787fc2dda97b4ebe753ad57c","author":{"_account_id":1001960,"name":"sean-anderson-seco","email":"sean.anderson@seco.com","username":"sean-anderson-seco"},"real_author":{"_account_id":1001960,"name":"sean-anderson-seco","email":"sean.anderson@seco.com","username":"sean-anderson-seco"},"date":"2024-03-22 17:40:37.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"bf4a0a8260e44d4327386db631084d49cd5461c6","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":"2024-04-16 15:27:23.000000000","message":"Patch Set 4:\n\n(2 comments)","accounts_in_message":[],"_revision_number":4},{"id":"e7d69ff4ef826269fe59d3de95a421de4d84d7d7","author":{"_account_id":1001960,"name":"sean-anderson-seco","email":"sean.anderson@seco.com","username":"sean-anderson-seco"},"real_author":{"_account_id":1001960,"name":"sean-anderson-seco","email":"sean.anderson@seco.com","username":"sean-anderson-seco"},"date":"2024-04-16 15:31:36.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"3b0d086465f0b49ad802ee67bdad3dd9b6f6d3d4","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":"2024-04-16 15:37:39.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"47429315fa31eeb3e026ab91820a14be22edb794","author":{"_account_id":1001960,"name":"sean-anderson-seco","email":"sean.anderson@seco.com","username":"sean-anderson-seco"},"real_author":{"_account_id":1001960,"name":"sean-anderson-seco","email":"sean.anderson@seco.com","username":"sean-anderson-seco"},"date":"2024-04-16 15:40:52.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"b24f19c7826f16c57c601a46d00ecb221a9136bc","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":"2024-04-16 22:25:11.000000000","message":"Patch Set 4: Code-Review+1","accounts_in_message":[],"_revision_number":4},{"id":"de4f1600bec9eba5bed278b9a98b38f04d854011","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":"2024-05-04 08:36:18.000000000","message":"Patch Set 4: Code-Review+2","accounts_in_message":[],"_revision_number":4},{"id":"197727421b0f86c1263a9ac102ad35a56aeed1af","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":"2024-05-04 08:36:23.000000000","message":"Change has been successfully cherry-picked as a84d1b5f5e2754680c12c1595db9d296eec7d45c","accounts_in_message":[],"_revision_number":5}],"current_revision":"a84d1b5f5e2754680c12c1595db9d296eec7d45c","revisions":{"b45820dc9eadbfc895eb53230e1772292c36e726":{"kind":"REWORK","_number":3,"created":"2024-02-22 17:18:38.000000000","uploader":{"_account_id":1001960,"name":"sean-anderson-seco","email":"sean.anderson@seco.com","username":"sean-anderson-seco"},"ref":"refs/changes/33/8133/3","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/33/8133/3","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/33/8133/3 \u0026\u0026 git checkout -b change-8133 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/33/8133/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/33/8133/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/33/8133/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/33/8133/3","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/33/8133/3 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"4593c75f0b45ebb1bf10350c26c0163d0676f81a","subject":"jtag/drivers/jlink: make jlink quiet polling target in -d 3"}],"author":{"name":"Sean Anderson","email":"sean.anderson@seco.com","date":"2024-02-22 17:18:36.000000000","tz":-300},"committer":{"name":"Sean Anderson","email":"sean.anderson@seco.com","date":"2024-02-22 17:18:36.000000000","tz":-300},"subject":"tcl/target: Add helpers for booting Xilinx ZynqMP from JTAG","message":"tcl/target: Add helpers for booting Xilinx ZynqMP from JTAG\n\nAdd some helpers for booting ZynqMPs over JTAG. Normally, the CSU ROM\nwill load boot.bin from the boot medium. However, when booting from JTAG\nwe have to do this ourselves. There are generally two parts to this.\nFirst, we need to load the PMU firmware. Xilinx\u0027s tools do this by\nattaching to the PMU (a Microblaze CPU) over JTAG. However, the TAP is\nundocumented and we don\u0027t have any microblaze support in-tree. So\ninstead we do it the same way FSBL does it:\n\n- We ask the PMU to halt\n- We load the firmware into the PMU RAM\n- We ask the PMU to resume\n\nThe second thing we need to do is start one of the APU cores. When an\nAPU is released from reset, it starts executing at the value of its\nRVBARADDR. While we could load the APU firmware over the AXI target,\nit is faster to load it over the APU target. To do this, we put the APU\ninto an infinite loop before halting it. As an aside, I chose to use the\n\"APU\" terminology as opposed to \"core\" to make it clear that these\ncommands operate on the A53 cores and not the R5F cores.\n\nTypical usage of these commands could look something like\n\n\ttargets uscale.axi\n\tboot_pmu /path/to/pmu-firmware.bin\n\tboot_apu /path/to/u-boot-spl.bin\n\nBut of course there is always the option to call lower-level commands\nindividually if your boot process is more unusual.\n\nSigned-off-by: Sean Anderson \u003csean.anderson@seco.com\u003e\nChange-Id: I816940c2022ccca0fabb489aa75d682edd0f6138\n"}},"6d288937cb2d33fb5a2214c8a9664bf84bdc0c8a":{"kind":"REWORK","_number":2,"created":"2024-02-07 00:05:19.000000000","uploader":{"_account_id":1001960,"name":"sean-anderson-seco","email":"sean.anderson@seco.com","username":"sean-anderson-seco"},"ref":"refs/changes/33/8133/2","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/33/8133/2","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/33/8133/2 \u0026\u0026 git checkout -b change-8133 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/33/8133/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/33/8133/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/33/8133/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/33/8133/2","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/33/8133/2 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"4593c75f0b45ebb1bf10350c26c0163d0676f81a","subject":"jtag/drivers/jlink: make jlink quiet polling target in -d 3"}],"author":{"name":"Sean Anderson","email":"sean.anderson@seco.com","date":"2024-02-06 23:49:59.000000000","tz":-300},"committer":{"name":"Sean Anderson","email":"sean.anderson@seco.com","date":"2024-02-07 00:05:15.000000000","tz":-300},"subject":"tcl/target: Add helpers for booting Xilinx ZynqMP from JTAG","message":"tcl/target: Add helpers for booting Xilinx ZynqMP from JTAG\n\nAdd some helpers for booting ZynqMPs over JTAG. Normally, the CSU ROM\nwill load boot.bin from the boot medium. However, when booting from JTAG\nwe have to do this ourselves. There are generally two parts to this.\nFirst, we need to load the PMU firmware. Xilinx\u0027s tools do this by\nattaching to the PMU (a Microblaze CPU) over JTAG. However, the TAP is\nundocumented and we don\u0027t have any microblaze support in-tree. So\ninstead we do it the same way FSBL does it:\n\n- We ask the PMU to halt\n- We load the firmware into the PMU RAM\n- We ask the PMU to resume\n\nThe second thing we need to do is start one of the APU cores. When an\nAPU is released from reset, it starts executing at the value of its\nRVBARADDR. While we could load the APU firmware over the AXI target,\nit is faster to load it over the APU target. To do this, we put the APU\ninto an infinite loop before halting it. As an aside, I chose to use the\n\"APU\" terminology as opposed to \"core\" to make it clear that these\ncommands operate on the A53 cores and not the R5F cores.\n\nTypical usage of these commands could look something like\n\n\ttargets uscale.axi\n\tboot_pmu /path/to/pmu-firmware.bin\n\tboot_apu /path/to/u-boot-spl.bin\n\nBut of course there is always the option to call lower-level commands\nindividually if your boot process is more unusual.\n\nSigned-off-by: Sean Anderson \u003csean.anderson@seco.com\u003e\nChange-Id: I816940c2022ccca0fabb489aa75d682edd0f6138\n"}},"1182addaa8e1c81bdd8f04cb26a3462d344bf5c5":{"kind":"REWORK","_number":1,"created":"2024-02-07 00:04:11.000000000","uploader":{"_account_id":1001960,"name":"sean-anderson-seco","email":"sean.anderson@seco.com","username":"sean-anderson-seco"},"ref":"refs/changes/33/8133/1","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/33/8133/1","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/33/8133/1 \u0026\u0026 git checkout -b change-8133 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/33/8133/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/33/8133/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/33/8133/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/33/8133/1","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/33/8133/1 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"4593c75f0b45ebb1bf10350c26c0163d0676f81a","subject":"jtag/drivers/jlink: make jlink quiet polling target in -d 3"}],"author":{"name":"Sean Anderson","email":"sean.anderson@seco.com","date":"2024-02-06 23:49:59.000000000","tz":-300},"committer":{"name":"Sean Anderson","email":"sean.anderson@seco.com","date":"2024-02-07 00:03:22.000000000","tz":-300},"subject":"tcl/target: Add helpers for booting Xilinx ZynqMP from JTAG","message":"tcl/target: Add helpers for booting Xilinx ZynqMP from JTAG\n\nAdd some helpers for booting ZynqMPs over JTAG. Normally, the CSU ROM\nwill load boot.bin from the boot medium. However, when booting from JTAG\nwe have to do this ourselves. There are generally two parts to this.\nFirst, we need to load the PMU firmware. Xilinx\u0027s tools do this by\nattaching to the PMU (a Microblaze CPU) over JTAG. However, the TAP is\nundocumented and we don\u0027t have any microblaze support in-tree. So\ninstead we do it the same way FSBL does it:\n\n- We ask the PMU to halt\n- We load the firmware into the PMU RAM\n- We ask the PMU to resume\n\nThe second thing we need to do is start one of the APU cores. When an\nAPU is released from reset, it starts executing at the value of its\nRVBARADDR. While we could load the APU firmware over the AXI target,\nit is faster to load it over the APU target. To do this, we put the APU\ninto an infinite loop before halting it. As an aside, I chose to use the\n\"APU\" terminology as opposed to \"core\" to make it clear that these\ncommands operate on the A53 cores and not the R5F cores.\n\nTypical usage of these commands could look something like\n\n\ttargets uscale.axi\n\tboot_pmu /path/to/pmu-firmware.bin\n\tboot_apu /path/to/u-boot-spl.bin\n\nBut of course there is always the option to call lower-level commands\nindividually if your boot process is more unusual.\n\nSigned-off-by: Sean Anderson \u003csean.anderson@seco.com\u003e\nChange-Id: I816940c2022ccca0fabb489aa75d682edd0f6138\n"}},"a84d1b5f5e2754680c12c1595db9d296eec7d45c":{"kind":"REWORK","_number":5,"created":"2024-05-04 08:36:23.000000000","uploader":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"ref":"refs/changes/33/8133/5","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/33/8133/5","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/33/8133/5 \u0026\u0026 git checkout -b change-8133 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/33/8133/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/33/8133/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/33/8133/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/33/8133/5","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/33/8133/5 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"3eba7b53bf067508197e2455b81fc1375b1d945e","subject":"smp: fix SIGSEGV for \"smp off\" during target examine"}],"author":{"name":"Sean Anderson","email":"sean.anderson@seco.com","date":"2024-02-22 17:18:36.000000000","tz":-300},"committer":{"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","date":"2024-05-04 08:36:23.000000000","tz":0},"subject":"tcl/target: Add helpers for booting Xilinx ZynqMP from JTAG","message":"tcl/target: Add helpers for booting Xilinx ZynqMP from JTAG\n\nAdd some helpers for booting ZynqMPs over JTAG. Normally, the CSU ROM\nwill load boot.bin from the boot medium. However, when booting from JTAG\nwe have to do this ourselves. There are generally two parts to this.\nFirst, we need to load the PMU firmware. Xilinx\u0027s tools do this by\nattaching to the PMU (a Microblaze CPU) over JTAG. However, the TAP is\nundocumented and we don\u0027t have any microblaze support in-tree. So\ninstead we do it the same way FSBL does it:\n\n- We ask the PMU to halt\n- We load the firmware into the PMU RAM\n- We ask the PMU to resume\n\nThe second thing we need to do is start one of the APU cores. When an\nAPU is released from reset, it starts executing at the value of its\nRVBARADDR. While we could load the APU firmware over the AXI target,\nit is faster to load it over the APU target. To do this, we put the APU\ninto an infinite loop before halting it. As an aside, I chose to use the\n\"APU\" terminology as opposed to \"core\" to make it clear that these\ncommands operate on the A53 cores and not the R5F cores.\n\nTypical usage of these commands could look something like\n\n\ttargets uscale.axi\n\tboot_pmu /path/to/pmu-firmware.bin\n\tboot_apu /path/to/u-boot-spl.bin\n\nBut of course there is always the option to call lower-level commands\nindividually if your boot process is more unusual.\n\nSigned-off-by: Sean Anderson \u003csean.anderson@seco.com\u003e\nChange-Id: I816940c2022ccca0fabb489aa75d682edd0f6138\nReviewed-on: https://review.openocd.org/c/openocd/+/8133\nReviewed-by: Antonio Borneo \u003cborneo.antonio@gmail.com\u003e\nTested-by: jenkins\n"}},"b3c060c42f5290b1e2a5c6c9b00b26f80d82843f":{"kind":"REWORK","_number":4,"created":"2024-03-01 19:24:05.000000000","uploader":{"_account_id":1001960,"name":"sean-anderson-seco","email":"sean.anderson@seco.com","username":"sean-anderson-seco"},"ref":"refs/changes/33/8133/4","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/33/8133/4","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/33/8133/4 \u0026\u0026 git checkout -b change-8133 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/33/8133/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/33/8133/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/33/8133/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/33/8133/4","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/33/8133/4 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"4593c75f0b45ebb1bf10350c26c0163d0676f81a","subject":"jtag/drivers/jlink: make jlink quiet polling target in -d 3"}],"author":{"name":"Sean Anderson","email":"sean.anderson@seco.com","date":"2024-02-22 17:18:36.000000000","tz":-300},"committer":{"name":"Sean Anderson","email":"sean.anderson@seco.com","date":"2024-03-01 19:23:57.000000000","tz":-300},"subject":"tcl/target: Add helpers for booting Xilinx ZynqMP from JTAG","message":"tcl/target: Add helpers for booting Xilinx ZynqMP from JTAG\n\nAdd some helpers for booting ZynqMPs over JTAG. Normally, the CSU ROM\nwill load boot.bin from the boot medium. However, when booting from JTAG\nwe have to do this ourselves. There are generally two parts to this.\nFirst, we need to load the PMU firmware. Xilinx\u0027s tools do this by\nattaching to the PMU (a Microblaze CPU) over JTAG. However, the TAP is\nundocumented and we don\u0027t have any microblaze support in-tree. So\ninstead we do it the same way FSBL does it:\n\n- We ask the PMU to halt\n- We load the firmware into the PMU RAM\n- We ask the PMU to resume\n\nThe second thing we need to do is start one of the APU cores. When an\nAPU is released from reset, it starts executing at the value of its\nRVBARADDR. While we could load the APU firmware over the AXI target,\nit is faster to load it over the APU target. To do this, we put the APU\ninto an infinite loop before halting it. As an aside, I chose to use the\n\"APU\" terminology as opposed to \"core\" to make it clear that these\ncommands operate on the A53 cores and not the R5F cores.\n\nTypical usage of these commands could look something like\n\n\ttargets uscale.axi\n\tboot_pmu /path/to/pmu-firmware.bin\n\tboot_apu /path/to/u-boot-spl.bin\n\nBut of course there is always the option to call lower-level commands\nindividually if your boot process is more unusual.\n\nSigned-off-by: Sean Anderson \u003csean.anderson@seco.com\u003e\nChange-Id: I816940c2022ccca0fabb489aa75d682edd0f6138\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":[]}}]}
