1*eb00b1c8SRobert Mustacchi /*
2*eb00b1c8SRobert Mustacchi  * This file and its contents are supplied under the terms of the
3*eb00b1c8SRobert Mustacchi  * Common Development and Distribution License ("CDDL"), version 1.0.
4*eb00b1c8SRobert Mustacchi  * You may only use this file in accordance with the terms of version
5*eb00b1c8SRobert Mustacchi  * 1.0 of the CDDL.
6*eb00b1c8SRobert Mustacchi  *
7*eb00b1c8SRobert Mustacchi  * A full copy of the text of the CDDL should have accompanied this
8*eb00b1c8SRobert Mustacchi  * source.  A copy of the CDDL is also available via the Internet at
9*eb00b1c8SRobert Mustacchi  * http://www.illumos.org/license/CDDL.
10*eb00b1c8SRobert Mustacchi  */
11*eb00b1c8SRobert Mustacchi 
12*eb00b1c8SRobert Mustacchi /*
13*eb00b1c8SRobert Mustacchi  * Copyright 2019 Joyent, Inc.
14*eb00b1c8SRobert Mustacchi  */
15*eb00b1c8SRobert Mustacchi 
16*eb00b1c8SRobert Mustacchi #include "imc_test.h"
17*eb00b1c8SRobert Mustacchi 
18*eb00b1c8SRobert Mustacchi /*
19*eb00b1c8SRobert Mustacchi  * Test various aspects of RIR decoding and rank interleaving.
20*eb00b1c8SRobert Mustacchi  *
21*eb00b1c8SRobert Mustacchi  * The first test series uses imc_rir_8w_4r_closed which basically tests our
22*eb00b1c8SRobert Mustacchi  * rank interleaving across a single DIMM/channel in a closed page
23*eb00b1c8SRobert Mustacchi  * configuration.  Technically such a configuration has aliasing, so it
24*eb00b1c8SRobert Mustacchi  * shouldn't be used in the wild. This is to validate that we're doing
25*eb00b1c8SRobert Mustacchi  * interleaving with a single rule across closed pages.
26*eb00b1c8SRobert Mustacchi  *
27*eb00b1c8SRobert Mustacchi  * The second test set, imc_rir_4w_4r_open is similar; however, it uses open
28*eb00b1c8SRobert Mustacchi  * pages instead.
29*eb00b1c8SRobert Mustacchi  *
30*eb00b1c8SRobert Mustacchi  * The third test set, imc_rir_8w_4r_2dpc, is used to make sure that we can
31*eb00b1c8SRobert Mustacchi  * properly perform interleaving across two DIMMs in a single channel
32*eb00b1c8SRobert Mustacchi  * configuration.
33*eb00b1c8SRobert Mustacchi  *
34*eb00b1c8SRobert Mustacchi  * The fourth test set, imc_rir_2w_1r_3dpc, is used to make sure that we can use
35*eb00b1c8SRobert Mustacchi  * multiple rank interleaving rules to point us to different parts of a DIMM on
36*eb00b1c8SRobert Mustacchi  * a single channel.
37*eb00b1c8SRobert Mustacchi  */
38*eb00b1c8SRobert Mustacchi 
39*eb00b1c8SRobert Mustacchi static const imc_t imc_rir_8w_4r_closed = {
40*eb00b1c8SRobert Mustacchi 	.imc_gen = IMC_GEN_SANDY,
41*eb00b1c8SRobert Mustacchi 	.imc_nsockets = 1,
42*eb00b1c8SRobert Mustacchi 	.imc_sockets[0] = {
43*eb00b1c8SRobert Mustacchi 		.isock_valid = IMC_SOCKET_V_VALID,
44*eb00b1c8SRobert Mustacchi 		.isock_sad = {
45*eb00b1c8SRobert Mustacchi 			.isad_flags = 0,
46*eb00b1c8SRobert Mustacchi 			.isad_valid = IMC_SAD_V_VALID,
47*eb00b1c8SRobert Mustacchi 			.isad_tolm = 0x80000000,
48*eb00b1c8SRobert Mustacchi 			.isad_tohm = 0,
49*eb00b1c8SRobert Mustacchi 			.isad_nrules = 10,
50*eb00b1c8SRobert Mustacchi 			.isad_rules[0] = {
51*eb00b1c8SRobert Mustacchi 				.isr_enable = B_TRUE,
52*eb00b1c8SRobert Mustacchi 				.isr_limit = 0x80000000,
53*eb00b1c8SRobert Mustacchi 				.isr_imode = IMC_SAD_IMODE_8t6,
54*eb00b1c8SRobert Mustacchi 				.isr_ntargets = IMC_MAX_SAD_INTERLEAVE,
55*eb00b1c8SRobert Mustacchi 				.isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 }
56*eb00b1c8SRobert Mustacchi 			}
57*eb00b1c8SRobert Mustacchi 		},
58*eb00b1c8SRobert Mustacchi 		.isock_ntad = 1,
59*eb00b1c8SRobert Mustacchi 		.isock_tad[0] = {
60*eb00b1c8SRobert Mustacchi 			.itad_flags = 0,
61*eb00b1c8SRobert Mustacchi 			.itad_nrules = 12,
62*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
63*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
64*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x80000000,
65*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 1,
66*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 1,
67*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
68*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
69*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
70*eb00b1c8SRobert Mustacchi 				.itr_targets = { 0, 0, 0, 0 }
71*eb00b1c8SRobert Mustacchi 			}
72*eb00b1c8SRobert Mustacchi 		},
73*eb00b1c8SRobert Mustacchi 		.isock_nimc = 1,
74*eb00b1c8SRobert Mustacchi 		.isock_imcs[0] = {
75*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 1,
76*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR3,
77*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
78*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
79*eb00b1c8SRobert Mustacchi 			.icn_closed = B_TRUE,
80*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
81*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
82*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
83*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
84*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
85*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
86*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
87*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 4,
88*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
89*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
90*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x80000000
91*eb00b1c8SRobert Mustacchi 				},
92*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
93*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
94*eb00b1c8SRobert Mustacchi 				    0, 0 },
95*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 8,
96*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
97*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
98*eb00b1c8SRobert Mustacchi 					.irle_nways = 8,
99*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 3,
100*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x80000000,
101*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
102*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x3, 0x0 },
103*eb00b1c8SRobert Mustacchi 					.irle_entries[1] = { 0x2, 0x0 },
104*eb00b1c8SRobert Mustacchi 					.irle_entries[2] = { 0x1, 0x0 },
105*eb00b1c8SRobert Mustacchi 					.irle_entries[3] = { 0x0, 0x0 },
106*eb00b1c8SRobert Mustacchi 					.irle_entries[4] = { 0x2, 0x0 },
107*eb00b1c8SRobert Mustacchi 					.irle_entries[5] = { 0x3, 0x0 },
108*eb00b1c8SRobert Mustacchi 					.irle_entries[6] = { 0x0, 0x0 },
109*eb00b1c8SRobert Mustacchi 					.irle_entries[7] = { 0x1, 0x0 }
110*eb00b1c8SRobert Mustacchi 				}
111*eb00b1c8SRobert Mustacchi 			}
112*eb00b1c8SRobert Mustacchi 		}
113*eb00b1c8SRobert Mustacchi 	}
114*eb00b1c8SRobert Mustacchi };
115*eb00b1c8SRobert Mustacchi 
116*eb00b1c8SRobert Mustacchi static const imc_t imc_rir_4w_4r_open = {
117*eb00b1c8SRobert Mustacchi 	.imc_gen = IMC_GEN_SANDY,
118*eb00b1c8SRobert Mustacchi 	.imc_nsockets = 1,
119*eb00b1c8SRobert Mustacchi 	.imc_sockets[0] = {
120*eb00b1c8SRobert Mustacchi 		.isock_valid = IMC_SOCKET_V_VALID,
121*eb00b1c8SRobert Mustacchi 		.isock_sad = {
122*eb00b1c8SRobert Mustacchi 			.isad_flags = 0,
123*eb00b1c8SRobert Mustacchi 			.isad_valid = IMC_SAD_V_VALID,
124*eb00b1c8SRobert Mustacchi 			.isad_tolm = 0x80000000,
125*eb00b1c8SRobert Mustacchi 			.isad_tohm = 0,
126*eb00b1c8SRobert Mustacchi 			.isad_nrules = 10,
127*eb00b1c8SRobert Mustacchi 			.isad_rules[0] = {
128*eb00b1c8SRobert Mustacchi 				.isr_enable = B_TRUE,
129*eb00b1c8SRobert Mustacchi 				.isr_limit = 0x80000000,
130*eb00b1c8SRobert Mustacchi 				.isr_imode = IMC_SAD_IMODE_8t6,
131*eb00b1c8SRobert Mustacchi 				.isr_ntargets = IMC_MAX_SAD_INTERLEAVE,
132*eb00b1c8SRobert Mustacchi 				.isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 }
133*eb00b1c8SRobert Mustacchi 			}
134*eb00b1c8SRobert Mustacchi 		},
135*eb00b1c8SRobert Mustacchi 		.isock_ntad = 1,
136*eb00b1c8SRobert Mustacchi 		.isock_tad[0] = {
137*eb00b1c8SRobert Mustacchi 			.itad_flags = 0,
138*eb00b1c8SRobert Mustacchi 			.itad_nrules = 12,
139*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
140*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
141*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x80000000,
142*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 1,
143*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 1,
144*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
145*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
146*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
147*eb00b1c8SRobert Mustacchi 				.itr_targets = { 0, 0, 0, 0 }
148*eb00b1c8SRobert Mustacchi 			}
149*eb00b1c8SRobert Mustacchi 		},
150*eb00b1c8SRobert Mustacchi 		.isock_nimc = 1,
151*eb00b1c8SRobert Mustacchi 		.isock_imcs[0] = {
152*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 1,
153*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR3,
154*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
155*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
156*eb00b1c8SRobert Mustacchi 			.icn_closed = B_FALSE,
157*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
158*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
159*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
160*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
161*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
162*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
163*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
164*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 8,
165*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
166*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
167*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x80000000
168*eb00b1c8SRobert Mustacchi 				},
169*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
170*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
171*eb00b1c8SRobert Mustacchi 				    0, 0 },
172*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 8,
173*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
174*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
175*eb00b1c8SRobert Mustacchi 					.irle_nways = 4,
176*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 2,
177*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x80000000,
178*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
179*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x2, 0x0 },
180*eb00b1c8SRobert Mustacchi 					.irle_entries[1] = { 0x0, 0x0 },
181*eb00b1c8SRobert Mustacchi 					.irle_entries[2] = { 0x3, 0x0 },
182*eb00b1c8SRobert Mustacchi 					.irle_entries[3] = { 0x1, 0x0 },
183*eb00b1c8SRobert Mustacchi 				}
184*eb00b1c8SRobert Mustacchi 			}
185*eb00b1c8SRobert Mustacchi 		}
186*eb00b1c8SRobert Mustacchi 	}
187*eb00b1c8SRobert Mustacchi };
188*eb00b1c8SRobert Mustacchi 
189*eb00b1c8SRobert Mustacchi static const imc_t imc_rir_8w_4r_2dpc = {
190*eb00b1c8SRobert Mustacchi 	.imc_gen = IMC_GEN_SANDY,
191*eb00b1c8SRobert Mustacchi 	.imc_nsockets = 1,
192*eb00b1c8SRobert Mustacchi 	.imc_sockets[0] = {
193*eb00b1c8SRobert Mustacchi 		.isock_valid = IMC_SOCKET_V_VALID,
194*eb00b1c8SRobert Mustacchi 		.isock_sad = {
195*eb00b1c8SRobert Mustacchi 			.isad_flags = 0,
196*eb00b1c8SRobert Mustacchi 			.isad_valid = IMC_SAD_V_VALID,
197*eb00b1c8SRobert Mustacchi 			.isad_tolm = 0x100000000ULL,
198*eb00b1c8SRobert Mustacchi 			.isad_tohm = 0,
199*eb00b1c8SRobert Mustacchi 			.isad_nrules = 10,
200*eb00b1c8SRobert Mustacchi 			.isad_rules[0] = {
201*eb00b1c8SRobert Mustacchi 				.isr_enable = B_TRUE,
202*eb00b1c8SRobert Mustacchi 				.isr_limit = 0x100000000ULL,
203*eb00b1c8SRobert Mustacchi 				.isr_imode = IMC_SAD_IMODE_8t6,
204*eb00b1c8SRobert Mustacchi 				.isr_ntargets = IMC_MAX_SAD_INTERLEAVE,
205*eb00b1c8SRobert Mustacchi 				.isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 }
206*eb00b1c8SRobert Mustacchi 			}
207*eb00b1c8SRobert Mustacchi 		},
208*eb00b1c8SRobert Mustacchi 		.isock_ntad = 1,
209*eb00b1c8SRobert Mustacchi 		.isock_tad[0] = {
210*eb00b1c8SRobert Mustacchi 			.itad_flags = 0,
211*eb00b1c8SRobert Mustacchi 			.itad_nrules = 12,
212*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
213*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
214*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x100000000ULL,
215*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 1,
216*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 1,
217*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
218*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
219*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
220*eb00b1c8SRobert Mustacchi 				.itr_targets = { 0, 0, 0, 0 }
221*eb00b1c8SRobert Mustacchi 			}
222*eb00b1c8SRobert Mustacchi 		},
223*eb00b1c8SRobert Mustacchi 		.isock_nimc = 1,
224*eb00b1c8SRobert Mustacchi 		.isock_imcs[0] = {
225*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 1,
226*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR3,
227*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
228*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
229*eb00b1c8SRobert Mustacchi 			.icn_closed = B_TRUE,
230*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
231*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 2,
232*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
233*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
234*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
235*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
236*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
237*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 4,
238*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
239*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
240*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x80000000
241*eb00b1c8SRobert Mustacchi 				},
242*eb00b1c8SRobert Mustacchi 				.ich_dimms[1] = {
243*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
244*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
245*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
246*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
247*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 4,
248*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
249*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
250*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x80000000
251*eb00b1c8SRobert Mustacchi 				},
252*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
253*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
254*eb00b1c8SRobert Mustacchi 				    0, 0 },
255*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 8,
256*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
257*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
258*eb00b1c8SRobert Mustacchi 					.irle_nways = 8,
259*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 3,
260*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x100000000ULL,
261*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
262*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
263*eb00b1c8SRobert Mustacchi 					.irle_entries[1] = { 0x4, 0x0 },
264*eb00b1c8SRobert Mustacchi 					.irle_entries[2] = { 0x1, 0x0 },
265*eb00b1c8SRobert Mustacchi 					.irle_entries[3] = { 0x5, 0x0 },
266*eb00b1c8SRobert Mustacchi 					.irle_entries[4] = { 0x2, 0x0 },
267*eb00b1c8SRobert Mustacchi 					.irle_entries[5] = { 0x6, 0x0 },
268*eb00b1c8SRobert Mustacchi 					.irle_entries[6] = { 0x3, 0x0 },
269*eb00b1c8SRobert Mustacchi 					.irle_entries[7] = { 0x7, 0x0 }
270*eb00b1c8SRobert Mustacchi 				}
271*eb00b1c8SRobert Mustacchi 			}
272*eb00b1c8SRobert Mustacchi 		}
273*eb00b1c8SRobert Mustacchi 	}
274*eb00b1c8SRobert Mustacchi };
275*eb00b1c8SRobert Mustacchi 
276*eb00b1c8SRobert Mustacchi static const imc_t imc_rir_2w_1r_3dpc = {
277*eb00b1c8SRobert Mustacchi 	.imc_gen = IMC_GEN_HASWELL,
278*eb00b1c8SRobert Mustacchi 	.imc_nsockets = 1,
279*eb00b1c8SRobert Mustacchi 	.imc_sockets[0] = {
280*eb00b1c8SRobert Mustacchi 		.isock_valid = IMC_SOCKET_V_VALID,
281*eb00b1c8SRobert Mustacchi 		.isock_sad = {
282*eb00b1c8SRobert Mustacchi 			.isad_flags = 0,
283*eb00b1c8SRobert Mustacchi 			.isad_valid = IMC_SAD_V_VALID,
284*eb00b1c8SRobert Mustacchi 			.isad_tolm = 0x180000000ULL,
285*eb00b1c8SRobert Mustacchi 			.isad_tohm = 0,
286*eb00b1c8SRobert Mustacchi 			.isad_nrules = 10,
287*eb00b1c8SRobert Mustacchi 			.isad_rules[0] = {
288*eb00b1c8SRobert Mustacchi 				.isr_enable = B_TRUE,
289*eb00b1c8SRobert Mustacchi 				.isr_limit = 0x180000000ULL,
290*eb00b1c8SRobert Mustacchi 				.isr_imode = IMC_SAD_IMODE_8t6,
291*eb00b1c8SRobert Mustacchi 				.isr_ntargets = IMC_MAX_SAD_INTERLEAVE,
292*eb00b1c8SRobert Mustacchi 				.isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 }
293*eb00b1c8SRobert Mustacchi 			}
294*eb00b1c8SRobert Mustacchi 		},
295*eb00b1c8SRobert Mustacchi 		.isock_ntad = 1,
296*eb00b1c8SRobert Mustacchi 		.isock_tad[0] = {
297*eb00b1c8SRobert Mustacchi 			.itad_flags = 0,
298*eb00b1c8SRobert Mustacchi 			.itad_nrules = 12,
299*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
300*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
301*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x180000000ULL,
302*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 1,
303*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 1,
304*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
305*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
306*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
307*eb00b1c8SRobert Mustacchi 				.itr_targets = { 0, 0, 0, 0 }
308*eb00b1c8SRobert Mustacchi 			}
309*eb00b1c8SRobert Mustacchi 		},
310*eb00b1c8SRobert Mustacchi 		.isock_nimc = 1,
311*eb00b1c8SRobert Mustacchi 		.isock_imcs[0] = {
312*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 1,
313*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR3,
314*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
315*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
316*eb00b1c8SRobert Mustacchi 			.icn_closed = B_TRUE,
317*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
318*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 3,
319*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
320*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
321*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
322*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
323*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
324*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 1,
325*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
326*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
327*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x80000000
328*eb00b1c8SRobert Mustacchi 				},
329*eb00b1c8SRobert Mustacchi 				.ich_dimms[1] = {
330*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
331*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
332*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
333*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
334*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 1,
335*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
336*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
337*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x80000000
338*eb00b1c8SRobert Mustacchi 				},
339*eb00b1c8SRobert Mustacchi 				.ich_dimms[2] = {
340*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
341*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
342*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
343*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
344*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 1,
345*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
346*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
347*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x80000000
348*eb00b1c8SRobert Mustacchi 				},
349*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
350*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
351*eb00b1c8SRobert Mustacchi 				    0, 0 },
352*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 8,
353*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
354*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
355*eb00b1c8SRobert Mustacchi 					.irle_nways = 2,
356*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
357*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x80000000,
358*eb00b1c8SRobert Mustacchi 					.irle_nentries = 2,
359*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x4, 0x0 },
360*eb00b1c8SRobert Mustacchi 					.irle_entries[1] = { 0x0, 0x0 },
361*eb00b1c8SRobert Mustacchi 				},
362*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[1] = {
363*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
364*eb00b1c8SRobert Mustacchi 					.irle_nways = 2,
365*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
366*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x100000000ULL,
367*eb00b1c8SRobert Mustacchi 					.irle_nentries = 2,
368*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x8, 0x40000000 },
369*eb00b1c8SRobert Mustacchi 					.irle_entries[1] = { 0x4, 0x0 },
370*eb00b1c8SRobert Mustacchi 				},
371*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[2] = {
372*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
373*eb00b1c8SRobert Mustacchi 					.irle_nways = 2,
374*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
375*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x180000000ULL,
376*eb00b1c8SRobert Mustacchi 					.irle_nentries = 2,
377*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x8, 0x40000000 },
378*eb00b1c8SRobert Mustacchi 					.irle_entries[1] = { 0x0, 0x40000000 },
379*eb00b1c8SRobert Mustacchi 				}
380*eb00b1c8SRobert Mustacchi 			}
381*eb00b1c8SRobert Mustacchi 		}
382*eb00b1c8SRobert Mustacchi 	}
383*eb00b1c8SRobert Mustacchi };
384*eb00b1c8SRobert Mustacchi 
385*eb00b1c8SRobert Mustacchi 
386*eb00b1c8SRobert Mustacchi const imc_test_case_t imc_test_rir[] = { {
387*eb00b1c8SRobert Mustacchi 	.itc_desc = "RIR target 0, 8-way/4-rank, closed (1)",
388*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_8w_4r_closed,
389*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0,
390*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
391*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
392*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
393*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
394*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0,
395*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
396*eb00b1c8SRobert Mustacchi 	.itc_rankid = 3,
397*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0
398*eb00b1c8SRobert Mustacchi }, {
399*eb00b1c8SRobert Mustacchi 	.itc_desc = "RIR target 1, 8-way/4-rank, closed",
400*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_8w_4r_closed,
401*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x40,
402*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
403*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
404*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
405*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
406*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x40,
407*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
408*eb00b1c8SRobert Mustacchi 	.itc_rankid = 2,
409*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0
410*eb00b1c8SRobert Mustacchi }, {
411*eb00b1c8SRobert Mustacchi 	.itc_desc = "RIR target 2, 8-way/4-rank, closed",
412*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_8w_4r_closed,
413*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x80,
414*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
415*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
416*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
417*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
418*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x80,
419*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
420*eb00b1c8SRobert Mustacchi 	.itc_rankid = 1,
421*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0
422*eb00b1c8SRobert Mustacchi }, {
423*eb00b1c8SRobert Mustacchi 	.itc_desc = "RIR target 3, 8-way/4-rank, closed",
424*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_8w_4r_closed,
425*eb00b1c8SRobert Mustacchi 	.itc_pa = 0xc0,
426*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
427*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
428*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
429*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
430*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0xc0,
431*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
432*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
433*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0
434*eb00b1c8SRobert Mustacchi }, {
435*eb00b1c8SRobert Mustacchi 	.itc_desc = "RIR target 4, 8-way/4-rank, closed",
436*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_8w_4r_closed,
437*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x100,
438*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
439*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
440*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
441*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
442*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x100,
443*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
444*eb00b1c8SRobert Mustacchi 	.itc_rankid = 2,
445*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0
446*eb00b1c8SRobert Mustacchi }, {
447*eb00b1c8SRobert Mustacchi 	.itc_desc = "RIR target 5, 8-way/4-rank, closed",
448*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_8w_4r_closed,
449*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x140,
450*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
451*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
452*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
453*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
454*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x140,
455*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
456*eb00b1c8SRobert Mustacchi 	.itc_rankid = 3,
457*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0
458*eb00b1c8SRobert Mustacchi }, {
459*eb00b1c8SRobert Mustacchi 	.itc_desc = "RIR target 6, 8-way/4-rank, closed",
460*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_8w_4r_closed,
461*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x180,
462*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
463*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
464*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
465*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
466*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x180,
467*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
468*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
469*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0
470*eb00b1c8SRobert Mustacchi },  {
471*eb00b1c8SRobert Mustacchi 	.itc_desc = "RIR target 7, 8-way/4-rank, closed",
472*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_8w_4r_closed,
473*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1c0,
474*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
475*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
476*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
477*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
478*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x1c0,
479*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
480*eb00b1c8SRobert Mustacchi 	.itc_rankid = 1,
481*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0
482*eb00b1c8SRobert Mustacchi }, {
483*eb00b1c8SRobert Mustacchi 	.itc_desc = "8-way/4-rank misc, closed (1)",
484*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_8w_4r_closed,
485*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x4000012f,
486*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
487*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
488*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
489*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
490*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x4000012f,
491*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
492*eb00b1c8SRobert Mustacchi 	.itc_rankid = 2,
493*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x800002f
494*eb00b1c8SRobert Mustacchi }, {
495*eb00b1c8SRobert Mustacchi 	.itc_desc = "8-way/4-rank misc, closed (2)",
496*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_8w_4r_closed,
497*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x76543210,
498*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
499*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
500*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
501*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
502*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x76543210,
503*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
504*eb00b1c8SRobert Mustacchi 	.itc_rankid = 3,
505*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0xeca8650
506*eb00b1c8SRobert Mustacchi }, {
507*eb00b1c8SRobert Mustacchi 	.itc_desc = "8-way/4-rank misc, closed (3)",
508*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_8w_4r_closed,
509*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x12345678,
510*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
511*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
512*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
513*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
514*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x12345678,
515*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
516*eb00b1c8SRobert Mustacchi 	.itc_rankid = 2,
517*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x2468af8
518*eb00b1c8SRobert Mustacchi }, {
519*eb00b1c8SRobert Mustacchi 	.itc_desc = "8-way/4-rank misc, closed (4)",
520*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_8w_4r_closed,
521*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x232023,
522*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
523*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
524*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
525*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
526*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x232023,
527*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
528*eb00b1c8SRobert Mustacchi 	.itc_rankid = 3,
529*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x46423,
530*eb00b1c8SRobert Mustacchi }, {
531*eb00b1c8SRobert Mustacchi 	.itc_desc = "8-way/4-rank misc, closed (5)",
532*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_8w_4r_closed,
533*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x232063,
534*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
535*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
536*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
537*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
538*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x232063,
539*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
540*eb00b1c8SRobert Mustacchi 	.itc_rankid = 2,
541*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x46423,
542*eb00b1c8SRobert Mustacchi }, {
543*eb00b1c8SRobert Mustacchi 	.itc_desc = "8-way/4-rank misc, closed (6)",
544*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_8w_4r_closed,
545*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x2320a3,
546*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
547*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
548*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
549*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
550*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x2320a3,
551*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
552*eb00b1c8SRobert Mustacchi 	.itc_rankid = 1,
553*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x46423,
554*eb00b1c8SRobert Mustacchi }, {
555*eb00b1c8SRobert Mustacchi 	.itc_desc = "8-way/4-rank misc, closed (7)",
556*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_8w_4r_closed,
557*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x2320e3,
558*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
559*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
560*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
561*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
562*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x2320e3,
563*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
564*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
565*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x46423,
566*eb00b1c8SRobert Mustacchi }, {
567*eb00b1c8SRobert Mustacchi 	.itc_desc = "8-way/4-rank misc, closed (8)",
568*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_8w_4r_closed,
569*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x232123,
570*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
571*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
572*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
573*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
574*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x232123,
575*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
576*eb00b1c8SRobert Mustacchi 	.itc_rankid = 2,
577*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x46423,
578*eb00b1c8SRobert Mustacchi }, {
579*eb00b1c8SRobert Mustacchi 	.itc_desc = "8-way/4-rank misc, closed (9)",
580*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_8w_4r_closed,
581*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x232163,
582*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
583*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
584*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
585*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
586*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x232163,
587*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
588*eb00b1c8SRobert Mustacchi 	.itc_rankid = 3,
589*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x46423,
590*eb00b1c8SRobert Mustacchi }, {
591*eb00b1c8SRobert Mustacchi 	.itc_desc = "8-way/4-rank misc, closed (10)",
592*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_8w_4r_closed,
593*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x2321a3,
594*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
595*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
596*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
597*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
598*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x2321a3,
599*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
600*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
601*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x46423,
602*eb00b1c8SRobert Mustacchi }, {
603*eb00b1c8SRobert Mustacchi 	.itc_desc = "8-way/4-rank misc, closed (11)",
604*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_8w_4r_closed,
605*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x2321e3,
606*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
607*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
608*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
609*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
610*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x2321e3,
611*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
612*eb00b1c8SRobert Mustacchi 	.itc_rankid = 1,
613*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x46423,
614*eb00b1c8SRobert Mustacchi }, {
615*eb00b1c8SRobert Mustacchi 	.itc_desc = "4-way/4-rank, open (1)",
616*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_4w_4r_open,
617*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0,
618*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
619*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
620*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
621*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
622*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0,
623*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
624*eb00b1c8SRobert Mustacchi 	.itc_rankid = 2,
625*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0,
626*eb00b1c8SRobert Mustacchi }, {
627*eb00b1c8SRobert Mustacchi 	.itc_desc = "4-way/4-rank, open (2)",
628*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_4w_4r_open,
629*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x2000,
630*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
631*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
632*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
633*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
634*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x2000,
635*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
636*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
637*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0
638*eb00b1c8SRobert Mustacchi }, {
639*eb00b1c8SRobert Mustacchi 	.itc_desc = "4-way/4-rank, open (3)",
640*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_4w_4r_open,
641*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x4000,
642*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
643*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
644*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
645*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
646*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x4000,
647*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
648*eb00b1c8SRobert Mustacchi 	.itc_rankid = 3,
649*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0
650*eb00b1c8SRobert Mustacchi }, {
651*eb00b1c8SRobert Mustacchi 	.itc_desc = "4-way/4-rank, open (4)",
652*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_4w_4r_open,
653*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x6000,
654*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
655*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
656*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
657*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
658*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x6000,
659*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
660*eb00b1c8SRobert Mustacchi 	.itc_rankid = 1,
661*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0
662*eb00b1c8SRobert Mustacchi }, {
663*eb00b1c8SRobert Mustacchi 	.itc_desc = "4-way/4-rank, open (5)",
664*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_4w_4r_open,
665*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1234567,
666*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
667*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
668*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
669*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
670*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x1234567,
671*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
672*eb00b1c8SRobert Mustacchi 	.itc_rankid = 3,
673*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x48c567
674*eb00b1c8SRobert Mustacchi }, {
675*eb00b1c8SRobert Mustacchi 	.itc_desc = "4-way/4-rank, open (6)",
676*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_4w_4r_open,
677*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x76543210,
678*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
679*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
680*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
681*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
682*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x76543210,
683*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
684*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
685*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x1d951210
686*eb00b1c8SRobert Mustacchi }, {
687*eb00b1c8SRobert Mustacchi 	.itc_desc = "2DPC (1)",
688*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_8w_4r_2dpc,
689*eb00b1c8SRobert Mustacchi 	.itc_pa = 0xecdabcfe,
690*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
691*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
692*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
693*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
694*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0xecdabcfe,
695*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 1,
696*eb00b1c8SRobert Mustacchi 	.itc_rankid = 1,
697*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x1d9b57be
698*eb00b1c8SRobert Mustacchi }, {
699*eb00b1c8SRobert Mustacchi 	.itc_desc = "2DPC (2)",
700*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_8w_4r_2dpc,
701*eb00b1c8SRobert Mustacchi 	.itc_pa = 0xecdabd3e,
702*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
703*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
704*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
705*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
706*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0xecdabd3e,
707*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
708*eb00b1c8SRobert Mustacchi 	.itc_rankid = 2,
709*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x1d9b57be,
710*eb00b1c8SRobert Mustacchi }, {
711*eb00b1c8SRobert Mustacchi 	.itc_desc = "2DPC (3)",
712*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_8w_4r_2dpc,
713*eb00b1c8SRobert Mustacchi 	.itc_pa = 0xecdabd7e,
714*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
715*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
716*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
717*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
718*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0xecdabd7e,
719*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 1,
720*eb00b1c8SRobert Mustacchi 	.itc_rankid = 2,
721*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x1d9b57be
722*eb00b1c8SRobert Mustacchi }, {
723*eb00b1c8SRobert Mustacchi 	.itc_desc = "2DPC (4)",
724*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_8w_4r_2dpc,
725*eb00b1c8SRobert Mustacchi 	.itc_pa = 0xecdabdbe,
726*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
727*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
728*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
729*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
730*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0xecdabdbe,
731*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
732*eb00b1c8SRobert Mustacchi 	.itc_rankid = 3,
733*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x1d9b57be
734*eb00b1c8SRobert Mustacchi }, {
735*eb00b1c8SRobert Mustacchi 	.itc_desc = "2DPC (5)",
736*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_8w_4r_2dpc,
737*eb00b1c8SRobert Mustacchi 	.itc_pa = 0xecdabdfe,
738*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
739*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
740*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
741*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
742*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0xecdabdfe,
743*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 1,
744*eb00b1c8SRobert Mustacchi 	.itc_rankid = 3,
745*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x1d9b57be
746*eb00b1c8SRobert Mustacchi }, {
747*eb00b1c8SRobert Mustacchi 	.itc_desc = "2DPC (6)",
748*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_8w_4r_2dpc,
749*eb00b1c8SRobert Mustacchi 	.itc_pa = 0xecdabe3e,
750*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
751*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
752*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
753*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
754*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0xecdabe3e,
755*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
756*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
757*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x1d9b57fe
758*eb00b1c8SRobert Mustacchi }, {
759*eb00b1c8SRobert Mustacchi 	.itc_desc = "2DPC (7)",
760*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_8w_4r_2dpc,
761*eb00b1c8SRobert Mustacchi 	.itc_pa = 0xecdabe7e,
762*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
763*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
764*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
765*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
766*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0xecdabe7e,
767*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 1,
768*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
769*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x1d9b57fe
770*eb00b1c8SRobert Mustacchi }, {
771*eb00b1c8SRobert Mustacchi 	.itc_desc = "2DPC (8)",
772*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_8w_4r_2dpc,
773*eb00b1c8SRobert Mustacchi 	.itc_pa = 0xecdabebe,
774*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
775*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
776*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
777*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
778*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0xecdabebe,
779*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
780*eb00b1c8SRobert Mustacchi 	.itc_rankid = 1,
781*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x1d9b57fe
782*eb00b1c8SRobert Mustacchi }, {
783*eb00b1c8SRobert Mustacchi 	.itc_desc = "Multi-RIR 1R 3DPC (1)",
784*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_2w_1r_3dpc,
785*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0,
786*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
787*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
788*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
789*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
790*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0,
791*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 1,
792*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
793*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0
794*eb00b1c8SRobert Mustacchi }, {
795*eb00b1c8SRobert Mustacchi 	.itc_desc = "Multi-RIR 1R 3DPC (2)",
796*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_2w_1r_3dpc,
797*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x80000000ULL,
798*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
799*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
800*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
801*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
802*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x80000000ULL,
803*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 2,
804*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
805*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0
806*eb00b1c8SRobert Mustacchi }, {
807*eb00b1c8SRobert Mustacchi 	.itc_desc = "Multi-RIR 1R 3DPC (3)",
808*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_2w_1r_3dpc,
809*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x100000000ULL,
810*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
811*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
812*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
813*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
814*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x100000000ULL,
815*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 2,
816*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
817*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x40000000
818*eb00b1c8SRobert Mustacchi }, {
819*eb00b1c8SRobert Mustacchi 	.itc_desc = "Multi-RIR 1R 3DPC (4)",
820*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_2w_1r_3dpc,
821*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x654321f5,
822*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
823*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
824*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
825*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
826*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x654321f5,
827*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
828*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
829*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x32a190f5
830*eb00b1c8SRobert Mustacchi }, {
831*eb00b1c8SRobert Mustacchi 	.itc_desc = "Multi-RIR 1R 3DPC (5)",
832*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_2w_1r_3dpc,
833*eb00b1c8SRobert Mustacchi 	.itc_pa = 0xdaddadf5,
834*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
835*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
836*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
837*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
838*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0xdaddadf5,
839*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 1,
840*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
841*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x6d6ed6f5
842*eb00b1c8SRobert Mustacchi }, {
843*eb00b1c8SRobert Mustacchi 	.itc_desc = "Multi-RIR 1R 3DPC (6)",
844*eb00b1c8SRobert Mustacchi 	.itc_imc =  &imc_rir_2w_1r_3dpc,
845*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x170ff6099ULL,
846*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
847*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
848*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
849*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
850*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x170ff6099ULL,
851*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 2,
852*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
853*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x787fb059
854*eb00b1c8SRobert Mustacchi }, {
855*eb00b1c8SRobert Mustacchi 	.itc_desc = NULL
856*eb00b1c8SRobert Mustacchi } };
857