138ad43e4SBin Meng /* 238ad43e4SBin Meng * Copyright (C) 2013, Intel Corporation 338ad43e4SBin Meng * Copyright (C) 2015, Bin Meng <bmeng.cn@gmail.com> 438ad43e4SBin Meng * 538ad43e4SBin Meng * Ported from Intel released Quark UEFI BIOS 638ad43e4SBin Meng * QuarkSocPkg/QuarkNorthCluster/MemoryInit/Pei 738ad43e4SBin Meng * 838ad43e4SBin Meng * SPDX-License-Identifier: Intel 938ad43e4SBin Meng */ 1038ad43e4SBin Meng 1138ad43e4SBin Meng #ifndef _HTE_H_ 1238ad43e4SBin Meng #define _HTE_H_ 1338ad43e4SBin Meng 1438ad43e4SBin Meng enum { 1538ad43e4SBin Meng MRC_MEM_INIT, 1638ad43e4SBin Meng MRC_MEM_TEST 1738ad43e4SBin Meng }; 1838ad43e4SBin Meng 1938ad43e4SBin Meng enum { 2038ad43e4SBin Meng READ_TRAIN, 2138ad43e4SBin Meng WRITE_TRAIN 2238ad43e4SBin Meng }; 2338ad43e4SBin Meng 2438ad43e4SBin Meng /* 2538ad43e4SBin Meng * EXP_LOOP_CNT field of HTE_CMD_CTL 2638ad43e4SBin Meng * 2738ad43e4SBin Meng * This CANNOT be less than 4! 2838ad43e4SBin Meng */ 2938ad43e4SBin Meng #define HTE_LOOP_CNT 5 3038ad43e4SBin Meng 3138ad43e4SBin Meng /* random seed for victim */ 32*312cc39eSBin Meng #define HTE_LFSR_VICTIM_SEED 0xf294ba21 3338ad43e4SBin Meng 3438ad43e4SBin Meng /* random seed for aggressor */ 35*312cc39eSBin Meng #define HTE_LFSR_AGRESSOR_SEED 0xeba7492d 3638ad43e4SBin Meng 3738ad43e4SBin Meng u32 hte_mem_init(struct mrc_params *mrc_params, u8 flag); 3838ad43e4SBin Meng u16 hte_basic_write_read(struct mrc_params *mrc_params, u32 addr, 3938ad43e4SBin Meng u8 first_run, u8 mode); 4038ad43e4SBin Meng u16 hte_write_stress_bit_lanes(struct mrc_params *mrc_params, 4138ad43e4SBin Meng u32 addr, u8 first_run); 4238ad43e4SBin Meng void hte_mem_op(u32 addr, u8 first_run, u8 is_write); 4338ad43e4SBin Meng 4438ad43e4SBin Meng #endif /* _HTE_H_ */ 45