Unable to connect XDS560R JTAG emulator to BeagleBoard through CCS 3.3 SR12

Hi,

I'm trying to connect a Spectrum Digital XDS560R JTAG emulator to the
BeagleBoard using Code Composer 3.3 (Software Release 12). I
downloaded the 3.03.30 emulation driver from Spectrum Digital here:
http://support.spectrumdigital.com/ccs3x_xds560r, which adds target
support for the OMAP3530. I used the CCS setup and chose the
OMAP3530_SDXDS560R profile which has the following breakdown:
  OMAP3530_SDXDS560R
  --ICEPICK_C_0
    --Port17
      --C6400PLUS_0
    --Port18
    --Port19
      --CS_DA_PC_0
        --Subpath_0
          --CortexA_0
          --crush_child_0
          --dappc_child_1
          --etm_child_2

I believe these are the correct gel files to hook up to a OMAP3530.
However, when I launched CCS, it failed to connect to the target; I
get the following error:
      Error initializing emulator

      Board Name:OMAP3530_SDXDS560R
      Cpu Name: ICEPICK_C_0

I'm not sure what I'm doing, whether I'm not configuring CCS
correctly, etc. Has anyone out there successfully hooked up a SD
XDS560R JTAG emulator to the BeagleBoard. Do I need to customize
anything in the .gel files provided by Spectrum Digital? Any TI
expert out there that can help me with this? I'm getting our custom
OMAP3530 board next week and I need to get this working so that I will
be ready to debug bringing up the board (I will, of course, attempt to
try to use the serial boot method first). Thanks!

Regards,
Andy

You need to make sure that you are using a 1.8V interface as that is what Beagle requires. Any voltage over that will damage the processor.

Gerald.

We bought this 14-pin JTAG header adapter (http://
www.spectrumdigital.com/product_info.php?&products_id=185) from
Spectrum Digital and replaced the 20-pin header that came with the
XDS860R; it says it's compatible with +1.0V and +5.0V. Anyways, I was
able to getting further along in attempting to connect the Cortex A
side: this is the GEL Output:

OMAP 32K Watchdog Timer is disable
Putting DPLL into bypass before proceeding
Putting CORE DPLL into bypass before proceeding
Locking CORE DPLL
PRCM clock configuration IIA setup has been completed
SystemClock = 19.2 MHz
DPLL_MULT_VALUE = 242
DPLL_DIV_VALUE = 13
CORE_DPLL_CLK = 663.771 MHz
CORE_CLK = 331.8855 MHz
L3_CLK = 165.9427 MHz
MM01: mDDR Samsung K4X51323PC - 512 Mbit(64MB) on CS0, 4M x 32bit x
4Banks
common_sdram_init() completed
SDRC initilization for mDDR_Samsung_K4X51323PC completed
19.2MHz clock configuration IIa
   CORTEXA8_CORE_VERSION = 0x411FC083
   CORE_REVISION = 0x00100003
   IS NOT COMPREHENDED BY THIS GEL FILEOMAP 32K Watchdog Timer is
disable

But I'm still getting these errors:

Trouble Reading Register: Error 0x80002004/-1203 Fatal Error during:
Register, Control, The DAP access, address 0x000001E4, has returned a
SLAVE error.
GEL: Error while executing OnTargetConnect(): target is not connected.
GEL: Error while executing OnResetDetected(): target is not connected.
Trouble Reading Register: Error 0x80002004/-1203 Fatal Error during:
Register, Control, The DAP access, address 0x000001E4, has returned a
SLAVE error.
GEL: Error while executing OnTargetConnect(): target access failed.

I am not a JTAG expert, but I do know that there is no Samsung memory on the board and the Beagle is 26MHZ and not 19.2MHZ, so you will need to get that corrected with all of the right timings. My suggestion is that you find a GEL script for the OMAP35xx EVM. It is very close to the Beagle.

Gerald

Thanks, I'll send an email to TI tech support.

By the way, if anyone has a working CCS GEL file for the BeagleBoard,
do you mind sharing it. I will see if I can get the one for the EVM
that Gerard suggested.

I suggest you do a search in the discssion board on beagleboard.org. You may find some information in the archives.

http://beagleboard.org/discuss

Gerald

I use USB560 JTAG emulator with CCSV4 and I delete all all initialization
scripts and let u-boot configure everything for me.

From: beagleboard@googlegroups.com
[mailto:beagleboard@googlegroups.com] On Behalf Of Andy Ngo
Sent: Thursday, October 22, 2009 6:47 PM
To: Beagle Board
Subject: [beagleboard] Re: Unable to connect XDS560R JTAG emulator to
BeagleBoard through CCS 3.3 SR12

