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