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