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