This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CCS 6.1.3 + xds100v2 + BBB : CortxA8: Error: (Error -1170 @ 0x0) Unable to access the DAP.

Other Parts Discussed in Thread: AM3359

Hi All

I've got BBB debug setup with CCS 6.1.3 and xds100v2 blackhawk. I am trying to start linux debugging. I've selected BeagleBone Black as my device during target configuration.
BBB boots up through the sdcard and I stop it at U boot command prompt. I load kernel binary, .dtb through tftp and my rfs is on NFS.
But when I load the vmlinux symbols and let the jtag run, I get below errors, even though the target configuration 'Test Connection' passes:

CortxA8: Error: (Error -1170 @ 0x0) Unable to access the DAP. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 6.0.222.0) 
CortxA8: Trouble Halting Target CPU: (Error -2064 @ 0x0) Unable to read device status. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 6.0.222.0) 

Below are the complete error logs and the target configuration 'Test Connection' pass logs.  

CortxA8: Output: ****  AM335x BeagleBlack Initialization is in progress .......... 
CortxA8: Output: ****  AM335x ALL PLL Config for OPP == OPP100 is in progress ......... 
CortxA8: Output: Input Clock Read from SYSBOOT[15:14]:  24MHz
CortxA8: Output: ****  Going to Bypass... 
CortxA8: Output: ****  Bypassed, changing values... 
CortxA8: Output: ****  Locking ARM PLL
CortxA8: Output: ****  Core Bypassed
CortxA8: Output: ****  Now locking Core...
CortxA8: Output: ****  Core locked
CortxA8: Output: ****  DDR DPLL Bypassed
CortxA8: Output: ****  DDR DPLL Locked
CortxA8: Output: ****  PER DPLL Bypassed
CortxA8: Output: ****  PER DPLL Locked
CortxA8: Output: ****  DISP PLL Config is in progress .......... 
CortxA8: Output: ****  DISP PLL Config is DONE .......... 
CortxA8: Output: ****  AM335x ALL ADPLL Config for OPP == OPP100 is Done ......... 
CortxA8: Output: ****  AM335x DDR3 EMIF and PHY configuration is in progress......... 
CortxA8: Output: EMIF PRCM is in progress ....... 
CortxA8: Output: EMIF PRCM Done 
CortxA8: Output: DDR PHY Configuration in progress 
CortxA8: Output: Waiting for VTP Ready ....... 
CortxA8: Output: VTP is Ready! 
CortxA8: Output: DDR PHY CMD0 Register configuration is in progress ....... 
CortxA8: Output: DDR PHY CMD1 Register configuration is in progress ....... 
CortxA8: Output: DDR PHY CMD2 Register configuration is in progress ....... 
CortxA8: Output: DDR PHY DATA0 Register configuration is in progress ....... 
CortxA8: Output: DDR PHY DATA1 Register configuration is in progress ....... 
CortxA8: Output: Setting IO control registers....... 
CortxA8: Output: EMIF Timing register configuration is in progress ....... 
CortxA8: Output: EMIF Timing register configuration is done ....... 
CortxA8: Output: PHY is READY!!
CortxA8: Output: DDR PHY Configuration done 
CortxA8: Output: ****  AM335x BeagleBlack Initialization is Done ****************** 


CortxA8: Error: (Error -1170 @ 0x0) Unable to access the DAP. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 6.0.222.0) 
CortxA8: Trouble Halting Target CPU: (Error -2064 @ 0x0) Unable to read device status. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 6.0.222.0) 
CortxA8: Error: (Error -1170 @ 0x0) Unable to access the DAP. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 6.0.222.0) 
CortxA8: Trouble Halting Target CPU: (Error -2064 @ 0x0) Unable to read device status. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 6.0.222.0) 
CortxA8: Error: (Error -1170 @ 0x0) Unable to access the DAP. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 6.0.222.0) 

Below are the Test Connection" logs:

[Start: Texas Instruments XDS100v2 USB Debug Probe_0]

Execute the command:

%ccs_base%/common/uscif/dbgjtag -f %boarddatafile% -rv -o -F inform,logfile=yes -S pathlength -S integrity

[Result]


-----[Print the board config pathname(s)]------------------------------------

/home/rohit/.ti/ti/0/0/BrdDat/testBoard.dat

-----[Print the reset-command software log-file]-----------------------------

This utility has selected a 100- or 510-class product.
This utility will load the adapter 'libjioserdesusb.so'.
The library build date was 'Apr  8 2016'.
The library build time was '02:34:10'.
The library package version is '6.0.222.0'.
The library component version is '35.35.0.0'.
The controller does not use a programmable FPGA.
The controller has a version number of '4' (0x00000004).
The controller has an insertion length of '0' (0x00000000).
This utility will attempt to reset the controller.
This utility has successfully reset the controller.

-----[Print the reset-command hardware log-file]-----------------------------

The scan-path will be reset by toggling the JTAG TRST signal.
The controller is the FTDI FT2232 with USB interface.
The link from controller to target is direct (without cable).
The software is configured for FTDI FT2232 features.
The controller cannot monitor the value on the EMU[0] pin.
The controller cannot monitor the value on the EMU[1] pin.
The controller cannot control the timing on output pins.
The controller cannot control the timing on input pins.
The scan-path link-delay has been set to exactly '0' (0x0000).

-----[The log-file for the JTAG TCLK output generated from the PLL]----------