By the way, if anyone has a working CCS GEL file for the BeagleBoard,
do you mind sharing it. I will see if I can get the one for the EVM
that Gerard suggested.

> Thanks, I'll send an email to TI tech support.
>
>
>
>
> > I am not a JTAG expert, but I do know that there is no Samsung memory

on

the
> > board and the Beagle is 26MHZ and not 19.2MHZ, so you will need to get

that

> > corrected with all of the right timings. My suggestion is that you

find a

> > GEL script for the OMAP35xx EVM. It is very close to the Beagle.
>
> > Gerald
>
>
> > > We bought this 14-pin JTAG header adapter (http://
> > >www.spectrumdigital.com/product_info.php?&products_id=185) from
> > > Spectrum Digital and replaced the 20-pin header that came with the
> > > XDS860R; it says it's compatible with +1.0V and +5.0V. Anyways, I

was

> > > able to getting further along in attempting to connect the Cortex A
> > > side: this is the GEL Output:
>
> > > OMAP 32K Watchdog Timer is disable
> > > Putting DPLL into bypass before proceeding
> > > Putting CORE DPLL into bypass before proceeding
> > > Locking CORE DPLL
> > > PRCM clock configuration IIA setup has been completed
> > > SystemClock = 19.2 MHz
> > > DPLL_MULT_VALUE = 242
> > > DPLL_DIV_VALUE = 13
> > > CORE_DPLL_CLK = 663.771 MHz
> > > CORE_CLK = 331.8855 MHz
> > > L3_CLK = 165.9427 MHz
> > > MM01: mDDR Samsung K4X51323PC - 512 Mbit(64MB) on CS0, 4M x 32bit
x
> > > 4Banks
> > > common_sdram_init() completed
> > > SDRC initilization for mDDR_Samsung_K4X51323PC completed
> > > 19.2MHz clock configuration IIa
> > > CORTEXA8_CORE_VERSION = 0x411FC083
> > > CORE_REVISION = 0x00100003
> > > IS NOT COMPREHENDED BY THIS GEL FILEOMAP 32K Watchdog
Timer is
> > > disable
>
> > > But I'm still getting these errors:
>
> > > Trouble Reading Register: Error 0x80002004/-1203 Fatal Error during:
> > > Register, Control, The DAP access, address 0x000001E4, has returned

a

> > > SLAVE error.
> > > GEL: Error while executing OnTargetConnect(): target is not

connected.

> > > GEL: Error while executing OnResetDetected(): target is not

connected.

> > > Trouble Reading Register: Error 0x80002004/-1203 Fatal Error during:
> > > Register, Control, The DAP access, address 0x000001E4, has returned

a

> > > SLAVE error.
> > > GEL: Error while executing OnTargetConnect(): target access failed.
>
> > > > You need to make sure that you are using a 1.8V interface as that

is what

> > > > Beagle requires. Any voltage over that will damage the processor.
>
> > > > Gerald.
>
>
> > > > > Hi,
>
> > > > > I'm trying to connect a Spectrum Digital XDS560R JTAG emulator

to the

> > > > > BeagleBoard using Code Composer 3.3 (Software Release 12). I
> > > > > downloaded the 3.03.30 emulation driver from Spectrum Digital

here:

> > > > >http://support.spectrumdigital.com/ccs3x_xds560r, which adds

target

> > > > > support for the OMAP3530. I used the CCS setup and chose the
> > > > > OMAP3530_SDXDS560R profile which has the following breakdown:
> > > > > OMAP3530_SDXDS560R
> > > > > --ICEPICK_C_0
> > > > > --Port17
> > > > > --C6400PLUS_0
> > > > > --Port18
> > > > > --Port19
> > > > > --CS_DA_PC_0
> > > > > --Subpath_0
> > > > > --CortexA_0
> > > > > --crush_child_0
> > > > > --dappc_child_1
> > > > > --etm_child_2
>
> > > > > I believe these are the correct gel files to hook up to a

OMAP3530.

> > > > > However, when I launched CCS, it failed to connect to the

target; I

> > > > > get the following error:
> > > > > Error initializing emulator
>
> > > > > Board Name:OMAP3530_SDXDS560R
> > > > > Cpu Name: ICEPICK_C_0
>
> > > > > I'm not sure what I'm doing, whether I'm not configuring CCS
> > > > > correctly, etc. Has anyone out there successfully hooked up a

SD

> > > > > XDS560R JTAG emulator to the BeagleBoard. Do I need to

customize

> > > > > anything in the .gel files provided by Spectrum Digital? Any TI
> > > > > expert out there that can help me with this? I'm getting our

custom

> > > > > OMAP3530 board next week and I need to get this working so that

I will

