Hello,

i only have test it with this configuration, no more investigations. I think 
the biggest problem is
the flash write functionality.


Regards,

Mathias

Am 13.04.2011 20:05, schrieb Ingo Hornberger:
> Mathias K. <kesmtp@...> writes:
>>
>> [...]
>> Anyway, i was able to connect to the cortex-r4 (tms570) with a cortex_a8
> configuration. I can read
>> the registers, halt, step and resume seems to work.
>>
>> Regards,
>>
>> Mathias
>>
>> ---
>> [...]
> 
> Hi Mathias,
> 
> I am currently evaluating the TMS570 with OpenOCD. I played around with it a
> little bit, but I think I still have a problem in my configuration.
> I get the following "warning" on every command (which I think is actually an
> error ;) ):
> 
> Warn : Invalid ACK 0x6 in JTAG-DP transaction
> 
> Could you please provide your openocd.cfg to me?
> 
> TIA!
> 
> Best regards,
> Ingo
> 
> _______________________________________________
> Openocd-development mailing list
> Openocd-development@lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/openocd-development
> 

source [find interface/ti-tms570.cfg]

set CHIPNAME tms570
set CHIPTYPE am35x
adapter_khz 10
source [find target/amdm37x.cfg]
#
# Copyright (C)   2010        by Karl Kurbjun
# Copyright (C)   2009, 2010  by Øyvind Harboe
# Copyright (C)   2009        by David Brownell
# Copyright (C)   2009        by Magnus Lundin
#
# TI AM/DM37x
#  http://www.ti.com/litv/pdf/sprugn4b
#
# This script is based on the AM3517 initialization.  It should be considered
# preliminary since it needs more complete testing and only the basic
# operations work.
#

###############################################################################
# User modifiable parameters
###############################################################################

set _ENDIAN big
# This script uses the variable CHIPTYPE to determine whether this is an AM35x
# or DM37x target. If CHIPTYPE is not set it will error out.
if { [info exists CHIPTYPE] } {

   if { [info exists CHIPNAME] } {
      set  _CHIPNAME $CHIPNAME
   } else {
      set  _CHIPNAME $CHIPTYPE
   }

   switch $CHIPTYPE {
      dm37x {
         # Primary TAP: ICEpick-C (JTAG route controller) and boundary scan
         set _JRC_TAPID 0x1b7b302f
      }
      am35x {
         # Primary TAP: ICEpick-C (JTAG route controller) and boundary scan
         set _JRC_TAPID 0x1b7b302f
      }
      default {
         error "ERROR: CHIPTYPE was set, but it was not set to a valid value.  
Acceptable values are \"dm37x\" or \"am35x\"."
      }
   }
} else {
  error "ERROR: CHIPTYPE was not defined. Please set CHIPTYPE to \"am35x\" for 
the AM35x or \"dm37x\" for the DM37x series in the board configuration."
}

# Run the adapter at the fastest acceptable speed with the slowest possible
# core clock.
adapter_khz 100

###############################################################################
# JTAG setup
# The OpenOCD commands are described in the TAP Declaration section
#  http://openocd.berlios.de/doc/html/TAP-Declaration.html
###############################################################################

# The AM/DM37x has an ICEpick module in it like many of TI's other devices. More
#  can be read about this module in sprugn4b under chapter 27:  "Debug and
#  Emulation".  The module is used to route the JTAG chain to the various
#  subsystems in the chip.
source [find target/icepick.cfg]

# The TAP order should be described from the TDO connection in OpenOCD to the
#  TDI pin.  The OpenOCD FAQ describes this in more detail:
#  http://openocd.berlios.de/doc/html/FAQ.html

# From SPRUGN4B CH27 the available secondary TAPs are in this order from TDO:
#
#  Device   |  TAP number
#  ---------|------------
#  DAP      |  3
#  Sequencer|  2   Note: The sequencer is an ARM968
#  DSP      |  1
#  D2D      |  0
#
# Right now the only secondary tap enabled is the DAP so the rest are left
# undescribed.

######
# Start of Chain Description
# The Secondary TAPs all have enable functions defined for use with the ICEpick
# Only the DAP is enabled.  The AM37xx does not have the Sequencer or DSP but
# the TAP numbers for ICEpick do not change.
#
# TODO: A disable function should also be added.
######



# Secondary TAP: D2D it is not in the chain by default (-disable)
# The ICEpick can be used to enable it in the chain.
# This IRLEN is probably incorrect - not sure where the documentation is.
jtag newtap $_CHIPNAME etb -irlen 4 -ircapture 0x1 -irmask 0x0f -disable
jtag configure $_CHIPNAME.etb -event tap-enable \
   "icepick_c_tapenable $_CHIPNAME.jrc 1"

# Secondary TAP: DAP is closest to the TDO output
# The TAP enable event also needs to be described
jtag newtap $_CHIPNAME dap -irlen 4 -ircapture 0x1 -irmask 0x1 -disable
jtag configure $_CHIPNAME.dap -event tap-enable \
   "icepick_c_tapenable $_CHIPNAME.jrc 0"

# Primary TAP: ICEpick - it is closest to TDI so last in the chain
jtag newtap $_CHIPNAME jrc -irlen 6 -ircapture 0x1 -irmask 0x3f \
   -expected-id $_JRC_TAPID
        
######
# End of Chain Description
######

######
# Start JTAG TAP events
######

# some TCK tycles are required to activate the DEBUG power domain
jtag configure $_CHIPNAME.jrc -event post-reset "runtest 100"

# Enable the DAP TAP
jtag configure $_CHIPNAME.jrc -event setup "jtag tapenable $_CHIPNAME.dap"

######
# End JTAG TAP events
######

###############################################################################
# Target Setup:
# This section is described in the OpenOCD documentation under CPU Configuration
#  http://openocd.berlios.de/doc/html/CPU-Configuration.html
###############################################################################

# Create the CPU target to be used with GDB:  Cortex-A8, using DAP
set _TARGETNAME $_CHIPNAME.dap
target create $_TARGETNAME cortex_a8 -chain-position $_CHIPNAME.dap -variant 
arm1176

# The DM37x has 64K of SRAM starting at address 0x4020_0000.  Allow the first
# 16K to be used as a scratchpad for OpenOCD.

#$_TARGETNAME configure -work-area-phys 0x40200000 -work-area-size 0x4000
# size is automatically "calculated" by probing
set _FLASHNAME $_CHIPNAME.flash
flash bank $_FLASHNAME tms470 0x000000000 0x00200000 1 1 $_TARGETNAME

###############################################################################
# Target Functions
# Add any functions needed for the target here
###############################################################################

# Run this to enable invasive debugging.  This is run automatically in the
# reset sequence.
#proc amdm37x_dbginit {target} {
#   # General Cortex A8 debug initialisation
#   cortex_a8 dbginit
   
   # Enable DBGEN signal.  This signal is described in the ARM v7 TRM, but 
   # access to the signal appears to be implementation specific.  TI does not
   # describe this register much except a quick line that states DBGEM (sic) is
   # at this address and this bit.
#   $target mww phys 0x5401d030 0x00002000
#}

#jtag_rclk 100

#etm config $_TARGETNAME 16 normal half etb
#etb config $_TARGETNAME $_CHIPNAME.etb
_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to