From: Øyvind H. <go...@us...> - 2009-10-12 15:14:23
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Main OpenOCD repository". The branch, master has been updated via 59d09ff393daaf3cb2a5a27c808c40384bc3f74a (commit) via d38c75421b937026091927e4a8577f51a3d5dc16 (commit) from 6d694d405d767a537ca1eded70003887433d47bd (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 59d09ff393daaf3cb2a5a27c808c40384bc3f74a Author: Ãyvind Harboe <oyv...@zy...> Date: Mon Oct 12 15:13:44 2009 +0200 arm11 burst writes are now only enabled for writes larger than 1 word. Single word writes are frequently used from reset init scripts to non-memory peripherals. diff --git a/doc/openocd.texi b/doc/openocd.texi index ddc0cfd..479aa17 100644 --- a/doc/openocd.texi +++ b/doc/openocd.texi @@ -5737,7 +5737,11 @@ one bit in the encoding, effecively a fifth parameter.) @deffn Command {arm11 memwrite burst} [value] Displays the value of the memwrite burst-enable flag, -which is enabled by default. +which is enabled by default. Burst writes are only used +for memory writes larger than 1 word. Single word writes +are likely to be from reset init scripts and those writes +are often to non-memory locations which could easily have +many wait states, which could easily break burst writes. If @var{value} is defined, first assigns that. @end deffn diff --git a/src/target/arm11.c b/src/target/arm11.c index 16c8dd3..f7265da 100644 --- a/src/target/arm11.c +++ b/src/target/arm11.c @@ -1408,6 +1408,15 @@ int arm11_write_memory_inner(struct target_s *target, uint32_t address, uint32_t if (retval != ERROR_OK) return retval; + /* burst writes are not used for single words as those may well be + * reset init script writes. + * + * The other advantage is that as burst writes are default, we'll + * now exercise both burst and non-burst code paths with the + * default settings, increasing code coverage. + */ + bool burst = arm11_config_memwrite_burst && (count > 1); + switch (size) { case 1: @@ -1463,7 +1472,7 @@ int arm11_write_memory_inner(struct target_s *target, uint32_t address, uint32_t /** \todo TODO: buffer cast to uint32_t* causes alignment warnings */ uint32_t *words = (uint32_t*)buffer; - if (!arm11_config_memwrite_burst) + if (!burst) { /* STC p14,c5,[R0],#4 */ /* STC p14,c5,[R0]*/ @@ -1501,7 +1510,7 @@ int arm11_write_memory_inner(struct target_s *target, uint32_t address, uint32_t (unsigned) (address + size * count), (unsigned) r0); - if (arm11_config_memwrite_burst) + if (burst) LOG_ERROR("use 'arm11 memwrite burst disable' to disable fast burst mode"); if (arm11_config_memwrite_error_fatal) commit d38c75421b937026091927e4a8577f51a3d5dc16 Author: Wookey <wo...@wo...> Date: Mon Oct 12 15:12:35 2009 +0200 Xilinx xcr3256.cfg basic config script diff --git a/tcl/cpld/xilinx-xcr3256.cfg b/tcl/cpld/xilinx-xcr3256.cfg new file mode 100644 index 0000000..e5611f1 --- /dev/null +++ b/tcl/cpld/xilinx-xcr3256.cfg @@ -0,0 +1,3 @@ +#xilinx coolrunner xcr3256 +#simple device - just configure a tap +jtag newtap xcr tap -irlen 5 -ircapture 0x01 -irmask 0x1f -expected-id 0x0494c093 ----------------------------------------------------------------------- Summary of changes: doc/openocd.texi | 6 +++++- src/target/arm11.c | 13 +++++++++++-- tcl/cpld/xilinx-xcr3256.cfg | 3 +++ 3 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 tcl/cpld/xilinx-xcr3256.cfg hooks/post-receive -- Main OpenOCD repository |