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