171815ce7SRobert Mustacchi /*
271815ce7SRobert Mustacchi  * This file and its contents are supplied under the terms of the
371815ce7SRobert Mustacchi  * Common Development and Distribution License ("CDDL"), version 1.0.
471815ce7SRobert Mustacchi  * You may only use this file in accordance with the terms of version
571815ce7SRobert Mustacchi  * 1.0 of the CDDL.
671815ce7SRobert Mustacchi  *
771815ce7SRobert Mustacchi  * A full copy of the text of the CDDL should have accompanied this
871815ce7SRobert Mustacchi  * source.  A copy of the CDDL is also available via the Internet at
971815ce7SRobert Mustacchi  * http://www.illumos.org/license/CDDL.
1071815ce7SRobert Mustacchi  */
1171815ce7SRobert Mustacchi 
1271815ce7SRobert Mustacchi /*
13*0dd92943SRobert Mustacchi  * Copyright 2023 Oxide Computer Company
1471815ce7SRobert Mustacchi  */
1571815ce7SRobert Mustacchi 
1671815ce7SRobert Mustacchi /*
1771815ce7SRobert Mustacchi  * Here we try to test a few variants of the Zen 3 COD based hashing, including
1871815ce7SRobert Mustacchi  * our favorite 6 channel. These all use DFv3 and 1 DPC 16 GiB channels without
1971815ce7SRobert Mustacchi  * any internal hashing (that is tested elsewhere).
2071815ce7SRobert Mustacchi  */
2171815ce7SRobert Mustacchi 
2271815ce7SRobert Mustacchi #include "zen_umc_test.h"
2371815ce7SRobert Mustacchi 
2471815ce7SRobert Mustacchi /*
2571815ce7SRobert Mustacchi  * This is a basic 4-channel hash, sending us out to one of four locations. This
2671815ce7SRobert Mustacchi  * enables hashing in all three regions because 6 channel variant does not seem
2771815ce7SRobert Mustacchi  * to use them.
2871815ce7SRobert Mustacchi  */
2971815ce7SRobert Mustacchi static const zen_umc_t zen_umc_cod_4ch = {
3071815ce7SRobert Mustacchi 	.umc_tom = 4ULL * 1024ULL * 1024ULL * 1024ULL,
3171815ce7SRobert Mustacchi 	.umc_tom2 = 64ULL * 1024ULL * 1024ULL * 1024ULL,
3271815ce7SRobert Mustacchi 	.umc_df_rev = DF_REV_3,
3371815ce7SRobert Mustacchi 	.umc_decomp = {
3471815ce7SRobert Mustacchi 		.dfd_sock_mask = 0x01,
3571815ce7SRobert Mustacchi 		.dfd_die_mask = 0x00,
3671815ce7SRobert Mustacchi 		.dfd_node_mask = 0x20,
3771815ce7SRobert Mustacchi 		.dfd_comp_mask = 0x1f,
3871815ce7SRobert Mustacchi 		.dfd_sock_shift = 0,
3971815ce7SRobert Mustacchi 		.dfd_die_shift = 0,
4071815ce7SRobert Mustacchi 		.dfd_node_shift = 5,
4171815ce7SRobert Mustacchi 		.dfd_comp_shift = 0
4271815ce7SRobert Mustacchi 	},
4371815ce7SRobert Mustacchi 	.umc_ndfs = 1,
4471815ce7SRobert Mustacchi 	.umc_dfs = { {
4571815ce7SRobert Mustacchi 		.zud_dfno = 0,
4671815ce7SRobert Mustacchi 		.zud_dram_nrules = 1,
4771815ce7SRobert Mustacchi 		.zud_nchan = 4,
4871815ce7SRobert Mustacchi 		.zud_cs_nremap = 0,
4971815ce7SRobert Mustacchi 		.zud_hole_base = 0,
5071815ce7SRobert Mustacchi 		.zud_rules = { {
5171815ce7SRobert Mustacchi 			.ddr_flags = DF_DRAM_F_VALID | DF_DRAM_F_HASH_16_18 |
5271815ce7SRobert Mustacchi 			    DF_DRAM_F_HASH_21_23 | DF_DRAM_F_HASH_30_32,
5371815ce7SRobert Mustacchi 			.ddr_base = 0,
5471815ce7SRobert Mustacchi 			.ddr_limit = 64ULL * 1024ULL * 1024ULL * 1024ULL,
5571815ce7SRobert Mustacchi 			.ddr_dest_fabid = 0,
5671815ce7SRobert Mustacchi 			.ddr_sock_ileave_bits = 0,
5771815ce7SRobert Mustacchi 			.ddr_die_ileave_bits = 0,
5871815ce7SRobert Mustacchi 			.ddr_addr_start = 9,
5971815ce7SRobert Mustacchi 			.ddr_chan_ileave = DF_CHAN_ILEAVE_COD2_4CH
6071815ce7SRobert Mustacchi 		} },
6171815ce7SRobert Mustacchi 		.zud_chan = { {
6271815ce7SRobert Mustacchi 			.chan_flags = UMC_CHAN_F_ECC_EN,
6371815ce7SRobert Mustacchi 			.chan_fabid = 0,
6471815ce7SRobert Mustacchi 			.chan_instid = 0,
6571815ce7SRobert Mustacchi 			.chan_logid = 0,
6671815ce7SRobert Mustacchi 			.chan_nrules = 1,
67*0dd92943SRobert Mustacchi 			.chan_type = UMC_DIMM_T_DDR4,
6871815ce7SRobert Mustacchi 			.chan_rules = { {
6971815ce7SRobert Mustacchi 				.ddr_flags = DF_DRAM_F_VALID |
7071815ce7SRobert Mustacchi 				    DF_DRAM_F_HASH_16_18 |
7171815ce7SRobert Mustacchi 				    DF_DRAM_F_HASH_21_23 |
7271815ce7SRobert Mustacchi 				    DF_DRAM_F_HASH_30_32,
7371815ce7SRobert Mustacchi 				.ddr_base = 0,
7471815ce7SRobert Mustacchi 				.ddr_limit = 64ULL * 1024ULL * 1024ULL *
7571815ce7SRobert Mustacchi 				    1024ULL,
7671815ce7SRobert Mustacchi 				.ddr_dest_fabid = 0,
7771815ce7SRobert Mustacchi 				.ddr_sock_ileave_bits = 0,
7871815ce7SRobert Mustacchi 				.ddr_die_ileave_bits = 0,
7971815ce7SRobert Mustacchi 				.ddr_addr_start = 9,
8071815ce7SRobert Mustacchi 				.ddr_chan_ileave = DF_CHAN_ILEAVE_COD2_4CH
8171815ce7SRobert Mustacchi 			} },
8271815ce7SRobert Mustacchi 			.chan_dimms = { {
8371815ce7SRobert Mustacchi 				.ud_flags = UMC_DIMM_F_VALID,
8471815ce7SRobert Mustacchi 				.ud_width = UMC_DIMM_W_X4,
8571815ce7SRobert Mustacchi 				.ud_kind = UMC_DIMM_K_RDIMM,
8671815ce7SRobert Mustacchi 				.ud_dimmno = 0,
8771815ce7SRobert Mustacchi 				.ud_cs = { {
8871815ce7SRobert Mustacchi 					.ucs_base = {
8971815ce7SRobert Mustacchi 						.udb_base = 0,
9071815ce7SRobert Mustacchi 						.udb_valid = B_TRUE
9171815ce7SRobert Mustacchi 					},
9271815ce7SRobert Mustacchi 					.ucs_base_mask = 0x3ffffffff,
9371815ce7SRobert Mustacchi 					.ucs_nbanks = 0x4,
9471815ce7SRobert Mustacchi 					.ucs_ncol = 0xa,
9571815ce7SRobert Mustacchi 					.ucs_nrow_lo = 0x11,
9671815ce7SRobert Mustacchi 					.ucs_nbank_groups = 0x2,
9771815ce7SRobert Mustacchi 					.ucs_row_hi_bit = 0x18,
9871815ce7SRobert Mustacchi 					.ucs_row_low_bit = 0x11,
9971815ce7SRobert Mustacchi 					.ucs_bank_bits = { 0xf, 0x10, 0xd,
10071815ce7SRobert Mustacchi 					    0xe },
10171815ce7SRobert Mustacchi 					.ucs_col_bits = { 0x3, 0x4, 0x5, 0x6,
10271815ce7SRobert Mustacchi 					    0x7, 0x8, 0x9, 0xa, 0xb, 0xc }
10371815ce7SRobert Mustacchi 				} }
10471815ce7SRobert Mustacchi 			} },
10571815ce7SRobert Mustacchi 		}, {
10671815ce7SRobert Mustacchi 			.chan_flags = UMC_CHAN_F_ECC_EN,
10771815ce7SRobert Mustacchi 			.chan_fabid = 1,
10871815ce7SRobert Mustacchi 			.chan_instid = 1,
10971815ce7SRobert Mustacchi 			.chan_logid = 1,
11071815ce7SRobert Mustacchi 			.chan_nrules = 1,
11171815ce7SRobert Mustacchi 			.chan_rules = { {
11271815ce7SRobert Mustacchi 				.ddr_flags = DF_DRAM_F_VALID |
11371815ce7SRobert Mustacchi 				    DF_DRAM_F_HASH_16_18 |
11471815ce7SRobert Mustacchi 				    DF_DRAM_F_HASH_21_23 |
11571815ce7SRobert Mustacchi 				    DF_DRAM_F_HASH_30_32,
11671815ce7SRobert Mustacchi 				.ddr_base = 0,
11771815ce7SRobert Mustacchi 				.ddr_limit = 64ULL * 1024ULL * 1024ULL *
11871815ce7SRobert Mustacchi 				    1024ULL,
11971815ce7SRobert Mustacchi 				.ddr_dest_fabid = 0,
12071815ce7SRobert Mustacchi 				.ddr_sock_ileave_bits = 0,
12171815ce7SRobert Mustacchi 				.ddr_die_ileave_bits = 0,
12271815ce7SRobert Mustacchi 				.ddr_addr_start = 9,
12371815ce7SRobert Mustacchi 				.ddr_chan_ileave = DF_CHAN_ILEAVE_COD2_4CH
12471815ce7SRobert Mustacchi 			} },
12571815ce7SRobert Mustacchi 			.chan_dimms = { {
12671815ce7SRobert Mustacchi 				.ud_flags = UMC_DIMM_F_VALID,
12771815ce7SRobert Mustacchi 				.ud_width = UMC_DIMM_W_X4,
12871815ce7SRobert Mustacchi 				.ud_kind = UMC_DIMM_K_RDIMM,
12971815ce7SRobert Mustacchi 				.ud_dimmno = 0,
13071815ce7SRobert Mustacchi 				.ud_cs = { {
13171815ce7SRobert Mustacchi 					.ucs_base = {
13271815ce7SRobert Mustacchi 						.udb_base = 0,
13371815ce7SRobert Mustacchi 						.udb_valid = B_TRUE
13471815ce7SRobert Mustacchi 					},
13571815ce7SRobert Mustacchi 					.ucs_base_mask = 0x3ffffffff,
13671815ce7SRobert Mustacchi 					.ucs_nbanks = 0x4,
13771815ce7SRobert Mustacchi 					.ucs_ncol = 0xa,
13871815ce7SRobert Mustacchi 					.ucs_nrow_lo = 0x11,
13971815ce7SRobert Mustacchi 					.ucs_nbank_groups = 0x2,
14071815ce7SRobert Mustacchi 					.ucs_row_hi_bit = 0x18,
14171815ce7SRobert Mustacchi 					.ucs_row_low_bit = 0x11,
14271815ce7SRobert Mustacchi 					.ucs_bank_bits = { 0xf, 0x10, 0xd,
14371815ce7SRobert Mustacchi 					    0xe },
14471815ce7SRobert Mustacchi 					.ucs_col_bits = { 0x3, 0x4, 0x5, 0x6,
14571815ce7SRobert Mustacchi 					    0x7, 0x8, 0x9, 0xa, 0xb, 0xc }
14671815ce7SRobert Mustacchi 				} }
14771815ce7SRobert Mustacchi 			} },
14871815ce7SRobert Mustacchi 		}, {
14971815ce7SRobert Mustacchi 			.chan_flags = UMC_CHAN_F_ECC_EN,
15071815ce7SRobert Mustacchi 			.chan_fabid = 2,
15171815ce7SRobert Mustacchi 			.chan_instid = 2,
15271815ce7SRobert Mustacchi 			.chan_logid = 2,
15371815ce7SRobert Mustacchi 			.chan_nrules = 1,
154*0dd92943SRobert Mustacchi 			.chan_type = UMC_DIMM_T_DDR4,
15571815ce7SRobert Mustacchi 			.chan_rules = { {
15671815ce7SRobert Mustacchi 				.ddr_flags = DF_DRAM_F_VALID |
15771815ce7SRobert Mustacchi 				    DF_DRAM_F_HASH_16_18 |
15871815ce7SRobert Mustacchi 				    DF_DRAM_F_HASH_21_23 |
15971815ce7SRobert Mustacchi 				    DF_DRAM_F_HASH_30_32,
16071815ce7SRobert Mustacchi 				.ddr_base = 0,
16171815ce7SRobert Mustacchi 				.ddr_limit = 64ULL * 1024ULL * 1024ULL *
16271815ce7SRobert Mustacchi 				    1024ULL,
16371815ce7SRobert Mustacchi 				.ddr_dest_fabid = 0,
16471815ce7SRobert Mustacchi 				.ddr_sock_ileave_bits = 0,
16571815ce7SRobert Mustacchi 				.ddr_die_ileave_bits = 0,
16671815ce7SRobert Mustacchi 				.ddr_addr_start = 9,
16771815ce7SRobert Mustacchi 				.ddr_chan_ileave = DF_CHAN_ILEAVE_COD2_4CH
16871815ce7SRobert Mustacchi 			} },
16971815ce7SRobert Mustacchi 			.chan_dimms = { {
17071815ce7SRobert Mustacchi 				.ud_flags = UMC_DIMM_F_VALID,
17171815ce7SRobert Mustacchi 				.ud_width = UMC_DIMM_W_X4,
17271815ce7SRobert Mustacchi 				.ud_kind = UMC_DIMM_K_RDIMM,
17371815ce7SRobert Mustacchi 				.ud_dimmno = 0,
17471815ce7SRobert Mustacchi 				.ud_cs = { {
17571815ce7SRobert Mustacchi 					.ucs_base = {
17671815ce7SRobert Mustacchi 						.udb_base = 0,
17771815ce7SRobert Mustacchi 						.udb_valid = B_TRUE
17871815ce7SRobert Mustacchi 					},
17971815ce7SRobert Mustacchi 					.ucs_base_mask = 0x3ffffffff,
18071815ce7SRobert Mustacchi 					.ucs_nbanks = 0x4,
18171815ce7SRobert Mustacchi 					.ucs_ncol = 0xa,
18271815ce7SRobert Mustacchi 					.ucs_nrow_lo = 0x11,
18371815ce7SRobert Mustacchi 					.ucs_nbank_groups = 0x2,
18471815ce7SRobert Mustacchi 					.ucs_row_hi_bit = 0x18,
18571815ce7SRobert Mustacchi 					.ucs_row_low_bit = 0x11,
18671815ce7SRobert Mustacchi 					.ucs_bank_bits = { 0xf, 0x10, 0xd,
18771815ce7SRobert Mustacchi 					    0xe },
18871815ce7SRobert Mustacchi 					.ucs_col_bits = { 0x3, 0x4, 0x5, 0x6,
18971815ce7SRobert Mustacchi 					    0x7, 0x8, 0x9, 0xa, 0xb, 0xc }
19071815ce7SRobert Mustacchi 				} }
19171815ce7SRobert Mustacchi 			} },
19271815ce7SRobert Mustacchi 		}, {
19371815ce7SRobert Mustacchi 			.chan_flags = UMC_CHAN_F_ECC_EN,
19471815ce7SRobert Mustacchi 			.chan_fabid = 3,
19571815ce7SRobert Mustacchi 			.chan_instid = 3,
19671815ce7SRobert Mustacchi 			.chan_logid = 3,
19771815ce7SRobert Mustacchi 			.chan_nrules = 1,
198*0dd92943SRobert Mustacchi 			.chan_type = UMC_DIMM_T_DDR4,
19971815ce7SRobert Mustacchi 			.chan_rules = { {
20071815ce7SRobert Mustacchi 				.ddr_flags = DF_DRAM_F_VALID |
20171815ce7SRobert Mustacchi 				    DF_DRAM_F_HASH_16_18 |
20271815ce7SRobert Mustacchi 				    DF_DRAM_F_HASH_21_23 |
20371815ce7SRobert Mustacchi 				    DF_DRAM_F_HASH_30_32,
20471815ce7SRobert Mustacchi 				.ddr_base = 0,
20571815ce7SRobert Mustacchi 				.ddr_limit = 64ULL * 1024ULL * 1024ULL *
20671815ce7SRobert Mustacchi 				    1024ULL,
20771815ce7SRobert Mustacchi 				.ddr_dest_fabid = 0,
20871815ce7SRobert Mustacchi 				.ddr_sock_ileave_bits = 0,
20971815ce7SRobert Mustacchi 				.ddr_die_ileave_bits = 0,
21071815ce7SRobert Mustacchi 				.ddr_addr_start = 9,
21171815ce7SRobert Mustacchi 				.ddr_chan_ileave = DF_CHAN_ILEAVE_COD2_4CH
21271815ce7SRobert Mustacchi 			} },
21371815ce7SRobert Mustacchi 			.chan_dimms = { {
21471815ce7SRobert Mustacchi 				.ud_flags = UMC_DIMM_F_VALID,
21571815ce7SRobert Mustacchi 				.ud_width = UMC_DIMM_W_X4,
21671815ce7SRobert Mustacchi 				.ud_kind = UMC_DIMM_K_RDIMM,
21771815ce7SRobert Mustacchi 				.ud_dimmno = 0,
21871815ce7SRobert Mustacchi 				.ud_cs = { {
21971815ce7SRobert Mustacchi 					.ucs_base = {
22071815ce7SRobert Mustacchi 						.udb_base = 0,
22171815ce7SRobert Mustacchi 						.udb_valid = B_TRUE
22271815ce7SRobert Mustacchi 					},
22371815ce7SRobert Mustacchi 					.ucs_base_mask = 0x3ffffffff,
22471815ce7SRobert Mustacchi 					.ucs_nbanks = 0x4,
22571815ce7SRobert Mustacchi 					.ucs_ncol = 0xa,
22671815ce7SRobert Mustacchi 					.ucs_nrow_lo = 0x11,
22771815ce7SRobert Mustacchi 					.ucs_nbank_groups = 0x2,
22871815ce7SRobert Mustacchi 					.ucs_row_hi_bit = 0x18,
22971815ce7SRobert Mustacchi 					.ucs_row_low_bit = 0x11,
23071815ce7SRobert Mustacchi 					.ucs_bank_bits = { 0xf, 0x10, 0xd,
23171815ce7SRobert Mustacchi 					    0xe },
23271815ce7SRobert Mustacchi 					.ucs_col_bits = { 0x3, 0x4, 0x5, 0x6,
23371815ce7SRobert Mustacchi 					    0x7, 0x8, 0x9, 0xa, 0xb, 0xc }
23471815ce7SRobert Mustacchi 				} }
23571815ce7SRobert Mustacchi 			} },
23671815ce7SRobert Mustacchi 		}  }
23771815ce7SRobert Mustacchi 	} }
23871815ce7SRobert Mustacchi };
23971815ce7SRobert Mustacchi 
24071815ce7SRobert Mustacchi static const zen_umc_t zen_umc_cod_6ch = {
24171815ce7SRobert Mustacchi 	.umc_tom = 4ULL * 1024ULL * 1024ULL * 1024ULL,
24271815ce7SRobert Mustacchi 	.umc_tom2 = 96ULL * 1024ULL * 1024ULL * 1024ULL,
24371815ce7SRobert Mustacchi 	.umc_df_rev = DF_REV_3,
24471815ce7SRobert Mustacchi 	.umc_decomp = {
24571815ce7SRobert Mustacchi 		.dfd_sock_mask = 0x01,
24671815ce7SRobert Mustacchi 		.dfd_die_mask = 0x00,
24771815ce7SRobert Mustacchi 		.dfd_node_mask = 0x20,
24871815ce7SRobert Mustacchi 		.dfd_comp_mask = 0x1f,
24971815ce7SRobert Mustacchi 		.dfd_sock_shift = 0,
25071815ce7SRobert Mustacchi 		.dfd_die_shift = 0,
25171815ce7SRobert Mustacchi 		.dfd_node_shift = 5,
25271815ce7SRobert Mustacchi 		.dfd_comp_shift = 0
25371815ce7SRobert Mustacchi 	},
25471815ce7SRobert Mustacchi 	.umc_ndfs = 1,
25571815ce7SRobert Mustacchi 	.umc_dfs = { {
25671815ce7SRobert Mustacchi 		.zud_dfno = 0,
25771815ce7SRobert Mustacchi 		.zud_dram_nrules = 1,
25871815ce7SRobert Mustacchi 		.zud_nchan = 6,
25971815ce7SRobert Mustacchi 		.zud_cs_nremap = 0,
26071815ce7SRobert Mustacchi 		.zud_hole_base = 0,
26171815ce7SRobert Mustacchi 		.zud_rules = { {
26271815ce7SRobert Mustacchi 			.ddr_flags = DF_DRAM_F_VALID | DF_DRAM_F_HASH_21_23 |
26371815ce7SRobert Mustacchi 			    DF_DRAM_F_HASH_30_32,
26471815ce7SRobert Mustacchi 			.ddr_base = 0,
26571815ce7SRobert Mustacchi 			.ddr_limit = 96ULL * 1024ULL * 1024ULL * 1024ULL,
26671815ce7SRobert Mustacchi 			.ddr_dest_fabid = 0,
26771815ce7SRobert Mustacchi 			.ddr_sock_ileave_bits = 0,
26871815ce7SRobert Mustacchi 			.ddr_die_ileave_bits = 0,
26971815ce7SRobert Mustacchi 			.ddr_addr_start = 12,
27071815ce7SRobert Mustacchi 			.ddr_chan_ileave = DF_CHAN_ILEAVE_6CH
27171815ce7SRobert Mustacchi 		} },
27271815ce7SRobert Mustacchi 		.zud_chan = { {
27371815ce7SRobert Mustacchi 			.chan_flags = UMC_CHAN_F_ECC_EN,
27471815ce7SRobert Mustacchi 			.chan_fabid = 0,
27571815ce7SRobert Mustacchi 			.chan_instid = 0,
27671815ce7SRobert Mustacchi 			.chan_logid = 0,
27771815ce7SRobert Mustacchi 			.chan_nrules = 1,
278*0dd92943SRobert Mustacchi 			.chan_type = UMC_DIMM_T_DDR4,
27971815ce7SRobert Mustacchi 			.chan_np2_space0 = 21,
28071815ce7SRobert Mustacchi 			.chan_rules = { {
28171815ce7SRobert Mustacchi 				.ddr_flags = DF_DRAM_F_VALID |
28271815ce7SRobert Mustacchi 				    DF_DRAM_F_HASH_21_23 |
28371815ce7SRobert Mustacchi 				    DF_DRAM_F_HASH_30_32,
28471815ce7SRobert Mustacchi 				.ddr_base = 0,
28571815ce7SRobert Mustacchi 				.ddr_limit = 96ULL * 1024ULL * 1024ULL *
28671815ce7SRobert Mustacchi 				    1024ULL,
28771815ce7SRobert Mustacchi 				.ddr_dest_fabid = 0,
28871815ce7SRobert Mustacchi 				.ddr_sock_ileave_bits = 0,
28971815ce7SRobert Mustacchi 				.ddr_die_ileave_bits = 0,
29071815ce7SRobert Mustacchi 				.ddr_addr_start = 12,
29171815ce7SRobert Mustacchi 				.ddr_chan_ileave = DF_CHAN_ILEAVE_6CH
29271815ce7SRobert Mustacchi 			} },
29371815ce7SRobert Mustacchi 			.chan_dimms = { {
29471815ce7SRobert Mustacchi 				.ud_flags = UMC_DIMM_F_VALID,
29571815ce7SRobert Mustacchi 				.ud_width = UMC_DIMM_W_X4,
29671815ce7SRobert Mustacchi 				.ud_kind = UMC_DIMM_K_RDIMM,
29771815ce7SRobert Mustacchi 				.ud_dimmno = 0,
29871815ce7SRobert Mustacchi 				.ud_cs = { {
29971815ce7SRobert Mustacchi 					.ucs_base = {
30071815ce7SRobert Mustacchi 						.udb_base = 0,
30171815ce7SRobert Mustacchi 						.udb_valid = B_TRUE
30271815ce7SRobert Mustacchi 					},
30371815ce7SRobert Mustacchi 					.ucs_base_mask = 0x3ffffffff,
30471815ce7SRobert Mustacchi 					.ucs_nbanks = 0x4,
30571815ce7SRobert Mustacchi 					.ucs_ncol = 0xa,
30671815ce7SRobert Mustacchi 					.ucs_nrow_lo = 0x11,
30771815ce7SRobert Mustacchi 					.ucs_nbank_groups = 0x2,
30871815ce7SRobert Mustacchi 					.ucs_row_hi_bit = 0x18,
30971815ce7SRobert Mustacchi 					.ucs_row_low_bit = 0x11,
31071815ce7SRobert Mustacchi 					.ucs_bank_bits = { 0xf, 0x10, 0xd,
31171815ce7SRobert Mustacchi 					    0xe },
31271815ce7SRobert Mustacchi 					.ucs_col_bits = { 0x3, 0x4, 0x5, 0x6,
31371815ce7SRobert Mustacchi 					    0x7, 0x8, 0x9, 0xa, 0xb, 0xc }
31471815ce7SRobert Mustacchi 				} }
31571815ce7SRobert Mustacchi 			} },
31671815ce7SRobert Mustacchi 		}, {
31771815ce7SRobert Mustacchi 			.chan_flags = UMC_CHAN_F_ECC_EN,
31871815ce7SRobert Mustacchi 			.chan_fabid = 1,
31971815ce7SRobert Mustacchi 			.chan_instid = 1,
32071815ce7SRobert Mustacchi 			.chan_logid = 1,
32171815ce7SRobert Mustacchi 			.chan_nrules = 1,
32271815ce7SRobert Mustacchi 			.chan_np2_space0 = 21,
323*0dd92943SRobert Mustacchi 			.chan_type = UMC_DIMM_T_DDR4,
32471815ce7SRobert Mustacchi 			.chan_rules = { {
32571815ce7SRobert Mustacchi 				.ddr_flags = DF_DRAM_F_VALID |
32671815ce7SRobert Mustacchi 				    DF_DRAM_F_HASH_21_23 |
32771815ce7SRobert Mustacchi 				    DF_DRAM_F_HASH_30_32,
32871815ce7SRobert Mustacchi 				.ddr_base = 0,
32971815ce7SRobert Mustacchi 				.ddr_limit = 96ULL * 1024ULL * 1024ULL *
33071815ce7SRobert Mustacchi 				    1024ULL,
33171815ce7SRobert Mustacchi 				.ddr_dest_fabid = 0,
33271815ce7SRobert Mustacchi 				.ddr_sock_ileave_bits = 0,
33371815ce7SRobert Mustacchi 				.ddr_die_ileave_bits = 0,
33471815ce7SRobert Mustacchi 				.ddr_addr_start = 12,
33571815ce7SRobert Mustacchi 				.ddr_chan_ileave = DF_CHAN_ILEAVE_6CH
33671815ce7SRobert Mustacchi 			} },
33771815ce7SRobert Mustacchi 			.chan_dimms = { {
33871815ce7SRobert Mustacchi 				.ud_flags = UMC_DIMM_F_VALID,
33971815ce7SRobert Mustacchi 				.ud_width = UMC_DIMM_W_X4,
34071815ce7SRobert Mustacchi 				.ud_kind = UMC_DIMM_K_RDIMM,
34171815ce7SRobert Mustacchi 				.ud_dimmno = 0,
34271815ce7SRobert Mustacchi 				.ud_cs = { {
34371815ce7SRobert Mustacchi 					.ucs_base = {
34471815ce7SRobert Mustacchi 						.udb_base = 0,
34571815ce7SRobert Mustacchi 						.udb_valid = B_TRUE
34671815ce7SRobert Mustacchi 					},
34771815ce7SRobert Mustacchi 					.ucs_base_mask = 0x3ffffffff,
34871815ce7SRobert Mustacchi 					.ucs_nbanks = 0x4,
34971815ce7SRobert Mustacchi 					.ucs_ncol = 0xa,
35071815ce7SRobert Mustacchi 					.ucs_nrow_lo = 0x11,
35171815ce7SRobert Mustacchi 					.ucs_nbank_groups = 0x2,
35271815ce7SRobert Mustacchi 					.ucs_row_hi_bit = 0x18,
35371815ce7SRobert Mustacchi 					.ucs_row_low_bit = 0x11,
35471815ce7SRobert Mustacchi 					.ucs_bank_bits = { 0xf, 0x10, 0xd,
35571815ce7SRobert Mustacchi 					    0xe },
35671815ce7SRobert Mustacchi 					.ucs_col_bits = { 0x3, 0x4, 0x5, 0x6,
35771815ce7SRobert Mustacchi 					    0x7, 0x8, 0x9, 0xa, 0xb, 0xc }
35871815ce7SRobert Mustacchi 				} }
35971815ce7SRobert Mustacchi 			} },
36071815ce7SRobert Mustacchi 		}, {
36171815ce7SRobert Mustacchi 			.chan_flags = UMC_CHAN_F_ECC_EN,
36271815ce7SRobert Mustacchi 			.chan_fabid = 2,
36371815ce7SRobert Mustacchi 			.chan_instid = 2,
36471815ce7SRobert Mustacchi 			.chan_logid = 2,
36571815ce7SRobert Mustacchi 			.chan_nrules = 1,
36671815ce7SRobert Mustacchi 			.chan_np2_space0 = 21,
367*0dd92943SRobert Mustacchi 			.chan_type = UMC_DIMM_T_DDR4,
36871815ce7SRobert Mustacchi 			.chan_rules = { {
36971815ce7SRobert Mustacchi 				.ddr_flags = DF_DRAM_F_VALID |
37071815ce7SRobert Mustacchi 				    DF_DRAM_F_HASH_21_23 |
37171815ce7SRobert Mustacchi 				    DF_DRAM_F_HASH_30_32,
37271815ce7SRobert Mustacchi 				.ddr_base = 0,
37371815ce7SRobert Mustacchi 				.ddr_limit = 96ULL * 1024ULL * 1024ULL *
37471815ce7SRobert Mustacchi 				    1024ULL,
37571815ce7SRobert Mustacchi 				.ddr_dest_fabid = 0,
37671815ce7SRobert Mustacchi 				.ddr_sock_ileave_bits = 0,
37771815ce7SRobert Mustacchi 				.ddr_die_ileave_bits = 0,
37871815ce7SRobert Mustacchi 				.ddr_addr_start = 12,
37971815ce7SRobert Mustacchi 				.ddr_chan_ileave = DF_CHAN_ILEAVE_6CH
38071815ce7SRobert Mustacchi 			} },
38171815ce7SRobert Mustacchi 			.chan_dimms = { {
38271815ce7SRobert Mustacchi 				.ud_flags = UMC_DIMM_F_VALID,
38371815ce7SRobert Mustacchi 				.ud_width = UMC_DIMM_W_X4,
38471815ce7SRobert Mustacchi 				.ud_kind = UMC_DIMM_K_RDIMM,
38571815ce7SRobert Mustacchi 				.ud_dimmno = 0,
38671815ce7SRobert Mustacchi 				.ud_cs = { {
38771815ce7SRobert Mustacchi 					.ucs_base = {
38871815ce7SRobert Mustacchi 						.udb_base = 0,
38971815ce7SRobert Mustacchi 						.udb_valid = B_TRUE
39071815ce7SRobert Mustacchi 					},
39171815ce7SRobert Mustacchi 					.ucs_base_mask = 0x3ffffffff,
39271815ce7SRobert Mustacchi 					.ucs_nbanks = 0x4,
39371815ce7SRobert Mustacchi 					.ucs_ncol = 0xa,
39471815ce7SRobert Mustacchi 					.ucs_nrow_lo = 0x11,
39571815ce7SRobert Mustacchi 					.ucs_nbank_groups = 0x2,
39671815ce7SRobert Mustacchi 					.ucs_row_hi_bit = 0x18,
39771815ce7SRobert Mustacchi 					.ucs_row_low_bit = 0x11,
39871815ce7SRobert Mustacchi 					.ucs_bank_bits = { 0xf, 0x10, 0xd,
39971815ce7SRobert Mustacchi 					    0xe },
40071815ce7SRobert Mustacchi 					.ucs_col_bits = { 0x3, 0x4, 0x5, 0x6,
40171815ce7SRobert Mustacchi 					    0x7, 0x8, 0x9, 0xa, 0xb, 0xc }
40271815ce7SRobert Mustacchi 				} }
40371815ce7SRobert Mustacchi 			} },
40471815ce7SRobert Mustacchi 		}, {
40571815ce7SRobert Mustacchi 			.chan_flags = UMC_CHAN_F_ECC_EN,
40671815ce7SRobert Mustacchi 			.chan_fabid = 3,
40771815ce7SRobert Mustacchi 			.chan_instid = 3,
40871815ce7SRobert Mustacchi 			.chan_logid = 3,
40971815ce7SRobert Mustacchi 			.chan_nrules = 1,
41071815ce7SRobert Mustacchi 			.chan_np2_space0 = 21,
411*0dd92943SRobert Mustacchi 			.chan_type = UMC_DIMM_T_DDR4,
41271815ce7SRobert Mustacchi 			.chan_rules = { {
41371815ce7SRobert Mustacchi 				.ddr_flags = DF_DRAM_F_VALID |
41471815ce7SRobert Mustacchi 				    DF_DRAM_F_HASH_21_23 |
41571815ce7SRobert Mustacchi 				    DF_DRAM_F_HASH_30_32,
41671815ce7SRobert Mustacchi 				.ddr_base = 0,
41771815ce7SRobert Mustacchi 				.ddr_limit = 96ULL * 1024ULL * 1024ULL *
41871815ce7SRobert Mustacchi 				    1024ULL,
41971815ce7SRobert Mustacchi 				.ddr_dest_fabid = 0,
42071815ce7SRobert Mustacchi 				.ddr_sock_ileave_bits = 0,
42171815ce7SRobert Mustacchi 				.ddr_die_ileave_bits = 0,
42271815ce7SRobert Mustacchi 				.ddr_addr_start = 12,
42371815ce7SRobert Mustacchi 				.ddr_chan_ileave = DF_CHAN_ILEAVE_6CH
42471815ce7SRobert Mustacchi 			} },
42571815ce7SRobert Mustacchi 			.chan_dimms = { {
42671815ce7SRobert Mustacchi 				.ud_flags = UMC_DIMM_F_VALID,
42771815ce7SRobert Mustacchi 				.ud_width = UMC_DIMM_W_X4,
42871815ce7SRobert Mustacchi 				.ud_kind = UMC_DIMM_K_RDIMM,
42971815ce7SRobert Mustacchi 				.ud_dimmno = 0,
43071815ce7SRobert Mustacchi 				.ud_cs = { {
43171815ce7SRobert Mustacchi 					.ucs_base = {
43271815ce7SRobert Mustacchi 						.udb_base = 0,
43371815ce7SRobert Mustacchi 						.udb_valid = B_TRUE
43471815ce7SRobert Mustacchi 					},
43571815ce7SRobert Mustacchi 					.ucs_base_mask = 0x3ffffffff,
43671815ce7SRobert Mustacchi 					.ucs_nbanks = 0x4,
43771815ce7SRobert Mustacchi 					.ucs_ncol = 0xa,
43871815ce7SRobert Mustacchi 					.ucs_nrow_lo = 0x11,
43971815ce7SRobert Mustacchi 					.ucs_nbank_groups = 0x2,
44071815ce7SRobert Mustacchi 					.ucs_row_hi_bit = 0x18,
44171815ce7SRobert Mustacchi 					.ucs_row_low_bit = 0x11,
44271815ce7SRobert Mustacchi 					.ucs_bank_bits = { 0xf, 0x10, 0xd,
44371815ce7SRobert Mustacchi 					    0xe },
44471815ce7SRobert Mustacchi 					.ucs_col_bits = { 0x3, 0x4, 0x5, 0x6,
44571815ce7SRobert Mustacchi 					    0x7, 0x8, 0x9, 0xa, 0xb, 0xc }
44671815ce7SRobert Mustacchi 				} }
44771815ce7SRobert Mustacchi 			} },
44871815ce7SRobert Mustacchi 		}, {
44971815ce7SRobert Mustacchi 			.chan_flags = UMC_CHAN_F_ECC_EN,
45071815ce7SRobert Mustacchi 			.chan_fabid = 4,
45171815ce7SRobert Mustacchi 			.chan_instid = 4,
45271815ce7SRobert Mustacchi 			.chan_logid = 4,
45371815ce7SRobert Mustacchi 			.chan_nrules = 1,
45471815ce7SRobert Mustacchi 			.chan_np2_space0 = 21,
455*0dd92943SRobert Mustacchi 			.chan_type = UMC_DIMM_T_DDR4,
45671815ce7SRobert Mustacchi 			.chan_rules = { {
45771815ce7SRobert Mustacchi 				.ddr_flags = DF_DRAM_F_VALID |
45871815ce7SRobert Mustacchi 				    DF_DRAM_F_HASH_21_23 |
45971815ce7SRobert Mustacchi 				    DF_DRAM_F_HASH_30_32,
46071815ce7SRobert Mustacchi 				.ddr_base = 0,
46171815ce7SRobert Mustacchi 				.ddr_limit = 96ULL * 1024ULL * 1024ULL *
46271815ce7SRobert Mustacchi 				    1024ULL,
46371815ce7SRobert Mustacchi 				.ddr_dest_fabid = 0,
46471815ce7SRobert Mustacchi 				.ddr_sock_ileave_bits = 0,
46571815ce7SRobert Mustacchi 				.ddr_die_ileave_bits = 0,
46671815ce7SRobert Mustacchi 				.ddr_addr_start = 12,
46771815ce7SRobert Mustacchi 				.ddr_chan_ileave = DF_CHAN_ILEAVE_6CH
46871815ce7SRobert Mustacchi 			} },
46971815ce7SRobert Mustacchi 			.chan_dimms = { {
47071815ce7SRobert Mustacchi 				.ud_flags = UMC_DIMM_F_VALID,
47171815ce7SRobert Mustacchi 				.ud_width = UMC_DIMM_W_X4,
47271815ce7SRobert Mustacchi 				.ud_kind = UMC_DIMM_K_RDIMM,
47371815ce7SRobert Mustacchi 				.ud_dimmno = 0,
47471815ce7SRobert Mustacchi 				.ud_cs = { {
47571815ce7SRobert Mustacchi 					.ucs_base = {
47671815ce7SRobert Mustacchi 						.udb_base = 0,
47771815ce7SRobert Mustacchi 						.udb_valid = B_TRUE
47871815ce7SRobert Mustacchi 					},
47971815ce7SRobert Mustacchi 					.ucs_base_mask = 0x3ffffffff,
48071815ce7SRobert Mustacchi 					.ucs_nbanks = 0x4,
48171815ce7SRobert Mustacchi 					.ucs_ncol = 0xa,
48271815ce7SRobert Mustacchi 					.ucs_nrow_lo = 0x11,
48371815ce7SRobert Mustacchi 					.ucs_nbank_groups = 0x2,
48471815ce7SRobert Mustacchi 					.ucs_row_hi_bit = 0x18,
48571815ce7SRobert Mustacchi 					.ucs_row_low_bit = 0x11,
48671815ce7SRobert Mustacchi 					.ucs_bank_bits = { 0xf, 0x10, 0xd,
48771815ce7SRobert Mustacchi 					    0xe },
48871815ce7SRobert Mustacchi 					.ucs_col_bits = { 0x3, 0x4, 0x5, 0x6,
48971815ce7SRobert Mustacchi 					    0x7, 0x8, 0x9, 0xa, 0xb, 0xc }
49071815ce7SRobert Mustacchi 				} }
49171815ce7SRobert Mustacchi 			} },
49271815ce7SRobert Mustacchi 		}, {
49371815ce7SRobert Mustacchi 			.chan_flags = UMC_CHAN_F_ECC_EN,
49471815ce7SRobert Mustacchi 			.chan_fabid = 5,
49571815ce7SRobert Mustacchi 			.chan_instid = 5,
49671815ce7SRobert Mustacchi 			.chan_logid = 5,
49771815ce7SRobert Mustacchi 			.chan_nrules = 1,
49871815ce7SRobert Mustacchi 			.chan_np2_space0 = 21,
499*0dd92943SRobert Mustacchi 			.chan_type = UMC_DIMM_T_DDR4,
50071815ce7SRobert Mustacchi 			.chan_rules = { {
50171815ce7SRobert Mustacchi 				.ddr_flags = DF_DRAM_F_VALID |
50271815ce7SRobert Mustacchi 				    DF_DRAM_F_HASH_21_23 |
50371815ce7SRobert Mustacchi 				    DF_DRAM_F_HASH_30_32,
50471815ce7SRobert Mustacchi 				.ddr_base = 0,
50571815ce7SRobert Mustacchi 				.ddr_limit = 96ULL * 1024ULL * 1024ULL *
50671815ce7SRobert Mustacchi 				    1024ULL,
50771815ce7SRobert Mustacchi 				.ddr_dest_fabid = 0,
50871815ce7SRobert Mustacchi 				.ddr_sock_ileave_bits = 0,
50971815ce7SRobert Mustacchi 				.ddr_die_ileave_bits = 0,
51071815ce7SRobert Mustacchi 				.ddr_addr_start = 12,
51171815ce7SRobert Mustacchi 				.ddr_chan_ileave = DF_CHAN_ILEAVE_6CH
51271815ce7SRobert Mustacchi 			} },
51371815ce7SRobert Mustacchi 			.chan_dimms = { {
51471815ce7SRobert Mustacchi 				.ud_flags = UMC_DIMM_F_VALID,
51571815ce7SRobert Mustacchi 				.ud_width = UMC_DIMM_W_X4,
51671815ce7SRobert Mustacchi 				.ud_kind = UMC_DIMM_K_RDIMM,
51771815ce7SRobert Mustacchi 				.ud_dimmno = 0,
51871815ce7SRobert Mustacchi 				.ud_cs = { {
51971815ce7SRobert Mustacchi 					.ucs_base = {
52071815ce7SRobert Mustacchi 						.udb_base = 0,
52171815ce7SRobert Mustacchi 						.udb_valid = B_TRUE
52271815ce7SRobert Mustacchi 					},
52371815ce7SRobert Mustacchi 					.ucs_base_mask = 0x3ffffffff,
52471815ce7SRobert Mustacchi 					.ucs_nbanks = 0x4,
52571815ce7SRobert Mustacchi 					.ucs_ncol = 0xa,
52671815ce7SRobert Mustacchi 					.ucs_nrow_lo = 0x11,
52771815ce7SRobert Mustacchi 					.ucs_nbank_groups = 0x2,
52871815ce7SRobert Mustacchi 					.ucs_row_hi_bit = 0x18,
52971815ce7SRobert Mustacchi 					.ucs_row_low_bit = 0x11,
53071815ce7SRobert Mustacchi 					.ucs_bank_bits = { 0xf, 0x10, 0xd,
53171815ce7SRobert Mustacchi 					    0xe },
53271815ce7SRobert Mustacchi 					.ucs_col_bits = { 0x3, 0x4, 0x5, 0x6,
53371815ce7SRobert Mustacchi 					    0x7, 0x8, 0x9, 0xa, 0xb, 0xc }
53471815ce7SRobert Mustacchi 				} }
53571815ce7SRobert Mustacchi 			} },
53671815ce7SRobert Mustacchi 		}  }
53771815ce7SRobert Mustacchi 	} }
53871815ce7SRobert Mustacchi };
53971815ce7SRobert Mustacchi 
54071815ce7SRobert Mustacchi const umc_decode_test_t zen_umc_test_cod[] = { {
54171815ce7SRobert Mustacchi 	.udt_desc = "COD 4ch (0)",
54271815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_4ch,
54371815ce7SRobert Mustacchi 	.udt_pa = 0x1ff,
54471815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
54571815ce7SRobert Mustacchi 	.udt_norm_addr = 0x1ff,
54671815ce7SRobert Mustacchi 	.udt_sock = 0,
54771815ce7SRobert Mustacchi 	.udt_die = 0,
54871815ce7SRobert Mustacchi 	.udt_comp = 0,
54971815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
55071815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
55171815ce7SRobert Mustacchi 	.udt_dimm_row = 0,
55271815ce7SRobert Mustacchi 	.udt_dimm_bank = 0,
55371815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
55471815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
55571815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
55671815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
55771815ce7SRobert Mustacchi }, {
55871815ce7SRobert Mustacchi 	.udt_desc = "COD 4ch (1)",
55971815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_4ch,
56071815ce7SRobert Mustacchi 	.udt_pa = 0x3ff,
56171815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
56271815ce7SRobert Mustacchi 	.udt_norm_addr = 0x1ff,
56371815ce7SRobert Mustacchi 	.udt_sock = 0,
56471815ce7SRobert Mustacchi 	.udt_die = 0,
56571815ce7SRobert Mustacchi 	.udt_comp = 1,
56671815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
56771815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
56871815ce7SRobert Mustacchi 	.udt_dimm_row = 0,
56971815ce7SRobert Mustacchi 	.udt_dimm_bank = 0,
57071815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
57171815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
57271815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
57371815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
57471815ce7SRobert Mustacchi },  {
57571815ce7SRobert Mustacchi 	.udt_desc = "COD 4ch (2)",
57671815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_4ch,
57771815ce7SRobert Mustacchi 	.udt_pa = 0x11ff,
57871815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
57971815ce7SRobert Mustacchi 	.udt_norm_addr = 0x1ff,
58071815ce7SRobert Mustacchi 	.udt_sock = 0,
58171815ce7SRobert Mustacchi 	.udt_die = 0,
58271815ce7SRobert Mustacchi 	.udt_comp = 2,
58371815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
58471815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
58571815ce7SRobert Mustacchi 	.udt_dimm_row = 0,
58671815ce7SRobert Mustacchi 	.udt_dimm_bank = 0,
58771815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
58871815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
58971815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
59071815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
59171815ce7SRobert Mustacchi }, {
59271815ce7SRobert Mustacchi 	.udt_desc = "COD 4ch (3)",
59371815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_4ch,
59471815ce7SRobert Mustacchi 	.udt_pa = 0x13ff,
59571815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
59671815ce7SRobert Mustacchi 	.udt_norm_addr = 0x1ff,
59771815ce7SRobert Mustacchi 	.udt_sock = 0,
59871815ce7SRobert Mustacchi 	.udt_die = 0,
59971815ce7SRobert Mustacchi 	.udt_comp = 3,
60071815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
60171815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
60271815ce7SRobert Mustacchi 	.udt_dimm_row = 0,
60371815ce7SRobert Mustacchi 	.udt_dimm_bank = 0,
60471815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
60571815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
60671815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
60771815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
60871815ce7SRobert Mustacchi }, {
60971815ce7SRobert Mustacchi 	.udt_desc = "COD 4ch (4)",
61071815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_4ch,
61171815ce7SRobert Mustacchi 	.udt_pa = 0x101ff,
61271815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
61371815ce7SRobert Mustacchi 	.udt_norm_addr = 0x41ff,
61471815ce7SRobert Mustacchi 	.udt_sock = 0,
61571815ce7SRobert Mustacchi 	.udt_die = 0,
61671815ce7SRobert Mustacchi 	.udt_comp = 1,
61771815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
61871815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
61971815ce7SRobert Mustacchi 	.udt_dimm_row = 0,
62071815ce7SRobert Mustacchi 	.udt_dimm_bank = 2,
62171815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
62271815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
62371815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
62471815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
62571815ce7SRobert Mustacchi }, {
62671815ce7SRobert Mustacchi 	.udt_desc = "COD 4ch (5)",
62771815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_4ch,
62871815ce7SRobert Mustacchi 	.udt_pa = 0x103ff,
62971815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
63071815ce7SRobert Mustacchi 	.udt_norm_addr = 0x41ff,
63171815ce7SRobert Mustacchi 	.udt_sock = 0,
63271815ce7SRobert Mustacchi 	.udt_die = 0,
63371815ce7SRobert Mustacchi 	.udt_comp = 0,
63471815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
63571815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
63671815ce7SRobert Mustacchi 	.udt_dimm_row = 0,
63771815ce7SRobert Mustacchi 	.udt_dimm_bank = 2,
63871815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
63971815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
64071815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
64171815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
64271815ce7SRobert Mustacchi }, {
64371815ce7SRobert Mustacchi 	.udt_desc = "COD 4ch (6)",
64471815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_4ch,
64571815ce7SRobert Mustacchi 	.udt_pa = 0x303ff,
64671815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
64771815ce7SRobert Mustacchi 	.udt_norm_addr = 0xc1ff,
64871815ce7SRobert Mustacchi 	.udt_sock = 0,
64971815ce7SRobert Mustacchi 	.udt_die = 0,
65071815ce7SRobert Mustacchi 	.udt_comp = 2,
65171815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
65271815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
65371815ce7SRobert Mustacchi 	.udt_dimm_row = 0,
65471815ce7SRobert Mustacchi 	.udt_dimm_bank = 2,
65571815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 1,
65671815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
65771815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
65871815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
65971815ce7SRobert Mustacchi }, {
66071815ce7SRobert Mustacchi 	.udt_desc = "COD 4ch (7)",
66171815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_4ch,
66271815ce7SRobert Mustacchi 	.udt_pa = 0x313ff,
66371815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
66471815ce7SRobert Mustacchi 	.udt_norm_addr = 0xc1ff,
66571815ce7SRobert Mustacchi 	.udt_sock = 0,
66671815ce7SRobert Mustacchi 	.udt_die = 0,
66771815ce7SRobert Mustacchi 	.udt_comp = 0,
66871815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
66971815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
67071815ce7SRobert Mustacchi 	.udt_dimm_row = 0,
67171815ce7SRobert Mustacchi 	.udt_dimm_bank = 2,
67271815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 1,
67371815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
67471815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
67571815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
67671815ce7SRobert Mustacchi }, {
67771815ce7SRobert Mustacchi 	.udt_desc = "COD 4ch (8)",
67871815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_4ch,
67971815ce7SRobert Mustacchi 	.udt_pa = 0x311ff,
68071815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
68171815ce7SRobert Mustacchi 	.udt_norm_addr = 0xc1ff,
68271815ce7SRobert Mustacchi 	.udt_sock = 0,
68371815ce7SRobert Mustacchi 	.udt_die = 0,
68471815ce7SRobert Mustacchi 	.udt_comp = 1,
68571815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
68671815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
68771815ce7SRobert Mustacchi 	.udt_dimm_row = 0,
68871815ce7SRobert Mustacchi 	.udt_dimm_bank = 2,
68971815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 1,
69071815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
69171815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
69271815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
69371815ce7SRobert Mustacchi }, {
69471815ce7SRobert Mustacchi 	.udt_desc = "COD 4ch (9)",
69571815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_4ch,
69671815ce7SRobert Mustacchi 	.udt_pa = 0x2311ff,
69771815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
69871815ce7SRobert Mustacchi 	.udt_norm_addr = 0x8c1ff,
69971815ce7SRobert Mustacchi 	.udt_sock = 0,
70071815ce7SRobert Mustacchi 	.udt_die = 0,
70171815ce7SRobert Mustacchi 	.udt_comp = 0,
70271815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
70371815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
70471815ce7SRobert Mustacchi 	.udt_dimm_row = 0x4,
70571815ce7SRobert Mustacchi 	.udt_dimm_bank = 2,
70671815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 1,
70771815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
70871815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
70971815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
71071815ce7SRobert Mustacchi }, {
71171815ce7SRobert Mustacchi 	.udt_desc = "COD 4ch (10)",
71271815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_4ch,
71371815ce7SRobert Mustacchi 	.udt_pa = 0x6311ff,
71471815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
71571815ce7SRobert Mustacchi 	.udt_norm_addr = 0x18c1ff,
71671815ce7SRobert Mustacchi 	.udt_sock = 0,
71771815ce7SRobert Mustacchi 	.udt_die = 0,
71871815ce7SRobert Mustacchi 	.udt_comp = 2,
71971815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
72071815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
72171815ce7SRobert Mustacchi 	.udt_dimm_row = 0xc,
72271815ce7SRobert Mustacchi 	.udt_dimm_bank = 2,
72371815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 1,
72471815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
72571815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
72671815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
72771815ce7SRobert Mustacchi }, {
72871815ce7SRobert Mustacchi 	.udt_desc = "COD 4ch (11)",
72971815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_4ch,
73071815ce7SRobert Mustacchi 	.udt_pa = 0x6313ff,
73171815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
73271815ce7SRobert Mustacchi 	.udt_norm_addr = 0x18c1ff,
73371815ce7SRobert Mustacchi 	.udt_sock = 0,
73471815ce7SRobert Mustacchi 	.udt_die = 0,
73571815ce7SRobert Mustacchi 	.udt_comp = 3,
73671815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
73771815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
73871815ce7SRobert Mustacchi 	.udt_dimm_row = 0xc,
73971815ce7SRobert Mustacchi 	.udt_dimm_bank = 2,
74071815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 1,
74171815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
74271815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
74371815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
74471815ce7SRobert Mustacchi }, {
74571815ce7SRobert Mustacchi 	.udt_desc = "COD 4ch (12)",
74671815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_4ch,
74771815ce7SRobert Mustacchi 	.udt_pa = 0x6303ff,
74871815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
74971815ce7SRobert Mustacchi 	.udt_norm_addr = 0x18c1ff,
75071815ce7SRobert Mustacchi 	.udt_sock = 0,
75171815ce7SRobert Mustacchi 	.udt_die = 0,
75271815ce7SRobert Mustacchi 	.udt_comp = 1,
75371815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
75471815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
75571815ce7SRobert Mustacchi 	.udt_dimm_row = 0xc,
75671815ce7SRobert Mustacchi 	.udt_dimm_bank = 2,
75771815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 1,
75871815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
75971815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
76071815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
76171815ce7SRobert Mustacchi }, {
76271815ce7SRobert Mustacchi 	.udt_desc = "COD 4ch (13)",
76371815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_4ch,
76471815ce7SRobert Mustacchi 	.udt_pa = 0x6301ff,
76571815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
76671815ce7SRobert Mustacchi 	.udt_norm_addr = 0x18c1ff,
76771815ce7SRobert Mustacchi 	.udt_sock = 0,
76871815ce7SRobert Mustacchi 	.udt_die = 0,
76971815ce7SRobert Mustacchi 	.udt_comp = 0,
77071815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
77171815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
77271815ce7SRobert Mustacchi 	.udt_dimm_row = 0xc,
77371815ce7SRobert Mustacchi 	.udt_dimm_bank = 2,
77471815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 1,
77571815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
77671815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
77771815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
77871815ce7SRobert Mustacchi }, {
77971815ce7SRobert Mustacchi 	.udt_desc = "COD 4ch (14)",
78071815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_4ch,
78171815ce7SRobert Mustacchi 	.udt_pa = 0x406301ff,
78271815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
78371815ce7SRobert Mustacchi 	.udt_norm_addr = 0x1018c1ff,
78471815ce7SRobert Mustacchi 	.udt_sock = 0,
78571815ce7SRobert Mustacchi 	.udt_die = 0,
78671815ce7SRobert Mustacchi 	.udt_comp = 1,
78771815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
78871815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
78971815ce7SRobert Mustacchi 	.udt_dimm_row = 0x80c,
79071815ce7SRobert Mustacchi 	.udt_dimm_bank = 2,
79171815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 1,
79271815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
79371815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
79471815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
79571815ce7SRobert Mustacchi }, {
79671815ce7SRobert Mustacchi 	.udt_desc = "COD 4ch (15)",
79771815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_4ch,
79871815ce7SRobert Mustacchi 	.udt_pa = 0x406303ff,
79971815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
80071815ce7SRobert Mustacchi 	.udt_norm_addr = 0x1018c1ff,
80171815ce7SRobert Mustacchi 	.udt_sock = 0,
80271815ce7SRobert Mustacchi 	.udt_die = 0,
80371815ce7SRobert Mustacchi 	.udt_comp = 0,
80471815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
80571815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
80671815ce7SRobert Mustacchi 	.udt_dimm_row = 0x80c,
80771815ce7SRobert Mustacchi 	.udt_dimm_bank = 2,
80871815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 1,
80971815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
81071815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
81171815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
81271815ce7SRobert Mustacchi }, {
81371815ce7SRobert Mustacchi 	.udt_desc = "COD 4ch (16)",
81471815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_4ch,
81571815ce7SRobert Mustacchi 	.udt_pa = 0x406311ff,
81671815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
81771815ce7SRobert Mustacchi 	.udt_norm_addr = 0x1018c1ff,
81871815ce7SRobert Mustacchi 	.udt_sock = 0,
81971815ce7SRobert Mustacchi 	.udt_die = 0,
82071815ce7SRobert Mustacchi 	.udt_comp = 3,
82171815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
82271815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
82371815ce7SRobert Mustacchi 	.udt_dimm_row = 0x80c,
82471815ce7SRobert Mustacchi 	.udt_dimm_bank = 2,
82571815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 1,
82671815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
82771815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
82871815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
82971815ce7SRobert Mustacchi }, {
83071815ce7SRobert Mustacchi 	.udt_desc = "COD 4ch (17)",
83171815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_4ch,
83271815ce7SRobert Mustacchi 	.udt_pa = 0x406313ff,
83371815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
83471815ce7SRobert Mustacchi 	.udt_norm_addr = 0x1018c1ff,
83571815ce7SRobert Mustacchi 	.udt_sock = 0,
83671815ce7SRobert Mustacchi 	.udt_die = 0,
83771815ce7SRobert Mustacchi 	.udt_comp = 2,
83871815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
83971815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
84071815ce7SRobert Mustacchi 	.udt_dimm_row = 0x80c,
84171815ce7SRobert Mustacchi 	.udt_dimm_bank = 2,
84271815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 1,
84371815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
84471815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
84571815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
84671815ce7SRobert Mustacchi }, {
84771815ce7SRobert Mustacchi 	.udt_desc = "COD 4ch (18)",
84871815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_4ch,
84971815ce7SRobert Mustacchi 	.udt_pa = 0xc06313ff,
85071815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
85171815ce7SRobert Mustacchi 	.udt_norm_addr = 0x3018c1ff,
85271815ce7SRobert Mustacchi 	.udt_sock = 0,
85371815ce7SRobert Mustacchi 	.udt_die = 0,
85471815ce7SRobert Mustacchi 	.udt_comp = 0,
85571815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
85671815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
85771815ce7SRobert Mustacchi 	.udt_dimm_row = 0x180c,
85871815ce7SRobert Mustacchi 	.udt_dimm_bank = 2,
85971815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 1,
86071815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
86171815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
86271815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
86371815ce7SRobert Mustacchi }, {
86471815ce7SRobert Mustacchi 	.udt_desc = "COD 4ch (19)",
86571815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_4ch,
86671815ce7SRobert Mustacchi 	.udt_pa = 0xc06311ff,
86771815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
86871815ce7SRobert Mustacchi 	.udt_norm_addr = 0x3018c1ff,
86971815ce7SRobert Mustacchi 	.udt_sock = 0,
87071815ce7SRobert Mustacchi 	.udt_die = 0,
87171815ce7SRobert Mustacchi 	.udt_comp = 1,
87271815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
87371815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
87471815ce7SRobert Mustacchi 	.udt_dimm_row = 0x180c,
87571815ce7SRobert Mustacchi 	.udt_dimm_bank = 2,
87671815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 1,
87771815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
87871815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
87971815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
88071815ce7SRobert Mustacchi }, {
88171815ce7SRobert Mustacchi 	.udt_desc = "COD 4ch (20)",
88271815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_4ch,
88371815ce7SRobert Mustacchi 	.udt_pa = 0xc06301ff,
88471815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
88571815ce7SRobert Mustacchi 	.udt_norm_addr = 0x3018c1ff,
88671815ce7SRobert Mustacchi 	.udt_sock = 0,
88771815ce7SRobert Mustacchi 	.udt_die = 0,
88871815ce7SRobert Mustacchi 	.udt_comp = 3,
88971815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
89071815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
89171815ce7SRobert Mustacchi 	.udt_dimm_row = 0x180c,
89271815ce7SRobert Mustacchi 	.udt_dimm_bank = 2,
89371815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 1,
89471815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
89571815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
89671815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
89771815ce7SRobert Mustacchi }, {
89871815ce7SRobert Mustacchi 	.udt_desc = "COD 4ch (21)",
89971815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_4ch,
90071815ce7SRobert Mustacchi 	.udt_pa = 0xc06303ff,
90171815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
90271815ce7SRobert Mustacchi 	.udt_norm_addr = 0x3018c1ff,
90371815ce7SRobert Mustacchi 	.udt_sock = 0,
90471815ce7SRobert Mustacchi 	.udt_die = 0,
90571815ce7SRobert Mustacchi 	.udt_comp = 2,
90671815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
90771815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
90871815ce7SRobert Mustacchi 	.udt_dimm_row = 0x180c,
90971815ce7SRobert Mustacchi 	.udt_dimm_bank = 2,
91071815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 1,
91171815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
91271815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
91371815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
91471815ce7SRobert Mustacchi }, {
91571815ce7SRobert Mustacchi 	.udt_desc = "COD 6ch (0)",
91671815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_6ch,
91771815ce7SRobert Mustacchi 	.udt_pa = 0x1ff,
91871815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
91971815ce7SRobert Mustacchi 	.udt_norm_addr = 0x1ff,
92071815ce7SRobert Mustacchi 	.udt_sock = 0,
92171815ce7SRobert Mustacchi 	.udt_die = 0,
92271815ce7SRobert Mustacchi 	.udt_comp = 0,
92371815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
92471815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
92571815ce7SRobert Mustacchi 	.udt_dimm_row = 0,
92671815ce7SRobert Mustacchi 	.udt_dimm_bank = 0,
92771815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
92871815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
92971815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
93071815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
93171815ce7SRobert Mustacchi }, {
93271815ce7SRobert Mustacchi 	.udt_desc = "COD 6ch (1)",
93371815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_6ch,
93471815ce7SRobert Mustacchi 	.udt_pa = 0x11ff,
93571815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
93671815ce7SRobert Mustacchi 	.udt_norm_addr = 0x1ff,
93771815ce7SRobert Mustacchi 	.udt_sock = 0,
93871815ce7SRobert Mustacchi 	.udt_die = 0,
93971815ce7SRobert Mustacchi 	.udt_comp = 1,
94071815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
94171815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
94271815ce7SRobert Mustacchi 	.udt_dimm_row = 0,
94371815ce7SRobert Mustacchi 	.udt_dimm_bank = 0,
94471815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
94571815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
94671815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
94771815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
94871815ce7SRobert Mustacchi }, {
94971815ce7SRobert Mustacchi 	.udt_desc = "COD 6ch (2)",
95071815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_6ch,
95171815ce7SRobert Mustacchi 	.udt_pa = 0x21ff,
95271815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
95371815ce7SRobert Mustacchi 	.udt_norm_addr = 0x1ff,
95471815ce7SRobert Mustacchi 	.udt_sock = 0,
95571815ce7SRobert Mustacchi 	.udt_die = 0,
95671815ce7SRobert Mustacchi 	.udt_comp = 2,
95771815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
95871815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
95971815ce7SRobert Mustacchi 	.udt_dimm_row = 0,
96071815ce7SRobert Mustacchi 	.udt_dimm_bank = 0,
96171815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
96271815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
96371815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
96471815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
96571815ce7SRobert Mustacchi }, {
96671815ce7SRobert Mustacchi 	.udt_desc = "COD 6ch (3)",
96771815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_6ch,
96871815ce7SRobert Mustacchi 	.udt_pa = 0x31ff,
96971815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
97071815ce7SRobert Mustacchi 	.udt_norm_addr = 0x1ff,
97171815ce7SRobert Mustacchi 	.udt_sock = 0,
97271815ce7SRobert Mustacchi 	.udt_die = 0,
97371815ce7SRobert Mustacchi 	.udt_comp = 3,
97471815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
97571815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
97671815ce7SRobert Mustacchi 	.udt_dimm_row = 0,
97771815ce7SRobert Mustacchi 	.udt_dimm_bank = 0,
97871815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
97971815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
98071815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
98171815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
98271815ce7SRobert Mustacchi }, {
98371815ce7SRobert Mustacchi 	.udt_desc = "COD 6ch (4)",
98471815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_6ch,
98571815ce7SRobert Mustacchi 	.udt_pa = 0x41ff,
98671815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
98771815ce7SRobert Mustacchi 	.udt_norm_addr = 0x1ff,
98871815ce7SRobert Mustacchi 	.udt_sock = 0,
98971815ce7SRobert Mustacchi 	.udt_die = 0,
99071815ce7SRobert Mustacchi 	.udt_comp = 4,
99171815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
99271815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
99371815ce7SRobert Mustacchi 	.udt_dimm_row = 0,
99471815ce7SRobert Mustacchi 	.udt_dimm_bank = 0,
99571815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
99671815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
99771815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
99871815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
99971815ce7SRobert Mustacchi }, {
100071815ce7SRobert Mustacchi 	.udt_desc = "COD 6ch (5)",
100171815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_6ch,
100271815ce7SRobert Mustacchi 	.udt_pa = 0x51ff,
100371815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
100471815ce7SRobert Mustacchi 	.udt_norm_addr = 0x1ff,
100571815ce7SRobert Mustacchi 	.udt_sock = 0,
100671815ce7SRobert Mustacchi 	.udt_die = 0,
100771815ce7SRobert Mustacchi 	.udt_comp = 5,
100871815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
100971815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
101071815ce7SRobert Mustacchi 	.udt_dimm_row = 0,
101171815ce7SRobert Mustacchi 	.udt_dimm_bank = 0,
101271815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
101371815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
101471815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
101571815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
101671815ce7SRobert Mustacchi }, {
101771815ce7SRobert Mustacchi 	.udt_desc = "COD 6ch (6)",
101871815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_6ch,
101971815ce7SRobert Mustacchi 	.udt_pa = 0x61ff,
102071815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
102171815ce7SRobert Mustacchi 	.udt_norm_addr = 0x3000001ff,
102271815ce7SRobert Mustacchi 	.udt_sock = 0,
102371815ce7SRobert Mustacchi 	.udt_die = 0,
102471815ce7SRobert Mustacchi 	.udt_comp = 0,
102571815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
102671815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
102771815ce7SRobert Mustacchi 	.udt_dimm_row = 0x18000,
102871815ce7SRobert Mustacchi 	.udt_dimm_bank = 0,
102971815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
103071815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
103171815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
103271815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
103371815ce7SRobert Mustacchi }, {
103471815ce7SRobert Mustacchi 	.udt_desc = "COD 6ch (7)",
103571815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_6ch,
103671815ce7SRobert Mustacchi 	.udt_pa = 0x71ff,
103771815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
103871815ce7SRobert Mustacchi 	.udt_norm_addr = 0x3000001ff,
103971815ce7SRobert Mustacchi 	.udt_sock = 0,
104071815ce7SRobert Mustacchi 	.udt_die = 0,
104171815ce7SRobert Mustacchi 	.udt_comp = 1,
104271815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
104371815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
104471815ce7SRobert Mustacchi 	.udt_dimm_row = 0x18000,
104571815ce7SRobert Mustacchi 	.udt_dimm_bank = 0,
104671815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
104771815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
104871815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
104971815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
105071815ce7SRobert Mustacchi }, {
105171815ce7SRobert Mustacchi 	.udt_desc = "COD 6ch (8)",
105271815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_6ch,
105371815ce7SRobert Mustacchi 	.udt_pa = 0x81ff,
105471815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
105571815ce7SRobert Mustacchi 	.udt_norm_addr = 0x11ff,
105671815ce7SRobert Mustacchi 	.udt_sock = 0,
105771815ce7SRobert Mustacchi 	.udt_die = 0,
105871815ce7SRobert Mustacchi 	.udt_comp = 1,
105971815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
106071815ce7SRobert Mustacchi 	.udt_dimm_col = 0x23f,
106171815ce7SRobert Mustacchi 	.udt_dimm_row = 0,
106271815ce7SRobert Mustacchi 	.udt_dimm_bank = 0,
106371815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
106471815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
106571815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
106671815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
106771815ce7SRobert Mustacchi }, {
106871815ce7SRobert Mustacchi 	.udt_desc = "COD 6ch (9)",
106971815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_6ch,
107071815ce7SRobert Mustacchi 	.udt_pa = 0x91ff,
107171815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
107271815ce7SRobert Mustacchi 	.udt_norm_addr = 0x11ff,
107371815ce7SRobert Mustacchi 	.udt_sock = 0,
107471815ce7SRobert Mustacchi 	.udt_die = 0,
107571815ce7SRobert Mustacchi 	.udt_comp = 0,
107671815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
107771815ce7SRobert Mustacchi 	.udt_dimm_col = 0x23f,
107871815ce7SRobert Mustacchi 	.udt_dimm_row = 0,
107971815ce7SRobert Mustacchi 	.udt_dimm_bank = 0,
108071815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
108171815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
108271815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
108371815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
108471815ce7SRobert Mustacchi }, {
108571815ce7SRobert Mustacchi 	.udt_desc = "COD 6ch (10)",
108671815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_6ch,
108771815ce7SRobert Mustacchi 	.udt_pa = 0xa1ff,
108871815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
108971815ce7SRobert Mustacchi 	.udt_norm_addr = 0x11ff,
109071815ce7SRobert Mustacchi 	.udt_sock = 0,
109171815ce7SRobert Mustacchi 	.udt_die = 0,
109271815ce7SRobert Mustacchi 	.udt_comp = 3,
109371815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
109471815ce7SRobert Mustacchi 	.udt_dimm_col = 0x23f,
109571815ce7SRobert Mustacchi 	.udt_dimm_row = 0,
109671815ce7SRobert Mustacchi 	.udt_dimm_bank = 0,
109771815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
109871815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
109971815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
110071815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
110171815ce7SRobert Mustacchi }, {
110271815ce7SRobert Mustacchi 	.udt_desc = "COD 6ch (11)",
110371815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_6ch,
110471815ce7SRobert Mustacchi 	.udt_pa = 0xb1ff,
110571815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
110671815ce7SRobert Mustacchi 	.udt_norm_addr = 0x11ff,
110771815ce7SRobert Mustacchi 	.udt_sock = 0,
110871815ce7SRobert Mustacchi 	.udt_die = 0,
110971815ce7SRobert Mustacchi 	.udt_comp = 2,
111071815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
111171815ce7SRobert Mustacchi 	.udt_dimm_col = 0x23f,
111271815ce7SRobert Mustacchi 	.udt_dimm_row = 0,
111371815ce7SRobert Mustacchi 	.udt_dimm_bank = 0,
111471815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
111571815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
111671815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
111771815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
111871815ce7SRobert Mustacchi }, {
111971815ce7SRobert Mustacchi 	.udt_desc = "COD 6ch (12)",
112071815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_6ch,
112171815ce7SRobert Mustacchi 	.udt_pa = 0xc1ff,
112271815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
112371815ce7SRobert Mustacchi 	.udt_norm_addr = 0x11ff,
112471815ce7SRobert Mustacchi 	.udt_sock = 0,
112571815ce7SRobert Mustacchi 	.udt_die = 0,
112671815ce7SRobert Mustacchi 	.udt_comp = 5,
112771815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
112871815ce7SRobert Mustacchi 	.udt_dimm_col = 0x23f,
112971815ce7SRobert Mustacchi 	.udt_dimm_row = 0,
113071815ce7SRobert Mustacchi 	.udt_dimm_bank = 0,
113171815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
113271815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
113371815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
113471815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
113571815ce7SRobert Mustacchi }, {
113671815ce7SRobert Mustacchi 	.udt_desc = "COD 6ch (13)",
113771815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_6ch,
113871815ce7SRobert Mustacchi 	.udt_pa = 0xd1ff,
113971815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
114071815ce7SRobert Mustacchi 	.udt_norm_addr = 0x11ff,
114171815ce7SRobert Mustacchi 	.udt_sock = 0,
114271815ce7SRobert Mustacchi 	.udt_die = 0,
114371815ce7SRobert Mustacchi 	.udt_comp = 4,
114471815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
114571815ce7SRobert Mustacchi 	.udt_dimm_col = 0x23f,
114671815ce7SRobert Mustacchi 	.udt_dimm_row = 0,
114771815ce7SRobert Mustacchi 	.udt_dimm_bank = 0,
114871815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
114971815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
115071815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
115171815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
115271815ce7SRobert Mustacchi }, {
115371815ce7SRobert Mustacchi 	.udt_desc = "COD 6ch (14)",
115471815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_6ch,
115571815ce7SRobert Mustacchi 	.udt_pa = 0xe1ff,
115671815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
115771815ce7SRobert Mustacchi 	.udt_norm_addr = 0x3000011ff,
115871815ce7SRobert Mustacchi 	.udt_sock = 0,
115971815ce7SRobert Mustacchi 	.udt_die = 0,
116071815ce7SRobert Mustacchi 	.udt_comp = 3,
116171815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
116271815ce7SRobert Mustacchi 	.udt_dimm_col = 0x23f,
116371815ce7SRobert Mustacchi 	.udt_dimm_row = 0x18000,
116471815ce7SRobert Mustacchi 	.udt_dimm_bank = 0,
116571815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
116671815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
116771815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
116871815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
116971815ce7SRobert Mustacchi }, {
117071815ce7SRobert Mustacchi 	.udt_desc = "COD 6ch (15)",
117171815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_6ch,
117271815ce7SRobert Mustacchi 	.udt_pa = 0xf1ff,
117371815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
117471815ce7SRobert Mustacchi 	.udt_norm_addr = 0x3000011ff,
117571815ce7SRobert Mustacchi 	.udt_sock = 0,
117671815ce7SRobert Mustacchi 	.udt_die = 0,
117771815ce7SRobert Mustacchi 	.udt_comp = 2,
117871815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
117971815ce7SRobert Mustacchi 	.udt_dimm_col = 0x23f,
118071815ce7SRobert Mustacchi 	.udt_dimm_row = 0x18000,
118171815ce7SRobert Mustacchi 	.udt_dimm_bank = 0,
118271815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
118371815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
118471815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
118571815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
118671815ce7SRobert Mustacchi },
118771815ce7SRobert Mustacchi /*
118871815ce7SRobert Mustacchi  * The above went through and showed that we can probably hash things correctly
118971815ce7SRobert Mustacchi  * and account for our mod-3 case. The ones below try to find the higher level
119071815ce7SRobert Mustacchi  * addresses that would result in the same normalized address that we have, but
119171815ce7SRobert Mustacchi  * on different dies to try and complete the set.
119271815ce7SRobert Mustacchi  */
119371815ce7SRobert Mustacchi {
119471815ce7SRobert Mustacchi 	.udt_desc = "COD 6ch (16)",
119571815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_6ch,
119671815ce7SRobert Mustacchi 	.udt_pa = 0x8000061ff,
119771815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
119871815ce7SRobert Mustacchi 	.udt_norm_addr = 0x3000001ff,
119971815ce7SRobert Mustacchi 	.udt_sock = 0,
120071815ce7SRobert Mustacchi 	.udt_die = 0,
120171815ce7SRobert Mustacchi 	.udt_comp = 2,
120271815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
120371815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
120471815ce7SRobert Mustacchi 	.udt_dimm_row = 0x18000,
120571815ce7SRobert Mustacchi 	.udt_dimm_bank = 0,
120671815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
120771815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
120871815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
120971815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
121071815ce7SRobert Mustacchi }, {
121171815ce7SRobert Mustacchi 	.udt_desc = "COD 6ch (17)",
121271815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_6ch,
121371815ce7SRobert Mustacchi 	.udt_pa = 0x8000071ff,
121471815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
121571815ce7SRobert Mustacchi 	.udt_norm_addr = 0x3000001ff,
121671815ce7SRobert Mustacchi 	.udt_sock = 0,
121771815ce7SRobert Mustacchi 	.udt_die = 0,
121871815ce7SRobert Mustacchi 	.udt_comp = 3,
121971815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
122071815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
122171815ce7SRobert Mustacchi 	.udt_dimm_row = 0x18000,
122271815ce7SRobert Mustacchi 	.udt_dimm_bank = 0,
122371815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
122471815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
122571815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
122671815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
122771815ce7SRobert Mustacchi }, {
122871815ce7SRobert Mustacchi 	.udt_desc = "COD 6ch (18)",
122971815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_6ch,
123071815ce7SRobert Mustacchi 	.udt_pa = 0x10000061ff,
123171815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
123271815ce7SRobert Mustacchi 	.udt_norm_addr = 0x3000001ff,
123371815ce7SRobert Mustacchi 	.udt_sock = 0,
123471815ce7SRobert Mustacchi 	.udt_die = 0,
123571815ce7SRobert Mustacchi 	.udt_comp = 4,
123671815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
123771815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
123871815ce7SRobert Mustacchi 	.udt_dimm_row = 0x18000,
123971815ce7SRobert Mustacchi 	.udt_dimm_bank = 0,
124071815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
124171815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
124271815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
124371815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
124471815ce7SRobert Mustacchi }, {
124571815ce7SRobert Mustacchi 	.udt_desc = "COD 6ch (19)",
124671815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_6ch,
124771815ce7SRobert Mustacchi 	.udt_pa = 0x10000071ff,
124871815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
124971815ce7SRobert Mustacchi 	.udt_norm_addr = 0x3000001ff,
125071815ce7SRobert Mustacchi 	.udt_sock = 0,
125171815ce7SRobert Mustacchi 	.udt_die = 0,
125271815ce7SRobert Mustacchi 	.udt_comp = 5,
125371815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
125471815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
125571815ce7SRobert Mustacchi 	.udt_dimm_row = 0x18000,
125671815ce7SRobert Mustacchi 	.udt_dimm_bank = 0,
125771815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
125871815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
125971815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
126071815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
126171815ce7SRobert Mustacchi },
126271815ce7SRobert Mustacchi /*
126371815ce7SRobert Mustacchi  * Now with that there, we go back and show that hashing actually impacts things
126471815ce7SRobert Mustacchi  * as we expect. Note, the bit 0 hash was already taken into account.
126571815ce7SRobert Mustacchi  */
126671815ce7SRobert Mustacchi {
126771815ce7SRobert Mustacchi 	.udt_desc = "COD 6ch (20)",
126871815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_6ch,
126971815ce7SRobert Mustacchi 	.udt_pa = 0x8001ff,
127071815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
127171815ce7SRobert Mustacchi 	.udt_norm_addr = 0x1001ff,
127271815ce7SRobert Mustacchi 	.udt_sock = 0,
127371815ce7SRobert Mustacchi 	.udt_die = 0,
127471815ce7SRobert Mustacchi 	.udt_comp = 1,
127571815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
127671815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
127771815ce7SRobert Mustacchi 	.udt_dimm_row = 0x8,
127871815ce7SRobert Mustacchi 	.udt_dimm_bank = 0,
127971815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
128071815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
128171815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
128271815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
128371815ce7SRobert Mustacchi }, {
128471815ce7SRobert Mustacchi 	.udt_desc = "COD 6ch (21)",
128571815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_6ch,
128671815ce7SRobert Mustacchi 	.udt_pa = 0xa001ff,
128771815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
128871815ce7SRobert Mustacchi 	.udt_norm_addr = 0x1401ff,
128971815ce7SRobert Mustacchi 	.udt_sock = 0,
129071815ce7SRobert Mustacchi 	.udt_die = 0,
129171815ce7SRobert Mustacchi 	.udt_comp = 3,
129271815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
129371815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
129471815ce7SRobert Mustacchi 	.udt_dimm_row = 0xa,
129571815ce7SRobert Mustacchi 	.udt_dimm_bank = 0,
129671815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
129771815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
129871815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
129971815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
130071815ce7SRobert Mustacchi }, {
130171815ce7SRobert Mustacchi 	.udt_desc = "COD 6ch (22)",
130271815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_6ch,
130371815ce7SRobert Mustacchi 	.udt_pa = 0xe001ff,
130471815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
130571815ce7SRobert Mustacchi 	.udt_norm_addr = 0x3001c01ff,
130671815ce7SRobert Mustacchi 	.udt_sock = 0,
130771815ce7SRobert Mustacchi 	.udt_die = 0,
130871815ce7SRobert Mustacchi 	.udt_comp = 3,
130971815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
131071815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
131171815ce7SRobert Mustacchi 	.udt_dimm_row = 0x1800e,
131271815ce7SRobert Mustacchi 	.udt_dimm_bank = 0,
131371815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
131471815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
131571815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
131671815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
131771815ce7SRobert Mustacchi }, {
131871815ce7SRobert Mustacchi 	.udt_desc = "COD 6ch (23)",
131971815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_6ch,
132071815ce7SRobert Mustacchi 	.udt_pa = 0x180e001ff,
132171815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
132271815ce7SRobert Mustacchi 	.udt_norm_addr = 0x301c01ff,
132371815ce7SRobert Mustacchi 	.udt_sock = 0,
132471815ce7SRobert Mustacchi 	.udt_die = 0,
132571815ce7SRobert Mustacchi 	.udt_comp = 2,
132671815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
132771815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
132871815ce7SRobert Mustacchi 	.udt_dimm_row = 0x180e,
132971815ce7SRobert Mustacchi 	.udt_dimm_bank = 0,
133071815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
133171815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
133271815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
133371815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
133471815ce7SRobert Mustacchi }, {
133571815ce7SRobert Mustacchi 	.udt_desc = "COD 6ch (24)",
133671815ce7SRobert Mustacchi 	.udt_umc = &zen_umc_cod_6ch,
133771815ce7SRobert Mustacchi 	.udt_pa = 0x1c0e041ff,
133871815ce7SRobert Mustacchi 	.udt_pass = B_TRUE,
133971815ce7SRobert Mustacchi 	.udt_norm_addr = 0x381c01ff,
134071815ce7SRobert Mustacchi 	.udt_sock = 0,
134171815ce7SRobert Mustacchi 	.udt_die = 0,
134271815ce7SRobert Mustacchi 	.udt_comp = 4,
134371815ce7SRobert Mustacchi 	.udt_dimm_no = 0,
134471815ce7SRobert Mustacchi 	.udt_dimm_col = 0x3f,
134571815ce7SRobert Mustacchi 	.udt_dimm_row = 0x1c0e,
134671815ce7SRobert Mustacchi 	.udt_dimm_bank = 0,
134771815ce7SRobert Mustacchi 	.udt_dimm_bank_group = 0,
134871815ce7SRobert Mustacchi 	.udt_dimm_subchan = UINT8_MAX,
134971815ce7SRobert Mustacchi 	.udt_dimm_rm = 0,
135071815ce7SRobert Mustacchi 	.udt_dimm_cs = 0
135171815ce7SRobert Mustacchi }, {
135271815ce7SRobert Mustacchi 	.udt_desc = NULL
135371815ce7SRobert Mustacchi } };
1354