Attached is the patch to get arm11 on telo scripts working again with
the latest openocd code.
I also included a patch for fixing adapter_nsrst_assert_width. Without
it, I can't really use srst signal.

Michal


On Thu, 2010-04-22 at 07:20 +0200, Øyvind Harboe wrote:
> On Thu, Apr 22, 2010 at 4:19 AM, Michal <[email protected]> wrote:
> >
> > I spent a fair amount of time tracking down my problems.
> >
> > 1. mrc/mcr.
> > This turned out to be a syntax change:
> >  old> arm11 mrc c100.cpu 15 0 1 0 0
> >  new> arm mrc 15 0 1 0 0
> 
> Do you have patched scripts for OpenOCD that should be merged?
> 
> > 2. memwrite
> > a. This was harder. The problem only appears to show up running openocd
> > in script mode (-c command). I could not reproduce this with telnet
> > console.
> 
> Hmm..... don't know what this could be, but would what you observe
> be consistent with that it is simply timing that matters and whether
> it works or not is up to pure chance of whether you add/remove
> a sleep?
> 
> You could try to add a "sleep" here and there to your setup to see
> if that makes a difference?
> 
> 
> 
> 

diff --git a/src/jtag/adapter.c b/src/jtag/adapter.c
index b262a9a..50e2a02 100644
--- a/src/jtag/adapter.c
+++ b/src/jtag/adapter.c
@@ -366,6 +366,23 @@ COMMAND_HANDLER(handle_adapter_nsrst_delay_command)
 	return ERROR_OK;
 }
 
+COMMAND_HANDLER(handle_adapter_nsrst_assert_width_command)
+{
+	if (CMD_ARGC > 1)
+		return ERROR_COMMAND_SYNTAX_ERROR;
+	if (CMD_ARGC == 1)
+	{
+		unsigned width;
+		COMMAND_PARSE_NUMBER(uint, CMD_ARGV[0], width);
+
+		jtag_set_nsrst_assert_width(width);
+	}
+	command_print(CMD_CTX, "adapter_nsrst_assert_width: %u", jtag_get_nsrst_assert_width());
+	return ERROR_OK;
+}
+
+
+
 COMMAND_HANDLER(handle_adapter_khz_command)
 {
 	if (CMD_ARGC > 1)
@@ -421,6 +438,13 @@ static const struct command_registration interface_command_handlers[] = {
 		.usage = "[milliseconds]",
 	},
 	{
+		.name = "adapter_nsrst_assert_width",
+		.handler = handle_adapter_nsrst_assert_width_command,
+		.mode = COMMAND_ANY,
+		.help = "delay after asserting SRST in ms",
+		.usage = "[milliseconds]",
+	},
+	{
 		.name = "interface",
 		.handler = handle_interface_command,
 		.mode = COMMAND_CONFIG,
diff --git a/tcl/board/telo.cfg b/tcl/board/telo.cfg
index a60cb02..1c0ad76 100644
--- a/tcl/board/telo.cfg
+++ b/tcl/board/telo.cfg
@@ -58,4 +58,4 @@ set _FLASHNAME $_CHIPNAME.flash
 flash bank $_FLASHNAME cfi 0x20000000 0x01000000 2 2 $_TARGETNAME
 
 # writing data to memory does not work without this
-memwrite burst disable
\ No newline at end of file
+arm11 memwrite burst disable
\ No newline at end of file
diff --git a/tcl/target/c100config.tcl b/tcl/target/c100config.tcl
index b08f909..17a9476 100644
--- a/tcl/target/c100config.tcl
+++ b/tcl/target/c100config.tcl
@@ -403,9 +403,9 @@ proc flashUBOOT {file} {
     flash erase_sector 0 0 3
     puts "Programming u-boot"
     putsUART0 "Programming u-boot..."
-    memwrite burst enable
+    arm11 memwrite burst enable
     flash write_image $file $EXP_CS0_BASEADDR
-    memwrite burst disable
+    arm11 memwrite burst disable
     putsUART0 "done.\n"
     putsUART0 "Rebooting, please wait!\n"
     reboot
diff --git a/tcl/target/c100helper.tcl b/tcl/target/c100helper.tcl
index 1fd58b6..477fe5c 100644
--- a/tcl/target/c100helper.tcl
+++ b/tcl/target/c100helper.tcl
@@ -325,7 +325,7 @@ proc setupDDR2 {} {
     if {$tmp == "128M"} {
 	configureDDR2regs_128M
     } elseif {$tmp == "256M"} {
-	configureDDR2regs_256B
+	configureDDR2regs_256M
     } else {
 	puts "Don't know how to configure DDR2 setup?"
     }
diff --git a/tcl/target/telo.cfg b/tcl/target/telo.cfg
deleted file mode 100644
index aa9ff22..0000000
--- a/tcl/target/telo.cfg
+++ /dev/null
@@ -1,61 +0,0 @@
-source [find target/c100.cfg]
-# basic register defintion for C100
-source [find target/c100regs.tcl]
-# board-config info
-source [find target/c100config.tcl]
-# C100 helper functions
-source [find target/c100helper.tcl]
-
-
-# Telo board & C100 support trst and srst
-# Note that libftd2xx.so tries to assert srst
-# which break this script
-# use libftdi.so library instead with this script
-# make the reset asserted to
-# allow RC circuit to discharge for: [ms]
-adapter_nsrst_assert_width 100
-jtag_ntrst_assert_width 100
-# don't talk to JTAG after reset for: [ms]
-adapter_nsrst_delay 100
-jtag_ntrst_delay 100
-reset_config trst_and_srst separate
-
-
-
-
-# issue telnet: reset init
-# issue gdb: monitor reset init
-$_TARGETNAME configure -event reset-init {
-	adapter_khz 100
-	# this will setup Telo board
-	setupTelo
-	#turn up the JTAG speed
-	adapter_khz 3000
-	puts "JTAG speed now 3MHz"
-	puts "type helpC100 to get help on C100"
-}
-
-$_TARGETNAME configure -event reset-deassert-post {
-	# Force target into ARM state.
-#	soft_reset_halt # not implemented on ARM11
-	puts "Detected SRSRT asserted on C100.CPU"
-
-}
-
-$_TARGETNAME configure -event reset-assert-post {
-  puts "Assering reset"
-  #sleep 10
-}
-
-proc power_restore {} { puts "Sensed power restore. No action." }
-proc srst_deasserted {} { puts "Sensed nSRST deasserted. No action." }
-
-
-# boots from NOR on CS0:  8 MBytes CFI flash, 16-bit bus
-# it's really 16MB but the upper 8mb is controller via gpio
-# openocd does not support 'complex reads/writes' to NOR
-set _FLASHNAME $_CHIPNAME.flash
-flash bank $_FLASHNAME cfi 0x20000000 0x01000000 2 2 $_TARGETNAME
-
-# writing data to memory does not work without this
-memwrite burst disable
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to