diff options
author | Paul Fertser <fercerpav@gmail.com> | 2013-06-22 01:16:41 +0400 |
---|---|---|
committer | Spencer Oliver <spen@spen-soft.co.uk> | 2013-10-29 22:50:33 +0000 |
commit | b16a7f9f6e3c7c417fa3d0d0bf042f032ee446f6 (patch) | |
tree | fbd87a74b47509f33d7e453938456d99b830935a /doc | |
parent | d4e195ad1b544b0396cab4c70437371958769196 (diff) | |
download | riscv-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.texi | 48 |
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 |