xref: /OK3568_Linux_fs/u-boot/arch/x86/cpu/quark/hte.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * Copyright (C) 2013, Intel Corporation
3*4882a593Smuzhiyun  * Copyright (C) 2015, Bin Meng <bmeng.cn@gmail.com>
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * Ported from Intel released Quark UEFI BIOS
6*4882a593Smuzhiyun  * QuarkSocPkg/QuarkNorthCluster/MemoryInit/Pei
7*4882a593Smuzhiyun  *
8*4882a593Smuzhiyun  * SPDX-License-Identifier:	Intel
9*4882a593Smuzhiyun  */
10*4882a593Smuzhiyun 
11*4882a593Smuzhiyun #ifndef _HTE_H_
12*4882a593Smuzhiyun #define _HTE_H_
13*4882a593Smuzhiyun 
14*4882a593Smuzhiyun enum {
15*4882a593Smuzhiyun 	MRC_MEM_INIT,
16*4882a593Smuzhiyun 	MRC_MEM_TEST
17*4882a593Smuzhiyun };
18*4882a593Smuzhiyun 
19*4882a593Smuzhiyun enum {
20*4882a593Smuzhiyun 	READ_TRAIN,
21*4882a593Smuzhiyun 	WRITE_TRAIN
22*4882a593Smuzhiyun };
23*4882a593Smuzhiyun 
24*4882a593Smuzhiyun /*
25*4882a593Smuzhiyun  * EXP_LOOP_CNT field of HTE_CMD_CTL
26*4882a593Smuzhiyun  *
27*4882a593Smuzhiyun  * This CANNOT be less than 4!
28*4882a593Smuzhiyun  */
29*4882a593Smuzhiyun #define HTE_LOOP_CNT		5
30*4882a593Smuzhiyun 
31*4882a593Smuzhiyun /* random seed for victim */
32*4882a593Smuzhiyun #define HTE_LFSR_VICTIM_SEED	0xf294ba21
33*4882a593Smuzhiyun 
34*4882a593Smuzhiyun /* random seed for aggressor */
35*4882a593Smuzhiyun #define HTE_LFSR_AGRESSOR_SEED	0xeba7492d
36*4882a593Smuzhiyun 
37*4882a593Smuzhiyun u32 hte_mem_init(struct mrc_params *mrc_params, u8 flag);
38*4882a593Smuzhiyun u16 hte_basic_write_read(struct mrc_params *mrc_params, u32 addr,
39*4882a593Smuzhiyun 			 u8 first_run, u8 mode);
40*4882a593Smuzhiyun u16 hte_write_stress_bit_lanes(struct mrc_params *mrc_params,
41*4882a593Smuzhiyun 			       u32 addr, u8 first_run);
42*4882a593Smuzhiyun void hte_mem_op(u32 addr, u8 first_run, u8 is_write);
43*4882a593Smuzhiyun 
44*4882a593Smuzhiyun #endif /* _HTE_H_ */
45