Merge commit 'origin/master'
authorØyvind Harboe <oyvind.harboe@zylin.com>
Fri, 9 Oct 2009 07:14:27 +0000 (09:14 +0200)
committerØyvind Harboe <oyvind.harboe@zylin.com>
Fri, 9 Oct 2009 07:14:27 +0000 (09:14 +0200)
doc/openocd.texi
tcl/board/imx35pdk.cfg

index 11bd7e0..daa9460 100644 (file)
@@ -66,6 +66,7 @@ Free Documentation License''.
 * Running::                          Running OpenOCD
 * OpenOCD Project Setup::            OpenOCD Project Setup
 * Config File Guidelines::           Config File Guidelines
+* Translating Configuration Files::  Translating Configuration Files
 * Daemon Configuration::             Daemon Configuration
 * Interface - Dongle Configuration:: Interface - Dongle Configuration
 * Reset Configuration::              Reset Configuration
@@ -911,7 +912,6 @@ It provides guidelines for creating those files.
 You should find the following directories under @t{$(INSTALLDIR)/scripts},
 with files including the ones listed here.
 Use them as-is where you can; or as models for new files.
-
 @itemize @bullet
 @item @file{interface} ...
 think JTAG Dongle. Files that configure JTAG adapters go here.
@@ -1464,6 +1464,46 @@ Examples:
 @item pxa270 - again - CS0 flash - it goes in the board file.
 @end itemize
 
+@node Translating Configuration Files
+@chapter Translating Configuration Files
+@cindex translation
+If you have a configuration file for another hardware debugger(Abatron,
+BDI2000, BDI3000, Lauterbach, Segger, MacRaigor, etc.), translating
+it into OpenOCD syntax is often quite straightforward. The most tricky
+part of creating a configuration script is oftentimes the reset init
+sequence where e.g. PLLs, DRAM and the like is set up.
+
+One trick that you can use when translating is to write small
+Tcl proc's to translate the syntax into OpenOCD syntax. This
+can avoid manual translation errors and make it easier to
+convert other scripts later on.
+
+Example of transforming quirky arguments to a simple search and
+replace job:
+
+@example
+# rewrite commands of the form below to arm11 mcr...
+#
+#   Lauterbach syntax(?)
+#
+#      Data.Set c15:0x042f %long 0x40000015
+#
+#   OpenOCD syntax when using procedure below.
+#
+#   setc15 0x01 0x00050078
+#
+#
+proc setc15 @{regs value@} @{
+       global TARGETNAME 
+
+       echo [format "set p15 0x%04x, 0x%08x" $regs $value] 
+
+       arm11 mcr $TARGETNAME 15 [expr ($regs>>12)&0x7] [expr ($regs>>0)&0xf] [expr ($regs>>4)&0xf] [expr ($regs>>8)&0x7] $value 
+@}
+@end example
+
+
+
 @node Daemon Configuration
 @chapter Daemon Configuration
 @cindex initialization
index 3e0bf6b..05d83ee 100644 (file)
@@ -21,6 +21,9 @@ proc setc15 {regs value} {
 
 proc imx35pdk_init { } {
        
+       # this reset script comes from the Freescale PDK
+       #
+       # http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=IMX35PDK
        
        echo "Target Setup: initialize DRAM controller and peripherals"