> > > > > be ready to debug bringing up the board (I will, of course,

attempt to

OK, I finally got the XDS560R emulator to successfully connect to the
BeagleBoard via CCS without errors by playing around with the GEL file
configuration. Using the same profile as I mentioned in my first
post, I changed CortexA_0 to use the C:\CCStudio_v3.3\boards
\omap35xx_3430\gel\Mistral_Omap35xx_CortexA8.gel file instead of the
default C:\CCStudio_v3.3\cc\gel\omap3530_cortexA.gel file; this was
Gerald's idea and it correctly configures the Micron DDR. I'll
purposedly wipe out x-loader and u-boot in the NAND to see if I can
load the u-boot elf file through the emulator to run. Thanks everyone
for your help.

Never mind, I stand corrected. The memory is still not configured
correctly using that alternative GEL file; I just don't get any errors
connecting. After wiping out x-loader and u-boot, I'm able to connect
to the board without errors but I'm unable to write to memory. The
script to configure the DDR is in omap3430_sdrc_configs.gel and there
is no option for the Micron (128MB) used on the BeagleBoard. I will
attempt to modify that script to add support for the BeagleBoard's
Micron memory.

Good news: I'm now able to "jumpstart" a blank BeagleBoard using the
SD XDS560R JTAG emulator through CCS to load the u-boot elf file. By
"blank", I mean there is no x-loader or u-boot image in the NAND. I
need to do this so that I can use the CCS debugger to run the u-boot
elf file, in case the serial boot method doesn't work for our custom
OMAP35x board. I had to modify the values of the SDRC registers so
that the DDR is setup correctly for me to be able to upload the u-boot
elf file to the target.

I decided to tinker a bit with my Beagle (C3) and discovered something I did
not expect. When in Linux (Kubuntu 9.04) on my PC, I get two different serial
devices when I plug Beagle in. I get /dev/ttyUSB0 (I'm using a USB <> Serial
adapter board to connect to Beagle) for ttyS2 and /dev/ttyACM0 (the USB OTG
and power port).

Now, according to the environment, I should have the console on ttyS2
(serial). However, to be able to interact with Beagle, I have to type into the
/dev/ttyACM0 device, and I am completely unable to type into the /dev/ttyUSB0
device. If I reset Beagle, I completely lose the /dev/ttyACM0 device until I
unplug Beagle and replug the USB OTG port.

Is this the intended normal behavior? If not, is there a way to make Beagle
use ttyS2 for both stdin and stdout as serial console? According to what I see
when I do printenv, this should already be the case, but is not what I am
seeing happen. The only way I can interact with Beagle is through the
/dev/ttyACM0 device on the USB OTG port.

I've had Beagle plugged in while I had Windows Vista booted and got a true
serial console through my USB <> Serial adapter. That's why I was so surprised
to see this behavior when I am booted into Linux on my PC.

Beagle Environment:

OMAP3 beagleboard.org # printenv
bootcmd=if mmcinit; then if run loadbootscript; then run bootscript; else if
run loaduimage; then if run loadramdisk; then run ramboot; else run mmcboot;
fi; else run ni
bootdelay=10
baudrate=115200
loadaddr=0x80200000
rdaddr=0x81600000
console=ttyS2,115200n8
optargs=
mmcargs=setenv bootargs console=${console} ${optargs} root=/dev/mmcblk0p2 rw
rootfstype=ext3 rootwait
ramargs=setenv bootargs console=${console} ${optargs} root=/dev/ram0 rw
ramdisk_size=32768 initrd=${rdaddr},32M
ubifsargs=setenv bootargs console=${console} ${optargs} root=ubi0:beagleroot
ubi.mtd=4 rw rootfstype=ubifs
jffs2args=setenv bootargs console=${console} ${optargs} root=/dev/mtdblock4 rw
rootfstype=jffs2
loadbootscript=fatload mmc 0 ${loadaddr} boot.scr
bootscript=echo Running bootscript from mmc ...; autoscr ${loadaddr}
loaduimage=fatload mmc 0 ${loadaddr} uImage.bin
loadramdisk=fatload mmc 0 ${rdaddr} ramdisk.gz
ramboot=echo Booting from ramdisk.gz ...; run ramargs; bootm ${loadaddr}
mmcboot=echo Booting from mmc ...; run mmcargs; bootm ${loadaddr}
nandboot=echo Booting from nand ...; run jffs2args; nand read ${loadaddr}
280000 400000; bootm ${loadaddr}
usbtty=cdc_acm
stdout=serial,usbtty
stdin=serial,usbtty
stderr=serial,usbtty
serial=6966000300000000040323091000d006
bootargs=console=ttyS2,115200n8 root=/dev/mtdblock4 rw rootfstype=jffs2

Environment size: 1372/131068 bytes

  8-Dale