There is no hardware for programming the JTAG TCLK frequency.

-----[Measure the source and frequency of the final JTAG TCLKR input]--------

There is no hardware for measuring the JTAG TCLK frequency.

-----[Perform the standard path-length test on the JTAG IR and DR]-----------

This path-length test uses blocks of 64 32-bit words.

The test for the JTAG IR instruction path-length succeeded.
The JTAG IR instruction path-length is 6 bits.

The test for the JTAG DR bypass path-length succeeded.
The JTAG DR bypass path-length is 1 bits.

-----[Perform the Integrity scan-test on the JTAG IR]------------------------

This test will use blocks of 64 32-bit words.
This test will be applied just once.

Do a test using 0xFFFFFFFF.
Scan tests: 1, skipped: 0, failed: 0
Do a test using 0x00000000.
Scan tests: 2, skipped: 0, failed: 0
Do a test using 0xFE03E0E2.
Scan tests: 3, skipped: 0, failed: 0
Do a test using 0x01FC1F1D.
Scan tests: 4, skipped: 0, failed: 0
Do a test using 0x5533CCAA.
Scan tests: 5, skipped: 0, failed: 0
Do a test using 0xAACC3355.
Scan tests: 6, skipped: 0, failed: 0
All of the values were scanned correctly.

The JTAG IR Integrity scan-test has succeeded.

-----[Perform the Integrity scan-test on the JTAG DR]------------------------

This test will use blocks of 64 32-bit words.
This test will be applied just once.

Do a test using 0xFFFFFFFF.
Scan tests: 1, skipped: 0, failed: 0
Do a test using 0x00000000.
Scan tests: 2, skipped: 0, failed: 0
Do a test using 0xFE03E0E2.
Scan tests: 3, skipped: 0, failed: 0
Do a test using 0x01FC1F1D.
Scan tests: 4, skipped: 0, failed: 0
Do a test using 0x5533CCAA.
Scan tests: 5, skipped: 0, failed: 0
Do a test using 0xAACC3355.
Scan tests: 6, skipped: 0, failed: 0
All of the values were scanned correctly.

The JTAG DR Integrity scan-test has succeeded.

[End: Texas Instruments XDS100v2 USB Debug Probe_0]

Please help me rectify this.

  • Hi,

    I see you are booting the board using U-boot and Linux, but while connecting the console shows the HW initialization script (a.k.a. GEL file) is also running. For the reasons illustrated in the post below, this is a disruptive combination.
    e2e.ti.com/.../521794

    In this case, configure your target configuration file (.ccxml) to use the AM3359 device instead of BeagleBone platform.

    Hope this helps,
    Rafael
  • Hi Rafael,

    Thanks for replying with this excellent info. I was trying to follow the Sitara board porting series. With some workarounds I was able to make it work although, but
    your suggestion works straightaway !!!!

    If I used Beaglebone black I had to manually add this line otherwise jtag can not see linux memory map:
    GEL_MapAddStr(0xC0000000, 0, 0x20000000, "R|W", 0);  // 512MB DDR3 virtual external memory

    However with what you suggested it works straightaway. I just wonder in what situation would be using beagleboneblack.gel beneficial.


    I am using the Arago File system supplied with the SDK. After I reach the login prompt, and if I break using jtag, I do not seem to have in a valid address space(0xe08414a8).
    I seem to have executing nops after wfi instruction. However ther's no call  stack shown.

    I kept Break points at am33xx_do_wfi and am33xx_do_wfi_sz, but were not hit. These two functions are the only ones who enter the WFI from mach-omap2 dir.

    Am I missing something or its expected behavior ?

    e0841478:   1AFFFFFB            bne        #0xe084146c
    e084147c:   E59F20F8            ldr        r2, [pc, #0xf8]
    e0841480:   E3120010            tst        r2, #0x10
    e0841484:   0A000004            beq        #0xe084149c
    e0841488:   E59F10E0            ldr        r1, [pc, #0xe0]
    e084148c:   E59F10D8            ldr        r1, [pc, #0xd8]
    e0841490:   E5912000            ldr        r2, [r1]
    e0841494:   E3C22003            bic        r2, r2, #3
    e0841498:   E5812000            str        r2, [r1]
    e084149c:   F57FF06F            isb        sy
    e08414a0:   F57FF04F            dsb        sy
    e08414a4:   F57FF05F            dmb        sy
    e08414a8:   E320F003            wfi        
    e08414ac:   E320F000            nop        
    e08414b0:   E320F000            nop        
    e08414b4:   E320F000            nop        
    e08414b8:   E320F000            nop 
  • Hi,

    I am glad the solution worked for you.

    >> I just wonder in what situation would be using beagleboneblack.gel beneficial.
    The GEL file is very useful if you are not using any u-boot or Linux pre-loaded code. In this case, the GEL script performs peripheral initialization such as EMIF/DDR, watchdog, PLL, etc.

    Regarding the WFI breakpoints, I am not familiar enough with the linux code and the Cortex A core to know if the virtual or real memory address is used when the processor services a WFI. In other words, when setting a breakpoint with the MMU ON the address used by CCS is the translated one - however, if the processor bypasses the MMU when servicing the WFI, the breakpoint will not be located at the desired function.

    In any case I would also suggest you to ask this question in the Sitara forum, as the experts there will be more knowledgeable about the Linux and the device characteristics.

    Hope this helps,
    Rafael