xref: /OK3568_Linux_fs/u-boot/cmd/ddr_tool/memtester/tests.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * Very simple yet very effective memory tester.
4*4882a593Smuzhiyun  * Originally by Simon Kirby <sim@stormix.com> <sim@neato.org>
5*4882a593Smuzhiyun  * Version 2 by Charles Cazabon <charlesc-memtester@pyropus.ca>
6*4882a593Smuzhiyun  * Version 3 not publicly released.
7*4882a593Smuzhiyun  * Version 4 rewrite:
8*4882a593Smuzhiyun  * Copyright (C) 2004-2012 Charles Cazabon <charlesc-memtester@pyropus.ca>
9*4882a593Smuzhiyun  * Licensed under the terms of the GNU General Public License version 2 (only).
10*4882a593Smuzhiyun  * See the file COPYING for details.
11*4882a593Smuzhiyun  *
12*4882a593Smuzhiyun  * This file contains the declarations for the functions for the actual tests,
13*4882a593Smuzhiyun  * called from the main routine in memtester.c.  See other comments in that
14*4882a593Smuzhiyun  * file.
15*4882a593Smuzhiyun  *
16*4882a593Smuzhiyun  */
17*4882a593Smuzhiyun 
18*4882a593Smuzhiyun #ifndef __CMD_DDR_TOOL_MEMTESTER_TESTS_H
19*4882a593Smuzhiyun #define __CMD_DDR_TOOL_MEMTESTER_TESTS_H
20*4882a593Smuzhiyun 
21*4882a593Smuzhiyun /* Function declaration. */
22*4882a593Smuzhiyun 
23*4882a593Smuzhiyun int test_stuck_address(u32v *bufa, size_t count);
24*4882a593Smuzhiyun int test_random_value(u32v *bufa,
25*4882a593Smuzhiyun 		      u32v *bufb, size_t count, ul fix_bit, ul fix_level);
26*4882a593Smuzhiyun int test_xor_comparison(u32v *bufa,
27*4882a593Smuzhiyun 			u32v *bufb, size_t count, ul fix_bit, ul fix_level);
28*4882a593Smuzhiyun int test_sub_comparison(u32v *bufa,
29*4882a593Smuzhiyun 			u32v *bufb, size_t count, ul fix_bit, ul fix_level);
30*4882a593Smuzhiyun int test_mul_comparison(u32v *bufa,
31*4882a593Smuzhiyun 			u32v *bufb, size_t count, ul fix_bit, ul fix_level);
32*4882a593Smuzhiyun int test_div_comparison(u32v *bufa,
33*4882a593Smuzhiyun 			u32v *bufb, size_t count, ul fix_bit, ul fix_level);
34*4882a593Smuzhiyun int test_or_comparison(u32v *bufa,
35*4882a593Smuzhiyun 		       u32v *bufb, size_t count, ul fix_bit, ul fix_level);
36*4882a593Smuzhiyun int test_and_comparison(u32v *bufa,
37*4882a593Smuzhiyun 			u32v *bufb, size_t count, ul fix_bit, ul fix_level);
38*4882a593Smuzhiyun int test_seqinc_comparison(u32v *bufa, u32v *bufb, size_t count,
39*4882a593Smuzhiyun 			   ul fix_bit, ul fix_level);
40*4882a593Smuzhiyun int test_solidbits_comparison(u32v *bufa, u32v *bufb, size_t count,
41*4882a593Smuzhiyun 			      ul fix_bit, ul fix_level);
42*4882a593Smuzhiyun int test_checkerboard_comparison(u32v *bufa, u32v *bufb, size_t count,
43*4882a593Smuzhiyun 				 ul fix_bit, ul fix_level);
44*4882a593Smuzhiyun int test_blockseq_comparison(u32v *bufa, u32v *bufb, size_t count,
45*4882a593Smuzhiyun 			     ul fix_bit, ul fix_level);
46*4882a593Smuzhiyun int test_walkbits0_comparison(u32v *bufa, u32v *bufb, size_t count,
47*4882a593Smuzhiyun 			      ul fix_bit, ul fix_level);
48*4882a593Smuzhiyun int test_walkbits1_comparison(u32v *bufa, u32v *bufb, size_t count,
49*4882a593Smuzhiyun 			      ul fix_bit, ul fix_level);
50*4882a593Smuzhiyun int test_bitspread_comparison(u32v *bufa, u32v *bufb, size_t count,
51*4882a593Smuzhiyun 			      ul fix_bit, ul fix_level);
52*4882a593Smuzhiyun int test_bitflip_comparison(u32v *bufa, u32v *bufb, size_t count,
53*4882a593Smuzhiyun 			    ul fix_bit, ul fix_level);
54*4882a593Smuzhiyun #ifdef TEST_NARROW_WRITES
55*4882a593Smuzhiyun int test_8bit_wide_random(u32v *bufa, u32v *bufb, size_t count,
56*4882a593Smuzhiyun 			  ul fix_bit, ul fix_level);
57*4882a593Smuzhiyun int test_16bit_wide_random(u32v *bufa, u32v *bufb, size_t count,
58*4882a593Smuzhiyun 			   ul fix_bit, ul fix_level);
59*4882a593Smuzhiyun #endif
60*4882a593Smuzhiyun 
61*4882a593Smuzhiyun #endif /* __CMD_DDR_TOOL_MEMTESTER_TESTS_H */
62