Hello:
We created our custom DM648 based board. We took the development kit and stripped things like ethernet and pci bridge. We kept the rest and fundamental parts as close as possible, mostly the same. We are trying to setup the board to start software development, but we are having trouble with the JTAG part.
We installed the XDS510USB plus drivers from the lyrtech web, setup up CCS3.3(SR11) with the lyrtech provided "CCS SD510USB_EVMDM648.ccs" script file which makes CCS adds a chain like this: "SD510USB - DM658 Emulator"->DM648_0->ICEPICK_C_0->DSP->C6400PLUS_0" where the driver used is the sdgo6400usb_plus.dvr file
With this configuration we can connect to jtag to the target but connection is very unstable. Devices are configured with the GEL file and we can inspect memory and other internal register space sometimes. We even got to load a simple memory test program which executes successfully. But as soon as we try to run more complex applications jtag communication seems to break. The simpler case is when we write to memory. CCS pops up a dialog with this error:
"""
Trouble Halting Target CPU:
Error 0x00000020/-1202
Error during: Execution,
CPU pipeline is stalled and the CPU is 'not ready'. This means
that the CPU has performed an access which has not
completed, and the CPU is waiting. The target may need to be
reset. The user can choose 'Yes' to force the CPU to be 'ready'.
When this is done, the user will have the ability to examine
the target memory and registers to determine the cause of the
CPU stall. If CPU hang is caused by application and it has been
forced to be 'ready', the CPU should not be run without a reset.
Yes - force CPU ready (might corrupt the code)
Disconnect - disconnect CCS so that it can be reset
Retry - attempt the command again
"""
Sometimes we choose Yes and we can carry on, some others not. Most of the times we need to reset the DM648 and try again to go on. The furthest we got was being able to debug the memory test application step by step, placing breakpoints, but little more from that.
Another error we got in the same style is this:
"""
Trouble Reading Memory Block at 0xe0000000 on Page 0 of Length 0x158:
Error 0x00000002/-1202
Error during: Memory,
"""
This is a regular (working) GEL output excerpt:
"""
Connecting Target...
Setup Cache...
L1P = 32K L1D = 32K L2 = ALL SRAM
Setup Cache... Done.
PLL1 Setup...
PLL1 Setup for DSP @ 810 MHz, SYSCLK2 = 202.5 MHz, SYSCLK4 = 202.5 MHz.
PLL1 Setup... Done.
Power on all PSC modules and DSP domains...
In DVR mode.
Power on all PSC modules and DSP domains... Done.
DDR2 Setup for 32 bits DDR @ 260.0 MHz...
DDR2 Setup... Done.
Set Board and DSP Pin Mux...
"""
We then try to make dbgjtag application run to get more info about the issue, like this: "dbgjtag -f brddat\ccBrd0.dat -rv -T observe"
"""
-----[Print the reset-command software log-file]-----------------------
This utility has selected an XDS510 class product.
This utility will load the adapter 'xds510.dll'.
This utility will operate on port address '0x0240'.
The controller does not use a programmable FPGA.
An error occurred while hard opening the controller.
-----[An error has occurred and this utility has aborted]--------------
This error is generated by TI's USCIF driver.
The value is '-180' (0xffffff4c).
The title is 'SC_ERR_CTL_NO_TRG_POWER'.
The explanation is:
The controller has detected a target power loss.
The user must turn-on or connect the power supply for the target.
"""
We get the same error on all dbgjtag commands we have issued so far.
We also tried changing CCS setup to use the c64xxplus_xds510_0x240.ccs script so we got a chain like this: "C64xx+ XDS510 Emulator->C6400PLUS_0" using tixds6400_plus.dvr which leads CCS to the same error message as above just inside CCS when we try to connect to the target.
We tested that PD pin in the JTAG connector provides the 3.3V for VCC, it does. We suspected also about DDR memory controller misconfiguration but we double checked them and since the memory works when jtag is not broken we assume it's valid. Besides when we try to connect to target, the GEL initialization procedure fails when trying to program DDR controller registers which are not on RAM, so this is a point against JTAG.
Needless to say that we followed the regular connection steps power cycling target, JTAG emulator, CCS and even the whole host machine.
Is the jtag chain configuration correct for the DM648 and XDS510USB plus? Could anyone provide ideas on how to debug the situation and getting what's needed to be fixed?
Thanks.