aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorPaul Fertser <fercerpav@gmail.com>2013-06-22 01:16:41 +0400
committerSpencer Oliver <spen@spen-soft.co.uk>2013-10-29 22:50:33 +0000
commitb16a7f9f6e3c7c417fa3d0d0bf042f032ee446f6 (patch)
treefbd87a74b47509f33d7e453938456d99b830935a /doc
parentd4e195ad1b544b0396cab4c70437371958769196 (diff)
downloadriscv-openocd-b16a7f9f6e3c7c417fa3d0d0bf042f032ee446f6.zip
riscv-openocd-b16a7f9f6e3c7c417fa3d0d0bf042f032ee446f6.tar.gz
riscv-openocd-b16a7f9f6e3c7c417fa3d0d0bf042f032ee446f6.tar.bz2
tcl: add memory testing functions for board diagnostics
This is a tcl implementation of public domain tests by Michael Barr, http://www.barrgroup.com/Embedded-Systems/How-To/Memory-Test-Suite-C The initial porting is done by Shane Volpe and posted to the mailing list: http://www.mail-archive.com/openocd-development@lists.berlios.de/msg16676.html This patch includes some cosmetic amendments plus hardcodes 32bit word size (as the code depends on memread32/memwrite32 anyway) which fixes original code's issue of testing only the first quarter of the specified nBytes. Change-Id: I5f3a66f1f16fc4082c7a5a6aba338430646ed21c Signed-off-by: Paul Fertser <fercerpav@gmail.com> Reviewed-on: http://openocd.zylin.com/1455 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-by: Mathias Küster <kesmtp@freenet.de>
Diffstat (limited to 'doc')
-rw-r--r--doc/openocd.texi48
1 files changed, 48 insertions, 0 deletions
diff --git a/doc/openocd.texi b/doc/openocd.texi
index a2bcaf8..c7776b1 100644
--- a/doc/openocd.texi
+++ b/doc/openocd.texi
@@ -79,6 +79,7 @@ Free Documentation License''.
* Architecture and Core Commands:: Architecture and Core Commands
* JTAG Commands:: JTAG Commands
* Boundary Scan Commands:: Boundary Scan Commands
+* Utility Commands:: Utility Commands
* TFTP:: TFTP
* GDB and OpenOCD:: Using GDB and OpenOCD
* Tcl Scripting API:: Tcl Scripting API
@@ -7926,6 +7927,53 @@ If @emph{xsvfdump} shows a file is using those opcodes, it
probably will not be usable with other XSVF tools.
+@node Utility Commands
+@chapter Utility Commands
+@cindex Utility Commands
+
+@section RAM testing
+@cindex RAM testing
+
+There is often a need to stress-test random access memory (RAM) for
+errors. OpenOCD comes with a Tcl implementation of well-known memory
+testing procedures allowing to detect all sorts of issues with
+electrical wiring, defective chips, PCB layout and other common
+hardware problems.
+
+To use them you usually need to initialise your RAM controller first,
+consult your SoC's documentation to get the recommended list of
+register operations and translate them to the corresponding
+@command{mww}/@command{mwb} commands.
+
+Load the memory testing functions with
+
+@example
+source [find tools/memtest.tcl]
+@end example
+
+to get access to the following facilities:
+
+@deffn Command {memTestDataBus} address
+Test the data bus wiring in a memory region by performing a walking
+1's test at a fixed address within that region.
+@end deffn
+
+@deffn Command {memTestAddressBus} baseaddress size
+Perform a walking 1's test on the relevant bits of the address and
+check for aliasing. This test will find single-bit address failures
+such as stuck-high, stuck-low, and shorted pins.
+@end deffn
+
+@deffn Command {memTestDevice} baseaddress size
+Test the integrity of a physical memory device by performing an
+increment/decrement test over the entire region. In the process every
+storage bit in the device is tested as zero and as one.
+@end deffn
+
+@deffn Command {runAllMemTests} baseaddress size
+Run all of the above tests over a specified memory region.
+@end deffn
+
@node TFTP
@chapter TFTP
@cindex TFTP