Lines Matching full:hte

14 #include "hte.h"
17 * Enable HTE to detect all possible errors for the given training parameters
22 msg_port_write(HTE, 0x000200a2, 0xffffffff); in hte_enable_all_errors()
23 msg_port_write(HTE, 0x000200a3, 0x000000ff); in hte_enable_all_errors()
24 msg_port_write(HTE, 0x000200a4, 0x00000000); in hte_enable_all_errors()
28 * Go and read the HTE register in order to find any error
30 * @return: The errors detected in the HTE status register
34 return msg_port_read(HTE, 0x000200a7); in hte_check_errors()
38 * Wait until HTE finishes
46 do {} while ((msg_port_read(HTE, 0x00020012) & (1 << 30)) != 0); in hte_wait_for_complete()
48 tmp = msg_port_read(HTE, 0x00020011); in hte_wait_for_complete()
51 msg_port_write(HTE, 0x00020011, tmp); in hte_wait_for_complete()
57 * Clear registers related with errors in the HTE
64 * Clear all HTE errors and enable error checking in hte_clear_error_regs()
67 tmp = msg_port_read(HTE, 0x000200a1); in hte_clear_error_regs()
69 msg_port_write(HTE, 0x000200a1, tmp); in hte_clear_error_regs()
80 * @first_run: if set then the HTE registers are configured, otherwise it is
93 msg_port_write(HTE, 0x00020020, 0x01b10021); in hte_basic_data_cmp()
94 msg_port_write(HTE, 0x00020021, 0x06000000); in hte_basic_data_cmp()
95 msg_port_write(HTE, 0x00020022, addr >> 6); in hte_basic_data_cmp()
96 msg_port_write(HTE, 0x00020062, 0x00800015); in hte_basic_data_cmp()
97 msg_port_write(HTE, 0x00020063, 0xaaaaaaaa); in hte_basic_data_cmp()
98 msg_port_write(HTE, 0x00020064, 0xcccccccc); in hte_basic_data_cmp()
99 msg_port_write(HTE, 0x00020065, 0xf0f0f0f0); in hte_basic_data_cmp()
100 msg_port_write(HTE, 0x00020061, 0x00030008); in hte_basic_data_cmp()
108 msg_port_write(HTE, offset, pattern); in hte_basic_data_cmp()
111 msg_port_write(HTE, 0x000200a1, 0xffff1000); in hte_basic_data_cmp()
112 msg_port_write(HTE, 0x00020011, 0x00011000); in hte_basic_data_cmp()
113 msg_port_write(HTE, 0x00020011, 0x00011100); in hte_basic_data_cmp()
136 * @first_run: if set then the HTE registers are configured, otherwise it is
149 msg_port_write(HTE, 0x00020020, 0x00910024); in hte_rw_data_cmp()
150 msg_port_write(HTE, 0x00020023, 0x00810024); in hte_rw_data_cmp()
151 msg_port_write(HTE, 0x00020021, 0x06070000); in hte_rw_data_cmp()
152 msg_port_write(HTE, 0x00020024, 0x06070000); in hte_rw_data_cmp()
153 msg_port_write(HTE, 0x00020022, addr >> 6); in hte_rw_data_cmp()
154 msg_port_write(HTE, 0x00020025, addr >> 6); in hte_rw_data_cmp()
155 msg_port_write(HTE, 0x00020062, 0x0000002a); in hte_rw_data_cmp()
156 msg_port_write(HTE, 0x00020063, seed_victim); in hte_rw_data_cmp()
157 msg_port_write(HTE, 0x00020064, seed_aggressor); in hte_rw_data_cmp()
158 msg_port_write(HTE, 0x00020065, seed_victim); in hte_rw_data_cmp()
167 msg_port_write(HTE, offset, 0x55555555); in hte_rw_data_cmp()
169 msg_port_write(HTE, offset, 0xcccccccc); in hte_rw_data_cmp()
172 msg_port_write(HTE, 0x00020061, 0x00000000); in hte_rw_data_cmp()
173 msg_port_write(HTE, 0x00020066, 0x03440000); in hte_rw_data_cmp()
174 msg_port_write(HTE, 0x000200a1, 0xffff1000); in hte_rw_data_cmp()
178 msg_port_write(HTE, 0x00020011, tmp); in hte_rw_data_cmp()
179 msg_port_write(HTE, 0x00020011, tmp | (1 << 8)); in hte_rw_data_cmp()
191 * Use HW HTE engine to initialize or test all memory attached to a given DUNIT.
201 * @return: errors register showing HTE failures. Also prints out which rank
202 * failed the HTE test if failure occurs. For rank detection to work,
219 msg_port_write(HTE, 0x00020062, 0x00000015); in hte_mem_init()
222 msg_port_write(HTE, offset, ((offset & 1) ? 0xa55a : 0x5aa5)); in hte_mem_init()
224 msg_port_write(HTE, 0x00020021, 0x00000000); in hte_mem_init()
225 msg_port_write(HTE, 0x00020022, (mrc_params->mem_size >> 6) - 1); in hte_mem_init()
226 msg_port_write(HTE, 0x00020063, 0xaaaaaaaa); in hte_mem_init()
227 msg_port_write(HTE, 0x00020064, 0xcccccccc); in hte_mem_init()
228 msg_port_write(HTE, 0x00020065, 0xf0f0f0f0); in hte_mem_init()
229 msg_port_write(HTE, 0x00020066, 0x03000000); in hte_mem_init()
254 msg_port_write(HTE, 0x00020061, 0x00000000); in hte_mem_init()
255 msg_port_write(HTE, 0x00020020, 0x00110010); in hte_mem_init()
257 msg_port_write(HTE, 0x00020061, 0x00000000); in hte_mem_init()
258 msg_port_write(HTE, 0x00020020, 0x00010010); in hte_mem_init()
260 msg_port_write(HTE, 0x00020061, 0x00010100); in hte_mem_init()
261 msg_port_write(HTE, 0x00020020, 0x00110010); in hte_mem_init()
263 msg_port_write(HTE, 0x00020061, 0x00010100); in hte_mem_init()
264 msg_port_write(HTE, 0x00020020, 0x00010010); in hte_mem_init()
267 msg_port_write(HTE, 0x00020011, 0x00111000); in hte_mem_init()
268 msg_port_write(HTE, 0x00020011, 0x00111100); in hte_mem_init()
291 * @first_run: if set then the HTE registers are configured, otherwise it is
304 /* Enable all error reporting in preparation for HTE test */ in hte_basic_write_read()
321 * @first_run: if set then the HTE registers are configured, otherwise it is
334 /* Enable all error reporting in preparation for HTE test */ in hte_write_stress_bit_lanes()
342 * as aggressors. AVN HTE adds an auto-rotate feature which allows us in hte_write_stress_bit_lanes()
362 * @first_run: if set then the HTE registers are configured, otherwise it is
376 msg_port_write(HTE, 0x00020020, tmp); in hte_mem_op()
378 msg_port_write(HTE, 0x00020021, 0x06000000); in hte_mem_op()
379 msg_port_write(HTE, 0x00020022, addr >> 6); in hte_mem_op()
380 msg_port_write(HTE, 0x00020062, 0x00800015); in hte_mem_op()
381 msg_port_write(HTE, 0x00020063, 0xaaaaaaaa); in hte_mem_op()
382 msg_port_write(HTE, 0x00020064, 0xcccccccc); in hte_mem_op()
383 msg_port_write(HTE, 0x00020065, 0xf0f0f0f0); in hte_mem_op()
384 msg_port_write(HTE, 0x00020061, 0x00030008); in hte_mem_op()
387 msg_port_write(HTE, offset, 0xc33c0000); in hte_mem_op()
390 msg_port_write(HTE, 0x000200a1, 0xffff1000); in hte_mem_op()
391 msg_port_write(HTE, 0x00020011, 0x00011000); in hte_mem_op()
392 msg_port_write(HTE, 0x00020011, 0x00011100); in hte_mem_op()