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  * This tests various aspects of the target address decoder.
20*eb00b1c8SRobert Mustacchi  *
21*eb00b1c8SRobert Mustacchi  * o TAD rules with different channel interleaving
22*eb00b1c8SRobert Mustacchi  * o TAD rules with channel shifting (IVB->BRD)
23*eb00b1c8SRobert Mustacchi  * o TAD rules with channel hashing (IVB->BRD)
24*eb00b1c8SRobert Mustacchi  * o TAD rules with different granularities (SKX)
25*eb00b1c8SRobert Mustacchi  * o Channel rules with mod2/3 variants (SKX)
26*eb00b1c8SRobert Mustacchi  *
27*eb00b1c8SRobert Mustacchi  * We use the most basic of SAD rules and RIR rules when constructing these.
28*eb00b1c8SRobert Mustacchi  * Those are more generally exercised elsewhere. Basic socket granularity rules
29*eb00b1c8SRobert Mustacchi  * are tested in imc_test_sad.c.
30*eb00b1c8SRobert Mustacchi  *
31*eb00b1c8SRobert Mustacchi  * There are currently no tests for mirroring or lockstep mode as that's not
32*eb00b1c8SRobert Mustacchi  * more generally supported.
33*eb00b1c8SRobert Mustacchi  */
34*eb00b1c8SRobert Mustacchi 
35*eb00b1c8SRobert Mustacchi static const imc_t imc_tad_1s_2cw = {
36*eb00b1c8SRobert Mustacchi 	.imc_gen = IMC_GEN_SANDY,
37*eb00b1c8SRobert Mustacchi 	.imc_nsockets = 1,
38*eb00b1c8SRobert Mustacchi 	.imc_sockets[0] = {
39*eb00b1c8SRobert Mustacchi 		.isock_valid = IMC_SOCKET_V_VALID,
40*eb00b1c8SRobert Mustacchi 		.isock_sad = {
41*eb00b1c8SRobert Mustacchi 			.isad_flags = 0,
42*eb00b1c8SRobert Mustacchi 			.isad_valid = IMC_SAD_V_VALID,
43*eb00b1c8SRobert Mustacchi 			.isad_tolm = 0x80000000,
44*eb00b1c8SRobert Mustacchi 			.isad_tohm = 0,
45*eb00b1c8SRobert Mustacchi 			.isad_nrules = 10,
46*eb00b1c8SRobert Mustacchi 			.isad_rules[0] = {
47*eb00b1c8SRobert Mustacchi 				.isr_enable = B_TRUE,
48*eb00b1c8SRobert Mustacchi 				.isr_limit = 0x80000000,
49*eb00b1c8SRobert Mustacchi 				.isr_imode = IMC_SAD_IMODE_8t6,
50*eb00b1c8SRobert Mustacchi 				.isr_ntargets = IMC_MAX_SAD_INTERLEAVE,
51*eb00b1c8SRobert Mustacchi 				.isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 }
52*eb00b1c8SRobert Mustacchi 			}
53*eb00b1c8SRobert Mustacchi 		},
54*eb00b1c8SRobert Mustacchi 		.isock_ntad = 1,
55*eb00b1c8SRobert Mustacchi 		.isock_tad[0] = {
56*eb00b1c8SRobert Mustacchi 			.itad_flags = 0,
57*eb00b1c8SRobert Mustacchi 			.itad_nrules = 12,
58*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
59*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
60*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x80000000,
61*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 1,
62*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 2,
63*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
64*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
65*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
66*eb00b1c8SRobert Mustacchi 				.itr_targets = { 0, 1, 0, 0 }
67*eb00b1c8SRobert Mustacchi 			}
68*eb00b1c8SRobert Mustacchi 		},
69*eb00b1c8SRobert Mustacchi 		.isock_nimc = 1,
70*eb00b1c8SRobert Mustacchi 		.isock_imcs[0] = {
71*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 2,
72*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR3,
73*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
74*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
75*eb00b1c8SRobert Mustacchi 			.icn_closed = B_FALSE,
76*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
77*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
78*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
79*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
80*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
81*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
82*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
83*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
84*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
85*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
86*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
87*eb00b1c8SRobert Mustacchi 				},
88*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
89*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
90*eb00b1c8SRobert Mustacchi 				    0, 0 },
91*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 8,
92*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
93*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
94*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
95*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
96*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
97*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
98*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
99*eb00b1c8SRobert Mustacchi 				}
100*eb00b1c8SRobert Mustacchi 			},
101*eb00b1c8SRobert Mustacchi 			.icn_channels[1] = {
102*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
103*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
104*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
105*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
106*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
107*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
108*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
109*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
110*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
111*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
112*eb00b1c8SRobert Mustacchi 				},
113*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
114*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
115*eb00b1c8SRobert Mustacchi 				    0, 0 },
116*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 8,
117*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
118*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
119*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
120*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
121*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
122*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
123*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
124*eb00b1c8SRobert Mustacchi 				}
125*eb00b1c8SRobert Mustacchi 			}
126*eb00b1c8SRobert Mustacchi 		}
127*eb00b1c8SRobert Mustacchi 	}
128*eb00b1c8SRobert Mustacchi };
129*eb00b1c8SRobert Mustacchi 
130*eb00b1c8SRobert Mustacchi /*
131*eb00b1c8SRobert Mustacchi  * This IMC has the a7mode/McChanShiftUp set. This means that instead of using
132*eb00b1c8SRobert Mustacchi  * bits 0-6 for an address, it should use bits 0-7.
133*eb00b1c8SRobert Mustacchi  */
134*eb00b1c8SRobert Mustacchi static const imc_t imc_tad_1s_2cw_shiftup = {
135*eb00b1c8SRobert Mustacchi 	.imc_gen = IMC_GEN_IVY,
136*eb00b1c8SRobert Mustacchi 	.imc_nsockets = 1,
137*eb00b1c8SRobert Mustacchi 	.imc_sockets[0] = {
138*eb00b1c8SRobert Mustacchi 		.isock_valid = IMC_SOCKET_V_VALID,
139*eb00b1c8SRobert Mustacchi 		.isock_sad = {
140*eb00b1c8SRobert Mustacchi 			.isad_flags = 0,
141*eb00b1c8SRobert Mustacchi 			.isad_valid = IMC_SAD_V_VALID,
142*eb00b1c8SRobert Mustacchi 			.isad_tolm = 0x80000000,
143*eb00b1c8SRobert Mustacchi 			.isad_tohm = 0,
144*eb00b1c8SRobert Mustacchi 			.isad_nrules = 10,
145*eb00b1c8SRobert Mustacchi 			.isad_rules[0] = {
146*eb00b1c8SRobert Mustacchi 				.isr_enable = B_TRUE,
147*eb00b1c8SRobert Mustacchi 				.isr_limit = 0x80000000,
148*eb00b1c8SRobert Mustacchi 				.isr_imode = IMC_SAD_IMODE_8t6,
149*eb00b1c8SRobert Mustacchi 				.isr_ntargets = IMC_MAX_SAD_INTERLEAVE,
150*eb00b1c8SRobert Mustacchi 				.isr_a7mode = B_TRUE,
151*eb00b1c8SRobert Mustacchi 				.isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 }
152*eb00b1c8SRobert Mustacchi 			}
153*eb00b1c8SRobert Mustacchi 		},
154*eb00b1c8SRobert Mustacchi 		.isock_ntad = 1,
155*eb00b1c8SRobert Mustacchi 		.isock_tad[0] = {
156*eb00b1c8SRobert Mustacchi 			.itad_flags = IMC_TAD_FLAG_CHANSHIFT,
157*eb00b1c8SRobert Mustacchi 			.itad_nrules = 12,
158*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
159*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
160*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x80000000,
161*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 1,
162*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 2,
163*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
164*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
165*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
166*eb00b1c8SRobert Mustacchi 				.itr_targets = { 0, 1, 0, 0 }
167*eb00b1c8SRobert Mustacchi 			}
168*eb00b1c8SRobert Mustacchi 		},
169*eb00b1c8SRobert Mustacchi 		.isock_nimc = 1,
170*eb00b1c8SRobert Mustacchi 		.isock_imcs[0] = {
171*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 2,
172*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR3,
173*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
174*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
175*eb00b1c8SRobert Mustacchi 			.icn_closed = B_FALSE,
176*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
177*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
178*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
179*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
180*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
181*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
182*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
183*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
184*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
185*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
186*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
187*eb00b1c8SRobert Mustacchi 				},
188*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
189*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
190*eb00b1c8SRobert Mustacchi 				    0, 0 },
191*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 8,
192*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
193*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
194*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
195*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
196*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
197*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
198*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
199*eb00b1c8SRobert Mustacchi 				}
200*eb00b1c8SRobert Mustacchi 			},
201*eb00b1c8SRobert Mustacchi 			.icn_channels[1] = {
202*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
203*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
204*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
205*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
206*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
207*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
208*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
209*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
210*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
211*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
212*eb00b1c8SRobert Mustacchi 				},
213*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
214*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
215*eb00b1c8SRobert Mustacchi 				    0, 0 },
216*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 8,
217*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
218*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
219*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
220*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
221*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
222*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
223*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
224*eb00b1c8SRobert Mustacchi 				}
225*eb00b1c8SRobert Mustacchi 			}
226*eb00b1c8SRobert Mustacchi 		}
227*eb00b1c8SRobert Mustacchi 	}
228*eb00b1c8SRobert Mustacchi };
229*eb00b1c8SRobert Mustacchi 
230*eb00b1c8SRobert Mustacchi /*
231*eb00b1c8SRobert Mustacchi  * This IMC has the channel hashing mode set on all of the channels in question.
232*eb00b1c8SRobert Mustacchi  * This means that the TAD will hash the upper address bits into the channel
233*eb00b1c8SRobert Mustacchi  * determination.
234*eb00b1c8SRobert Mustacchi  */
235*eb00b1c8SRobert Mustacchi static const imc_t imc_tad_1s_2cw_chanhash = {
236*eb00b1c8SRobert Mustacchi 	.imc_gen = IMC_GEN_HASWELL,
237*eb00b1c8SRobert Mustacchi 	.imc_nsockets = 1,
238*eb00b1c8SRobert Mustacchi 	.imc_sockets[0] = {
239*eb00b1c8SRobert Mustacchi 		.isock_valid = IMC_SOCKET_V_VALID,
240*eb00b1c8SRobert Mustacchi 		.isock_sad = {
241*eb00b1c8SRobert Mustacchi 			.isad_flags = 0,
242*eb00b1c8SRobert Mustacchi 			.isad_valid = IMC_SAD_V_VALID,
243*eb00b1c8SRobert Mustacchi 			.isad_tolm = 0x80000000,
244*eb00b1c8SRobert Mustacchi 			.isad_tohm = 0,
245*eb00b1c8SRobert Mustacchi 			.isad_nrules = 10,
246*eb00b1c8SRobert Mustacchi 			.isad_rules[0] = {
247*eb00b1c8SRobert Mustacchi 				.isr_enable = B_TRUE,
248*eb00b1c8SRobert Mustacchi 				.isr_limit = 0x80000000,
249*eb00b1c8SRobert Mustacchi 				.isr_imode = IMC_SAD_IMODE_8t6,
250*eb00b1c8SRobert Mustacchi 				.isr_ntargets = IMC_MAX_SAD_INTERLEAVE,
251*eb00b1c8SRobert Mustacchi 				.isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 }
252*eb00b1c8SRobert Mustacchi 			}
253*eb00b1c8SRobert Mustacchi 		},
254*eb00b1c8SRobert Mustacchi 		.isock_ntad = 1,
255*eb00b1c8SRobert Mustacchi 		.isock_tad[0] = {
256*eb00b1c8SRobert Mustacchi 			.itad_flags = IMC_TAD_FLAG_CHANHASH,
257*eb00b1c8SRobert Mustacchi 			.itad_nrules = 12,
258*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
259*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
260*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x80000000,
261*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 1,
262*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 2,
263*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
264*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
265*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
266*eb00b1c8SRobert Mustacchi 				.itr_targets = { 0, 1, 0, 0 }
267*eb00b1c8SRobert Mustacchi 			}
268*eb00b1c8SRobert Mustacchi 		},
269*eb00b1c8SRobert Mustacchi 		.isock_nimc = 1,
270*eb00b1c8SRobert Mustacchi 		.isock_imcs[0] = {
271*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 2,
272*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR3,
273*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
274*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
275*eb00b1c8SRobert Mustacchi 			.icn_closed = B_FALSE,
276*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
277*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
278*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
279*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
280*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
281*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
282*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
283*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
284*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
285*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
286*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
287*eb00b1c8SRobert Mustacchi 				},
288*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
289*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
290*eb00b1c8SRobert Mustacchi 				    0, 0 },
291*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 8,
292*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
293*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
294*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
295*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
296*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
297*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
298*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
299*eb00b1c8SRobert Mustacchi 				}
300*eb00b1c8SRobert Mustacchi 			},
301*eb00b1c8SRobert Mustacchi 			.icn_channels[1] = {
302*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
303*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
304*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
305*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
306*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
307*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
308*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
309*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
310*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
311*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
312*eb00b1c8SRobert Mustacchi 				},
313*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
314*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
315*eb00b1c8SRobert Mustacchi 				    0, 0 },
316*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 8,
317*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
318*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
319*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
320*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
321*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
322*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
323*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
324*eb00b1c8SRobert Mustacchi 				}
325*eb00b1c8SRobert Mustacchi 			}
326*eb00b1c8SRobert Mustacchi 		}
327*eb00b1c8SRobert Mustacchi 	}
328*eb00b1c8SRobert Mustacchi };
329*eb00b1c8SRobert Mustacchi 
330*eb00b1c8SRobert Mustacchi /*
331*eb00b1c8SRobert Mustacchi  * This IMC has different TAD rules that cover different ranges, which change
332*eb00b1c8SRobert Mustacchi  * how we interleave. The main goal is to make sure that we're always going to
333*eb00b1c8SRobert Mustacchi  * the right place. This also requires us to set TAD offsets on a
334*eb00b1c8SRobert Mustacchi  * per-channel/TAD rule basis. These are required to correctly make sure that we
335*eb00b1c8SRobert Mustacchi  * map things. The following is how the address space should in theory look. We
336*eb00b1c8SRobert Mustacchi  * have 2 GiB (0x80000000) of address space. We break that into 4 512 MiB
337*eb00b1c8SRobert Mustacchi  * chunks. The first and last are 2-way interleaved. The middle two are 1-way
338*eb00b1c8SRobert Mustacchi  * interleaved to a specific channel.
339*eb00b1c8SRobert Mustacchi  */
340*eb00b1c8SRobert Mustacchi static const imc_t imc_tad_1s_multirule = {
341*eb00b1c8SRobert Mustacchi 	.imc_gen = IMC_GEN_BROADWELL,
342*eb00b1c8SRobert Mustacchi 	.imc_nsockets = 1,
343*eb00b1c8SRobert Mustacchi 	.imc_sockets[0] = {
344*eb00b1c8SRobert Mustacchi 		.isock_valid = IMC_SOCKET_V_VALID,
345*eb00b1c8SRobert Mustacchi 		.isock_sad = {
346*eb00b1c8SRobert Mustacchi 			.isad_flags = 0,
347*eb00b1c8SRobert Mustacchi 			.isad_valid = IMC_SAD_V_VALID,
348*eb00b1c8SRobert Mustacchi 			.isad_tolm = 0x80000000,
349*eb00b1c8SRobert Mustacchi 			.isad_tohm = 0,
350*eb00b1c8SRobert Mustacchi 			.isad_nrules = 10,
351*eb00b1c8SRobert Mustacchi 			.isad_rules[0] = {
352*eb00b1c8SRobert Mustacchi 				.isr_enable = B_TRUE,
353*eb00b1c8SRobert Mustacchi 				.isr_limit = 0x80000000,
354*eb00b1c8SRobert Mustacchi 				.isr_imode = IMC_SAD_IMODE_8t6,
355*eb00b1c8SRobert Mustacchi 				.isr_ntargets = IMC_MAX_SAD_INTERLEAVE,
356*eb00b1c8SRobert Mustacchi 				.isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 }
357*eb00b1c8SRobert Mustacchi 			}
358*eb00b1c8SRobert Mustacchi 		},
359*eb00b1c8SRobert Mustacchi 		.isock_ntad = 1,
360*eb00b1c8SRobert Mustacchi 		.isock_tad[0] = {
361*eb00b1c8SRobert Mustacchi 			.itad_flags = 0,
362*eb00b1c8SRobert Mustacchi 			.itad_nrules = 12,
363*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
364*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
365*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x20000000,
366*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 1,
367*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 2,
368*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
369*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
370*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
371*eb00b1c8SRobert Mustacchi 				.itr_targets = { 0, 1, 0, 0 }
372*eb00b1c8SRobert Mustacchi 			},
373*eb00b1c8SRobert Mustacchi 			.itad_rules[1] = {
374*eb00b1c8SRobert Mustacchi 				.itr_base = 0x20000000,
375*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x40000000,
376*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 1,
377*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 1,
378*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
379*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
380*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
381*eb00b1c8SRobert Mustacchi 				.itr_targets = { 1, 1, 0, 0 }
382*eb00b1c8SRobert Mustacchi 			},
383*eb00b1c8SRobert Mustacchi 			.itad_rules[2] = {
384*eb00b1c8SRobert Mustacchi 				.itr_base = 0x40000000,
385*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x60000000,
386*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 1,
387*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 1,
388*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
389*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
390*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
391*eb00b1c8SRobert Mustacchi 				.itr_targets = { 0, 0, 0, 0 }
392*eb00b1c8SRobert Mustacchi 			},
393*eb00b1c8SRobert Mustacchi 			.itad_rules[3] = {
394*eb00b1c8SRobert Mustacchi 				.itr_base = 0x60000000,
395*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x80000000,
396*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 1,
397*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 2,
398*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
399*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
400*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
401*eb00b1c8SRobert Mustacchi 				.itr_targets = { 1, 0, 0, 0 }
402*eb00b1c8SRobert Mustacchi 			}
403*eb00b1c8SRobert Mustacchi 		},
404*eb00b1c8SRobert Mustacchi 		.isock_nimc = 1,
405*eb00b1c8SRobert Mustacchi 		.isock_imcs[0] = {
406*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 2,
407*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR3,
408*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
409*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
410*eb00b1c8SRobert Mustacchi 			.icn_closed = B_FALSE,
411*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
412*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
413*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
414*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
415*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
416*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
417*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
418*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
419*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
420*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
421*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
422*eb00b1c8SRobert Mustacchi 				},
423*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
424*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0x30000000, 0, 0,
425*eb00b1c8SRobert Mustacchi 				    0, 0, 0, 0, 0, 0 },
426*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 8,
427*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
428*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
429*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
430*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
431*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
432*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
433*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
434*eb00b1c8SRobert Mustacchi 				}
435*eb00b1c8SRobert Mustacchi 			},
436*eb00b1c8SRobert Mustacchi 			.icn_channels[1] = {
437*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
438*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
439*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
440*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
441*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
442*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
443*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
444*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
445*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
446*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
447*eb00b1c8SRobert Mustacchi 				},
448*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
449*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0x10000000, 0, 0, 0, 0,
450*eb00b1c8SRobert Mustacchi 				    0, 0, 0, 0, 0 },
451*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 8,
452*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
453*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
454*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
455*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
456*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
457*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
458*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
459*eb00b1c8SRobert Mustacchi 				}
460*eb00b1c8SRobert Mustacchi 			}
461*eb00b1c8SRobert Mustacchi 		}
462*eb00b1c8SRobert Mustacchi 	}
463*eb00b1c8SRobert Mustacchi };
464*eb00b1c8SRobert Mustacchi 
465*eb00b1c8SRobert Mustacchi /*
466*eb00b1c8SRobert Mustacchi  * The purpse of this IMC is to use a combination of both socket and channel
467*eb00b1c8SRobert Mustacchi  * interleaving. It employs a system with two sockets, each which have 2 IMCs.
468*eb00b1c8SRobert Mustacchi  * Each IMC has two channels. We have a 4-way socket interleave followed by a
469*eb00b1c8SRobert Mustacchi  * 2-way channel interleave. We use a simplified memory layout (TOLM = 4 GiB) to
470*eb00b1c8SRobert Mustacchi  * simplify other rules.
471*eb00b1c8SRobert Mustacchi  */
472*eb00b1c8SRobert Mustacchi static const imc_t imc_tad_2s_2cw_4sw = {
473*eb00b1c8SRobert Mustacchi 	.imc_gen = IMC_GEN_IVY,
474*eb00b1c8SRobert Mustacchi 	.imc_nsockets = 2,
475*eb00b1c8SRobert Mustacchi 	.imc_sockets[0] = {
476*eb00b1c8SRobert Mustacchi 		.isock_nodeid = 0,
477*eb00b1c8SRobert Mustacchi 		.isock_valid = IMC_SOCKET_V_VALID,
478*eb00b1c8SRobert Mustacchi 		.isock_sad = {
479*eb00b1c8SRobert Mustacchi 			.isad_flags = 0,
480*eb00b1c8SRobert Mustacchi 			.isad_valid = IMC_SAD_V_VALID,
481*eb00b1c8SRobert Mustacchi 			.isad_tolm = 0x100000000ULL,
482*eb00b1c8SRobert Mustacchi 			.isad_tohm = 0x200000000ULL,
483*eb00b1c8SRobert Mustacchi 			.isad_nrules = 10,
484*eb00b1c8SRobert Mustacchi 			.isad_rules[0] = {
485*eb00b1c8SRobert Mustacchi 				.isr_enable = B_TRUE,
486*eb00b1c8SRobert Mustacchi 				.isr_limit = 0x200000000ULL,
487*eb00b1c8SRobert Mustacchi 				.isr_imode = IMC_SAD_IMODE_8t6,
488*eb00b1c8SRobert Mustacchi 				.isr_ntargets = IMC_MAX_SAD_INTERLEAVE,
489*eb00b1c8SRobert Mustacchi 				.isr_targets = { 0, 4, 1, 5, 0, 4, 1, 5 }
490*eb00b1c8SRobert Mustacchi 			}
491*eb00b1c8SRobert Mustacchi 		},
492*eb00b1c8SRobert Mustacchi 		.isock_ntad = 2,
493*eb00b1c8SRobert Mustacchi 		.isock_tad[0] = {
494*eb00b1c8SRobert Mustacchi 			.itad_flags = 0,
495*eb00b1c8SRobert Mustacchi 			.itad_nrules = 12,
496*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
497*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
498*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x200000000ULL,
499*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 4,
500*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 2,
501*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
502*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
503*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
504*eb00b1c8SRobert Mustacchi 				.itr_targets = { 0, 1, 0, 0 }
505*eb00b1c8SRobert Mustacchi 			}
506*eb00b1c8SRobert Mustacchi 		},
507*eb00b1c8SRobert Mustacchi 		.isock_tad[1] = {
508*eb00b1c8SRobert Mustacchi 			.itad_flags = 0,
509*eb00b1c8SRobert Mustacchi 			.itad_nrules = 12,
510*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
511*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
512*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x200000000ULL,
513*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 4,
514*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 2,
515*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
516*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
517*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
518*eb00b1c8SRobert Mustacchi 				.itr_targets = { 1, 0, 0, 0 }
519*eb00b1c8SRobert Mustacchi 			}
520*eb00b1c8SRobert Mustacchi 		},
521*eb00b1c8SRobert Mustacchi 		.isock_nimc = 2,
522*eb00b1c8SRobert Mustacchi 		.isock_imcs[0] = {
523*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 2,
524*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR3,
525*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
526*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
527*eb00b1c8SRobert Mustacchi 			.icn_closed = B_FALSE,
528*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
529*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
530*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
531*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
532*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
533*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
534*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
535*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
536*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
537*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
538*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
539*eb00b1c8SRobert Mustacchi 				},
540*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
541*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
542*eb00b1c8SRobert Mustacchi 				    0, 0 },
543*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 8,
544*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
545*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
546*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
547*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
548*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
549*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
550*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
551*eb00b1c8SRobert Mustacchi 				}
552*eb00b1c8SRobert Mustacchi 			},
553*eb00b1c8SRobert Mustacchi 			.icn_channels[1] = {
554*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
555*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
556*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
557*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
558*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
559*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
560*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
561*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
562*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
563*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
564*eb00b1c8SRobert Mustacchi 				},
565*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
566*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
567*eb00b1c8SRobert Mustacchi 				    0, 0 },
568*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 8,
569*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
570*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
571*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
572*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
573*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
574*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
575*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
576*eb00b1c8SRobert Mustacchi 				}
577*eb00b1c8SRobert Mustacchi 			}
578*eb00b1c8SRobert Mustacchi 		},
579*eb00b1c8SRobert Mustacchi 		.isock_imcs[1] = {
580*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 2,
581*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR3,
582*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
583*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
584*eb00b1c8SRobert Mustacchi 			.icn_closed = B_FALSE,
585*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
586*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
587*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
588*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
589*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
590*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
591*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
592*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
593*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
594*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
595*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
596*eb00b1c8SRobert Mustacchi 				},
597*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
598*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
599*eb00b1c8SRobert Mustacchi 				    0, 0 },
600*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 8,
601*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
602*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
603*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
604*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
605*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
606*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
607*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
608*eb00b1c8SRobert Mustacchi 				}
609*eb00b1c8SRobert Mustacchi 			},
610*eb00b1c8SRobert Mustacchi 			.icn_channels[1] = {
611*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
612*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
613*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
614*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
615*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
616*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
617*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
618*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
619*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
620*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
621*eb00b1c8SRobert Mustacchi 				},
622*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
623*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
624*eb00b1c8SRobert Mustacchi 				    0, 0 },
625*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 8,
626*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
627*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
628*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
629*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
630*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
631*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
632*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
633*eb00b1c8SRobert Mustacchi 				}
634*eb00b1c8SRobert Mustacchi 			}
635*eb00b1c8SRobert Mustacchi 		}
636*eb00b1c8SRobert Mustacchi 	},
637*eb00b1c8SRobert Mustacchi 	.imc_sockets[1] = {
638*eb00b1c8SRobert Mustacchi 		.isock_nodeid = 1,
639*eb00b1c8SRobert Mustacchi 		.isock_valid = IMC_SOCKET_V_VALID,
640*eb00b1c8SRobert Mustacchi 		.isock_sad = {
641*eb00b1c8SRobert Mustacchi 			.isad_flags = 0,
642*eb00b1c8SRobert Mustacchi 			.isad_valid = IMC_SAD_V_VALID,
643*eb00b1c8SRobert Mustacchi 			.isad_tolm = 0x80000000,
644*eb00b1c8SRobert Mustacchi 			.isad_tohm = 0,
645*eb00b1c8SRobert Mustacchi 			.isad_nrules = 10,
646*eb00b1c8SRobert Mustacchi 			.isad_rules[0] = {
647*eb00b1c8SRobert Mustacchi 				.isr_enable = B_TRUE,
648*eb00b1c8SRobert Mustacchi 				.isr_limit = 0x80000000,
649*eb00b1c8SRobert Mustacchi 				.isr_imode = IMC_SAD_IMODE_8t6,
650*eb00b1c8SRobert Mustacchi 				.isr_ntargets = IMC_MAX_SAD_INTERLEAVE,
651*eb00b1c8SRobert Mustacchi 				.isr_targets = { 0, 4, 1, 5, 0, 4, 1, 5 }
652*eb00b1c8SRobert Mustacchi 			}
653*eb00b1c8SRobert Mustacchi 		},
654*eb00b1c8SRobert Mustacchi 		.isock_ntad = 2,
655*eb00b1c8SRobert Mustacchi 		.isock_tad[0] = {
656*eb00b1c8SRobert Mustacchi 			.itad_flags = 0,
657*eb00b1c8SRobert Mustacchi 			.itad_nrules = 12,
658*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
659*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
660*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x200000000ULL,
661*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 4,
662*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 2,
663*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
664*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
665*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
666*eb00b1c8SRobert Mustacchi 				.itr_targets = { 1, 0, 0, 0 }
667*eb00b1c8SRobert Mustacchi 			}
668*eb00b1c8SRobert Mustacchi 		},
669*eb00b1c8SRobert Mustacchi 		.isock_tad[1] = {
670*eb00b1c8SRobert Mustacchi 			.itad_flags = 0,
671*eb00b1c8SRobert Mustacchi 			.itad_nrules = 12,
672*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
673*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
674*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x200000000ULL,
675*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 4,
676*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 2,
677*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
678*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
679*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
680*eb00b1c8SRobert Mustacchi 				.itr_targets = { 0, 1, 0, 0 }
681*eb00b1c8SRobert Mustacchi 			}
682*eb00b1c8SRobert Mustacchi 		},
683*eb00b1c8SRobert Mustacchi 		.isock_nimc = 2,
684*eb00b1c8SRobert Mustacchi 		.isock_imcs[0] = {
685*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 2,
686*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR3,
687*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
688*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
689*eb00b1c8SRobert Mustacchi 			.icn_closed = B_FALSE,
690*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
691*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
692*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
693*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
694*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
695*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
696*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
697*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
698*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
699*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
700*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
701*eb00b1c8SRobert Mustacchi 				},
702*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
703*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
704*eb00b1c8SRobert Mustacchi 				    0, 0 },
705*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 8,
706*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
707*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
708*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
709*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
710*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
711*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
712*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
713*eb00b1c8SRobert Mustacchi 				}
714*eb00b1c8SRobert Mustacchi 			},
715*eb00b1c8SRobert Mustacchi 			.icn_channels[1] = {
716*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
717*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
718*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
719*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
720*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
721*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
722*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
723*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
724*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
725*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
726*eb00b1c8SRobert Mustacchi 				},
727*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
728*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
729*eb00b1c8SRobert Mustacchi 				    0, 0 },
730*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 8,
731*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
732*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
733*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
734*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
735*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
736*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
737*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
738*eb00b1c8SRobert Mustacchi 				}
739*eb00b1c8SRobert Mustacchi 			}
740*eb00b1c8SRobert Mustacchi 		},
741*eb00b1c8SRobert Mustacchi 		.isock_imcs[1] = {
742*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 2,
743*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR3,
744*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
745*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
746*eb00b1c8SRobert Mustacchi 			.icn_closed = B_FALSE,
747*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
748*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
749*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
750*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
751*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
752*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
753*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
754*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
755*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
756*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
757*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
758*eb00b1c8SRobert Mustacchi 				},
759*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
760*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
761*eb00b1c8SRobert Mustacchi 				    0, 0 },
762*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 8,
763*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
764*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
765*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
766*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
767*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
768*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
769*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
770*eb00b1c8SRobert Mustacchi 				}
771*eb00b1c8SRobert Mustacchi 			},
772*eb00b1c8SRobert Mustacchi 			.icn_channels[1] = {
773*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
774*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
775*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
776*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
777*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
778*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
779*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
780*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
781*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
782*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
783*eb00b1c8SRobert Mustacchi 				},
784*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
785*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
786*eb00b1c8SRobert Mustacchi 				    0, 0 },
787*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 8,
788*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
789*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
790*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
791*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
792*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
793*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
794*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
795*eb00b1c8SRobert Mustacchi 				}
796*eb00b1c8SRobert Mustacchi 			}
797*eb00b1c8SRobert Mustacchi 		}
798*eb00b1c8SRobert Mustacchi 	}
799*eb00b1c8SRobert Mustacchi };
800*eb00b1c8SRobert Mustacchi 
801*eb00b1c8SRobert Mustacchi /*
802*eb00b1c8SRobert Mustacchi  * This IMC has a single socket with two IMCs and two channels. It uses the
803*eb00b1c8SRobert Mustacchi  * default granularities and sizes. This just serves as a basis for the
804*eb00b1c8SRobert Mustacchi  * subsequent tests.
805*eb00b1c8SRobert Mustacchi  */
806*eb00b1c8SRobert Mustacchi static const imc_t imc_skx_64b_gran = {
807*eb00b1c8SRobert Mustacchi 	.imc_gen = IMC_GEN_SKYLAKE,
808*eb00b1c8SRobert Mustacchi 	.imc_nsockets = 1,
809*eb00b1c8SRobert Mustacchi 	.imc_sockets[0] = {
810*eb00b1c8SRobert Mustacchi 		.isock_nodeid = 0,
811*eb00b1c8SRobert Mustacchi 		.isock_valid = IMC_SOCKET_V_VALID,
812*eb00b1c8SRobert Mustacchi 		.isock_sad = {
813*eb00b1c8SRobert Mustacchi 			.isad_flags = 0,
814*eb00b1c8SRobert Mustacchi 			.isad_valid = IMC_SAD_V_VALID,
815*eb00b1c8SRobert Mustacchi 			.isad_tolm = 0x80000000,
816*eb00b1c8SRobert Mustacchi 			.isad_tohm = 0,
817*eb00b1c8SRobert Mustacchi 			.isad_nrules = 24,
818*eb00b1c8SRobert Mustacchi 			.isad_rules[0] = {
819*eb00b1c8SRobert Mustacchi 				.isr_enable = B_TRUE,
820*eb00b1c8SRobert Mustacchi 				.isr_limit = 0x80000000,
821*eb00b1c8SRobert Mustacchi 				.isr_imode = IMC_SAD_IMODE_8t6,
822*eb00b1c8SRobert Mustacchi 				.isr_ntargets = IMC_MAX_SAD_INTERLEAVE,
823*eb00b1c8SRobert Mustacchi 				.isr_targets = { 8, 9, 8, 9, 8, 9, 8, 9 }
824*eb00b1c8SRobert Mustacchi 			},
825*eb00b1c8SRobert Mustacchi 			.isad_mcroute = {
826*eb00b1c8SRobert Mustacchi 				.ismc_nroutes = 6,
827*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[0] = { 0, 0 },
828*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[1] = { 0, 1 }
829*eb00b1c8SRobert Mustacchi 			}
830*eb00b1c8SRobert Mustacchi 		},
831*eb00b1c8SRobert Mustacchi 		.isock_ntad = 1,
832*eb00b1c8SRobert Mustacchi 		.isock_tad[0] = {
833*eb00b1c8SRobert Mustacchi 			.itad_flags = 0,
834*eb00b1c8SRobert Mustacchi 			.itad_nrules = 8,
835*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
836*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
837*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x80000000,
838*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 1,
839*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 2,
840*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
841*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
842*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
843*eb00b1c8SRobert Mustacchi 				.itr_targets = { 0, 0, 0, 0 }
844*eb00b1c8SRobert Mustacchi 			}
845*eb00b1c8SRobert Mustacchi 		},
846*eb00b1c8SRobert Mustacchi 		.isock_nimc = 1,
847*eb00b1c8SRobert Mustacchi 		.isock_imcs[0] = {
848*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 2,
849*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR4,
850*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
851*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
852*eb00b1c8SRobert Mustacchi 			.icn_closed = B_FALSE,
853*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
854*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
855*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
856*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
857*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
858*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
859*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
860*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
861*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
862*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
863*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
864*eb00b1c8SRobert Mustacchi 				},
865*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
866*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
867*eb00b1c8SRobert Mustacchi 				    0, 0 },
868*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
869*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
870*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
871*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
872*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
873*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
874*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
875*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
876*eb00b1c8SRobert Mustacchi 				}
877*eb00b1c8SRobert Mustacchi 			},
878*eb00b1c8SRobert Mustacchi 			.icn_channels[1] = {
879*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
880*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
881*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
882*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
883*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
884*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
885*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
886*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
887*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
888*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
889*eb00b1c8SRobert Mustacchi 				},
890*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
891*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
892*eb00b1c8SRobert Mustacchi 				    0, 0 },
893*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
894*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
895*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
896*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
897*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
898*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
899*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
900*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
901*eb00b1c8SRobert Mustacchi 				}
902*eb00b1c8SRobert Mustacchi 			}
903*eb00b1c8SRobert Mustacchi 		}
904*eb00b1c8SRobert Mustacchi 	}
905*eb00b1c8SRobert Mustacchi };
906*eb00b1c8SRobert Mustacchi 
907*eb00b1c8SRobert Mustacchi /*
908*eb00b1c8SRobert Mustacchi  * This tests a different channel granularity. Note the channel and socket
909*eb00b1c8SRobert Mustacchi  * granulariites match at this point in time to simplify the test.
910*eb00b1c8SRobert Mustacchi  */
911*eb00b1c8SRobert Mustacchi static const imc_t imc_skx_256b_gran = {
912*eb00b1c8SRobert Mustacchi 	.imc_gen = IMC_GEN_SKYLAKE,
913*eb00b1c8SRobert Mustacchi 	.imc_nsockets = 1,
914*eb00b1c8SRobert Mustacchi 	.imc_sockets[0] = {
915*eb00b1c8SRobert Mustacchi 		.isock_nodeid = 0,
916*eb00b1c8SRobert Mustacchi 		.isock_valid = IMC_SOCKET_V_VALID,
917*eb00b1c8SRobert Mustacchi 		.isock_sad = {
918*eb00b1c8SRobert Mustacchi 			.isad_flags = 0,
919*eb00b1c8SRobert Mustacchi 			.isad_valid = IMC_SAD_V_VALID,
920*eb00b1c8SRobert Mustacchi 			.isad_tolm = 0x80000000,
921*eb00b1c8SRobert Mustacchi 			.isad_tohm = 0,
922*eb00b1c8SRobert Mustacchi 			.isad_nrules = 24,
923*eb00b1c8SRobert Mustacchi 			.isad_rules[0] = {
924*eb00b1c8SRobert Mustacchi 				.isr_enable = B_TRUE,
925*eb00b1c8SRobert Mustacchi 				.isr_limit = 0x80000000,
926*eb00b1c8SRobert Mustacchi 				.isr_imode = IMC_SAD_IMODE_10t8,
927*eb00b1c8SRobert Mustacchi 				.isr_ntargets = IMC_MAX_SAD_INTERLEAVE,
928*eb00b1c8SRobert Mustacchi 				.isr_targets = { 8, 9, 8, 9, 8, 9, 8, 9 }
929*eb00b1c8SRobert Mustacchi 			},
930*eb00b1c8SRobert Mustacchi 			.isad_mcroute = {
931*eb00b1c8SRobert Mustacchi 				.ismc_nroutes = 6,
932*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[0] = { 0, 0 },
933*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[1] = { 0, 1 }
934*eb00b1c8SRobert Mustacchi 			}
935*eb00b1c8SRobert Mustacchi 		},
936*eb00b1c8SRobert Mustacchi 		.isock_ntad = 1,
937*eb00b1c8SRobert Mustacchi 		.isock_tad[0] = {
938*eb00b1c8SRobert Mustacchi 			.itad_flags = 0,
939*eb00b1c8SRobert Mustacchi 			.itad_nrules = 8,
940*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
941*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
942*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x80000000,
943*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 1,
944*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 2,
945*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_256B,
946*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_256B,
947*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
948*eb00b1c8SRobert Mustacchi 				.itr_targets = { 0, 0, 0, 0 }
949*eb00b1c8SRobert Mustacchi 			}
950*eb00b1c8SRobert Mustacchi 		},
951*eb00b1c8SRobert Mustacchi 		.isock_nimc = 1,
952*eb00b1c8SRobert Mustacchi 		.isock_imcs[0] = {
953*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 2,
954*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR4,
955*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
956*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
957*eb00b1c8SRobert Mustacchi 			.icn_closed = B_FALSE,
958*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
959*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
960*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
961*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
962*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
963*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
964*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
965*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
966*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
967*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
968*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
969*eb00b1c8SRobert Mustacchi 				},
970*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
971*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
972*eb00b1c8SRobert Mustacchi 				    0, 0 },
973*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
974*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
975*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
976*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
977*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
978*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
979*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
980*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
981*eb00b1c8SRobert Mustacchi 				}
982*eb00b1c8SRobert Mustacchi 			},
983*eb00b1c8SRobert Mustacchi 			.icn_channels[1] = {
984*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
985*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
986*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
987*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
988*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
989*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
990*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
991*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
992*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
993*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
994*eb00b1c8SRobert Mustacchi 				},
995*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
996*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
997*eb00b1c8SRobert Mustacchi 				    0, 0 },
998*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
999*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
1000*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
1001*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
1002*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
1003*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
1004*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
1005*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
1006*eb00b1c8SRobert Mustacchi 				}
1007*eb00b1c8SRobert Mustacchi 			}
1008*eb00b1c8SRobert Mustacchi 		}
1009*eb00b1c8SRobert Mustacchi 	}
1010*eb00b1c8SRobert Mustacchi };
1011*eb00b1c8SRobert Mustacchi 
1012*eb00b1c8SRobert Mustacchi /*
1013*eb00b1c8SRobert Mustacchi  * This time, use a 4k granularity.
1014*eb00b1c8SRobert Mustacchi  */
1015*eb00b1c8SRobert Mustacchi static const imc_t imc_skx_4k_gran = {
1016*eb00b1c8SRobert Mustacchi 	.imc_gen = IMC_GEN_SKYLAKE,
1017*eb00b1c8SRobert Mustacchi 	.imc_nsockets = 1,
1018*eb00b1c8SRobert Mustacchi 	.imc_sockets[0] = {
1019*eb00b1c8SRobert Mustacchi 		.isock_nodeid = 0,
1020*eb00b1c8SRobert Mustacchi 		.isock_valid = IMC_SOCKET_V_VALID,
1021*eb00b1c8SRobert Mustacchi 		.isock_sad = {
1022*eb00b1c8SRobert Mustacchi 			.isad_flags = 0,
1023*eb00b1c8SRobert Mustacchi 			.isad_valid = IMC_SAD_V_VALID,
1024*eb00b1c8SRobert Mustacchi 			.isad_tolm = 0x80000000,
1025*eb00b1c8SRobert Mustacchi 			.isad_tohm = 0,
1026*eb00b1c8SRobert Mustacchi 			.isad_nrules = 24,
1027*eb00b1c8SRobert Mustacchi 			.isad_rules[0] = {
1028*eb00b1c8SRobert Mustacchi 				.isr_enable = B_TRUE,
1029*eb00b1c8SRobert Mustacchi 				.isr_limit = 0x80000000,
1030*eb00b1c8SRobert Mustacchi 				.isr_imode = IMC_SAD_IMODE_14t12,
1031*eb00b1c8SRobert Mustacchi 				.isr_ntargets = IMC_MAX_SAD_INTERLEAVE,
1032*eb00b1c8SRobert Mustacchi 				.isr_targets = { 8, 9, 8, 9, 8, 9, 8, 9 }
1033*eb00b1c8SRobert Mustacchi 			},
1034*eb00b1c8SRobert Mustacchi 			.isad_mcroute = {
1035*eb00b1c8SRobert Mustacchi 				.ismc_nroutes = 6,
1036*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[0] = { 0, 0 },
1037*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[1] = { 0, 1 }
1038*eb00b1c8SRobert Mustacchi 			}
1039*eb00b1c8SRobert Mustacchi 		},
1040*eb00b1c8SRobert Mustacchi 		.isock_ntad = 1,
1041*eb00b1c8SRobert Mustacchi 		.isock_tad[0] = {
1042*eb00b1c8SRobert Mustacchi 			.itad_flags = 0,
1043*eb00b1c8SRobert Mustacchi 			.itad_nrules = 8,
1044*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
1045*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
1046*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x80000000,
1047*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 1,
1048*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 2,
1049*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_4KB,
1050*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_4KB,
1051*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
1052*eb00b1c8SRobert Mustacchi 				.itr_targets = { 0, 0, 0, 0 }
1053*eb00b1c8SRobert Mustacchi 			}
1054*eb00b1c8SRobert Mustacchi 		},
1055*eb00b1c8SRobert Mustacchi 		.isock_nimc = 1,
1056*eb00b1c8SRobert Mustacchi 		.isock_imcs[0] = {
1057*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 2,
1058*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR4,
1059*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
1060*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
1061*eb00b1c8SRobert Mustacchi 			.icn_closed = B_FALSE,
1062*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
1063*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
1064*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
1065*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
1066*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
1067*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
1068*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
1069*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
1070*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
1071*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
1072*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
1073*eb00b1c8SRobert Mustacchi 				},
1074*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
1075*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1076*eb00b1c8SRobert Mustacchi 				    0, 0 },
1077*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
1078*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
1079*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
1080*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
1081*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
1082*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
1083*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
1084*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
1085*eb00b1c8SRobert Mustacchi 				}
1086*eb00b1c8SRobert Mustacchi 			},
1087*eb00b1c8SRobert Mustacchi 			.icn_channels[1] = {
1088*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
1089*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
1090*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
1091*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
1092*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
1093*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
1094*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
1095*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
1096*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
1097*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
1098*eb00b1c8SRobert Mustacchi 				},
1099*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
1100*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1101*eb00b1c8SRobert Mustacchi 				    0, 0 },
1102*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
1103*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
1104*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
1105*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
1106*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
1107*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
1108*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
1109*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
1110*eb00b1c8SRobert Mustacchi 				}
1111*eb00b1c8SRobert Mustacchi 			}
1112*eb00b1c8SRobert Mustacchi 		}
1113*eb00b1c8SRobert Mustacchi 	}
1114*eb00b1c8SRobert Mustacchi };
1115*eb00b1c8SRobert Mustacchi 
1116*eb00b1c8SRobert Mustacchi /*
1117*eb00b1c8SRobert Mustacchi  * Once more, with 1 GiB granularity.
1118*eb00b1c8SRobert Mustacchi  */
1119*eb00b1c8SRobert Mustacchi static const imc_t imc_skx_1g_gran = {
1120*eb00b1c8SRobert Mustacchi 	.imc_gen = IMC_GEN_SKYLAKE,
1121*eb00b1c8SRobert Mustacchi 	.imc_nsockets = 1,
1122*eb00b1c8SRobert Mustacchi 	.imc_sockets[0] = {
1123*eb00b1c8SRobert Mustacchi 		.isock_nodeid = 0,
1124*eb00b1c8SRobert Mustacchi 		.isock_valid = IMC_SOCKET_V_VALID,
1125*eb00b1c8SRobert Mustacchi 		.isock_sad = {
1126*eb00b1c8SRobert Mustacchi 			.isad_flags = 0,
1127*eb00b1c8SRobert Mustacchi 			.isad_valid = IMC_SAD_V_VALID,
1128*eb00b1c8SRobert Mustacchi 			.isad_tolm = 0x80000000,
1129*eb00b1c8SRobert Mustacchi 			.isad_tohm = 0,
1130*eb00b1c8SRobert Mustacchi 			.isad_nrules = 24,
1131*eb00b1c8SRobert Mustacchi 			.isad_rules[0] = {
1132*eb00b1c8SRobert Mustacchi 				.isr_enable = B_TRUE,
1133*eb00b1c8SRobert Mustacchi 				.isr_limit = 0x80000000,
1134*eb00b1c8SRobert Mustacchi 				.isr_imode = IMC_SAD_IMODE_32t30,
1135*eb00b1c8SRobert Mustacchi 				.isr_ntargets = IMC_MAX_SAD_INTERLEAVE,
1136*eb00b1c8SRobert Mustacchi 				.isr_targets = { 8, 9, 8, 9, 8, 9, 8, 9 }
1137*eb00b1c8SRobert Mustacchi 			},
1138*eb00b1c8SRobert Mustacchi 			.isad_mcroute = {
1139*eb00b1c8SRobert Mustacchi 				.ismc_nroutes = 6,
1140*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[0] = { 0, 0 },
1141*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[1] = { 0, 1 }
1142*eb00b1c8SRobert Mustacchi 			}
1143*eb00b1c8SRobert Mustacchi 		},
1144*eb00b1c8SRobert Mustacchi 		.isock_ntad = 1,
1145*eb00b1c8SRobert Mustacchi 		.isock_tad[0] = {
1146*eb00b1c8SRobert Mustacchi 			.itad_flags = 0,
1147*eb00b1c8SRobert Mustacchi 			.itad_nrules = 8,
1148*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
1149*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
1150*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x80000000,
1151*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 1,
1152*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 2,
1153*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_1GB,
1154*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_1GB,
1155*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
1156*eb00b1c8SRobert Mustacchi 				.itr_targets = { 0, 0, 0, 0 }
1157*eb00b1c8SRobert Mustacchi 			}
1158*eb00b1c8SRobert Mustacchi 		},
1159*eb00b1c8SRobert Mustacchi 		.isock_nimc = 1,
1160*eb00b1c8SRobert Mustacchi 		.isock_imcs[0] = {
1161*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 2,
1162*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR4,
1163*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
1164*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
1165*eb00b1c8SRobert Mustacchi 			.icn_closed = B_FALSE,
1166*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
1167*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
1168*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
1169*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
1170*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
1171*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
1172*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
1173*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
1174*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
1175*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
1176*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
1177*eb00b1c8SRobert Mustacchi 				},
1178*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
1179*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1180*eb00b1c8SRobert Mustacchi 				    0, 0 },
1181*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
1182*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
1183*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
1184*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
1185*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
1186*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
1187*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
1188*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
1189*eb00b1c8SRobert Mustacchi 				}
1190*eb00b1c8SRobert Mustacchi 			},
1191*eb00b1c8SRobert Mustacchi 			.icn_channels[1] = {
1192*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
1193*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
1194*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
1195*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
1196*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
1197*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
1198*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
1199*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
1200*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
1201*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
1202*eb00b1c8SRobert Mustacchi 				},
1203*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
1204*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1205*eb00b1c8SRobert Mustacchi 				    0, 0 },
1206*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
1207*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
1208*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
1209*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
1210*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
1211*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
1212*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
1213*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
1214*eb00b1c8SRobert Mustacchi 				}
1215*eb00b1c8SRobert Mustacchi 			}
1216*eb00b1c8SRobert Mustacchi 		}
1217*eb00b1c8SRobert Mustacchi 	}
1218*eb00b1c8SRobert Mustacchi };
1219*eb00b1c8SRobert Mustacchi 
1220*eb00b1c8SRobert Mustacchi /*
1221*eb00b1c8SRobert Mustacchi  * This tests a 1 socket, 4 channel-way configuration.
1222*eb00b1c8SRobert Mustacchi  */
1223*eb00b1c8SRobert Mustacchi static const imc_t imc_tad_1s_4cw = {
1224*eb00b1c8SRobert Mustacchi 	.imc_gen = IMC_GEN_SKYLAKE,
1225*eb00b1c8SRobert Mustacchi 	.imc_nsockets = 1,
1226*eb00b1c8SRobert Mustacchi 	.imc_sockets[0] = {
1227*eb00b1c8SRobert Mustacchi 		.isock_nodeid = 0,
1228*eb00b1c8SRobert Mustacchi 		.isock_valid = IMC_SOCKET_V_VALID,
1229*eb00b1c8SRobert Mustacchi 		.isock_sad = {
1230*eb00b1c8SRobert Mustacchi 			.isad_flags = 0,
1231*eb00b1c8SRobert Mustacchi 			.isad_valid = IMC_SAD_V_VALID,
1232*eb00b1c8SRobert Mustacchi 			.isad_tolm = 0x100000000ULL,
1233*eb00b1c8SRobert Mustacchi 			.isad_tohm = 0,
1234*eb00b1c8SRobert Mustacchi 			.isad_nrules = 24,
1235*eb00b1c8SRobert Mustacchi 			.isad_rules[0] = {
1236*eb00b1c8SRobert Mustacchi 				.isr_enable = B_TRUE,
1237*eb00b1c8SRobert Mustacchi 				.isr_limit = 0x100000000ULL,
1238*eb00b1c8SRobert Mustacchi 				.isr_imode = IMC_SAD_IMODE_8t6,
1239*eb00b1c8SRobert Mustacchi 				.isr_ntargets = IMC_MAX_SAD_INTERLEAVE,
1240*eb00b1c8SRobert Mustacchi 				.isr_targets = { 8, 9, 0xa, 0xb, 8, 9, 0xa,
1241*eb00b1c8SRobert Mustacchi 				    0xb }
1242*eb00b1c8SRobert Mustacchi 			},
1243*eb00b1c8SRobert Mustacchi 			.isad_mcroute = {
1244*eb00b1c8SRobert Mustacchi 				.ismc_nroutes = 6,
1245*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[0] = { 0, 0 },
1246*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[1] = { 0, 1 },
1247*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[2] = { 1, 1 },
1248*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[3] = { 1, 0 }
1249*eb00b1c8SRobert Mustacchi 			}
1250*eb00b1c8SRobert Mustacchi 		},
1251*eb00b1c8SRobert Mustacchi 		.isock_ntad = 2,
1252*eb00b1c8SRobert Mustacchi 		.isock_tad[0] = {
1253*eb00b1c8SRobert Mustacchi 			.itad_flags = 0,
1254*eb00b1c8SRobert Mustacchi 			.itad_nrules = 8,
1255*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
1256*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
1257*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x100000000ULL,
1258*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 1,
1259*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 4,
1260*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
1261*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
1262*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
1263*eb00b1c8SRobert Mustacchi 				.itr_targets = { 0, 0, 0, 0 }
1264*eb00b1c8SRobert Mustacchi 			}
1265*eb00b1c8SRobert Mustacchi 		},
1266*eb00b1c8SRobert Mustacchi 		.isock_tad[1] = {
1267*eb00b1c8SRobert Mustacchi 			.itad_flags = 0,
1268*eb00b1c8SRobert Mustacchi 			.itad_nrules = 8,
1269*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
1270*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
1271*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x100000000ULL,
1272*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 1,
1273*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 4,
1274*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
1275*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
1276*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
1277*eb00b1c8SRobert Mustacchi 				.itr_targets = { 0, 0, 0, 0 }
1278*eb00b1c8SRobert Mustacchi 			}
1279*eb00b1c8SRobert Mustacchi 		},
1280*eb00b1c8SRobert Mustacchi 		.isock_nimc = 2,
1281*eb00b1c8SRobert Mustacchi 		.isock_imcs[0] = {
1282*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 2,
1283*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR4,
1284*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
1285*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
1286*eb00b1c8SRobert Mustacchi 			.icn_closed = B_FALSE,
1287*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
1288*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
1289*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
1290*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
1291*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
1292*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
1293*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
1294*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
1295*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
1296*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
1297*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
1298*eb00b1c8SRobert Mustacchi 				},
1299*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
1300*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1301*eb00b1c8SRobert Mustacchi 				    0, 0 },
1302*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
1303*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
1304*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
1305*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
1306*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
1307*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
1308*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
1309*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
1310*eb00b1c8SRobert Mustacchi 				}
1311*eb00b1c8SRobert Mustacchi 			},
1312*eb00b1c8SRobert Mustacchi 			.icn_channels[1] = {
1313*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
1314*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
1315*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
1316*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
1317*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
1318*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
1319*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
1320*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
1321*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
1322*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
1323*eb00b1c8SRobert Mustacchi 				},
1324*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
1325*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1326*eb00b1c8SRobert Mustacchi 				    0, 0 },
1327*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
1328*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
1329*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
1330*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
1331*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
1332*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
1333*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
1334*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
1335*eb00b1c8SRobert Mustacchi 				}
1336*eb00b1c8SRobert Mustacchi 			}
1337*eb00b1c8SRobert Mustacchi 		},
1338*eb00b1c8SRobert Mustacchi 		.isock_imcs[1] = {
1339*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 2,
1340*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR4,
1341*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
1342*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
1343*eb00b1c8SRobert Mustacchi 			.icn_closed = B_FALSE,
1344*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
1345*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
1346*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
1347*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
1348*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
1349*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
1350*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
1351*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
1352*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
1353*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
1354*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
1355*eb00b1c8SRobert Mustacchi 				},
1356*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
1357*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1358*eb00b1c8SRobert Mustacchi 				    0, 0 },
1359*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
1360*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
1361*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
1362*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
1363*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
1364*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
1365*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
1366*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
1367*eb00b1c8SRobert Mustacchi 				}
1368*eb00b1c8SRobert Mustacchi 			},
1369*eb00b1c8SRobert Mustacchi 			.icn_channels[1] = {
1370*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
1371*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
1372*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
1373*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
1374*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
1375*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
1376*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
1377*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
1378*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
1379*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
1380*eb00b1c8SRobert Mustacchi 				},
1381*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
1382*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1383*eb00b1c8SRobert Mustacchi 				    0, 0 },
1384*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
1385*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
1386*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
1387*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
1388*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
1389*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
1390*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
1391*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
1392*eb00b1c8SRobert Mustacchi 				}
1393*eb00b1c8SRobert Mustacchi 			}
1394*eb00b1c8SRobert Mustacchi 		}
1395*eb00b1c8SRobert Mustacchi 	}
1396*eb00b1c8SRobert Mustacchi };
1397*eb00b1c8SRobert Mustacchi 
1398*eb00b1c8SRobert Mustacchi /*
1399*eb00b1c8SRobert Mustacchi  * A variant on 1imc_tad_1s_4cw that uses Skylake mod3 rules to change how the
1400*eb00b1c8SRobert Mustacchi  * target channel is determined. While we have six channels here, technically
1401*eb00b1c8SRobert Mustacchi  * this configuration has wasted memory. This is on purpose to simplify the
1402*eb00b1c8SRobert Mustacchi  * rules below.
1403*eb00b1c8SRobert Mustacchi  */
1404*eb00b1c8SRobert Mustacchi static const imc_t imc_tad_skx_mod3_45t6 = {
1405*eb00b1c8SRobert Mustacchi 	.imc_gen = IMC_GEN_SKYLAKE,
1406*eb00b1c8SRobert Mustacchi 	.imc_nsockets = 1,
1407*eb00b1c8SRobert Mustacchi 	.imc_sockets[0] = {
1408*eb00b1c8SRobert Mustacchi 		.isock_nodeid = 0,
1409*eb00b1c8SRobert Mustacchi 		.isock_valid = IMC_SOCKET_V_VALID,
1410*eb00b1c8SRobert Mustacchi 		.isock_sad = {
1411*eb00b1c8SRobert Mustacchi 			.isad_flags = 0,
1412*eb00b1c8SRobert Mustacchi 			.isad_valid = IMC_SAD_V_VALID,
1413*eb00b1c8SRobert Mustacchi 			.isad_tolm = 0x100000000ULL,
1414*eb00b1c8SRobert Mustacchi 			.isad_tohm = 0,
1415*eb00b1c8SRobert Mustacchi 			.isad_nrules = 24,
1416*eb00b1c8SRobert Mustacchi 			.isad_rules[0] = {
1417*eb00b1c8SRobert Mustacchi 				.isr_enable = B_TRUE,
1418*eb00b1c8SRobert Mustacchi 				.isr_limit = 0x100000000ULL,
1419*eb00b1c8SRobert Mustacchi 				.isr_imode = IMC_SAD_IMODE_8t6,
1420*eb00b1c8SRobert Mustacchi 				.isr_need_mod3 = B_TRUE,
1421*eb00b1c8SRobert Mustacchi 				.isr_mod_mode = IMC_SAD_MOD_MODE_45t6,
1422*eb00b1c8SRobert Mustacchi 				.isr_mod_type = IMC_SAD_MOD_TYPE_MOD3,
1423*eb00b1c8SRobert Mustacchi 				.isr_ntargets = IMC_MAX_SAD_INTERLEAVE,
1424*eb00b1c8SRobert Mustacchi 				.isr_targets = { 8, 9, 0xa, 0xb, 8, 9, 0xa,
1425*eb00b1c8SRobert Mustacchi 				    0xb }
1426*eb00b1c8SRobert Mustacchi 			},
1427*eb00b1c8SRobert Mustacchi 			.isad_mcroute = {
1428*eb00b1c8SRobert Mustacchi 				.ismc_nroutes = 6,
1429*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[0] = { 0, 0 },
1430*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[1] = { 0, 1 },
1431*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[2] = { 0, 2 },
1432*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[3] = { 1, 2 },
1433*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[4] = { 1, 1 },
1434*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[5] = { 1, 0 }
1435*eb00b1c8SRobert Mustacchi 			}
1436*eb00b1c8SRobert Mustacchi 		},
1437*eb00b1c8SRobert Mustacchi 		.isock_ntad = 2,
1438*eb00b1c8SRobert Mustacchi 		.isock_tad[0] = {
1439*eb00b1c8SRobert Mustacchi 			.itad_flags = 0,
1440*eb00b1c8SRobert Mustacchi 			.itad_nrules = 8,
1441*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
1442*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
1443*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x100000000ULL,
1444*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 1,
1445*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 4,
1446*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
1447*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
1448*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
1449*eb00b1c8SRobert Mustacchi 				.itr_targets = { 0, 0, 0, 0 }
1450*eb00b1c8SRobert Mustacchi 			}
1451*eb00b1c8SRobert Mustacchi 		},
1452*eb00b1c8SRobert Mustacchi 		.isock_tad[1] = {
1453*eb00b1c8SRobert Mustacchi 			.itad_flags = 0,
1454*eb00b1c8SRobert Mustacchi 			.itad_nrules = 8,
1455*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
1456*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
1457*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x100000000ULL,
1458*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 1,
1459*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 4,
1460*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
1461*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
1462*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
1463*eb00b1c8SRobert Mustacchi 				.itr_targets = { 0, 0, 0, 0 }
1464*eb00b1c8SRobert Mustacchi 			}
1465*eb00b1c8SRobert Mustacchi 		},
1466*eb00b1c8SRobert Mustacchi 		.isock_nimc = 2,
1467*eb00b1c8SRobert Mustacchi 		.isock_imcs[0] = {
1468*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 3,
1469*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR4,
1470*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
1471*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
1472*eb00b1c8SRobert Mustacchi 			.icn_closed = B_FALSE,
1473*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
1474*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
1475*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
1476*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
1477*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
1478*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
1479*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
1480*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
1481*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
1482*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
1483*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
1484*eb00b1c8SRobert Mustacchi 				},
1485*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
1486*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1487*eb00b1c8SRobert Mustacchi 				    0, 0 },
1488*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
1489*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
1490*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
1491*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
1492*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
1493*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
1494*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
1495*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
1496*eb00b1c8SRobert Mustacchi 				}
1497*eb00b1c8SRobert Mustacchi 			},
1498*eb00b1c8SRobert Mustacchi 			.icn_channels[1] = {
1499*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
1500*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
1501*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
1502*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
1503*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
1504*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
1505*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
1506*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
1507*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
1508*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
1509*eb00b1c8SRobert Mustacchi 				},
1510*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
1511*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1512*eb00b1c8SRobert Mustacchi 				    0, 0 },
1513*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
1514*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
1515*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
1516*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
1517*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
1518*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
1519*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
1520*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
1521*eb00b1c8SRobert Mustacchi 				}
1522*eb00b1c8SRobert Mustacchi 			},
1523*eb00b1c8SRobert Mustacchi 			.icn_channels[2] = {
1524*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
1525*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
1526*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
1527*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
1528*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
1529*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
1530*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
1531*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
1532*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
1533*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
1534*eb00b1c8SRobert Mustacchi 				},
1535*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
1536*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1537*eb00b1c8SRobert Mustacchi 				    0, 0 },
1538*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
1539*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
1540*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
1541*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
1542*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
1543*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
1544*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
1545*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
1546*eb00b1c8SRobert Mustacchi 				}
1547*eb00b1c8SRobert Mustacchi 			}
1548*eb00b1c8SRobert Mustacchi 		},
1549*eb00b1c8SRobert Mustacchi 		.isock_imcs[1] = {
1550*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 3,
1551*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR4,
1552*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
1553*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
1554*eb00b1c8SRobert Mustacchi 			.icn_closed = B_FALSE,
1555*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
1556*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
1557*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
1558*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
1559*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
1560*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
1561*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
1562*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
1563*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
1564*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
1565*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
1566*eb00b1c8SRobert Mustacchi 				},
1567*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
1568*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1569*eb00b1c8SRobert Mustacchi 				    0, 0 },
1570*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
1571*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
1572*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
1573*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
1574*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
1575*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
1576*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
1577*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
1578*eb00b1c8SRobert Mustacchi 				}
1579*eb00b1c8SRobert Mustacchi 			},
1580*eb00b1c8SRobert Mustacchi 			.icn_channels[1] = {
1581*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
1582*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
1583*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
1584*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
1585*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
1586*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
1587*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
1588*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
1589*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
1590*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
1591*eb00b1c8SRobert Mustacchi 				},
1592*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
1593*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1594*eb00b1c8SRobert Mustacchi 				    0, 0 },
1595*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
1596*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
1597*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
1598*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
1599*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
1600*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
1601*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
1602*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
1603*eb00b1c8SRobert Mustacchi 				}
1604*eb00b1c8SRobert Mustacchi 			},
1605*eb00b1c8SRobert Mustacchi 			.icn_channels[2] = {
1606*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
1607*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
1608*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
1609*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
1610*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
1611*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
1612*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
1613*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
1614*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
1615*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
1616*eb00b1c8SRobert Mustacchi 				},
1617*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
1618*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1619*eb00b1c8SRobert Mustacchi 				    0, 0 },
1620*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
1621*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
1622*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
1623*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
1624*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
1625*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
1626*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
1627*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
1628*eb00b1c8SRobert Mustacchi 				}
1629*eb00b1c8SRobert Mustacchi 			}
1630*eb00b1c8SRobert Mustacchi 		}
1631*eb00b1c8SRobert Mustacchi 	}
1632*eb00b1c8SRobert Mustacchi };
1633*eb00b1c8SRobert Mustacchi 
1634*eb00b1c8SRobert Mustacchi /*
1635*eb00b1c8SRobert Mustacchi  * A variant on imc_tad_skx_mod3_45t6, but here we test the 45t8 mod variant.
1636*eb00b1c8SRobert Mustacchi  */
1637*eb00b1c8SRobert Mustacchi static const imc_t imc_tad_skx_mod3_45t8 = {
1638*eb00b1c8SRobert Mustacchi 	.imc_gen = IMC_GEN_SKYLAKE,
1639*eb00b1c8SRobert Mustacchi 	.imc_nsockets = 1,
1640*eb00b1c8SRobert Mustacchi 	.imc_sockets[0] = {
1641*eb00b1c8SRobert Mustacchi 		.isock_nodeid = 0,
1642*eb00b1c8SRobert Mustacchi 		.isock_valid = IMC_SOCKET_V_VALID,
1643*eb00b1c8SRobert Mustacchi 		.isock_sad = {
1644*eb00b1c8SRobert Mustacchi 			.isad_flags = 0,
1645*eb00b1c8SRobert Mustacchi 			.isad_valid = IMC_SAD_V_VALID,
1646*eb00b1c8SRobert Mustacchi 			.isad_tolm = 0x100000000ULL,
1647*eb00b1c8SRobert Mustacchi 			.isad_tohm = 0,
1648*eb00b1c8SRobert Mustacchi 			.isad_nrules = 24,
1649*eb00b1c8SRobert Mustacchi 			.isad_rules[0] = {
1650*eb00b1c8SRobert Mustacchi 				.isr_enable = B_TRUE,
1651*eb00b1c8SRobert Mustacchi 				.isr_limit = 0x100000000ULL,
1652*eb00b1c8SRobert Mustacchi 				.isr_imode = IMC_SAD_IMODE_8t6,
1653*eb00b1c8SRobert Mustacchi 				.isr_need_mod3 = B_TRUE,
1654*eb00b1c8SRobert Mustacchi 				.isr_mod_mode = IMC_SAD_MOD_MODE_45t8,
1655*eb00b1c8SRobert Mustacchi 				.isr_mod_type = IMC_SAD_MOD_TYPE_MOD3,
1656*eb00b1c8SRobert Mustacchi 				.isr_ntargets = IMC_MAX_SAD_INTERLEAVE,
1657*eb00b1c8SRobert Mustacchi 				.isr_targets = { 8, 9, 0xa, 0xb, 8, 9, 0xa,
1658*eb00b1c8SRobert Mustacchi 				    0xb }
1659*eb00b1c8SRobert Mustacchi 			},
1660*eb00b1c8SRobert Mustacchi 			.isad_mcroute = {
1661*eb00b1c8SRobert Mustacchi 				.ismc_nroutes = 6,
1662*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[0] = { 0, 0 },
1663*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[1] = { 0, 1 },
1664*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[2] = { 0, 2 },
1665*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[3] = { 1, 2 },
1666*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[4] = { 1, 1 },
1667*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[5] = { 1, 0 }
1668*eb00b1c8SRobert Mustacchi 			}
1669*eb00b1c8SRobert Mustacchi 		},
1670*eb00b1c8SRobert Mustacchi 		.isock_ntad = 2,
1671*eb00b1c8SRobert Mustacchi 		.isock_tad[0] = {
1672*eb00b1c8SRobert Mustacchi 			.itad_flags = 0,
1673*eb00b1c8SRobert Mustacchi 			.itad_nrules = 8,
1674*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
1675*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
1676*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x100000000ULL,
1677*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 1,
1678*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 4,
1679*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
1680*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
1681*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
1682*eb00b1c8SRobert Mustacchi 				.itr_targets = { 0, 0, 0, 0 }
1683*eb00b1c8SRobert Mustacchi 			}
1684*eb00b1c8SRobert Mustacchi 		},
1685*eb00b1c8SRobert Mustacchi 		.isock_tad[1] = {
1686*eb00b1c8SRobert Mustacchi 			.itad_flags = 0,
1687*eb00b1c8SRobert Mustacchi 			.itad_nrules = 8,
1688*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
1689*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
1690*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x100000000ULL,
1691*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 1,
1692*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 4,
1693*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
1694*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
1695*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
1696*eb00b1c8SRobert Mustacchi 				.itr_targets = { 0, 0, 0, 0 }
1697*eb00b1c8SRobert Mustacchi 			}
1698*eb00b1c8SRobert Mustacchi 		},
1699*eb00b1c8SRobert Mustacchi 		.isock_nimc = 2,
1700*eb00b1c8SRobert Mustacchi 		.isock_imcs[0] = {
1701*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 3,
1702*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR4,
1703*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
1704*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
1705*eb00b1c8SRobert Mustacchi 			.icn_closed = B_FALSE,
1706*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
1707*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
1708*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
1709*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
1710*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
1711*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
1712*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
1713*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
1714*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
1715*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
1716*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
1717*eb00b1c8SRobert Mustacchi 				},
1718*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
1719*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1720*eb00b1c8SRobert Mustacchi 				    0, 0 },
1721*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
1722*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
1723*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
1724*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
1725*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
1726*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
1727*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
1728*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
1729*eb00b1c8SRobert Mustacchi 				}
1730*eb00b1c8SRobert Mustacchi 			},
1731*eb00b1c8SRobert Mustacchi 			.icn_channels[1] = {
1732*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
1733*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
1734*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
1735*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
1736*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
1737*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
1738*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
1739*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
1740*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
1741*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
1742*eb00b1c8SRobert Mustacchi 				},
1743*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
1744*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1745*eb00b1c8SRobert Mustacchi 				    0, 0 },
1746*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
1747*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
1748*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
1749*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
1750*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
1751*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
1752*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
1753*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
1754*eb00b1c8SRobert Mustacchi 				}
1755*eb00b1c8SRobert Mustacchi 			},
1756*eb00b1c8SRobert Mustacchi 			.icn_channels[2] = {
1757*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
1758*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
1759*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
1760*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
1761*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
1762*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
1763*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
1764*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
1765*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
1766*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
1767*eb00b1c8SRobert Mustacchi 				},
1768*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
1769*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1770*eb00b1c8SRobert Mustacchi 				    0, 0 },
1771*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
1772*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
1773*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
1774*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
1775*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
1776*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
1777*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
1778*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
1779*eb00b1c8SRobert Mustacchi 				}
1780*eb00b1c8SRobert Mustacchi 			}
1781*eb00b1c8SRobert Mustacchi 		},
1782*eb00b1c8SRobert Mustacchi 		.isock_imcs[1] = {
1783*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 3,
1784*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR4,
1785*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
1786*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
1787*eb00b1c8SRobert Mustacchi 			.icn_closed = B_FALSE,
1788*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
1789*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
1790*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
1791*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
1792*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
1793*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
1794*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
1795*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
1796*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
1797*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
1798*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
1799*eb00b1c8SRobert Mustacchi 				},
1800*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
1801*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1802*eb00b1c8SRobert Mustacchi 				    0, 0 },
1803*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
1804*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
1805*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
1806*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
1807*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
1808*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
1809*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
1810*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
1811*eb00b1c8SRobert Mustacchi 				}
1812*eb00b1c8SRobert Mustacchi 			},
1813*eb00b1c8SRobert Mustacchi 			.icn_channels[1] = {
1814*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
1815*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
1816*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
1817*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
1818*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
1819*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
1820*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
1821*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
1822*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
1823*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
1824*eb00b1c8SRobert Mustacchi 				},
1825*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
1826*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1827*eb00b1c8SRobert Mustacchi 				    0, 0 },
1828*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
1829*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
1830*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
1831*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
1832*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
1833*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
1834*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
1835*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
1836*eb00b1c8SRobert Mustacchi 				}
1837*eb00b1c8SRobert Mustacchi 			},
1838*eb00b1c8SRobert Mustacchi 			.icn_channels[2] = {
1839*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
1840*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
1841*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
1842*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
1843*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
1844*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
1845*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
1846*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
1847*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
1848*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
1849*eb00b1c8SRobert Mustacchi 				},
1850*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
1851*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1852*eb00b1c8SRobert Mustacchi 				    0, 0 },
1853*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
1854*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
1855*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
1856*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
1857*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
1858*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
1859*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
1860*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
1861*eb00b1c8SRobert Mustacchi 				}
1862*eb00b1c8SRobert Mustacchi 			}
1863*eb00b1c8SRobert Mustacchi 		}
1864*eb00b1c8SRobert Mustacchi 	}
1865*eb00b1c8SRobert Mustacchi };
1866*eb00b1c8SRobert Mustacchi 
1867*eb00b1c8SRobert Mustacchi /*
1868*eb00b1c8SRobert Mustacchi  * A variant on imc_tad_skx_mod3_45t6, but here we test the 45t12 mod variant.
1869*eb00b1c8SRobert Mustacchi  */
1870*eb00b1c8SRobert Mustacchi static const imc_t imc_tad_skx_mod3_45t12 = {
1871*eb00b1c8SRobert Mustacchi 	.imc_gen = IMC_GEN_SKYLAKE,
1872*eb00b1c8SRobert Mustacchi 	.imc_nsockets = 1,
1873*eb00b1c8SRobert Mustacchi 	.imc_sockets[0] = {
1874*eb00b1c8SRobert Mustacchi 		.isock_nodeid = 0,
1875*eb00b1c8SRobert Mustacchi 		.isock_valid = IMC_SOCKET_V_VALID,
1876*eb00b1c8SRobert Mustacchi 		.isock_sad = {
1877*eb00b1c8SRobert Mustacchi 			.isad_flags = 0,
1878*eb00b1c8SRobert Mustacchi 			.isad_valid = IMC_SAD_V_VALID,
1879*eb00b1c8SRobert Mustacchi 			.isad_tolm = 0x100000000ULL,
1880*eb00b1c8SRobert Mustacchi 			.isad_tohm = 0,
1881*eb00b1c8SRobert Mustacchi 			.isad_nrules = 24,
1882*eb00b1c8SRobert Mustacchi 			.isad_rules[0] = {
1883*eb00b1c8SRobert Mustacchi 				.isr_enable = B_TRUE,
1884*eb00b1c8SRobert Mustacchi 				.isr_limit = 0x100000000ULL,
1885*eb00b1c8SRobert Mustacchi 				.isr_imode = IMC_SAD_IMODE_8t6,
1886*eb00b1c8SRobert Mustacchi 				.isr_need_mod3 = B_TRUE,
1887*eb00b1c8SRobert Mustacchi 				.isr_mod_mode = IMC_SAD_MOD_MODE_45t12,
1888*eb00b1c8SRobert Mustacchi 				.isr_mod_type = IMC_SAD_MOD_TYPE_MOD3,
1889*eb00b1c8SRobert Mustacchi 				.isr_ntargets = IMC_MAX_SAD_INTERLEAVE,
1890*eb00b1c8SRobert Mustacchi 				.isr_targets = { 8, 9, 0xa, 0xb, 8, 9, 0xa,
1891*eb00b1c8SRobert Mustacchi 				    0xb }
1892*eb00b1c8SRobert Mustacchi 			},
1893*eb00b1c8SRobert Mustacchi 			.isad_mcroute = {
1894*eb00b1c8SRobert Mustacchi 				.ismc_nroutes = 6,
1895*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[0] = { 0, 0 },
1896*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[1] = { 0, 1 },
1897*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[2] = { 0, 2 },
1898*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[3] = { 1, 2 },
1899*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[4] = { 1, 1 },
1900*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[5] = { 1, 0 }
1901*eb00b1c8SRobert Mustacchi 			}
1902*eb00b1c8SRobert Mustacchi 		},
1903*eb00b1c8SRobert Mustacchi 		.isock_ntad = 2,
1904*eb00b1c8SRobert Mustacchi 		.isock_tad[0] = {
1905*eb00b1c8SRobert Mustacchi 			.itad_flags = 0,
1906*eb00b1c8SRobert Mustacchi 			.itad_nrules = 8,
1907*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
1908*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
1909*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x100000000ULL,
1910*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 1,
1911*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 4,
1912*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
1913*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
1914*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
1915*eb00b1c8SRobert Mustacchi 				.itr_targets = { 0, 0, 0, 0 }
1916*eb00b1c8SRobert Mustacchi 			}
1917*eb00b1c8SRobert Mustacchi 		},
1918*eb00b1c8SRobert Mustacchi 		.isock_tad[1] = {
1919*eb00b1c8SRobert Mustacchi 			.itad_flags = 0,
1920*eb00b1c8SRobert Mustacchi 			.itad_nrules = 8,
1921*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
1922*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
1923*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x100000000ULL,
1924*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 1,
1925*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 4,
1926*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
1927*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
1928*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
1929*eb00b1c8SRobert Mustacchi 				.itr_targets = { 0, 0, 0, 0 }
1930*eb00b1c8SRobert Mustacchi 			}
1931*eb00b1c8SRobert Mustacchi 		},
1932*eb00b1c8SRobert Mustacchi 		.isock_nimc = 2,
1933*eb00b1c8SRobert Mustacchi 		.isock_imcs[0] = {
1934*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 3,
1935*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR4,
1936*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
1937*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
1938*eb00b1c8SRobert Mustacchi 			.icn_closed = B_FALSE,
1939*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
1940*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
1941*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
1942*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
1943*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
1944*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
1945*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
1946*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
1947*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
1948*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
1949*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
1950*eb00b1c8SRobert Mustacchi 				},
1951*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
1952*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1953*eb00b1c8SRobert Mustacchi 				    0, 0 },
1954*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
1955*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
1956*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
1957*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
1958*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
1959*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
1960*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
1961*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
1962*eb00b1c8SRobert Mustacchi 				}
1963*eb00b1c8SRobert Mustacchi 			},
1964*eb00b1c8SRobert Mustacchi 			.icn_channels[1] = {
1965*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
1966*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
1967*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
1968*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
1969*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
1970*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
1971*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
1972*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
1973*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
1974*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
1975*eb00b1c8SRobert Mustacchi 				},
1976*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
1977*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1978*eb00b1c8SRobert Mustacchi 				    0, 0 },
1979*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
1980*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
1981*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
1982*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
1983*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
1984*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
1985*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
1986*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
1987*eb00b1c8SRobert Mustacchi 				}
1988*eb00b1c8SRobert Mustacchi 			},
1989*eb00b1c8SRobert Mustacchi 			.icn_channels[2] = {
1990*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
1991*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
1992*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
1993*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
1994*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
1995*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
1996*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
1997*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
1998*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
1999*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
2000*eb00b1c8SRobert Mustacchi 				},
2001*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
2002*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
2003*eb00b1c8SRobert Mustacchi 				    0, 0 },
2004*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
2005*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
2006*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
2007*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
2008*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
2009*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
2010*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
2011*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
2012*eb00b1c8SRobert Mustacchi 				}
2013*eb00b1c8SRobert Mustacchi 			}
2014*eb00b1c8SRobert Mustacchi 		},
2015*eb00b1c8SRobert Mustacchi 		.isock_imcs[1] = {
2016*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 3,
2017*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR4,
2018*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
2019*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
2020*eb00b1c8SRobert Mustacchi 			.icn_closed = B_FALSE,
2021*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
2022*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
2023*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
2024*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
2025*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
2026*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
2027*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
2028*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
2029*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
2030*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
2031*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
2032*eb00b1c8SRobert Mustacchi 				},
2033*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
2034*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
2035*eb00b1c8SRobert Mustacchi 				    0, 0 },
2036*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
2037*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
2038*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
2039*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
2040*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
2041*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
2042*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
2043*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
2044*eb00b1c8SRobert Mustacchi 				}
2045*eb00b1c8SRobert Mustacchi 			},
2046*eb00b1c8SRobert Mustacchi 			.icn_channels[1] = {
2047*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
2048*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
2049*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
2050*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
2051*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
2052*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
2053*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
2054*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
2055*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
2056*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
2057*eb00b1c8SRobert Mustacchi 				},
2058*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
2059*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
2060*eb00b1c8SRobert Mustacchi 				    0, 0 },
2061*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
2062*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
2063*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
2064*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
2065*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
2066*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
2067*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
2068*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
2069*eb00b1c8SRobert Mustacchi 				}
2070*eb00b1c8SRobert Mustacchi 			},
2071*eb00b1c8SRobert Mustacchi 			.icn_channels[2] = {
2072*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
2073*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
2074*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
2075*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
2076*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
2077*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
2078*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
2079*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
2080*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
2081*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
2082*eb00b1c8SRobert Mustacchi 				},
2083*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
2084*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
2085*eb00b1c8SRobert Mustacchi 				    0, 0 },
2086*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
2087*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
2088*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
2089*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
2090*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
2091*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
2092*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
2093*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
2094*eb00b1c8SRobert Mustacchi 				}
2095*eb00b1c8SRobert Mustacchi 			}
2096*eb00b1c8SRobert Mustacchi 		}
2097*eb00b1c8SRobert Mustacchi 	}
2098*eb00b1c8SRobert Mustacchi };
2099*eb00b1c8SRobert Mustacchi 
2100*eb00b1c8SRobert Mustacchi /*
2101*eb00b1c8SRobert Mustacchi  * A variant on imc_tad_skx_mod3_45t12, but instead of using mod3, we use the
2102*eb00b1c8SRobert Mustacchi  * mod2 variant that favors 0/1. This menas we can only output route entries, 0,
2103*eb00b1c8SRobert Mustacchi  * 1, 2, and 3.
2104*eb00b1c8SRobert Mustacchi  */
2105*eb00b1c8SRobert Mustacchi static const imc_t imc_tad_skx_mod2_01_45t12 = {
2106*eb00b1c8SRobert Mustacchi 	.imc_gen = IMC_GEN_SKYLAKE,
2107*eb00b1c8SRobert Mustacchi 	.imc_nsockets = 1,
2108*eb00b1c8SRobert Mustacchi 	.imc_sockets[0] = {
2109*eb00b1c8SRobert Mustacchi 		.isock_nodeid = 0,
2110*eb00b1c8SRobert Mustacchi 		.isock_valid = IMC_SOCKET_V_VALID,
2111*eb00b1c8SRobert Mustacchi 		.isock_sad = {
2112*eb00b1c8SRobert Mustacchi 			.isad_flags = 0,
2113*eb00b1c8SRobert Mustacchi 			.isad_valid = IMC_SAD_V_VALID,
2114*eb00b1c8SRobert Mustacchi 			.isad_tolm = 0x100000000ULL,
2115*eb00b1c8SRobert Mustacchi 			.isad_tohm = 0,
2116*eb00b1c8SRobert Mustacchi 			.isad_nrules = 24,
2117*eb00b1c8SRobert Mustacchi 			.isad_rules[0] = {
2118*eb00b1c8SRobert Mustacchi 				.isr_enable = B_TRUE,
2119*eb00b1c8SRobert Mustacchi 				.isr_limit = 0x100000000ULL,
2120*eb00b1c8SRobert Mustacchi 				.isr_imode = IMC_SAD_IMODE_8t6,
2121*eb00b1c8SRobert Mustacchi 				.isr_need_mod3 = B_TRUE,
2122*eb00b1c8SRobert Mustacchi 				.isr_mod_mode = IMC_SAD_MOD_MODE_45t12,
2123*eb00b1c8SRobert Mustacchi 				.isr_mod_type = IMC_SAD_MOD_TYPE_MOD2_01,
2124*eb00b1c8SRobert Mustacchi 				.isr_ntargets = IMC_MAX_SAD_INTERLEAVE,
2125*eb00b1c8SRobert Mustacchi 				.isr_targets = { 8, 9, 0xa, 0xb, 8, 9, 0xa,
2126*eb00b1c8SRobert Mustacchi 				    0xb }
2127*eb00b1c8SRobert Mustacchi 			},
2128*eb00b1c8SRobert Mustacchi 			.isad_mcroute = {
2129*eb00b1c8SRobert Mustacchi 				.ismc_nroutes = 6,
2130*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[0] = { 0, 0 },
2131*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[1] = { 0, 1 },
2132*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[2] = { 0, 2 },
2133*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[3] = { 1, 2 },
2134*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[4] = { 1, 1 },
2135*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[5] = { 1, 0 }
2136*eb00b1c8SRobert Mustacchi 			}
2137*eb00b1c8SRobert Mustacchi 		},
2138*eb00b1c8SRobert Mustacchi 		.isock_ntad = 2,
2139*eb00b1c8SRobert Mustacchi 		.isock_tad[0] = {
2140*eb00b1c8SRobert Mustacchi 			.itad_flags = 0,
2141*eb00b1c8SRobert Mustacchi 			.itad_nrules = 8,
2142*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
2143*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
2144*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x100000000ULL,
2145*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 1,
2146*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 4,
2147*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
2148*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
2149*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
2150*eb00b1c8SRobert Mustacchi 				.itr_targets = { 0, 0, 0, 0 }
2151*eb00b1c8SRobert Mustacchi 			}
2152*eb00b1c8SRobert Mustacchi 		},
2153*eb00b1c8SRobert Mustacchi 		.isock_tad[1] = {
2154*eb00b1c8SRobert Mustacchi 			.itad_flags = 0,
2155*eb00b1c8SRobert Mustacchi 			.itad_nrules = 8,
2156*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
2157*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
2158*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x100000000ULL,
2159*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 1,
2160*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 4,
2161*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
2162*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
2163*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
2164*eb00b1c8SRobert Mustacchi 				.itr_targets = { 0, 0, 0, 0 }
2165*eb00b1c8SRobert Mustacchi 			}
2166*eb00b1c8SRobert Mustacchi 		},
2167*eb00b1c8SRobert Mustacchi 		.isock_nimc = 2,
2168*eb00b1c8SRobert Mustacchi 		.isock_imcs[0] = {
2169*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 3,
2170*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR4,
2171*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
2172*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
2173*eb00b1c8SRobert Mustacchi 			.icn_closed = B_FALSE,
2174*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
2175*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
2176*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
2177*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
2178*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
2179*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
2180*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
2181*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
2182*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
2183*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
2184*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
2185*eb00b1c8SRobert Mustacchi 				},
2186*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
2187*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
2188*eb00b1c8SRobert Mustacchi 				    0, 0 },
2189*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
2190*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
2191*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
2192*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
2193*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
2194*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
2195*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
2196*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
2197*eb00b1c8SRobert Mustacchi 				}
2198*eb00b1c8SRobert Mustacchi 			},
2199*eb00b1c8SRobert Mustacchi 			.icn_channels[1] = {
2200*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
2201*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
2202*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
2203*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
2204*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
2205*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
2206*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
2207*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
2208*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
2209*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
2210*eb00b1c8SRobert Mustacchi 				},
2211*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
2212*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
2213*eb00b1c8SRobert Mustacchi 				    0, 0 },
2214*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
2215*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
2216*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
2217*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
2218*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
2219*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
2220*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
2221*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
2222*eb00b1c8SRobert Mustacchi 				}
2223*eb00b1c8SRobert Mustacchi 			},
2224*eb00b1c8SRobert Mustacchi 			.icn_channels[2] = {
2225*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
2226*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
2227*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
2228*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
2229*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
2230*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
2231*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
2232*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
2233*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
2234*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
2235*eb00b1c8SRobert Mustacchi 				},
2236*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
2237*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
2238*eb00b1c8SRobert Mustacchi 				    0, 0 },
2239*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
2240*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
2241*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
2242*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
2243*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
2244*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
2245*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
2246*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
2247*eb00b1c8SRobert Mustacchi 				}
2248*eb00b1c8SRobert Mustacchi 			}
2249*eb00b1c8SRobert Mustacchi 		},
2250*eb00b1c8SRobert Mustacchi 		.isock_imcs[1] = {
2251*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 3,
2252*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR4,
2253*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
2254*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
2255*eb00b1c8SRobert Mustacchi 			.icn_closed = B_FALSE,
2256*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
2257*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
2258*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
2259*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
2260*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
2261*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
2262*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
2263*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
2264*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
2265*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
2266*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
2267*eb00b1c8SRobert Mustacchi 				},
2268*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
2269*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
2270*eb00b1c8SRobert Mustacchi 				    0, 0 },
2271*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
2272*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
2273*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
2274*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
2275*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
2276*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
2277*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
2278*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
2279*eb00b1c8SRobert Mustacchi 				}
2280*eb00b1c8SRobert Mustacchi 			},
2281*eb00b1c8SRobert Mustacchi 			.icn_channels[1] = {
2282*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
2283*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
2284*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
2285*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
2286*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
2287*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
2288*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
2289*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
2290*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
2291*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
2292*eb00b1c8SRobert Mustacchi 				},
2293*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
2294*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
2295*eb00b1c8SRobert Mustacchi 				    0, 0 },
2296*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
2297*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
2298*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
2299*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
2300*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
2301*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
2302*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
2303*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
2304*eb00b1c8SRobert Mustacchi 				}
2305*eb00b1c8SRobert Mustacchi 			},
2306*eb00b1c8SRobert Mustacchi 			.icn_channels[2] = {
2307*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
2308*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
2309*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
2310*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
2311*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
2312*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
2313*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
2314*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
2315*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
2316*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
2317*eb00b1c8SRobert Mustacchi 				},
2318*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
2319*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
2320*eb00b1c8SRobert Mustacchi 				    0, 0 },
2321*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
2322*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
2323*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
2324*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
2325*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
2326*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
2327*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
2328*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
2329*eb00b1c8SRobert Mustacchi 				}
2330*eb00b1c8SRobert Mustacchi 			}
2331*eb00b1c8SRobert Mustacchi 		}
2332*eb00b1c8SRobert Mustacchi 	}
2333*eb00b1c8SRobert Mustacchi };
2334*eb00b1c8SRobert Mustacchi 
2335*eb00b1c8SRobert Mustacchi /*
2336*eb00b1c8SRobert Mustacchi  * A variant on imc_tad_skx_mod3_45t12, but instead of using mod3, we use the
2337*eb00b1c8SRobert Mustacchi  * mod2 variant that favors 1/2. This menas we can only output route entries, 2,
2338*eb00b1c8SRobert Mustacchi  * 3, 4, and 5.
2339*eb00b1c8SRobert Mustacchi  */
2340*eb00b1c8SRobert Mustacchi static const imc_t imc_tad_skx_mod2_12_45t12 = {
2341*eb00b1c8SRobert Mustacchi 	.imc_gen = IMC_GEN_SKYLAKE,
2342*eb00b1c8SRobert Mustacchi 	.imc_nsockets = 1,
2343*eb00b1c8SRobert Mustacchi 	.imc_sockets[0] = {
2344*eb00b1c8SRobert Mustacchi 		.isock_nodeid = 0,
2345*eb00b1c8SRobert Mustacchi 		.isock_valid = IMC_SOCKET_V_VALID,
2346*eb00b1c8SRobert Mustacchi 		.isock_sad = {
2347*eb00b1c8SRobert Mustacchi 			.isad_flags = 0,
2348*eb00b1c8SRobert Mustacchi 			.isad_valid = IMC_SAD_V_VALID,
2349*eb00b1c8SRobert Mustacchi 			.isad_tolm = 0x100000000ULL,
2350*eb00b1c8SRobert Mustacchi 			.isad_tohm = 0,
2351*eb00b1c8SRobert Mustacchi 			.isad_nrules = 24,
2352*eb00b1c8SRobert Mustacchi 			.isad_rules[0] = {
2353*eb00b1c8SRobert Mustacchi 				.isr_enable = B_TRUE,
2354*eb00b1c8SRobert Mustacchi 				.isr_limit = 0x100000000ULL,
2355*eb00b1c8SRobert Mustacchi 				.isr_imode = IMC_SAD_IMODE_8t6,
2356*eb00b1c8SRobert Mustacchi 				.isr_need_mod3 = B_TRUE,
2357*eb00b1c8SRobert Mustacchi 				.isr_mod_mode = IMC_SAD_MOD_MODE_45t12,
2358*eb00b1c8SRobert Mustacchi 				.isr_mod_type = IMC_SAD_MOD_TYPE_MOD2_12,
2359*eb00b1c8SRobert Mustacchi 				.isr_ntargets = IMC_MAX_SAD_INTERLEAVE,
2360*eb00b1c8SRobert Mustacchi 				.isr_targets = { 8, 9, 0xa, 0xb, 8, 9, 0xa,
2361*eb00b1c8SRobert Mustacchi 				    0xb }
2362*eb00b1c8SRobert Mustacchi 			},
2363*eb00b1c8SRobert Mustacchi 			.isad_mcroute = {
2364*eb00b1c8SRobert Mustacchi 				.ismc_nroutes = 6,
2365*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[0] = { 0, 0 },
2366*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[1] = { 0, 1 },
2367*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[2] = { 0, 2 },
2368*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[3] = { 1, 2 },
2369*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[4] = { 1, 1 },
2370*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[5] = { 1, 0 }
2371*eb00b1c8SRobert Mustacchi 			}
2372*eb00b1c8SRobert Mustacchi 		},
2373*eb00b1c8SRobert Mustacchi 		.isock_ntad = 2,
2374*eb00b1c8SRobert Mustacchi 		.isock_tad[0] = {
2375*eb00b1c8SRobert Mustacchi 			.itad_flags = 0,
2376*eb00b1c8SRobert Mustacchi 			.itad_nrules = 8,
2377*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
2378*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
2379*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x100000000ULL,
2380*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 1,
2381*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 4,
2382*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
2383*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
2384*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
2385*eb00b1c8SRobert Mustacchi 				.itr_targets = { 0, 0, 0, 0 }
2386*eb00b1c8SRobert Mustacchi 			}
2387*eb00b1c8SRobert Mustacchi 		},
2388*eb00b1c8SRobert Mustacchi 		.isock_tad[1] = {
2389*eb00b1c8SRobert Mustacchi 			.itad_flags = 0,
2390*eb00b1c8SRobert Mustacchi 			.itad_nrules = 8,
2391*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
2392*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
2393*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x100000000ULL,
2394*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 1,
2395*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 4,
2396*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
2397*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
2398*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
2399*eb00b1c8SRobert Mustacchi 				.itr_targets = { 0, 0, 0, 0 }
2400*eb00b1c8SRobert Mustacchi 			}
2401*eb00b1c8SRobert Mustacchi 		},
2402*eb00b1c8SRobert Mustacchi 		.isock_nimc = 2,
2403*eb00b1c8SRobert Mustacchi 		.isock_imcs[0] = {
2404*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 3,
2405*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR4,
2406*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
2407*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
2408*eb00b1c8SRobert Mustacchi 			.icn_closed = B_FALSE,
2409*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
2410*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
2411*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
2412*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
2413*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
2414*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
2415*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
2416*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
2417*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
2418*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
2419*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
2420*eb00b1c8SRobert Mustacchi 				},
2421*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
2422*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
2423*eb00b1c8SRobert Mustacchi 				    0, 0 },
2424*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
2425*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
2426*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
2427*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
2428*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
2429*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
2430*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
2431*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
2432*eb00b1c8SRobert Mustacchi 				}
2433*eb00b1c8SRobert Mustacchi 			},
2434*eb00b1c8SRobert Mustacchi 			.icn_channels[1] = {
2435*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
2436*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
2437*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
2438*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
2439*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
2440*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
2441*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
2442*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
2443*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
2444*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
2445*eb00b1c8SRobert Mustacchi 				},
2446*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
2447*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
2448*eb00b1c8SRobert Mustacchi 				    0, 0 },
2449*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
2450*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
2451*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
2452*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
2453*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
2454*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
2455*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
2456*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
2457*eb00b1c8SRobert Mustacchi 				}
2458*eb00b1c8SRobert Mustacchi 			},
2459*eb00b1c8SRobert Mustacchi 			.icn_channels[2] = {
2460*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
2461*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
2462*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
2463*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
2464*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
2465*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
2466*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
2467*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
2468*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
2469*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
2470*eb00b1c8SRobert Mustacchi 				},
2471*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
2472*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
2473*eb00b1c8SRobert Mustacchi 				    0, 0 },
2474*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
2475*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
2476*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
2477*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
2478*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
2479*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
2480*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
2481*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
2482*eb00b1c8SRobert Mustacchi 				}
2483*eb00b1c8SRobert Mustacchi 			}
2484*eb00b1c8SRobert Mustacchi 		},
2485*eb00b1c8SRobert Mustacchi 		.isock_imcs[1] = {
2486*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 3,
2487*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR4,
2488*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
2489*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
2490*eb00b1c8SRobert Mustacchi 			.icn_closed = B_FALSE,
2491*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
2492*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
2493*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
2494*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
2495*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
2496*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
2497*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
2498*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
2499*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
2500*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
2501*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
2502*eb00b1c8SRobert Mustacchi 				},
2503*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
2504*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
2505*eb00b1c8SRobert Mustacchi 				    0, 0 },
2506*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
2507*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
2508*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
2509*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
2510*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
2511*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
2512*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
2513*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
2514*eb00b1c8SRobert Mustacchi 				}
2515*eb00b1c8SRobert Mustacchi 			},
2516*eb00b1c8SRobert Mustacchi 			.icn_channels[1] = {
2517*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
2518*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
2519*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
2520*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
2521*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
2522*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
2523*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
2524*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
2525*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
2526*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
2527*eb00b1c8SRobert Mustacchi 				},
2528*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
2529*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
2530*eb00b1c8SRobert Mustacchi 				    0, 0 },
2531*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
2532*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
2533*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
2534*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
2535*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
2536*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
2537*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
2538*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
2539*eb00b1c8SRobert Mustacchi 				}
2540*eb00b1c8SRobert Mustacchi 			},
2541*eb00b1c8SRobert Mustacchi 			.icn_channels[2] = {
2542*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
2543*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
2544*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
2545*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
2546*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
2547*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
2548*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
2549*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
2550*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
2551*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
2552*eb00b1c8SRobert Mustacchi 				},
2553*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
2554*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
2555*eb00b1c8SRobert Mustacchi 				    0, 0 },
2556*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
2557*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
2558*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
2559*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
2560*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
2561*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
2562*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
2563*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
2564*eb00b1c8SRobert Mustacchi 				}
2565*eb00b1c8SRobert Mustacchi 			}
2566*eb00b1c8SRobert Mustacchi 		}
2567*eb00b1c8SRobert Mustacchi 	}
2568*eb00b1c8SRobert Mustacchi };
2569*eb00b1c8SRobert Mustacchi 
2570*eb00b1c8SRobert Mustacchi /*
2571*eb00b1c8SRobert Mustacchi  * A variant on imc_tad_skx_mod3_45t12, but instead of using mod3, we use the
2572*eb00b1c8SRobert Mustacchi  * mod2 variant that favors 0/2. This means we can only output route entries, 0,
2573*eb00b1c8SRobert Mustacchi  * 1, 4, and 5.
2574*eb00b1c8SRobert Mustacchi  */
2575*eb00b1c8SRobert Mustacchi static const imc_t imc_tad_skx_mod2_02_45t12 = {
2576*eb00b1c8SRobert Mustacchi 	.imc_gen = IMC_GEN_SKYLAKE,
2577*eb00b1c8SRobert Mustacchi 	.imc_nsockets = 1,
2578*eb00b1c8SRobert Mustacchi 	.imc_sockets[0] = {
2579*eb00b1c8SRobert Mustacchi 		.isock_nodeid = 0,
2580*eb00b1c8SRobert Mustacchi 		.isock_valid = IMC_SOCKET_V_VALID,
2581*eb00b1c8SRobert Mustacchi 		.isock_sad = {
2582*eb00b1c8SRobert Mustacchi 			.isad_flags = 0,
2583*eb00b1c8SRobert Mustacchi 			.isad_valid = IMC_SAD_V_VALID,
2584*eb00b1c8SRobert Mustacchi 			.isad_tolm = 0x100000000ULL,
2585*eb00b1c8SRobert Mustacchi 			.isad_tohm = 0,
2586*eb00b1c8SRobert Mustacchi 			.isad_nrules = 24,
2587*eb00b1c8SRobert Mustacchi 			.isad_rules[0] = {
2588*eb00b1c8SRobert Mustacchi 				.isr_enable = B_TRUE,
2589*eb00b1c8SRobert Mustacchi 				.isr_limit = 0x100000000ULL,
2590*eb00b1c8SRobert Mustacchi 				.isr_imode = IMC_SAD_IMODE_8t6,
2591*eb00b1c8SRobert Mustacchi 				.isr_need_mod3 = B_TRUE,
2592*eb00b1c8SRobert Mustacchi 				.isr_mod_mode = IMC_SAD_MOD_MODE_45t12,
2593*eb00b1c8SRobert Mustacchi 				.isr_mod_type = IMC_SAD_MOD_TYPE_MOD2_02,
2594*eb00b1c8SRobert Mustacchi 				.isr_ntargets = IMC_MAX_SAD_INTERLEAVE,
2595*eb00b1c8SRobert Mustacchi 				.isr_targets = { 8, 9, 0xa, 0xb, 8, 9, 0xa,
2596*eb00b1c8SRobert Mustacchi 				    0xb }
2597*eb00b1c8SRobert Mustacchi 			},
2598*eb00b1c8SRobert Mustacchi 			.isad_mcroute = {
2599*eb00b1c8SRobert Mustacchi 				.ismc_nroutes = 6,
2600*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[0] = { 0, 0 },
2601*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[1] = { 0, 1 },
2602*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[2] = { 0, 2 },
2603*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[3] = { 1, 2 },
2604*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[4] = { 1, 1 },
2605*eb00b1c8SRobert Mustacchi 				.ismc_mcroutes[5] = { 1, 0 }
2606*eb00b1c8SRobert Mustacchi 			}
2607*eb00b1c8SRobert Mustacchi 		},
2608*eb00b1c8SRobert Mustacchi 		.isock_ntad = 2,
2609*eb00b1c8SRobert Mustacchi 		.isock_tad[0] = {
2610*eb00b1c8SRobert Mustacchi 			.itad_flags = 0,
2611*eb00b1c8SRobert Mustacchi 			.itad_nrules = 8,
2612*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
2613*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
2614*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x100000000ULL,
2615*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 1,
2616*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 4,
2617*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
2618*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
2619*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
2620*eb00b1c8SRobert Mustacchi 				.itr_targets = { 0, 0, 0, 0 }
2621*eb00b1c8SRobert Mustacchi 			}
2622*eb00b1c8SRobert Mustacchi 		},
2623*eb00b1c8SRobert Mustacchi 		.isock_tad[1] = {
2624*eb00b1c8SRobert Mustacchi 			.itad_flags = 0,
2625*eb00b1c8SRobert Mustacchi 			.itad_nrules = 8,
2626*eb00b1c8SRobert Mustacchi 			.itad_rules[0] = {
2627*eb00b1c8SRobert Mustacchi 				.itr_base = 0x0,
2628*eb00b1c8SRobert Mustacchi 				.itr_limit = 0x100000000ULL,
2629*eb00b1c8SRobert Mustacchi 				.itr_sock_way = 1,
2630*eb00b1c8SRobert Mustacchi 				.itr_chan_way = 4,
2631*eb00b1c8SRobert Mustacchi 				.itr_sock_gran = IMC_TAD_GRAN_64B,
2632*eb00b1c8SRobert Mustacchi 				.itr_chan_gran = IMC_TAD_GRAN_64B,
2633*eb00b1c8SRobert Mustacchi 				.itr_ntargets = 4,
2634*eb00b1c8SRobert Mustacchi 				.itr_targets = { 0, 0, 0, 0 }
2635*eb00b1c8SRobert Mustacchi 			}
2636*eb00b1c8SRobert Mustacchi 		},
2637*eb00b1c8SRobert Mustacchi 		.isock_nimc = 2,
2638*eb00b1c8SRobert Mustacchi 		.isock_imcs[0] = {
2639*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 3,
2640*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR4,
2641*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
2642*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
2643*eb00b1c8SRobert Mustacchi 			.icn_closed = B_FALSE,
2644*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
2645*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
2646*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
2647*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
2648*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
2649*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
2650*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
2651*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
2652*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
2653*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
2654*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
2655*eb00b1c8SRobert Mustacchi 				},
2656*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
2657*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
2658*eb00b1c8SRobert Mustacchi 				    0, 0 },
2659*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
2660*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
2661*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
2662*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
2663*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
2664*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
2665*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
2666*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
2667*eb00b1c8SRobert Mustacchi 				}
2668*eb00b1c8SRobert Mustacchi 			},
2669*eb00b1c8SRobert Mustacchi 			.icn_channels[1] = {
2670*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
2671*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
2672*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
2673*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
2674*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
2675*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
2676*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
2677*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
2678*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
2679*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
2680*eb00b1c8SRobert Mustacchi 				},
2681*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
2682*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
2683*eb00b1c8SRobert Mustacchi 				    0, 0 },
2684*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
2685*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
2686*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
2687*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
2688*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
2689*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
2690*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
2691*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
2692*eb00b1c8SRobert Mustacchi 				}
2693*eb00b1c8SRobert Mustacchi 			},
2694*eb00b1c8SRobert Mustacchi 			.icn_channels[2] = {
2695*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
2696*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
2697*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
2698*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
2699*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
2700*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
2701*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
2702*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
2703*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
2704*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
2705*eb00b1c8SRobert Mustacchi 				},
2706*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
2707*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
2708*eb00b1c8SRobert Mustacchi 				    0, 0 },
2709*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
2710*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
2711*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
2712*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
2713*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
2714*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
2715*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
2716*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
2717*eb00b1c8SRobert Mustacchi 				}
2718*eb00b1c8SRobert Mustacchi 			}
2719*eb00b1c8SRobert Mustacchi 		},
2720*eb00b1c8SRobert Mustacchi 		.isock_imcs[1] = {
2721*eb00b1c8SRobert Mustacchi 			.icn_nchannels = 3,
2722*eb00b1c8SRobert Mustacchi 			.icn_dimm_type = IMC_DIMM_DDR4,
2723*eb00b1c8SRobert Mustacchi 			.icn_ecc = B_TRUE,
2724*eb00b1c8SRobert Mustacchi 			.icn_lockstep = B_FALSE,
2725*eb00b1c8SRobert Mustacchi 			.icn_closed = B_FALSE,
2726*eb00b1c8SRobert Mustacchi 			.icn_channels[0] = {
2727*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
2728*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
2729*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
2730*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
2731*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
2732*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
2733*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
2734*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
2735*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
2736*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
2737*eb00b1c8SRobert Mustacchi 				},
2738*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
2739*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
2740*eb00b1c8SRobert Mustacchi 				    0, 0 },
2741*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
2742*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
2743*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
2744*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
2745*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
2746*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
2747*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
2748*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
2749*eb00b1c8SRobert Mustacchi 				}
2750*eb00b1c8SRobert Mustacchi 			},
2751*eb00b1c8SRobert Mustacchi 			.icn_channels[1] = {
2752*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
2753*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
2754*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
2755*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
2756*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
2757*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
2758*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
2759*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
2760*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
2761*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
2762*eb00b1c8SRobert Mustacchi 				},
2763*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
2764*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
2765*eb00b1c8SRobert Mustacchi 				    0, 0 },
2766*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
2767*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
2768*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
2769*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
2770*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
2771*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
2772*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
2773*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
2774*eb00b1c8SRobert Mustacchi 				}
2775*eb00b1c8SRobert Mustacchi 			},
2776*eb00b1c8SRobert Mustacchi 			.icn_channels[2] = {
2777*eb00b1c8SRobert Mustacchi 				.ich_ndimms = 1,
2778*eb00b1c8SRobert Mustacchi 				.ich_dimms[0] = {
2779*eb00b1c8SRobert Mustacchi 					.idimm_present = B_TRUE,
2780*eb00b1c8SRobert Mustacchi 					.idimm_nbanks = 3,
2781*eb00b1c8SRobert Mustacchi 					.idimm_width = 8,
2782*eb00b1c8SRobert Mustacchi 					.idimm_density = 2,
2783*eb00b1c8SRobert Mustacchi 					.idimm_nranks = 2,
2784*eb00b1c8SRobert Mustacchi 					.idimm_nrows = 14,
2785*eb00b1c8SRobert Mustacchi 					.idimm_ncolumns = 10,
2786*eb00b1c8SRobert Mustacchi 					.idimm_size = 0x40000000
2787*eb00b1c8SRobert Mustacchi 				},
2788*eb00b1c8SRobert Mustacchi 				.ich_ntad_offsets = 12,
2789*eb00b1c8SRobert Mustacchi 				.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
2790*eb00b1c8SRobert Mustacchi 				    0, 0 },
2791*eb00b1c8SRobert Mustacchi 				.ich_nrankileaves = 4,
2792*eb00b1c8SRobert Mustacchi 				.ich_rankileaves[0] = {
2793*eb00b1c8SRobert Mustacchi 					.irle_enabled = B_TRUE,
2794*eb00b1c8SRobert Mustacchi 					.irle_nways = 1,
2795*eb00b1c8SRobert Mustacchi 					.irle_nwaysbits = 1,
2796*eb00b1c8SRobert Mustacchi 					.irle_limit = 0x40000000,
2797*eb00b1c8SRobert Mustacchi 					.irle_nentries = 8,
2798*eb00b1c8SRobert Mustacchi 					.irle_entries[0] = { 0x0, 0x0 },
2799*eb00b1c8SRobert Mustacchi 				}
2800*eb00b1c8SRobert Mustacchi 			}
2801*eb00b1c8SRobert Mustacchi 		}
2802*eb00b1c8SRobert Mustacchi 	}
2803*eb00b1c8SRobert Mustacchi };
2804*eb00b1c8SRobert Mustacchi 
2805*eb00b1c8SRobert Mustacchi const imc_test_case_t imc_test_tad[] = {
2806*eb00b1c8SRobert Mustacchi /*
2807*eb00b1c8SRobert Mustacchi  * These tests come in pairs. The first two verify that we can get the same
2808*eb00b1c8SRobert Mustacchi  * address on the channel and interleave. The second set verifies that we end up
2809*eb00b1c8SRobert Mustacchi  * in the same channel when we're within interleaving. The third set shows that
2810*eb00b1c8SRobert Mustacchi  * we interleave again and will be used as a point of comparison in the next
2811*eb00b1c8SRobert Mustacchi  * group of tests. The fourth set varies this and makes sure that we can end up
2812*eb00b1c8SRobert Mustacchi  * on the right channel at different address ranges.
2813*eb00b1c8SRobert Mustacchi  */
2814*eb00b1c8SRobert Mustacchi {
2815*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 Socket, 2 Channel way (1)",
2816*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_2cw,
2817*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x33333333,
2818*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
2819*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
2820*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
2821*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
2822*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x199999b3,
2823*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
2824*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
2825*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x199999b3
2826*eb00b1c8SRobert Mustacchi }, {
2827*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 Socket, 2 Channel way (2)",
2828*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_2cw,
2829*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x33333373,
2830*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
2831*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
2832*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
2833*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
2834*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x199999b3,
2835*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
2836*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
2837*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x199999b3
2838*eb00b1c8SRobert Mustacchi }, {
2839*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 Socket, 2 Channel way (3)",
2840*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_2cw,
2841*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x3333331a,
2842*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
2843*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
2844*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
2845*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
2846*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x1999999a,
2847*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
2848*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
2849*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x1999999a
2850*eb00b1c8SRobert Mustacchi }, {
2851*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 Socket, 2 Channel way (4)",
2852*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_2cw,
2853*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x33333342,
2854*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
2855*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
2856*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
2857*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
2858*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x19999982,
2859*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
2860*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
2861*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x19999982
2862*eb00b1c8SRobert Mustacchi }, {
2863*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 Socket, 2 Channel way (5)",
2864*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_2cw,
2865*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x333333b3,
2866*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
2867*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
2868*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
2869*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
2870*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x199999f3,
2871*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
2872*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
2873*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x199999f3
2874*eb00b1c8SRobert Mustacchi }, {
2875*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 Socket, 2 Channel way (6)",
2876*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_2cw,
2877*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x333333f3,
2878*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
2879*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
2880*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
2881*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
2882*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x199999f3,
2883*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
2884*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
2885*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x199999f3
2886*eb00b1c8SRobert Mustacchi }, {
2887*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 Socket, 2 Channel way (7)",
2888*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_2cw,
2889*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x22222222,
2890*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
2891*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
2892*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
2893*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
2894*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x11111122,
2895*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
2896*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
2897*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x11111122
2898*eb00b1c8SRobert Mustacchi }, {
2899*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 Socket, 2 Channel way (8)",
2900*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_2cw,
2901*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x77777777,
2902*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
2903*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
2904*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
2905*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
2906*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x3bbbbbb7,
2907*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
2908*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
2909*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x3bbbbbb7
2910*eb00b1c8SRobert Mustacchi },
2911*eb00b1c8SRobert Mustacchi /*
2912*eb00b1c8SRobert Mustacchi  * This next set of tests is similar to the previous one, except we have the
2913*eb00b1c8SRobert Mustacchi  * a7mode / McChanShiftUp enabled, which means that we use 7-bits to index into
2914*eb00b1c8SRobert Mustacchi  * the channel by default rather than 6. We have tests that compare this
2915*eb00b1c8SRobert Mustacchi  * behavior that would have varied in the previous case, but does not now. We do
2916*eb00b1c8SRobert Mustacchi  * this mostly by using the same initial set of addresses (tests 1-6 of the
2917*eb00b1c8SRobert Mustacchi  * previous set).
2918*eb00b1c8SRobert Mustacchi  */
2919*eb00b1c8SRobert Mustacchi {
2920*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 Socket, 2 Channel way, Shift Up (1)",
2921*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_2cw_shiftup,
2922*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x33333333,
2923*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
2924*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
2925*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
2926*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
2927*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x199999b3,
2928*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
2929*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
2930*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x199999b3
2931*eb00b1c8SRobert Mustacchi }, {
2932*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 Socket, 2 Channel way, Shift Up (2)",
2933*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_2cw_shiftup,
2934*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x33333373,
2935*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
2936*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
2937*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
2938*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
2939*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x199999f3,
2940*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
2941*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
2942*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x199999f3
2943*eb00b1c8SRobert Mustacchi }, {
2944*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 Socket, 2 Channel way, Shift Up (3)",
2945*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_2cw_shiftup,
2946*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x3333331a,
2947*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
2948*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
2949*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
2950*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
2951*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x1999999a,
2952*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
2953*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
2954*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x1999999a
2955*eb00b1c8SRobert Mustacchi }, {
2956*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 Socket, 2 Channel way, Shift Up (4)",
2957*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_2cw_shiftup,
2958*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x33333342,
2959*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
2960*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
2961*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
2962*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
2963*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x199999c2,
2964*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
2965*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
2966*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x199999c2
2967*eb00b1c8SRobert Mustacchi }, {
2968*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 Socket, 2 Channel way, Shift Up (5)",
2969*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_2cw_shiftup,
2970*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x333333b3,
2971*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
2972*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
2973*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
2974*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
2975*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x199999b3,
2976*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
2977*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
2978*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x199999b3
2979*eb00b1c8SRobert Mustacchi }, {
2980*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 Socket, 2 Channel way, Shift Up (6)",
2981*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_2cw_shiftup,
2982*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x333333f3,
2983*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
2984*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
2985*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
2986*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
2987*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x199999f3,
2988*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
2989*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
2990*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x199999f3
2991*eb00b1c8SRobert Mustacchi },
2992*eb00b1c8SRobert Mustacchi /*
2993*eb00b1c8SRobert Mustacchi  * This next set of tests focuses on channel hashing. This is when we take the
2994*eb00b1c8SRobert Mustacchi  * upper bits of the system addrses and use that to influence which channel
2995*eb00b1c8SRobert Mustacchi  * something should be directed to. To see this, we take addresses that have the
2996*eb00b1c8SRobert Mustacchi  * same base address (using bits 0-11) and see that they channels based on the
2997*eb00b1c8SRobert Mustacchi  * different upper bits, where as without channel hashing, we shouldn't expect
2998*eb00b1c8SRobert Mustacchi  * that.
2999*eb00b1c8SRobert Mustacchi  */
3000*eb00b1c8SRobert Mustacchi {
3001*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 Socket, 2 Channel way, Hashing (1)",
3002*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_2cw_chanhash,
3003*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00000bad,
3004*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3005*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3006*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3007*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3008*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x000005ed,
3009*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3010*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3011*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x000005ed
3012*eb00b1c8SRobert Mustacchi }, {
3013*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 Socket, 2 Channel way, Hashing (2)",
3014*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_2cw_chanhash,
3015*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00001bad,
3016*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3017*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3018*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3019*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3020*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x00000ded,
3021*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3022*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3023*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x00000ded
3024*eb00b1c8SRobert Mustacchi }, {
3025*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 Socket, 2 Channel way, Hashing (3)",
3026*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_2cw_chanhash,
3027*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00011bad,
3028*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3029*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3030*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3031*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3032*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x00008ded,
3033*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3034*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3035*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x00008ded
3036*eb00b1c8SRobert Mustacchi }, {
3037*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 Socket, 2 Channel way, Hashing (4)",
3038*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_2cw_chanhash,
3039*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00111bad,
3040*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3041*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3042*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3043*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3044*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x00088ded,
3045*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3046*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3047*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x00088ded
3048*eb00b1c8SRobert Mustacchi }, {
3049*eb00b1c8SRobert Mustacchi 	/* The channel shouldn't change as it's not a bit we index on */
3050*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 Socket, 2 Channel way, Hashing (5)",
3051*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_2cw_chanhash,
3052*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00311bad,
3053*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3054*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3055*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3056*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3057*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x00188ded,
3058*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3059*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3060*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x00188ded
3061*eb00b1c8SRobert Mustacchi }, {
3062*eb00b1c8SRobert Mustacchi 	/* This one shouldn't change as the 1 is > bit 28 */
3063*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 Socket, 2 Channel way, Hashing (6)",
3064*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_2cw_chanhash,
3065*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x20111bad,
3066*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3067*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3068*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3069*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3070*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x10088ded,
3071*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3072*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3073*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x10088ded
3074*eb00b1c8SRobert Mustacchi }, {
3075*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 Socket, 2 Channel way, Hashing (7)",
3076*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_2cw_chanhash,
3077*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00000bed,
3078*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3079*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3080*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3081*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3082*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x000005ed,
3083*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3084*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3085*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x000005ed
3086*eb00b1c8SRobert Mustacchi }, {
3087*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 Socket, 2 Channel way, Hashing (8)",
3088*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_2cw_chanhash,
3089*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00100bed,
3090*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3091*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3092*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3093*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3094*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x000805ed,
3095*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3096*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3097*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x000805ed
3098*eb00b1c8SRobert Mustacchi }, {
3099*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 Socket, 2 Channel way, Hashing (9)",
3100*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_2cw_chanhash,
3101*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00300bed,
3102*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3103*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3104*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3105*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3106*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x001805ed,
3107*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3108*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3109*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x001805ed
3110*eb00b1c8SRobert Mustacchi }, {
3111*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 Socket, 2 Channel way, Hashing (10)",
3112*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_2cw_chanhash,
3113*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00500bed,
3114*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3115*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3116*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3117*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3118*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x002805ed,
3119*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3120*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3121*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x002805ed
3122*eb00b1c8SRobert Mustacchi },
3123*eb00b1c8SRobert Mustacchi /*
3124*eb00b1c8SRobert Mustacchi  * This range of tests basically checks how we interleave in the multi-rule
3125*eb00b1c8SRobert Mustacchi  * system that we've put together. We have regions that should be direct mapped
3126*eb00b1c8SRobert Mustacchi  * an others that should be interleaved.
3127*eb00b1c8SRobert Mustacchi  */
3128*eb00b1c8SRobert Mustacchi {
3129*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s Multi-rule (1)",
3130*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_multirule,
3131*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x07654321,
3132*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3133*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3134*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3135*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3136*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03b2a1a1,
3137*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3138*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3139*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03b2a1a1
3140*eb00b1c8SRobert Mustacchi }, {
3141*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s Multi-rule (2)",
3142*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_multirule,
3143*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x07654361,
3144*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3145*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3146*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3147*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3148*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03b2a1a1,
3149*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3150*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3151*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03b2a1a1
3152*eb00b1c8SRobert Mustacchi }, {
3153*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s Multi-rule (3)",
3154*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_multirule,
3155*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x17654321,
3156*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3157*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3158*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3159*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3160*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0bb2a1a1,
3161*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3162*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3163*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0bb2a1a1
3164*eb00b1c8SRobert Mustacchi }, {
3165*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s Multi-rule (4)",
3166*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_multirule,
3167*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x17654361,
3168*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3169*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3170*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3171*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3172*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0bb2a1a1,
3173*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3174*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3175*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0bb2a1a1
3176*eb00b1c8SRobert Mustacchi }, {
3177*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s Multi-rule (5)",
3178*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_multirule,
3179*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x27654321,
3180*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3181*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3182*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3183*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3184*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x17654321,
3185*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3186*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3187*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x17654321
3188*eb00b1c8SRobert Mustacchi }, {
3189*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s Multi-rule (6)",
3190*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_multirule,
3191*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x27654361,
3192*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3193*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3194*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3195*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3196*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x17654361,
3197*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3198*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3199*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x17654361
3200*eb00b1c8SRobert Mustacchi }, {
3201*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s Multi-rule (7)",
3202*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_multirule,
3203*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x37654321,
3204*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3205*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3206*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3207*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3208*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x27654321,
3209*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3210*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3211*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x27654321
3212*eb00b1c8SRobert Mustacchi }, {
3213*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s Multi-rule (8)",
3214*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_multirule,
3215*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x37654361,
3216*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3217*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3218*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3219*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3220*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x27654361,
3221*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3222*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3223*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x27654361
3224*eb00b1c8SRobert Mustacchi }, {
3225*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s Multi-rule (9)",
3226*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_multirule,
3227*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x47654321,
3228*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3229*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3230*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3231*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3232*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x17654321,
3233*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3234*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3235*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x17654321
3236*eb00b1c8SRobert Mustacchi }, {
3237*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s Multi-rule (10)",
3238*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_multirule,
3239*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x47654361,
3240*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3241*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3242*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3243*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3244*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x17654361,
3245*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3246*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3247*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x17654361
3248*eb00b1c8SRobert Mustacchi }, {
3249*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s Multi-rule (11)",
3250*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_multirule,
3251*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x57654321,
3252*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3253*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3254*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3255*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3256*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x27654321,
3257*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3258*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3259*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x27654321
3260*eb00b1c8SRobert Mustacchi }, {
3261*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s Multi-rule (12)",
3262*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_multirule,
3263*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x57654361,
3264*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3265*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3266*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3267*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3268*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x27654361,
3269*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3270*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3271*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x27654361
3272*eb00b1c8SRobert Mustacchi }, {
3273*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s Multi-rule (13)",
3274*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_multirule,
3275*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x67654321,
3276*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3277*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3278*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3279*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3280*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x33b2a1a1,
3281*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3282*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3283*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x33b2a1a1
3284*eb00b1c8SRobert Mustacchi }, {
3285*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s Multi-rule (14)",
3286*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_multirule,
3287*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x67654361,
3288*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3289*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3290*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3291*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3292*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x33b2a1a1,
3293*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3294*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3295*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x33b2a1a1
3296*eb00b1c8SRobert Mustacchi }, {
3297*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s Multi-rule (15)",
3298*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_multirule,
3299*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x77654321,
3300*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3301*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3302*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3303*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3304*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x3bb2a1a1,
3305*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3306*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3307*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x3bb2a1a1
3308*eb00b1c8SRobert Mustacchi }, {
3309*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s Multi-rule (16)",
3310*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_multirule,
3311*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x77654361,
3312*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3313*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3314*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3315*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3316*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x3bb2a1a1,
3317*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3318*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3319*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x3bb2a1a1
3320*eb00b1c8SRobert Mustacchi },
3321*eb00b1c8SRobert Mustacchi /*
3322*eb00b1c8SRobert Mustacchi  * This set of tests looks at using a combination of channel interleaving and
3323*eb00b1c8SRobert Mustacchi  * socket interleaving and makes sure that we handle that correctly when across
3324*eb00b1c8SRobert Mustacchi  * multiple IMCs and sockets. We have four tests per dimm. Two that show that we
3325*eb00b1c8SRobert Mustacchi  * are consistent within the cache line. Two that show that we are consistent
3326*eb00b1c8SRobert Mustacchi  * when we go to a different line.
3327*eb00b1c8SRobert Mustacchi  */
3328*eb00b1c8SRobert Mustacchi {
3329*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (1)",
3330*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3331*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff60007,
3332*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3333*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3334*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3335*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3336*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fec007,
3337*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3338*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3339*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fec007
3340*eb00b1c8SRobert Mustacchi }, {
3341*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (2)",
3342*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3343*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff60023,
3344*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3345*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3346*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3347*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3348*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fec023,
3349*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3350*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3351*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fec023
3352*eb00b1c8SRobert Mustacchi }, {
3353*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (3)",
3354*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3355*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff150007ULL,
3356*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3357*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3358*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3359*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3360*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x3fe2a007,
3361*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3362*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3363*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x3fe2a007
3364*eb00b1c8SRobert Mustacchi }, {
3365*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (4)",
3366*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3367*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff150023ULL,
3368*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3369*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3370*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3371*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3372*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x3fe2a023,
3373*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3374*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3375*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x3fe2a023
3376*eb00b1c8SRobert Mustacchi }, {
3377*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (5)",
3378*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3379*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff60047,
3380*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3381*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3382*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
3383*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3384*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fec007,
3385*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3386*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3387*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fec007
3388*eb00b1c8SRobert Mustacchi }, {
3389*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (6)",
3390*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3391*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff60063,
3392*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3393*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3394*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
3395*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3396*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fec023,
3397*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3398*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3399*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fec023
3400*eb00b1c8SRobert Mustacchi }, {
3401*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (7)",
3402*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3403*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff150047ULL,
3404*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3405*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3406*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
3407*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3408*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x3fe2a007,
3409*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3410*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3411*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x3fe2a007
3412*eb00b1c8SRobert Mustacchi }, {
3413*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (8)",
3414*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3415*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff150063ULL,
3416*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3417*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3418*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
3419*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3420*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x3fe2a023,
3421*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3422*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3423*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x3fe2a023
3424*eb00b1c8SRobert Mustacchi }, {
3425*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (9)",
3426*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3427*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff60087,
3428*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3429*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 1,
3430*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3431*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3432*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fec007,
3433*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3434*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3435*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fec007
3436*eb00b1c8SRobert Mustacchi }, {
3437*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (10)",
3438*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3439*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff600a3,
3440*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3441*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 1,
3442*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3443*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3444*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fec023,
3445*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3446*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3447*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fec023
3448*eb00b1c8SRobert Mustacchi }, {
3449*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (11)",
3450*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3451*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff150087ULL,
3452*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3453*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 1,
3454*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3455*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3456*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x3fe2a007,
3457*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3458*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3459*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x3fe2a007
3460*eb00b1c8SRobert Mustacchi }, {
3461*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (12)",
3462*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3463*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff1500a3ULL,
3464*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3465*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 1,
3466*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3467*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3468*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x3fe2a023,
3469*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3470*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3471*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x3fe2a023
3472*eb00b1c8SRobert Mustacchi }, {
3473*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (13)",
3474*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3475*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff600c7,
3476*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3477*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 1,
3478*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
3479*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3480*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fec007,
3481*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3482*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3483*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fec007
3484*eb00b1c8SRobert Mustacchi }, {
3485*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (14)",
3486*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3487*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff600f3,
3488*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3489*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 1,
3490*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
3491*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3492*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fec033,
3493*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3494*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3495*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fec033
3496*eb00b1c8SRobert Mustacchi }, {
3497*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (15)",
3498*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3499*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff1500c7ULL,
3500*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3501*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 1,
3502*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
3503*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3504*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x3fe2a007,
3505*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3506*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3507*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x3fe2a007
3508*eb00b1c8SRobert Mustacchi }, {
3509*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (16)",
3510*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3511*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff1500f3ULL,
3512*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3513*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 1,
3514*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
3515*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3516*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x3fe2a033,
3517*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3518*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3519*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x3fe2a033
3520*eb00b1c8SRobert Mustacchi }, {
3521*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (17)",
3522*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3523*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff60107,
3524*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3525*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3526*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3527*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3528*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fec007,
3529*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3530*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3531*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fec007
3532*eb00b1c8SRobert Mustacchi }, {
3533*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (18)",
3534*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3535*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff60123,
3536*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3537*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3538*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3539*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3540*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fec023,
3541*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3542*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3543*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fec023
3544*eb00b1c8SRobert Mustacchi }, {
3545*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (19)",
3546*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3547*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff150107ULL,
3548*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3549*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3550*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3551*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3552*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x3fe2a007,
3553*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3554*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3555*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x3fe2a007
3556*eb00b1c8SRobert Mustacchi }, {
3557*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (20)",
3558*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3559*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff150123ULL,
3560*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3561*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3562*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3563*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3564*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x3fe2a023,
3565*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3566*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3567*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x3fe2a023
3568*eb00b1c8SRobert Mustacchi }, {
3569*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (21)",
3570*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3571*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff60147,
3572*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3573*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3574*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
3575*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3576*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fec007,
3577*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3578*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3579*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fec007
3580*eb00b1c8SRobert Mustacchi }, {
3581*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (22)",
3582*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3583*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff60163,
3584*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3585*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3586*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
3587*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3588*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fec023,
3589*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3590*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3591*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fec023
3592*eb00b1c8SRobert Mustacchi }, {
3593*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (23)",
3594*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3595*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff150147ULL,
3596*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3597*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3598*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
3599*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3600*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x3fe2a007,
3601*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3602*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3603*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x3fe2a007
3604*eb00b1c8SRobert Mustacchi }, {
3605*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (24)",
3606*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3607*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff150163ULL,
3608*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3609*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3610*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
3611*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3612*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x3fe2a023,
3613*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3614*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3615*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x3fe2a023
3616*eb00b1c8SRobert Mustacchi }, {
3617*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (25)",
3618*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3619*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff60187,
3620*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3621*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 1,
3622*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3623*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3624*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fec007,
3625*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3626*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3627*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fec007
3628*eb00b1c8SRobert Mustacchi }, {
3629*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (26)",
3630*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3631*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff601a3,
3632*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3633*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 1,
3634*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3635*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3636*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fec023,
3637*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3638*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3639*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fec023
3640*eb00b1c8SRobert Mustacchi }, {
3641*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (27)",
3642*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3643*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff150187ULL,
3644*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3645*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 1,
3646*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3647*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3648*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x3fe2a007,
3649*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3650*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3651*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x3fe2a007
3652*eb00b1c8SRobert Mustacchi }, {
3653*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (28)",
3654*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3655*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff1501a3ULL,
3656*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3657*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 1,
3658*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3659*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3660*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x3fe2a023,
3661*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3662*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3663*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x3fe2a023
3664*eb00b1c8SRobert Mustacchi }, {
3665*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (29)",
3666*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3667*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff601c7,
3668*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3669*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 1,
3670*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
3671*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3672*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fec007,
3673*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3674*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3675*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fec007
3676*eb00b1c8SRobert Mustacchi }, {
3677*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (30)",
3678*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3679*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff601f3,
3680*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3681*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 1,
3682*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
3683*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3684*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fec033,
3685*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3686*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3687*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fec033
3688*eb00b1c8SRobert Mustacchi }, {
3689*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (31)",
3690*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3691*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff1501c7ULL,
3692*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3693*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 1,
3694*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
3695*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3696*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x3fe2a007,
3697*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3698*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3699*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x3fe2a007
3700*eb00b1c8SRobert Mustacchi }, {
3701*eb00b1c8SRobert Mustacchi 	.itc_desc = "2 socket, 4-sock way, 2-channel way (32)",
3702*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_2s_2cw_4sw,
3703*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x1ff1501f3ULL,
3704*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3705*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 1,
3706*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
3707*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3708*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x3fe2a033,
3709*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3710*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3711*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x3fe2a033
3712*eb00b1c8SRobert Mustacchi },
3713*eb00b1c8SRobert Mustacchi /*
3714*eb00b1c8SRobert Mustacchi  * This begins a series of tests related to Skylake channel granularities.
3715*eb00b1c8SRobert Mustacchi  */
3716*eb00b1c8SRobert Mustacchi {
3717*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 64b chan gran (1)",
3718*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_64b_gran,
3719*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c120000,
3720*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3721*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3722*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3723*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3724*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x06090000,
3725*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3726*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3727*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x06090000
3728*eb00b1c8SRobert Mustacchi }, {
3729*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 64b chan gran (2)",
3730*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_64b_gran,
3731*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c120040,
3732*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3733*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3734*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3735*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3736*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x06090000,
3737*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3738*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3739*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x06090000
3740*eb00b1c8SRobert Mustacchi }, {
3741*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 64b chan gran (3)",
3742*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_64b_gran,
3743*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c120023,
3744*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3745*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3746*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3747*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3748*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x06090023,
3749*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3750*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3751*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x06090023
3752*eb00b1c8SRobert Mustacchi }, {
3753*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 64b chan gran (4)",
3754*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_64b_gran,
3755*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c120068,
3756*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3757*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3758*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3759*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3760*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x06090028,
3761*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3762*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3763*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x06090028
3764*eb00b1c8SRobert Mustacchi },
3765*eb00b1c8SRobert Mustacchi /*
3766*eb00b1c8SRobert Mustacchi  * Move onto a 256 byte granularity and repeat.
3767*eb00b1c8SRobert Mustacchi  */
3768*eb00b1c8SRobert Mustacchi {
3769*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 256b chan gran (1)",
3770*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_256b_gran,
3771*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c120000,
3772*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3773*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3774*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3775*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3776*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x06090000,
3777*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3778*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3779*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x06090000
3780*eb00b1c8SRobert Mustacchi }, {
3781*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 256b chan gran (2)",
3782*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_256b_gran,
3783*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c120040,
3784*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3785*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3786*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3787*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3788*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x06090040,
3789*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3790*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3791*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x06090040
3792*eb00b1c8SRobert Mustacchi }, {
3793*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 256b chan gran (3)",
3794*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_256b_gran,
3795*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c120023,
3796*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3797*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3798*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3799*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3800*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x06090023,
3801*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3802*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3803*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x06090023
3804*eb00b1c8SRobert Mustacchi }, {
3805*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 256b chan gran (4)",
3806*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_256b_gran,
3807*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c120068,
3808*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3809*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3810*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3811*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3812*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x06090068,
3813*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3814*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3815*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x06090068
3816*eb00b1c8SRobert Mustacchi }, {
3817*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 256b chan gran (5)",
3818*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_256b_gran,
3819*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c120300,
3820*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3821*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3822*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3823*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3824*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x06090100,
3825*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3826*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3827*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x06090100
3828*eb00b1c8SRobert Mustacchi }, {
3829*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 256b chan gran (6)",
3830*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_256b_gran,
3831*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c120140,
3832*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3833*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3834*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3835*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3836*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x06090040,
3837*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3838*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3839*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x06090040
3840*eb00b1c8SRobert Mustacchi }, {
3841*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 256b chan gran (7)",
3842*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_256b_gran,
3843*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c120123,
3844*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3845*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3846*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3847*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3848*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x06090023,
3849*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3850*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3851*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x06090023
3852*eb00b1c8SRobert Mustacchi }, {
3853*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 256b chan gran (8)",
3854*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_256b_gran,
3855*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c120368,
3856*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3857*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3858*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3859*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3860*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x06090168,
3861*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3862*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3863*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x06090168
3864*eb00b1c8SRobert Mustacchi },
3865*eb00b1c8SRobert Mustacchi /*
3866*eb00b1c8SRobert Mustacchi  * Now, use 4k granularities.
3867*eb00b1c8SRobert Mustacchi  */
3868*eb00b1c8SRobert Mustacchi {
3869*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 4k chan gran (1)",
3870*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_4k_gran,
3871*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c120000,
3872*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3873*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3874*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3875*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3876*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x06090000,
3877*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3878*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3879*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x06090000
3880*eb00b1c8SRobert Mustacchi }, {
3881*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 4k chan gran (2)",
3882*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_4k_gran,
3883*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c120040,
3884*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3885*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3886*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3887*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3888*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x06090040,
3889*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3890*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3891*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x06090040
3892*eb00b1c8SRobert Mustacchi }, {
3893*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 4k chan gran (3)",
3894*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_4k_gran,
3895*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c120023,
3896*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3897*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3898*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3899*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3900*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x06090023,
3901*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3902*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3903*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x06090023
3904*eb00b1c8SRobert Mustacchi }, {
3905*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 4k chan gran (4)",
3906*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_4k_gran,
3907*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c120068,
3908*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3909*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3910*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3911*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3912*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x06090068,
3913*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3914*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3915*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x06090068
3916*eb00b1c8SRobert Mustacchi }, {
3917*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 4k chan gran (5)",
3918*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_4k_gran,
3919*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c120300,
3920*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3921*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3922*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3923*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3924*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x06090300,
3925*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3926*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3927*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x06090300
3928*eb00b1c8SRobert Mustacchi }, {
3929*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 4k chan gran (6)",
3930*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_4k_gran,
3931*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c120140,
3932*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3933*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3934*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3935*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3936*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x06090140,
3937*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3938*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3939*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x06090140
3940*eb00b1c8SRobert Mustacchi }, {
3941*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 4k chan gran (7)",
3942*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_4k_gran,
3943*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c120123,
3944*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3945*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3946*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3947*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3948*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x06090123,
3949*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3950*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3951*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x06090123
3952*eb00b1c8SRobert Mustacchi }, {
3953*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 4k chan gran (8)",
3954*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_4k_gran,
3955*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c120368,
3956*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3957*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3958*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3959*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
3960*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x06090368,
3961*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3962*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3963*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x06090368
3964*eb00b1c8SRobert Mustacchi }, {
3965*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 4k chan gran (9)",
3966*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_4k_gran,
3967*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c121000,
3968*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3969*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3970*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3971*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3972*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x06090000,
3973*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3974*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3975*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x06090000
3976*eb00b1c8SRobert Mustacchi }, {
3977*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 4k chan gran (10)",
3978*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_4k_gran,
3979*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c123040,
3980*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3981*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3982*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3983*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3984*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x06091040,
3985*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3986*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3987*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x06091040
3988*eb00b1c8SRobert Mustacchi }, {
3989*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 4k chan gran (11)",
3990*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_4k_gran,
3991*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c121023,
3992*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
3993*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
3994*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
3995*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
3996*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x06090023,
3997*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
3998*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
3999*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x06090023
4000*eb00b1c8SRobert Mustacchi }, {
4001*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 4k chan gran (12)",
4002*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_4k_gran,
4003*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c121068,
4004*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4005*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4006*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4007*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4008*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x06090068,
4009*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4010*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4011*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x06090068
4012*eb00b1c8SRobert Mustacchi }, {
4013*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 4k chan gran (13)",
4014*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_4k_gran,
4015*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c121300,
4016*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4017*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4018*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4019*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4020*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x06090300,
4021*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4022*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4023*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x06090300
4024*eb00b1c8SRobert Mustacchi }, {
4025*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 4k chan gran (14)",
4026*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_4k_gran,
4027*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c121140,
4028*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4029*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4030*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4031*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4032*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x06090140,
4033*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4034*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4035*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x06090140
4036*eb00b1c8SRobert Mustacchi }, {
4037*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 4k chan gran (15)",
4038*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_4k_gran,
4039*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c123123,
4040*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4041*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4042*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4043*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4044*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x06091123,
4045*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4046*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4047*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x06091123
4048*eb00b1c8SRobert Mustacchi }, {
4049*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 4k chan gran (16)",
4050*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_4k_gran,
4051*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c121368,
4052*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4053*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4054*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4055*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4056*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x06090368,
4057*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4058*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4059*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x06090368
4060*eb00b1c8SRobert Mustacchi },
4061*eb00b1c8SRobert Mustacchi /*
4062*eb00b1c8SRobert Mustacchi  * Use a 1 GiB Interleaving next.
4063*eb00b1c8SRobert Mustacchi  */
4064*eb00b1c8SRobert Mustacchi {
4065*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (1)",
4066*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4067*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c120000,
4068*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4069*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4070*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4071*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4072*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0c120000,
4073*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4074*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4075*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0c120000
4076*eb00b1c8SRobert Mustacchi }, {
4077*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (2)",
4078*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4079*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c120040,
4080*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4081*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4082*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4083*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4084*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0c120040,
4085*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4086*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4087*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0c120040
4088*eb00b1c8SRobert Mustacchi }, {
4089*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (3)",
4090*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4091*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c120023,
4092*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4093*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4094*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4095*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4096*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0c120023,
4097*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4098*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4099*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0c120023
4100*eb00b1c8SRobert Mustacchi }, {
4101*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (4)",
4102*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4103*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c120068,
4104*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4105*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4106*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4107*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4108*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0c120068,
4109*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4110*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4111*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0c120068
4112*eb00b1c8SRobert Mustacchi }, {
4113*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (5)",
4114*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4115*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c120300,
4116*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4117*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4118*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4119*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4120*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0c120300,
4121*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4122*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4123*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0c120300
4124*eb00b1c8SRobert Mustacchi }, {
4125*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (6)",
4126*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4127*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c120140,
4128*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4129*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4130*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4131*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4132*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0c120140,
4133*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4134*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4135*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0c120140
4136*eb00b1c8SRobert Mustacchi }, {
4137*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (7)",
4138*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4139*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c120123,
4140*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4141*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4142*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4143*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4144*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0c120123,
4145*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4146*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4147*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0c120123
4148*eb00b1c8SRobert Mustacchi }, {
4149*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (8)",
4150*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4151*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c120368,
4152*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4153*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4154*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4155*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4156*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0c120368,
4157*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4158*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4159*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0c120368
4160*eb00b1c8SRobert Mustacchi }, {
4161*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (9)",
4162*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4163*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c121000,
4164*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4165*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4166*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4167*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4168*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0c121000,
4169*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4170*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4171*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0c121000
4172*eb00b1c8SRobert Mustacchi }, {
4173*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (10)",
4174*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4175*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c123040,
4176*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4177*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4178*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4179*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4180*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0c123040,
4181*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4182*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4183*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0c123040
4184*eb00b1c8SRobert Mustacchi }, {
4185*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (11)",
4186*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4187*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c121023,
4188*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4189*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4190*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4191*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4192*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0c121023,
4193*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4194*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4195*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0c121023
4196*eb00b1c8SRobert Mustacchi }, {
4197*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (12)",
4198*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4199*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c121068,
4200*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4201*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4202*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4203*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4204*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0c121068,
4205*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4206*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4207*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0c121068
4208*eb00b1c8SRobert Mustacchi }, {
4209*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (13)",
4210*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4211*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c121300,
4212*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4213*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4214*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4215*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4216*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0c121300,
4217*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4218*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4219*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0c121300
4220*eb00b1c8SRobert Mustacchi }, {
4221*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (14)",
4222*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4223*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c121140,
4224*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4225*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4226*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4227*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4228*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0c121140,
4229*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4230*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4231*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0c121140
4232*eb00b1c8SRobert Mustacchi }, {
4233*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (15)",
4234*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4235*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c123123,
4236*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4237*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4238*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4239*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4240*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0c123123,
4241*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4242*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4243*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0c123123
4244*eb00b1c8SRobert Mustacchi }, {
4245*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (16)",
4246*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4247*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0c121368,
4248*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4249*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4250*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4251*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4252*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0c121368,
4253*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4254*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4255*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0c121368
4256*eb00b1c8SRobert Mustacchi }, {
4257*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (1)",
4258*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4259*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x4c120000,
4260*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4261*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4262*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4263*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4264*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0c120000,
4265*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4266*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4267*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0c120000
4268*eb00b1c8SRobert Mustacchi }, {
4269*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (2)",
4270*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4271*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x4c120040,
4272*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4273*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4274*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4275*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4276*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0c120040,
4277*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4278*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4279*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0c120040
4280*eb00b1c8SRobert Mustacchi }, {
4281*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (3)",
4282*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4283*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x5c120023,
4284*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4285*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4286*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4287*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4288*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x1c120023,
4289*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4290*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4291*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x1c120023
4292*eb00b1c8SRobert Mustacchi }, {
4293*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (4)",
4294*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4295*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x6c120068,
4296*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4297*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4298*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4299*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4300*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x2c120068,
4301*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4302*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4303*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x2c120068
4304*eb00b1c8SRobert Mustacchi }, {
4305*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (5)",
4306*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4307*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x7c120300,
4308*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4309*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4310*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4311*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4312*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x3c120300,
4313*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4314*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4315*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x3c120300
4316*eb00b1c8SRobert Mustacchi }, {
4317*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (6)",
4318*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4319*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x4c120140,
4320*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4321*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4322*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4323*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4324*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0c120140,
4325*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4326*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4327*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0c120140
4328*eb00b1c8SRobert Mustacchi }, {
4329*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (7)",
4330*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4331*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x5c120123,
4332*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4333*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4334*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4335*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4336*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x1c120123,
4337*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4338*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4339*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x1c120123
4340*eb00b1c8SRobert Mustacchi }, {
4341*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (8)",
4342*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4343*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x6c120368,
4344*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4345*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4346*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4347*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4348*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x2c120368,
4349*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4350*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4351*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x2c120368
4352*eb00b1c8SRobert Mustacchi }, {
4353*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (9)",
4354*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4355*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x7c121000,
4356*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4357*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4358*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4359*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4360*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x3c121000,
4361*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4362*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4363*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x3c121000
4364*eb00b1c8SRobert Mustacchi }, {
4365*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (10)",
4366*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4367*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x4c123040,
4368*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4369*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4370*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4371*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4372*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0c123040,
4373*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4374*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4375*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0c123040
4376*eb00b1c8SRobert Mustacchi }, {
4377*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (11)",
4378*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4379*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x5c121023,
4380*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4381*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4382*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4383*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4384*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x1c121023,
4385*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4386*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4387*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x1c121023
4388*eb00b1c8SRobert Mustacchi }, {
4389*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (12)",
4390*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4391*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x6c121068,
4392*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4393*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4394*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4395*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4396*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x2c121068,
4397*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4398*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4399*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x2c121068
4400*eb00b1c8SRobert Mustacchi }, {
4401*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (13)",
4402*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4403*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x7c121300,
4404*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4405*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4406*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4407*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4408*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x3c121300,
4409*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4410*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4411*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x3c121300
4412*eb00b1c8SRobert Mustacchi }, {
4413*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (14)",
4414*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4415*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x7c121140,
4416*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4417*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4418*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4419*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4420*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x3c121140,
4421*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4422*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4423*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x3c121140
4424*eb00b1c8SRobert Mustacchi }, {
4425*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (15)",
4426*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4427*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x6c123123,
4428*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4429*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4430*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4431*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4432*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x2c123123,
4433*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4434*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4435*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x2c123123
4436*eb00b1c8SRobert Mustacchi }, {
4437*eb00b1c8SRobert Mustacchi 	.itc_desc = "SKX 2ch 1g chan gran (16)",
4438*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_skx_1g_gran,
4439*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x5c121368,
4440*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4441*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4442*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4443*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4444*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x1c121368,
4445*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4446*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4447*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x1c121368
4448*eb00b1c8SRobert Mustacchi },
4449*eb00b1c8SRobert Mustacchi /*
4450*eb00b1c8SRobert Mustacchi  * This round of tests puts together a 1 socekt configuration with 4 channel way
4451*eb00b1c8SRobert Mustacchi  * interleaving. This means that we're interleaving across two IMCs in the same
4452*eb00b1c8SRobert Mustacchi  * socket.
4453*eb00b1c8SRobert Mustacchi  */
4454*eb00b1c8SRobert Mustacchi {
4455*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 socket, 4-channel way (1)",
4456*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_4cw,
4457*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0ff13006,
4458*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4459*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4460*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4461*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4462*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fc4c06,
4463*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4464*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4465*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fc4c06
4466*eb00b1c8SRobert Mustacchi }, {
4467*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 socket, 4-channel way (2)",
4468*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_4cw,
4469*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0ff13046,
4470*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4471*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4472*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4473*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4474*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fc4c06,
4475*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4476*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4477*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fc4c06
4478*eb00b1c8SRobert Mustacchi }, {
4479*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 socket, 4-channel way (3)",
4480*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_4cw,
4481*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0ff13086,
4482*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4483*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4484*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
4485*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4486*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fc4c06,
4487*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4488*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4489*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fc4c06
4490*eb00b1c8SRobert Mustacchi }, {
4491*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 socket, 4-channel way (4)",
4492*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_4cw,
4493*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0ff130c6,
4494*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4495*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4496*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
4497*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4498*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fc4c06,
4499*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4500*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4501*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fc4c06
4502*eb00b1c8SRobert Mustacchi }, {
4503*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 socket, 4-channel way (5)",
4504*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_4cw,
4505*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0ff13026,
4506*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4507*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4508*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4509*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4510*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fc4c26,
4511*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4512*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4513*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fc4c26
4514*eb00b1c8SRobert Mustacchi }, {
4515*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 socket, 4-channel way (6)",
4516*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_4cw,
4517*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0ff13077,
4518*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4519*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4520*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4521*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4522*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fc4c37,
4523*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4524*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4525*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fc4c37
4526*eb00b1c8SRobert Mustacchi }, {
4527*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 socket, 4-channel way (7)",
4528*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_4cw,
4529*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0ff13099,
4530*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4531*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4532*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
4533*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4534*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fc4c19,
4535*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4536*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4537*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fc4c19
4538*eb00b1c8SRobert Mustacchi }, {
4539*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 socket, 4-channel way (8)",
4540*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_4cw,
4541*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0ff130ff,
4542*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4543*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4544*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
4545*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4546*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fc4c3f,
4547*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4548*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4549*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fc4c3f
4550*eb00b1c8SRobert Mustacchi }, {
4551*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 socket, 4-channel way (9)",
4552*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_4cw,
4553*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x8ff13006,
4554*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4555*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4556*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4557*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4558*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x23fc4c06,
4559*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4560*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4561*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x23fc4c06
4562*eb00b1c8SRobert Mustacchi }, {
4563*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 socket, 4-channel way (10)",
4564*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_4cw,
4565*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x3ff13046,
4566*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4567*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4568*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4569*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4570*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0ffc4c06,
4571*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4572*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4573*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0ffc4c06
4574*eb00b1c8SRobert Mustacchi }, {
4575*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 socket, 4-channel way (11)",
4576*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_4cw,
4577*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x4ff13086,
4578*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4579*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4580*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
4581*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4582*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x13fc4c06,
4583*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4584*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4585*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x13fc4c06
4586*eb00b1c8SRobert Mustacchi }, {
4587*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 socket, 4-channel way (12)",
4588*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_4cw,
4589*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x9ff130c6,
4590*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4591*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4592*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
4593*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4594*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x27fc4c06,
4595*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4596*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4597*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x27fc4c06
4598*eb00b1c8SRobert Mustacchi }, {
4599*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 socket, 4-channel way (13)",
4600*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_4cw,
4601*eb00b1c8SRobert Mustacchi 	.itc_pa = 0xdff13026,
4602*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4603*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4604*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4605*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4606*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x37fc4c26,
4607*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4608*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4609*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x37fc4c26
4610*eb00b1c8SRobert Mustacchi }, {
4611*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 socket, 4-channel way (14)",
4612*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_4cw,
4613*eb00b1c8SRobert Mustacchi 	.itc_pa = 0xeff13077,
4614*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4615*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4616*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4617*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4618*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x3bfc4c37,
4619*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4620*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4621*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x3bfc4c37
4622*eb00b1c8SRobert Mustacchi }, {
4623*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 socket, 4-channel way (15)",
4624*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_4cw,
4625*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x4ff13099,
4626*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4627*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4628*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
4629*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4630*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x13fc4c19,
4631*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4632*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4633*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x13fc4c19
4634*eb00b1c8SRobert Mustacchi }, {
4635*eb00b1c8SRobert Mustacchi 	.itc_desc = "1 socket, 4-channel way (16)",
4636*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_1s_4cw,
4637*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x8ff130ff,
4638*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4639*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4640*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
4641*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4642*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x23fc4c3f,
4643*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4644*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4645*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x23fc4c3f
4646*eb00b1c8SRobert Mustacchi },
4647*eb00b1c8SRobert Mustacchi /*
4648*eb00b1c8SRobert Mustacchi  * Test the first variation of mod3 rules. We basically try to find addresses
4649*eb00b1c8SRobert Mustacchi  * that map to all 6 channels and then do different variations thereof. We
4650*eb00b1c8SRobert Mustacchi  * mostly use the addresses from the previous test run to get a good random
4651*eb00b1c8SRobert Mustacchi  * smattering of addresses.
4652*eb00b1c8SRobert Mustacchi  */
4653*eb00b1c8SRobert Mustacchi {
4654*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod 3 45t6 (1)",
4655*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod3_45t6,
4656*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0ff13006,
4657*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4658*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4659*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4660*eb00b1c8SRobert Mustacchi 	.itc_channelid = 2,
4661*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fc4c06,
4662*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4663*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4664*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fc4c06
4665*eb00b1c8SRobert Mustacchi }, {
4666*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod 3 45t6 (2)",
4667*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod3_45t6,
4668*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0ff13046,
4669*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4670*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4671*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
4672*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4673*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fc4c06,
4674*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4675*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4676*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fc4c06
4677*eb00b1c8SRobert Mustacchi }, {
4678*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod 3 45t6 (3)",
4679*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod3_45t6,
4680*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0ff13086,
4681*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4682*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4683*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4684*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4685*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fc4c06,
4686*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4687*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4688*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fc4c06
4689*eb00b1c8SRobert Mustacchi }, {
4690*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod 3 45t6 (4)",
4691*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod3_45t6,
4692*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0ff130c6,
4693*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4694*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4695*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
4696*eb00b1c8SRobert Mustacchi 	.itc_channelid = 2,
4697*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fc4c06,
4698*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4699*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4700*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fc4c06
4701*eb00b1c8SRobert Mustacchi }, {
4702*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod 3 45t6 (5)",
4703*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod3_45t6,
4704*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0ff13026,
4705*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4706*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4707*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4708*eb00b1c8SRobert Mustacchi 	.itc_channelid = 2,
4709*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fc4c26,
4710*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4711*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4712*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fc4c26
4713*eb00b1c8SRobert Mustacchi }, {
4714*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod 3 45t6 (6)",
4715*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod3_45t6,
4716*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0ff13077,
4717*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4718*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4719*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
4720*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4721*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fc4c37,
4722*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4723*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4724*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fc4c37
4725*eb00b1c8SRobert Mustacchi }, {
4726*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod 3 45t6 (7)",
4727*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod3_45t6,
4728*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0ff13099,
4729*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4730*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4731*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4732*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4733*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fc4c19,
4734*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4735*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4736*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fc4c19
4737*eb00b1c8SRobert Mustacchi }, {
4738*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod 3 45t6 (8)",
4739*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod3_45t6,
4740*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x0ff130ff,
4741*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4742*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4743*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
4744*eb00b1c8SRobert Mustacchi 	.itc_channelid = 2,
4745*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x03fc4c3f,
4746*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4747*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4748*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x03fc4c3f
4749*eb00b1c8SRobert Mustacchi }, {
4750*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod 3 45t6 (9)",
4751*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod3_45t6,
4752*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x8ff13006,
4753*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4754*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4755*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4756*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4757*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x23fc4c06,
4758*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4759*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4760*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x23fc4c06
4761*eb00b1c8SRobert Mustacchi }, {
4762*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod 3 45t6 (10)",
4763*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod3_45t6,
4764*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x3ff13046,
4765*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4766*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4767*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
4768*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4769*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0ffc4c06,
4770*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4771*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4772*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0ffc4c06
4773*eb00b1c8SRobert Mustacchi }, {
4774*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod 3 45t6 (11)",
4775*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod3_45t6,
4776*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x4ff13086,
4777*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4778*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4779*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4780*eb00b1c8SRobert Mustacchi 	.itc_channelid = 2,
4781*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x13fc4c06,
4782*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4783*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4784*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x13fc4c06
4785*eb00b1c8SRobert Mustacchi }, {
4786*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod 3 45t6 (12)",
4787*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod3_45t6,
4788*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x9ff130c6,
4789*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4790*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4791*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
4792*eb00b1c8SRobert Mustacchi 	.itc_channelid = 2,
4793*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x27fc4c06,
4794*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4795*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4796*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x27fc4c06
4797*eb00b1c8SRobert Mustacchi }, {
4798*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod 3 45t6 (13)",
4799*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod3_45t6,
4800*eb00b1c8SRobert Mustacchi 	.itc_pa = 0xdff13026,
4801*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4802*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4803*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
4804*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4805*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x37fc4c26,
4806*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4807*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4808*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x37fc4c26
4809*eb00b1c8SRobert Mustacchi }, {
4810*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod 3 45t6 (14)",
4811*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod3_45t6,
4812*eb00b1c8SRobert Mustacchi 	.itc_pa = 0xeff13077,
4813*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4814*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4815*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
4816*eb00b1c8SRobert Mustacchi 	.itc_channelid = 2,
4817*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x3bfc4c37,
4818*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4819*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4820*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x3bfc4c37
4821*eb00b1c8SRobert Mustacchi }, {
4822*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod 3 45t6 (15)",
4823*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod3_45t6,
4824*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x4ff13099,
4825*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4826*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4827*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4828*eb00b1c8SRobert Mustacchi 	.itc_channelid = 2,
4829*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x13fc4c19,
4830*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4831*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4832*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x13fc4c19
4833*eb00b1c8SRobert Mustacchi }, {
4834*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod 3 45t6 (16)",
4835*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod3_45t6,
4836*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x8ff130ff,
4837*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4838*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4839*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4840*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4841*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x23fc4c3f,
4842*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4843*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4844*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x23fc4c3f
4845*eb00b1c8SRobert Mustacchi },
4846*eb00b1c8SRobert Mustacchi /*
4847*eb00b1c8SRobert Mustacchi  * Now use PA bits 45:8 to determine the basic mod3 rule. We make sure that we
4848*eb00b1c8SRobert Mustacchi  * can construct addresses that hit every routing table entry.
4849*eb00b1c8SRobert Mustacchi  */
4850*eb00b1c8SRobert Mustacchi {
4851*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod 3 45t8 (1)",
4852*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod3_45t8,
4853*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00000000,
4854*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4855*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4856*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4857*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4858*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0,
4859*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4860*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4861*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0
4862*eb00b1c8SRobert Mustacchi }, {
4863*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod 3 45t8 (2)",
4864*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod3_45t8,
4865*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00000040,
4866*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4867*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4868*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4869*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4870*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0,
4871*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4872*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4873*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0
4874*eb00b1c8SRobert Mustacchi }, {
4875*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod 3 45t8 (3)",
4876*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod3_45t8,
4877*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00000100,
4878*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4879*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4880*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4881*eb00b1c8SRobert Mustacchi 	.itc_channelid = 2,
4882*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x40,
4883*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4884*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4885*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x40
4886*eb00b1c8SRobert Mustacchi }, {
4887*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod 3 45t8 (4)",
4888*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod3_45t8,
4889*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00000140,
4890*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4891*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4892*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
4893*eb00b1c8SRobert Mustacchi 	.itc_channelid = 2,
4894*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x40,
4895*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4896*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4897*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x40
4898*eb00b1c8SRobert Mustacchi }, {
4899*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod 3 45t8 (5)",
4900*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod3_45t8,
4901*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00000280,
4902*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4903*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4904*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
4905*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4906*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x80,
4907*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4908*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4909*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x80
4910*eb00b1c8SRobert Mustacchi }, {
4911*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod 3 45t8 (6)",
4912*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod3_45t8,
4913*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00000240,
4914*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4915*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4916*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
4917*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4918*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x80,
4919*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4920*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4921*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x80
4922*eb00b1c8SRobert Mustacchi },
4923*eb00b1c8SRobert Mustacchi /*
4924*eb00b1c8SRobert Mustacchi  * Hit every valid routing table entry with a 45:12 rule.
4925*eb00b1c8SRobert Mustacchi  */
4926*eb00b1c8SRobert Mustacchi {
4927*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod 3 45t12 (1)",
4928*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod3_45t12,
4929*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00000000,
4930*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4931*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4932*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4933*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4934*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0,
4935*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4936*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4937*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0
4938*eb00b1c8SRobert Mustacchi }, {
4939*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod 3 45t12 (2)",
4940*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod3_45t12,
4941*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00000040,
4942*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4943*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4944*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4945*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4946*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0,
4947*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4948*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4949*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0
4950*eb00b1c8SRobert Mustacchi }, {
4951*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod 3 45t12 (3)",
4952*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod3_45t12,
4953*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00001000,
4954*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4955*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4956*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
4957*eb00b1c8SRobert Mustacchi 	.itc_channelid = 2,
4958*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x400,
4959*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4960*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4961*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x400
4962*eb00b1c8SRobert Mustacchi }, {
4963*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod 3 45t12 (4)",
4964*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod3_45t12,
4965*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00001040,
4966*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4967*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4968*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
4969*eb00b1c8SRobert Mustacchi 	.itc_channelid = 2,
4970*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x400,
4971*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4972*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4973*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x400
4974*eb00b1c8SRobert Mustacchi }, {
4975*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod 3 45t12 (5)",
4976*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod3_45t12,
4977*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00002080,
4978*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4979*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4980*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
4981*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
4982*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x800,
4983*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4984*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4985*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x800
4986*eb00b1c8SRobert Mustacchi }, {
4987*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod 3 45t12 (6)",
4988*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod3_45t12,
4989*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00002040,
4990*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
4991*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
4992*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
4993*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
4994*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x800,
4995*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
4996*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
4997*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x800
4998*eb00b1c8SRobert Mustacchi },
4999*eb00b1c8SRobert Mustacchi /*
5000*eb00b1c8SRobert Mustacchi  * Test to make sure we can trigger all variants of mod2 favoring 0/1.
5001*eb00b1c8SRobert Mustacchi  */
5002*eb00b1c8SRobert Mustacchi {
5003*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod2_01 45t12 (1)",
5004*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod2_01_45t12,
5005*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00000000,
5006*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
5007*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
5008*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
5009*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
5010*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0,
5011*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
5012*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
5013*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0
5014*eb00b1c8SRobert Mustacchi }, {
5015*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod2_01 45t12 (2)",
5016*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod2_01_45t12,
5017*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00000040,
5018*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
5019*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
5020*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
5021*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
5022*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0,
5023*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
5024*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
5025*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0
5026*eb00b1c8SRobert Mustacchi }, {
5027*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod2_01 45t12 (3)",
5028*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod2_01_45t12,
5029*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00001000,
5030*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
5031*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
5032*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
5033*eb00b1c8SRobert Mustacchi 	.itc_channelid = 2,
5034*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x400,
5035*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
5036*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
5037*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x400
5038*eb00b1c8SRobert Mustacchi }, {
5039*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod2_01 45t12 (4)",
5040*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod2_01_45t12,
5041*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00001040,
5042*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
5043*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
5044*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
5045*eb00b1c8SRobert Mustacchi 	.itc_channelid = 2,
5046*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x400,
5047*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
5048*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
5049*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x400
5050*eb00b1c8SRobert Mustacchi }, {
5051*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod2_01 45t12 (5)",
5052*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod2_01_45t12,
5053*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00002080,
5054*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
5055*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
5056*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
5057*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
5058*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x800,
5059*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
5060*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
5061*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x800
5062*eb00b1c8SRobert Mustacchi }, {
5063*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod2_01 45t12 (6)",
5064*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod2_01_45t12,
5065*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00002040,
5066*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
5067*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
5068*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
5069*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
5070*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x800,
5071*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
5072*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
5073*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x800
5074*eb00b1c8SRobert Mustacchi },
5075*eb00b1c8SRobert Mustacchi /*
5076*eb00b1c8SRobert Mustacchi  * Test to make sure we can trigger all variants of mod2 favoring 1/2.
5077*eb00b1c8SRobert Mustacchi  */
5078*eb00b1c8SRobert Mustacchi {
5079*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod2_12 45t12 (1)",
5080*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod2_12_45t12,
5081*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00000000,
5082*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
5083*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
5084*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
5085*eb00b1c8SRobert Mustacchi 	.itc_channelid = 2,
5086*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0,
5087*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
5088*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
5089*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0
5090*eb00b1c8SRobert Mustacchi }, {
5091*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod2_12 45t12 (2)",
5092*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod2_12_45t12,
5093*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00000040,
5094*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
5095*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
5096*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
5097*eb00b1c8SRobert Mustacchi 	.itc_channelid = 2,
5098*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0,
5099*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
5100*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
5101*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0
5102*eb00b1c8SRobert Mustacchi }, {
5103*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod2_12 45t12 (3)",
5104*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod2_12_45t12,
5105*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00001000,
5106*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
5107*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
5108*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
5109*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
5110*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x400,
5111*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
5112*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
5113*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x400
5114*eb00b1c8SRobert Mustacchi }, {
5115*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod2_12 45t12 (4)",
5116*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod2_12_45t12,
5117*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00001040,
5118*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
5119*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
5120*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
5121*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
5122*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x400,
5123*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
5124*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
5125*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x400
5126*eb00b1c8SRobert Mustacchi }, {
5127*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod2_12 45t12 (5)",
5128*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod2_12_45t12,
5129*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00002080,
5130*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
5131*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
5132*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
5133*eb00b1c8SRobert Mustacchi 	.itc_channelid = 2,
5134*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x800,
5135*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
5136*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
5137*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x800
5138*eb00b1c8SRobert Mustacchi }, {
5139*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod2_12 45t12 (6)",
5140*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod2_12_45t12,
5141*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00002040,
5142*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
5143*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
5144*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
5145*eb00b1c8SRobert Mustacchi 	.itc_channelid = 2,
5146*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x800,
5147*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
5148*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
5149*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x800
5150*eb00b1c8SRobert Mustacchi },
5151*eb00b1c8SRobert Mustacchi /*
5152*eb00b1c8SRobert Mustacchi  * Test to make sure we can trigger all variants of mod2 favoring 0/2.
5153*eb00b1c8SRobert Mustacchi  */
5154*eb00b1c8SRobert Mustacchi {
5155*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod2_02 45t12 (1)",
5156*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod2_02_45t12,
5157*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00000000,
5158*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
5159*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
5160*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
5161*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
5162*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0,
5163*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
5164*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
5165*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0
5166*eb00b1c8SRobert Mustacchi }, {
5167*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod2_02 45t12 (2)",
5168*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod2_02_45t12,
5169*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00000040,
5170*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
5171*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
5172*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
5173*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
5174*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x0,
5175*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
5176*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
5177*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x0
5178*eb00b1c8SRobert Mustacchi }, {
5179*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod2_02 45t12 (3)",
5180*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod2_02_45t12,
5181*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00001000,
5182*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
5183*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
5184*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
5185*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
5186*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x400,
5187*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
5188*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
5189*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x400
5190*eb00b1c8SRobert Mustacchi }, {
5191*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod2_02 45t12 (4)",
5192*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod2_02_45t12,
5193*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00001040,
5194*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
5195*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
5196*eb00b1c8SRobert Mustacchi 	.itc_tadid = 1,
5197*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
5198*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x400,
5199*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
5200*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
5201*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x400
5202*eb00b1c8SRobert Mustacchi }, {
5203*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod2_02 45t12 (5)",
5204*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod2_02_45t12,
5205*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00002080,
5206*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
5207*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
5208*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
5209*eb00b1c8SRobert Mustacchi 	.itc_channelid = 0,
5210*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x800,
5211*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
5212*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
5213*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x800
5214*eb00b1c8SRobert Mustacchi }, {
5215*eb00b1c8SRobert Mustacchi 	.itc_desc = "1s mod2_02 45t12 (6)",
5216*eb00b1c8SRobert Mustacchi 	.itc_imc = &imc_tad_skx_mod2_02_45t12,
5217*eb00b1c8SRobert Mustacchi 	.itc_pa = 0x00002040,
5218*eb00b1c8SRobert Mustacchi 	.itc_pass = B_TRUE,
5219*eb00b1c8SRobert Mustacchi 	.itc_nodeid = 0,
5220*eb00b1c8SRobert Mustacchi 	.itc_tadid = 0,
5221*eb00b1c8SRobert Mustacchi 	.itc_channelid = 1,
5222*eb00b1c8SRobert Mustacchi 	.itc_chanaddr = 0x800,
5223*eb00b1c8SRobert Mustacchi 	.itc_dimmid = 0,
5224*eb00b1c8SRobert Mustacchi 	.itc_rankid = 0,
5225*eb00b1c8SRobert Mustacchi 	.itc_rankaddr = 0x800
5226*eb00b1c8SRobert Mustacchi }, {
5227*eb00b1c8SRobert Mustacchi 	.itc_desc = NULL
5228*eb00b1c8SRobert Mustacchi } };
5229