<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: iMX RT1062 JTAG not working in i.MX RT Crossover MCUs</title>
    <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/iMX-RT1062-JTAG-not-working/m-p/1173173#M10902</link>
    <description>&lt;P&gt;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/126273"&gt;@victorjimenez&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks a lot for your post. I connected with the MCUBootUtility and burned the correct efuse (0x460[19]).&lt;/P&gt;&lt;P&gt;The good news is that SWD no longer works which is the expected behaviour.&lt;/P&gt;&lt;P&gt;The bad news is that JTAG still does not work which is not the expected behaviour.&lt;/P&gt;&lt;P&gt;The readout from running jlink commander is:&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;Type "connect" to establish a target connection, '?' for help&lt;BR /&gt;J-Link&amp;gt;connect&lt;BR /&gt;Please specify device / core. &amp;lt;Default&amp;gt;: MIMXRT1062XXX6A&lt;BR /&gt;Type '?' for selection dialog&lt;BR /&gt;Device&amp;gt;&lt;BR /&gt;Please specify target interface:&lt;BR /&gt;J) JTAG (Default)&lt;BR /&gt;S) SWD&lt;BR /&gt;T) cJTAG&lt;BR /&gt;TIF&amp;gt;&lt;BR /&gt;Device position in JTAG chain (IRPre,DRPre) &amp;lt;Default&amp;gt;: -1,-1 =&amp;gt; Auto-detect&lt;BR /&gt;JTAGConf&amp;gt;&lt;BR /&gt;Specify target interface speed [kHz]. &amp;lt;Default&amp;gt;: 4000 kHz&lt;BR /&gt;Speed&amp;gt;&lt;BR /&gt;Device "MIMXRT1062XXX6A" selected.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Connecting to target via JTAG&lt;BR /&gt;InitTarget() start&lt;BR /&gt;InitTarget()&lt;BR /&gt;Connect Under Reset&lt;BR /&gt;Connect Under Reset&lt;BR /&gt;InitTarget() end&lt;BR /&gt;InitTarget() start&lt;BR /&gt;InitTarget()&lt;BR /&gt;Connect Under Reset&lt;BR /&gt;Connect Under Reset&lt;BR /&gt;InitTarget() end&lt;BR /&gt;InitTarget() start&lt;BR /&gt;InitTarget()&lt;BR /&gt;Connect Under Reset&lt;BR /&gt;Connect Under Reset&lt;BR /&gt;InitTarget() end&lt;BR /&gt;InitTarget() start&lt;BR /&gt;InitTarget()&lt;BR /&gt;Connect Under Reset&lt;BR /&gt;Connect Under Reset&lt;BR /&gt;InitTarget() end&lt;/PRE&gt;&lt;P&gt;Is there perhaps another efuse that needs to be burned or a jumper that needs to be connected?&lt;/P&gt;&lt;P&gt;Thank you for your time.&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;</description>
    <pubDate>Mon, 26 Oct 2020 14:04:49 GMT</pubDate>
    <dc:creator>DavidVos</dc:creator>
    <dc:date>2020-10-26T14:04:49Z</dc:date>
    <item>
      <title>iMX RT1062 JTAG not working</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/iMX-RT1062-JTAG-not-working/m-p/1171155#M10779</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I am currently working with an&amp;nbsp;i&lt;SPAN&gt;MX RT1062 OEM&amp;nbsp;&lt;/SPAN&gt; board trying to get JTAG to work instead of SWD as I want to daisy chain some devices. I found this thread: &lt;A href="https://community.nxp.com/t5/i-MX-RT/RT1062-JTAG-Debugging/m-p/946048" target="_blank"&gt;https://community.nxp.com/t5/i-MX-RT/RT1062-JTAG-Debugging/m-p/946048&lt;/A&gt;&amp;nbsp;basically explaining that an efuse needed to be burned to put the board in JTAG mode. I then used the ocotp code in de MCUxpresso SDK to burn said efuse. Used code:&lt;/P&gt;&lt;PRE&gt;/*&lt;BR /&gt;* Copyright 2019 NXP&lt;BR /&gt;* All rights reserved.&lt;BR /&gt;*&lt;BR /&gt;* SPDX-License-Identifier: BSD-3-Clause&lt;BR /&gt;*/&lt;BR /&gt;&lt;BR /&gt;/*******************************************************************************&lt;BR /&gt;* Includes&lt;BR /&gt;******************************************************************************/&lt;BR /&gt;#include "board.h"&lt;BR /&gt;#include "fsl_ocotp.h"&lt;BR /&gt;#include "fsl_debug_console.h"&lt;BR /&gt;&lt;BR /&gt;#include "pin_mux.h"&lt;BR /&gt;#include "clock_config.h"&lt;BR /&gt;/*******************************************************************************&lt;BR /&gt;* Definitions&lt;BR /&gt;******************************************************************************/&lt;BR /&gt;#define EXAMPLE_OCOTP_FREQ_HZ (CLOCK_GetFreq(kCLOCK_IpgClk))&lt;BR /&gt;/* NOTE: enable this feature will write data to the fuse map, and this operation is&lt;BR /&gt;* irreversible. Please refer to the referance manual before using the read/write&lt;BR /&gt;* function, and calling the write API cautiously.&lt;BR /&gt;*/&lt;BR /&gt;#define EXAMPLE_OCOTP_SHADOW_REGISTER_READ_WRITE_ENABLE 1U&lt;BR /&gt;&lt;BR /&gt;#if defined(EXAMPLE_OCOTP_SHADOW_REGISTER_READ_WRITE_ENABLE) &amp;amp;&amp;amp; (EXAMPLE_OCOTP_SHADOW_REGISTER_READ_WRITE_ENABLE)&lt;BR /&gt;/* 0x22 is address of MAC0 fuse map. */&lt;BR /&gt;#define EXAMPLE_OCOTP_FUSE_MAP_ADDRESS 0x460&lt;BR /&gt;#define EXAMPLE_OCOTP_FUSE_WRITE_VALUE (1&amp;lt;&amp;lt;18)&lt;BR /&gt;#endif&lt;BR /&gt;&lt;BR /&gt;/*******************************************************************************&lt;BR /&gt;* Prototypes&lt;BR /&gt;******************************************************************************/&lt;BR /&gt;&lt;BR /&gt;/*******************************************************************************&lt;BR /&gt;* Variables&lt;BR /&gt;******************************************************************************/&lt;BR /&gt;&lt;BR /&gt;/*******************************************************************************&lt;BR /&gt;* Code&lt;BR /&gt;******************************************************************************/&lt;BR /&gt;/*!&lt;BR /&gt;* @brief OCOTP example.&lt;BR /&gt;*&lt;BR /&gt;* @details Just prints version of driver by using OCOTP API.&lt;BR /&gt;*/&lt;BR /&gt;&lt;BR /&gt;int main(void)&lt;BR /&gt;{&lt;BR /&gt;uint32_t version;&lt;BR /&gt;&lt;BR /&gt;/* Init hardware*/&lt;BR /&gt;BOARD_ConfigMPU();&lt;BR /&gt;BOARD_InitPins();&lt;BR /&gt;BOARD_BootClockRUN();&lt;BR /&gt;BOARD_InitDebugConsole();&lt;BR /&gt;&lt;BR /&gt;PRINTF("OCOTP Peripheral Driver Example\r\n\r\n");&lt;BR /&gt;&lt;BR /&gt;OCOTP_Init(OCOTP, EXAMPLE_OCOTP_FREQ_HZ);&lt;BR /&gt;&lt;BR /&gt;/* Get the OCOTP controller version. */&lt;BR /&gt;version = OCOTP_GetVersion(OCOTP);&lt;BR /&gt;PRINTF("OCOTP controller version: 0x%08X\r\n\r\n", version);&lt;BR /&gt;&lt;BR /&gt;/* Example code to write a MAC value the MAC0 register (0x22) and reload the shasdow register to read it back. */&lt;BR /&gt;#if defined(EXAMPLE_OCOTP_SHADOW_REGISTER_READ_WRITE_ENABLE) &amp;amp;&amp;amp; (EXAMPLE_OCOTP_SHADOW_REGISTER_READ_WRITE_ENABLE)&lt;BR /&gt;/* Read the LOCK register for checking the MAC_ADDR status. 0x00 stands for unlocking status. */&lt;BR /&gt;if (0x00U == (OCOTP_LOCK_MAC_ADDR_MASK &amp;amp; OCOTP_ReadFuseShadowRegister(OCOTP, 0x00)))&lt;BR /&gt;{&lt;BR /&gt;PRINTF("The origin value of fuse address 0x%02X is 0x%08X\r\n", EXAMPLE_OCOTP_FUSE_MAP_ADDRESS,&lt;BR /&gt;OCOTP_ReadFuseShadowRegister(OCOTP, EXAMPLE_OCOTP_FUSE_MAP_ADDRESS));&lt;BR /&gt;&lt;BR /&gt;if (kStatus_Success ==&lt;BR /&gt;OCOTP_WriteFuseShadowRegister(OCOTP, EXAMPLE_OCOTP_FUSE_MAP_ADDRESS, EXAMPLE_OCOTP_FUSE_WRITE_VALUE))&lt;BR /&gt;{&lt;BR /&gt;PRINTF("OCOTP Write operation success!\r\n");&lt;BR /&gt;PRINTF("The new value is 0x%08X\r\n", OCOTP_ReadFuseShadowRegister(OCOTP, EXAMPLE_OCOTP_FUSE_MAP_ADDRESS));&lt;BR /&gt;}&lt;BR /&gt;else&lt;BR /&gt;{&lt;BR /&gt;PRINTF("OCOTP write operation failed. Access deny!\r\n");&lt;BR /&gt;}&lt;BR /&gt;}&lt;BR /&gt;#endif&lt;BR /&gt;&lt;BR /&gt;while (1)&lt;BR /&gt;{&lt;BR /&gt;}&lt;BR /&gt;}&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;After burning the efuse nothing seemed to be changed however. This is the output when running JLINK commander:&lt;/P&gt;&lt;PRE&gt;Connecting to target via JTAG&lt;BR /&gt;InitTarget() start&lt;BR /&gt;InitTarget()&lt;BR /&gt;_TargetHalt: CPU halted&lt;BR /&gt;InitTarget() end&lt;BR /&gt;Could not measure total IR len. TDO is constant high.&lt;BR /&gt;InitTarget() start&lt;BR /&gt;InitTarget()&lt;BR /&gt;_TargetHalt: CPU halted&lt;BR /&gt;InitTarget() end&lt;BR /&gt;Could not measure total IR len. TDO is constant high.&lt;BR /&gt;InitTarget() start&lt;BR /&gt;InitTarget()&lt;BR /&gt;_TargetHalt: CPU halted&lt;BR /&gt;InitTarget() end&lt;BR /&gt;TotalIRLen = ?, IRPrint = 0x..000000000000001FFFFFFFFF&lt;BR /&gt;InitTarget() start&lt;BR /&gt;InitTarget()&lt;BR /&gt;_TargetHalt: CPU halted&lt;BR /&gt;InitTarget() end&lt;BR /&gt;Could not measure total IR len. TDO is constant high.&lt;BR /&gt;Cannot connect to target.&lt;/PRE&gt;&lt;P&gt;Connecting and flashing with SWD still works fine, which should not be the correct behaviour as burning the efuse should put the board in JTAG mode instead of SWD mode.&lt;/P&gt;&lt;P&gt;thanks for your time.&lt;/P&gt;</description>
      <pubDate>Wed, 21 Oct 2020 16:42:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/iMX-RT1062-JTAG-not-working/m-p/1171155#M10779</guid>
      <dc:creator>DavidVos</dc:creator>
      <dc:date>2020-10-21T16:42:52Z</dc:date>
    </item>
    <item>
      <title>Re: iMX RT1062 JTAG not working</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/iMX-RT1062-JTAG-not-working/m-p/1172074#M10824</link>
      <description>&lt;P&gt;Hello David,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;With the code that you are running, you are actually writing to the shadow registers, this doesn't burn the fuse. To properly burn the fuse I would recommend you use the MCUBootUtility which you can download from the following &lt;A href="https://github.com/JayHeng/NXP-MCUBootUtility" target="_blank" rel="noopener"&gt;link&lt;/A&gt;.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Section 4.2 of the documentation in the GitHub page explains how to burn the fuses with this tool. Keep in mind that to burn the fuse your board has to be in serial downloader mode and you will need to communicate with the RT either through USB or UART.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Have a great day,&lt;/P&gt;
