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