&lt;P&gt;Victor&lt;/P&gt;
&lt;P&gt;-------------------------------------------------------------------------------&lt;/P&gt;
&lt;P&gt;Note:&lt;/P&gt;
&lt;P&gt;- If this post answers your question, please click the "Mark Correct"button. Thank you!&lt;/P&gt;
&lt;P&gt;- We are following threads for 7 weeks after the last post, later replies are ignored&lt;/P&gt;
&lt;P&gt;Please open a new thread and refer to the closed one, if you have a related question at a later point in time.&lt;/P&gt;
&lt;P&gt;-------------------------------------------------------------------------------&lt;/P&gt;</description>
      <pubDate>Thu, 22 Oct 2020 23:36:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/iMX-RT1062-JTAG-not-working/m-p/1172074#M10824</guid>
      <dc:creator>victorjimenez</dc:creator>
      <dc:date>2020-10-22T23:36:50Z</dc:date>
    </item>
    <item>
      <title>Re: iMX RT1062 JTAG not working</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/iMX-RT1062-JTAG-not-working/m-p/1173173#M10902</link>
      <description>&lt;P&gt;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/126273"&gt;@victorjimenez&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks a lot for your post. I connected with the MCUBootUtility and burned the correct efuse (0x460[19]).&lt;/P&gt;&lt;P&gt;The good news is that SWD no longer works which is the expected behaviour.&lt;/P&gt;&lt;P&gt;The bad news is that JTAG still does not work which is not the expected behaviour.&lt;/P&gt;&lt;P&gt;The readout from running jlink commander is:&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;Type "connect" to establish a target connection, '?' for help&lt;BR /&gt;J-Link&amp;gt;connect&lt;BR /&gt;Please specify device / core. &amp;lt;Default&amp;gt;: MIMXRT1062XXX6A&lt;BR /&gt;Type '?' for selection dialog&lt;BR /&gt;Device&amp;gt;&lt;BR /&gt;Please specify target interface:&lt;BR /&gt;J) JTAG (Default)&lt;BR /&gt;S) SWD&lt;BR /&gt;T) cJTAG&lt;BR /&gt;TIF&amp;gt;&lt;BR /&gt;Device position in JTAG chain (IRPre,DRPre) &amp;lt;Default&amp;gt;: -1,-1 =&amp;gt; Auto-detect&lt;BR /&gt;JTAGConf&amp;gt;&lt;BR /&gt;Specify target interface speed [kHz]. &amp;lt;Default&amp;gt;: 4000 kHz&lt;BR /&gt;Speed&amp;gt;&lt;BR /&gt;Device "MIMXRT1062XXX6A" selected.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Connecting to target via JTAG&lt;BR /&gt;InitTarget() start&lt;BR /&gt;InitTarget()&lt;BR /&gt;Connect Under Reset&lt;BR /&gt;Connect Under Reset&lt;BR /&gt;InitTarget() end&lt;BR /&gt;InitTarget() start&lt;BR /&gt;InitTarget()&lt;BR /&gt;Connect Under Reset&lt;BR /&gt;Connect Under Reset&lt;BR /&gt;InitTarget() end&lt;BR /&gt;InitTarget() start&lt;BR /&gt;InitTarget()&lt;BR /&gt;Connect Under Reset&lt;BR /&gt;Connect Under Reset&lt;BR /&gt;InitTarget() end&lt;BR /&gt;InitTarget() start&lt;BR /&gt;InitTarget()&lt;BR /&gt;Connect Under Reset&lt;BR /&gt;Connect Under Reset&lt;BR /&gt;InitTarget() end&lt;/PRE&gt;&lt;P&gt;Is there perhaps another efuse that needs to be burned or a jumper that needs to be connected?&lt;/P&gt;&lt;P&gt;Thank you for your time.&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;</description>
      <pubDate>Mon, 26 Oct 2020 14:04:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/iMX-RT1062-JTAG-not-working/m-p/1173173#M10902</guid>
      <dc:creator>DavidVos</dc:creator>
      <dc:date>2020-10-26T14:04:49Z</dc:date>
    </item>
    <item>
      <title>Re: iMX RT1062 JTAG not working</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/iMX-RT1062-JTAG-not-working/m-p/1174091#M10940</link>
      <description>&lt;P&gt;Hello David,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'm glad to hear that you were able to burn the fuse! There isn't any other fuse that has to be burned in order for JTAG to work properly. I don't know if the OEM board that you are using requires some hardware changes to work with JTAG instead of SWD. For example, in the case of our RT1060-EVK, since the RT by default comes with SWD if you want to use JTAG instead of SWD there are some hardware changes that you need to implement in the board besides burning the fuse.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;Victor&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 27 Oct 2020 21:54:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/iMX-RT1062-JTAG-not-working/m-p/1174091#M10940</guid>
      <dc:creator>victorjimenez</dc:creator>
      <dc:date>2020-10-27T21:54:06Z</dc:date>
    </item>
    <item>
      <title>Re: iMX RT1062 JTAG not working</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/iMX-RT1062-JTAG-not-working/m-p/1175330#M11002</link>
      <description>&lt;P&gt;Hi Victor,&lt;/P&gt;&lt;P&gt;You were correct in that some hardware changes need to be made. It turned out that the TDI and TDO pin were shared by the ethernet controller and these needed to be pulled high and low respectively.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for your help regarding this matter, your time is greatly appreciated.&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;</description>
      <pubDate>Thu, 29 Oct 2020 13:45:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/iMX-RT1062-JTAG-not-working/m-p/1175330#M11002</guid>
      <dc:creator>DavidVos</dc:creator>
      <dc:date>2020-10-29T13:45:18Z</dc:date>
    </item>
  </channel>
</rss>

