#include "zen_umc_test.h"
static const zen_umc_t zen_umc_nps8_2p = {
.umc_tom = 4ULL * 1024ULL * 1024ULL * 1024ULL,
.umc_tom2 = 256ULL * 1024ULL * 1024ULL * 1024ULL,
.umc_df_rev = DF_REV_4,
.umc_decomp = {
.dfd_sock_mask = 0x01,
.dfd_die_mask = 0x00,
.dfd_node_mask = 0x20,
.dfd_comp_mask = 0x1f,
.dfd_sock_shift = 0,
.dfd_die_shift = 0,
.dfd_node_shift = 5,
.dfd_comp_shift = 0
},
.umc_ndfs = 2,
.umc_dfs = { {
.zud_dfno = 0,
.zud_dram_nrules = 1,
.zud_nchan = 8,
.zud_cs_nremap = 0,
.zud_hole_base = 0,
.zud_rules = { {
.ddr_flags = DF_DRAM_F_VALID | DF_DRAM_F_HASH_16_18 |
DF_DRAM_F_HASH_21_23 | DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 256ULL * 1024ULL * 1024ULL * 1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 1,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 9,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS1_8CH
} },
.zud_chan = { {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 0,
.chan_instid = 0,
.chan_logid = 0,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_16_18 |
DF_DRAM_F_HASH_21_23 |
DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 256ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 1,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 9,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS1_8CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
}, {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 1,
.chan_instid = 1,
.chan_logid = 1,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_16_18 |
DF_DRAM_F_HASH_21_23 |
DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 256ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 1,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 9,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS1_8CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
}, {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 2,
.chan_instid = 2,
.chan_logid = 2,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_16_18 |
DF_DRAM_F_HASH_21_23 |
DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 256ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 1,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 9,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS1_8CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
}, {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 3,
.chan_instid = 3,
.chan_logid = 3,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_16_18 |
DF_DRAM_F_HASH_21_23 |
DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 256ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 1,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 9,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS1_8CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
}, {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 4,
.chan_instid = 4,
.chan_logid = 4,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_16_18 |
DF_DRAM_F_HASH_21_23 |
DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 256ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 1,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 9,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS1_8CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
}, {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 5,
.chan_instid = 5,
.chan_logid = 5,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_16_18 |
DF_DRAM_F_HASH_21_23 |
DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 256ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 1,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 9,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS1_8CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
}, {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 6,
.chan_instid = 6,
.chan_logid = 6,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_16_18 |
DF_DRAM_F_HASH_21_23 |
DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 256ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 1,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 9,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS1_8CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
}, {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 7,
.chan_instid = 7,
.chan_logid = 7,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_16_18 |
DF_DRAM_F_HASH_21_23 |
DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 256ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 1,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 9,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS1_8CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
} }
}, {
.zud_dfno = 1,
.zud_dram_nrules = 2,
.zud_nchan = 8,
.zud_cs_nremap = 0,
.zud_hole_base = 0,
.zud_rules = { {
.ddr_flags = DF_DRAM_F_VALID | DF_DRAM_F_HASH_16_18 |
DF_DRAM_F_HASH_21_23 | DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 256ULL * 1024ULL * 1024ULL * 1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 1,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 9,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS1_8CH
} },
.zud_chan = { {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 0x20,
.chan_instid = 0,
.chan_logid = 0,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_16_18 |
DF_DRAM_F_HASH_21_23 |
DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 256ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 1,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 9,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS1_8CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
}, {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 0x21,
.chan_instid = 1,
.chan_logid = 1,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_16_18 |
DF_DRAM_F_HASH_21_23 |
DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 256ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 1,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 9,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS1_8CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
}, {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 0x22,
.chan_instid = 2,
.chan_logid = 2,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_16_18 |
DF_DRAM_F_HASH_21_23 |
DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 256ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 1,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 9,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS1_8CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
}, {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 0x23,
.chan_instid = 3,
.chan_logid = 3,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_16_18 |
DF_DRAM_F_HASH_21_23 |
DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 256ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 1,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 9,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS1_8CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
}, {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 0x24,
.chan_instid = 4,
.chan_logid = 4,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_16_18 |
DF_DRAM_F_HASH_21_23 |
DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 256ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 1,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 9,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS1_8CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
}, {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 0x25,
.chan_instid = 5,
.chan_logid = 5,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_16_18 |
DF_DRAM_F_HASH_21_23 |
DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 256ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 1,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 9,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS1_8CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
}, {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 0x26,
.chan_instid = 6,
.chan_logid = 6,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_16_18 |
DF_DRAM_F_HASH_21_23 |
DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 256ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 1,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 9,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS1_8CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
}, {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 0x27,
.chan_instid = 7,
.chan_logid = 7,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_16_18 |
DF_DRAM_F_HASH_21_23 |
DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 256ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 1,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 9,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS1_8CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
} }
} }
};
static const zen_umc_t zen_umc_nps2_1p = {
.umc_tom = 4ULL * 1024ULL * 1024ULL * 1024ULL,
.umc_tom2 = 32ULL * 1024ULL * 1024ULL * 1024ULL,
.umc_df_rev = DF_REV_4,
.umc_decomp = {
.dfd_sock_mask = 0x01,
.dfd_die_mask = 0x00,
.dfd_node_mask = 0x20,
.dfd_comp_mask = 0x1f,
.dfd_sock_shift = 0,
.dfd_die_shift = 0,
.dfd_node_shift = 5,
.dfd_comp_shift = 0
},
.umc_ndfs = 1,
.umc_dfs = { {
.zud_dfno = 0,
.zud_dram_nrules = 1,
.zud_nchan = 2,
.zud_cs_nremap = 0,
.zud_hole_base = 0,
.zud_rules = { {
.ddr_flags = DF_DRAM_F_VALID | DF_DRAM_F_HASH_16_18 |
DF_DRAM_F_HASH_21_23 | DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 32ULL * 1024ULL * 1024ULL * 1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 0,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 9,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS4_2CH
} },
.zud_chan = { {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 0,
.chan_instid = 0,
.chan_logid = 0,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_16_18 |
DF_DRAM_F_HASH_21_23 |
DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 32ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 0,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 9,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS4_2CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
}, {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 1,
.chan_instid = 1,
.chan_logid = 1,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_16_18 |
DF_DRAM_F_HASH_21_23 |
DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 32ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 0,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 9,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS4_2CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
} }
} }
};
static const zen_umc_t zen_umc_nps5_1p = {
.umc_tom = 4ULL * 1024ULL * 1024ULL * 1024ULL,
.umc_tom2 = 80ULL * 1024ULL * 1024ULL * 1024ULL,
.umc_df_rev = DF_REV_4,
.umc_decomp = {
.dfd_sock_mask = 0x01,
.dfd_die_mask = 0x00,
.dfd_node_mask = 0x20,
.dfd_comp_mask = 0x1f,
.dfd_sock_shift = 0,
.dfd_die_shift = 0,
.dfd_node_shift = 5,
.dfd_comp_shift = 0
},
.umc_ndfs = 1,
.umc_dfs = { {
.zud_dfno = 0,
.zud_dram_nrules = 1,
.zud_nchan = 5,
.zud_cs_nremap = 0,
.zud_hole_base = 0,
.zud_rules = { {
.ddr_flags = DF_DRAM_F_VALID | DF_DRAM_F_HASH_16_18 |
DF_DRAM_F_HASH_21_23 | DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 80ULL * 1024ULL * 1024ULL * 1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 0,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 8,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS2_5CH
} },
.zud_chan = { {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 0,
.chan_instid = 0,
.chan_logid = 0,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_16_18 |
DF_DRAM_F_HASH_21_23 |
DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 80ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 0,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 8,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS2_5CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
}, {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 1,
.chan_instid = 1,
.chan_logid = 1,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_16_18 |
DF_DRAM_F_HASH_21_23 |
DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 80ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 0,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 8,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS2_5CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
}, {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 2,
.chan_instid = 2,
.chan_logid = 2,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_16_18 |
DF_DRAM_F_HASH_21_23 |
DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 80ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 0,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 8,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS2_5CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
}, {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 3,
.chan_instid = 3,
.chan_logid = 3,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_16_18 |
DF_DRAM_F_HASH_21_23 |
DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 80ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 0,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 8,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS2_5CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
}, {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 4,
.chan_instid = 4,
.chan_logid = 4,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_16_18 |
DF_DRAM_F_HASH_21_23 |
DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 80ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 0,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 8,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS2_5CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
} }
} }
};
static const zen_umc_t zen_umc_nps6_1p = {
.umc_tom = 4ULL * 1024ULL * 1024ULL * 1024ULL,
.umc_tom2 = 96ULL * 1024ULL * 1024ULL * 1024ULL,
.umc_df_rev = DF_REV_4,
.umc_decomp = {
.dfd_sock_mask = 0x01,
.dfd_die_mask = 0x00,
.dfd_node_mask = 0x20,
.dfd_comp_mask = 0x1f,
.dfd_sock_shift = 0,
.dfd_die_shift = 0,
.dfd_node_shift = 5,
.dfd_comp_shift = 0
},
.umc_ndfs = 1,
.umc_dfs = { {
.zud_dfno = 0,
.zud_dram_nrules = 1,
.zud_nchan = 6,
.zud_cs_nremap = 0,
.zud_hole_base = 0,
.zud_rules = { {
.ddr_flags = DF_DRAM_F_VALID | DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 96ULL * 1024ULL * 1024ULL * 1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 0,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 8,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS2_6CH
} },
.zud_chan = { {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 0,
.chan_instid = 0,
.chan_logid = 0,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 96ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 0,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 8,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS2_6CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
}, {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 1,
.chan_instid = 1,
.chan_logid = 1,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 96ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 0,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 8,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS2_6CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
}, {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 2,
.chan_instid = 2,
.chan_logid = 2,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 96ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 0,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 8,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS2_6CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
}, {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 3,
.chan_instid = 3,
.chan_logid = 3,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 96ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 0,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 8,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS2_6CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
}, {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 4,
.chan_instid = 4,
.chan_logid = 4,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 96ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 0,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 8,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS2_6CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
}, {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 5,
.chan_instid = 5,
.chan_logid = 5,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_30_32,
.ddr_base = 0,
.ddr_limit = 96ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 0,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 8,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS2_6CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
} }
} }
};
static const zen_umc_t zen_umc_nps3_2p = {
.umc_tom = 4ULL * 1024ULL * 1024ULL * 1024ULL,
.umc_tom2 = 96ULL * 1024ULL * 1024ULL * 1024ULL,
.umc_df_rev = DF_REV_4,
.umc_decomp = {
.dfd_sock_mask = 0x01,
.dfd_die_mask = 0x00,
.dfd_node_mask = 0x20,
.dfd_comp_mask = 0x1f,
.dfd_sock_shift = 0,
.dfd_die_shift = 0,
.dfd_node_shift = 5,
.dfd_comp_shift = 0
},
.umc_ndfs = 2,
.umc_dfs = { {
.zud_dfno = 0,
.zud_dram_nrules = 1,
.zud_nchan = 3,
.zud_cs_nremap = 0,
.zud_hole_base = 0,
.zud_rules = { {
.ddr_flags = DF_DRAM_F_VALID | DF_DRAM_F_HASH_21_23,
.ddr_base = 0,
.ddr_limit = 96ULL * 1024ULL * 1024ULL * 1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 1,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 8,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS4_3CH
} },
.zud_chan = { {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 0,
.chan_instid = 0,
.chan_logid = 0,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_21_23,
.ddr_base = 0,
.ddr_limit = 96ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 1,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 8,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS4_3CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
}, {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 1,
.chan_instid = 1,
.chan_logid = 1,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_21_23,
.ddr_base = 0,
.ddr_limit = 96ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 1,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 8,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS4_3CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
}, {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 2,
.chan_instid = 2,
.chan_logid = 2,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_21_23,
.ddr_base = 0,
.ddr_limit = 96ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 1,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 8,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS4_3CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} }
} }
}, {
.zud_dfno = 1,
.zud_dram_nrules = 1,
.zud_nchan = 3,
.zud_cs_nremap = 0,
.zud_hole_base = 0,
.zud_rules = { {
.ddr_flags = DF_DRAM_F_VALID | DF_DRAM_F_HASH_21_23,
.ddr_base = 0,
.ddr_limit = 96ULL * 1024ULL * 1024ULL * 1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 1,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 8,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS4_3CH
} },
.zud_chan = { {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 0x20,
.chan_instid = 0,
.chan_logid = 0,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_21_23,
.ddr_base = 0,
.ddr_limit = 96ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 1,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 8,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS4_3CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
}, {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 0x21,
.chan_instid = 1,
.chan_logid = 1,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_21_23,
.ddr_base = 0,
.ddr_limit = 96ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 1,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 8,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS4_3CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} },
}, {
.chan_flags = UMC_CHAN_F_ECC_EN,
.chan_fabid = 0x22,
.chan_instid = 2,
.chan_logid = 2,
.chan_nrules = 1,
.chan_type = UMC_DIMM_T_DDR5,
.chan_rules = { {
.ddr_flags = DF_DRAM_F_VALID |
DF_DRAM_F_HASH_21_23,
.ddr_base = 0,
.ddr_limit = 96ULL * 1024ULL * 1024ULL *
1024ULL,
.ddr_dest_fabid = 0,
.ddr_sock_ileave_bits = 1,
.ddr_die_ileave_bits = 0,
.ddr_addr_start = 8,
.ddr_chan_ileave = DF_CHAN_ILEAVE_NPS4_3CH
} },
.chan_dimms = { {
.ud_flags = UMC_DIMM_F_VALID,
.ud_width = UMC_DIMM_W_X4,
.ud_kind = UMC_DIMM_K_RDIMM,
.ud_dimmno = 0,
.ud_cs = { {
.ucs_flags = UMC_CS_F_DECODE_EN,
.ucs_base = {
.udb_base = 0,
.udb_valid = B_TRUE
},
.ucs_base_mask = 0x3ffffffff,
.ucs_nbanks = 0x5,
.ucs_ncol = 0xa,
.ucs_nrow_lo = 0x10,
.ucs_nbank_groups = 0x3,
.ucs_row_low_bit = 0x12,
.ucs_bank_bits = { 0xf, 0x10, 0x11, 0xd,
0xe },
.ucs_col_bits = { 0x2, 0x3, 0x4, 0x5,
0x7, 0x8, 0x9, 0xa, 0xb, 0xc },
.ucs_subchan = 0x6
} }
} }
} }
} }
};
const umc_decode_test_t zen_umc_test_nps[] = { {
.udt_desc = "NPS 8ch, 2P ilv (0)",
.udt_umc = &zen_umc_nps8_2p,
.udt_pa = 0x123,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x123,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 0,
.udt_dimm_no = 0,
.udt_dimm_col = 0x28,
.udt_dimm_row = 0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 8ch, 2P ilv (1)",
.udt_umc = &zen_umc_nps8_2p,
.udt_pa = 0x323,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x123,
.udt_sock = 1,
.udt_die = 0,
.udt_comp = 0,
.udt_dimm_no = 0,
.udt_dimm_col = 0x28,
.udt_dimm_row = 0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 8ch, 2P ilv (2)",
.udt_umc = &zen_umc_nps8_2p,
.udt_pa = 0x1123,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x123,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 1,
.udt_dimm_no = 0,
.udt_dimm_col = 0x28,
.udt_dimm_row = 0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 8ch, 2P ilv (3)",
.udt_umc = &zen_umc_nps8_2p,
.udt_pa = 0x1323,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x123,
.udt_sock = 1,
.udt_die = 0,
.udt_comp = 1,
.udt_dimm_no = 0,
.udt_dimm_col = 0x28,
.udt_dimm_row = 0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 8ch, 2P ilv (4)",
.udt_umc = &zen_umc_nps8_2p,
.udt_pa = 0x2123,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x123,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 2,
.udt_dimm_no = 0,
.udt_dimm_col = 0x28,
.udt_dimm_row = 0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 8ch, 2P ilv (5)",
.udt_umc = &zen_umc_nps8_2p,
.udt_pa = 0x2323,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x123,
.udt_sock = 1,
.udt_die = 0,
.udt_comp = 2,
.udt_dimm_no = 0,
.udt_dimm_col = 0x28,
.udt_dimm_row = 0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 8ch, 2P ilv (6)",
.udt_umc = &zen_umc_nps8_2p,
.udt_pa = 0x3123,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x123,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 3,
.udt_dimm_no = 0,
.udt_dimm_col = 0x28,
.udt_dimm_row = 0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 8ch, 2P ilv (7)",
.udt_umc = &zen_umc_nps8_2p,
.udt_pa = 0x3323,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x123,
.udt_sock = 1,
.udt_die = 0,
.udt_comp = 3,
.udt_dimm_no = 0,
.udt_dimm_col = 0x28,
.udt_dimm_row = 0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 8ch, 2P ilv (8)",
.udt_umc = &zen_umc_nps8_2p,
.udt_pa = 0x4123,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x123,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 4,
.udt_dimm_no = 0,
.udt_dimm_col = 0x28,
.udt_dimm_row = 0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 8ch, 2P ilv (9)",
.udt_umc = &zen_umc_nps8_2p,
.udt_pa = 0x4323,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x123,
.udt_sock = 1,
.udt_die = 0,
.udt_comp = 4,
.udt_dimm_no = 0,
.udt_dimm_col = 0x28,
.udt_dimm_row = 0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 8ch, 2P ilv (10)",
.udt_umc = &zen_umc_nps8_2p,
.udt_pa = 0x5123,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x123,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 5,
.udt_dimm_no = 0,
.udt_dimm_col = 0x28,
.udt_dimm_row = 0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 8ch, 2P ilv (11)",
.udt_umc = &zen_umc_nps8_2p,
.udt_pa = 0x5323,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x123,
.udt_sock = 1,
.udt_die = 0,
.udt_comp = 5,
.udt_dimm_no = 0,
.udt_dimm_col = 0x28,
.udt_dimm_row = 0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 8ch, 2P ilv (12)",
.udt_umc = &zen_umc_nps8_2p,
.udt_pa = 0x6123,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x123,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 6,
.udt_dimm_no = 0,
.udt_dimm_col = 0x28,
.udt_dimm_row = 0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 8ch, 2P ilv (13)",
.udt_umc = &zen_umc_nps8_2p,
.udt_pa = 0x6323,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x123,
.udt_sock = 1,
.udt_die = 0,
.udt_comp = 6,
.udt_dimm_no = 0,
.udt_dimm_col = 0x28,
.udt_dimm_row = 0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 8ch, 2P ilv (14)",
.udt_umc = &zen_umc_nps8_2p,
.udt_pa = 0x7123,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x123,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 7,
.udt_dimm_no = 0,
.udt_dimm_col = 0x28,
.udt_dimm_row = 0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 8ch, 2P ilv (15)",
.udt_umc = &zen_umc_nps8_2p,
.udt_pa = 0x7323,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x123,
.udt_sock = 1,
.udt_die = 0,
.udt_comp = 7,
.udt_dimm_no = 0,
.udt_dimm_col = 0x28,
.udt_dimm_row = 0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 8ch, 2P ilv (16)",
.udt_umc = &zen_umc_nps8_2p,
.udt_pa = 0x17323,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x1123,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 7,
.udt_dimm_no = 0,
.udt_dimm_col = 0x228,
.udt_dimm_row = 0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 8ch, 2P ilv (17)",
.udt_umc = &zen_umc_nps8_2p,
.udt_pa = 0x217323,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x21123,
.udt_sock = 1,
.udt_die = 0,
.udt_comp = 7,
.udt_dimm_no = 0,
.udt_dimm_col = 0x228,
.udt_dimm_row = 0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x4,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 8ch, 2P ilv (18)",
.udt_umc = &zen_umc_nps8_2p,
.udt_pa = 0x40217323,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x4021123,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 7,
.udt_dimm_no = 0,
.udt_dimm_col = 0x228,
.udt_dimm_row = 0x100,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x4,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 8ch, 2P ilv (19)",
.udt_umc = &zen_umc_nps8_2p,
.udt_pa = 0x240217323,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x24021123,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 3,
.udt_dimm_no = 0,
.udt_dimm_col = 0x228,
.udt_dimm_row = 0x900,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x4,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 8ch, 2P ilv (20)",
.udt_umc = &zen_umc_nps8_2p,
.udt_pa = 0x240617323,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x24061123,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 2,
.udt_dimm_no = 0,
.udt_dimm_col = 0x228,
.udt_dimm_row = 0x901,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x4,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 8ch, 2P ilv (21)",
.udt_umc = &zen_umc_nps8_2p,
.udt_pa = 0x240617323,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x24061123,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 2,
.udt_dimm_no = 0,
.udt_dimm_col = 0x228,
.udt_dimm_row = 0x901,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x4,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 8ch, 2P ilv (22)",
.udt_umc = &zen_umc_nps8_2p,
.udt_pa = 0x240687323,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x24068123,
.udt_sock = 1,
.udt_die = 0,
.udt_comp = 6,
.udt_dimm_no = 0,
.udt_dimm_col = 0x28,
.udt_dimm_row = 0x901,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x5,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 8ch, 2P ilv (23)",
.udt_umc = &zen_umc_nps8_2p,
.udt_pa = 0x2c0687323,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x2c068123,
.udt_sock = 1,
.udt_die = 0,
.udt_comp = 7,
.udt_dimm_no = 0,
.udt_dimm_col = 0x28,
.udt_dimm_row = 0xb01,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x5,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 2ch, 1P (0)",
.udt_umc = &zen_umc_nps2_1p,
.udt_pa = 0x167,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x167,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 0,
.udt_dimm_no = 0,
.udt_dimm_col = 0x29,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 1,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 2ch, 1P (1)",
.udt_umc = &zen_umc_nps2_1p,
.udt_pa = 0x367,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x167,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 1,
.udt_dimm_no = 0,
.udt_dimm_col = 0x29,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 1,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 2ch, 1P (2)",
.udt_umc = &zen_umc_nps2_1p,
.udt_pa = 0x4167,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x2167,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 1,
.udt_dimm_no = 0,
.udt_dimm_col = 0x29,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 1,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 1,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 2ch, 1P (3)",
.udt_umc = &zen_umc_nps2_1p,
.udt_pa = 0x14167,
.udt_pass = B_TRUE,
.udt_norm_addr = 0xa167,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 0,
.udt_dimm_no = 0,
.udt_dimm_col = 0x29,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 1,
.udt_dimm_bank_group = 0x1,
.udt_dimm_subchan = 1,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 2ch, 1P (4)",
.udt_umc = &zen_umc_nps2_1p,
.udt_pa = 0x40014167,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x2000a167,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 1,
.udt_dimm_no = 0,
.udt_dimm_col = 0x29,
.udt_dimm_row = 0x800,
.udt_dimm_bank = 1,
.udt_dimm_bank_group = 0x1,
.udt_dimm_subchan = 1,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 2ch, 1P (5)",
.udt_umc = &zen_umc_nps2_1p,
.udt_pa = 0x214167,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x10a167,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 1,
.udt_dimm_no = 0,
.udt_dimm_col = 0x29,
.udt_dimm_row = 0x4,
.udt_dimm_bank = 1,
.udt_dimm_bank_group = 0x1,
.udt_dimm_subchan = 1,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 2ch, 1P (6)",
.udt_umc = &zen_umc_nps2_1p,
.udt_pa = 0x40214167,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x2010a167,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 0,
.udt_dimm_no = 0,
.udt_dimm_col = 0x29,
.udt_dimm_row = 0x804,
.udt_dimm_bank = 1,
.udt_dimm_bank_group = 0x1,
.udt_dimm_subchan = 1,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 5ch, 1P (0)",
.udt_umc = &zen_umc_nps5_1p,
.udt_pa = 0xcd,
.udt_pass = B_TRUE,
.udt_norm_addr = 0xcd,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 0,
.udt_dimm_no = 0,
.udt_dimm_col = 0x13,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 1,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 5ch, 1P (1)",
.udt_umc = &zen_umc_nps5_1p,
.udt_pa = 0x1cd,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x20cd,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 1,
.udt_dimm_no = 0,
.udt_dimm_col = 0x13,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 1,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 1,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 5ch, 1P (2)",
.udt_umc = &zen_umc_nps5_1p,
.udt_pa = 0x2cd,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x1cd,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 0,
.udt_dimm_no = 0,
.udt_dimm_col = 0x33,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 1,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 5ch, 1P (3)",
.udt_umc = &zen_umc_nps5_1p,
.udt_pa = 0x3cd,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x21cd,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 1,
.udt_dimm_no = 0,
.udt_dimm_col = 0x33,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 1,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 1,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 5ch, 1P (4)",
.udt_umc = &zen_umc_nps5_1p,
.udt_pa = 0x4cd,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x2cd,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 0,
.udt_dimm_no = 0,
.udt_dimm_col = 0x53,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 1,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 5ch, 1P (5)",
.udt_umc = &zen_umc_nps5_1p,
.udt_pa = 0x5cd,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x22cd,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 1,
.udt_dimm_no = 0,
.udt_dimm_col = 0x53,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 1,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 1,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 5ch, 1P (6)",
.udt_umc = &zen_umc_nps5_1p,
.udt_pa = 0x6cd,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x3cd,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 0,
.udt_dimm_no = 0,
.udt_dimm_col = 0x73,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 1,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 5ch, 1P (7)",
.udt_umc = &zen_umc_nps5_1p,
.udt_pa = 0x3ecd,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x1fcd,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 0,
.udt_dimm_no = 0,
.udt_dimm_col = 0x3f3,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 1,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 5ch, 1P (8)",
.udt_umc = &zen_umc_nps5_1p,
.udt_pa = 0x3fcd,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x3fcd,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 1,
.udt_dimm_no = 0,
.udt_dimm_col = 0x3f3,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 1,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 1,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 5ch, 1P (9)",
.udt_umc = &zen_umc_nps5_1p,
.udt_pa = 0x40cd,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x20cd,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 2,
.udt_dimm_no = 0,
.udt_dimm_col = 0x13,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 1,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 1,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 5ch, 1P (10)",
.udt_umc = &zen_umc_nps5_1p,
.udt_pa = 0x41cd,
.udt_pass = B_TRUE,
.udt_norm_addr = 0xcd,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 1,
.udt_dimm_no = 0,
.udt_dimm_col = 0x13,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 1,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 5ch, 1P (11)",
.udt_umc = &zen_umc_nps5_1p,
.udt_pa = 0x80cd,
.udt_pass = B_TRUE,
.udt_norm_addr = 0xcd,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 2,
.udt_dimm_no = 0,
.udt_dimm_col = 0x13,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 1,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 5ch, 1P (12)",
.udt_umc = &zen_umc_nps5_1p,
.udt_pa = 0x81cd,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x20cd,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 3,
.udt_dimm_no = 0,
.udt_dimm_col = 0x13,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 1,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 1,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 5ch, 1P (13)",
.udt_umc = &zen_umc_nps5_1p,
.udt_pa = 0xc0cd,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x20cd,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 4,
.udt_dimm_no = 0,
.udt_dimm_col = 0x13,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 1,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 1,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 5ch, 1P (14)",
.udt_umc = &zen_umc_nps5_1p,
.udt_pa = 0xc1cd,
.udt_pass = B_TRUE,
.udt_norm_addr = 0xcd,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 3,
.udt_dimm_no = 0,
.udt_dimm_col = 0x13,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 1,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 5ch, 1P (15)",
.udt_umc = &zen_umc_nps5_1p,
.udt_pa = 0x100cd,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x20cd,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 0,
.udt_dimm_no = 0,
.udt_dimm_col = 0x13,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 1,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 1,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 5ch, 1P (16)",
.udt_umc = &zen_umc_nps5_1p,
.udt_pa = 0x101cd,
.udt_pass = B_TRUE,
.udt_norm_addr = 0xcd,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 4,
.udt_dimm_no = 0,
.udt_dimm_col = 0x13,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 1,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 5ch, 1P (17)",
.udt_umc = &zen_umc_nps5_1p,
.udt_pa = 0x140cd,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x40cd,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 0,
.udt_dimm_no = 0,
.udt_dimm_col = 0x13,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 2,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 1,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 5ch, 1P (18)",
.udt_umc = &zen_umc_nps5_1p,
.udt_pa = 0x141cd,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x60cd,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 1,
.udt_dimm_no = 0,
.udt_dimm_col = 0x13,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 3,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 1,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 6ch, 1P (0)",
.udt_umc = &zen_umc_nps6_1p,
.udt_pa = 0xbc,
.udt_pass = B_TRUE,
.udt_norm_addr = 0xbc,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 0,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1f,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 6ch, 1P (1)",
.udt_umc = &zen_umc_nps6_1p,
.udt_pa = 0x1bc,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x10bc,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 1,
.udt_dimm_no = 0,
.udt_dimm_col = 0x21f,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 6ch, 1P (2)",
.udt_umc = &zen_umc_nps6_1p,
.udt_pa = 0x20bc,
.udt_pass = B_TRUE,
.udt_norm_addr = 0xbc,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 3,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1f,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 6ch, 1P (3)",
.udt_umc = &zen_umc_nps6_1p,
.udt_pa = 0x21bc,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x10bc,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 4,
.udt_dimm_no = 0,
.udt_dimm_col = 0x21f,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 6ch, 1P (4)",
.udt_umc = &zen_umc_nps6_1p,
.udt_pa = 0x40bc,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x10bc,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 2,
.udt_dimm_no = 0,
.udt_dimm_col = 0x21f,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 6ch, 1P (5)",
.udt_umc = &zen_umc_nps6_1p,
.udt_pa = 0x41bc,
.udt_pass = B_TRUE,
.udt_norm_addr = 0xbc,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 1,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1f,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 6ch, 1P (6)",
.udt_umc = &zen_umc_nps6_1p,
.udt_pa = 0x60bc,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x10bc,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 5,
.udt_dimm_no = 0,
.udt_dimm_col = 0x21f,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 6ch, 1P (7)",
.udt_umc = &zen_umc_nps6_1p,
.udt_pa = 0x61bc,
.udt_pass = B_TRUE,
.udt_norm_addr = 0xbc,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 4,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1f,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 6ch, 1P (8)",
.udt_umc = &zen_umc_nps6_1p,
.udt_pa = 0x80bc,
.udt_pass = B_TRUE,
.udt_norm_addr = 0xbc,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 2,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1f,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 6ch, 1P (9)",
.udt_umc = &zen_umc_nps6_1p,
.udt_pa = 0x81bc,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x10bc,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 0,
.udt_dimm_no = 0,
.udt_dimm_col = 0x21f,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 6ch, 1P (10)",
.udt_umc = &zen_umc_nps6_1p,
.udt_pa = 0xa0bc,
.udt_pass = B_TRUE,
.udt_norm_addr = 0xbc,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 5,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1f,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 6ch, 1P (11)",
.udt_umc = &zen_umc_nps6_1p,
.udt_pa = 0xa1bc,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x10bc,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 3,
.udt_dimm_no = 0,
.udt_dimm_col = 0x21f,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
},
{
.udt_desc = "NPS 6ch, 1P (12)",
.udt_umc = &zen_umc_nps6_1p,
.udt_pa = 0x120bc,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x20bc,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 4,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1f,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 1,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 6ch, 1P (13)",
.udt_umc = &zen_umc_nps6_1p,
.udt_pa = 0x220bc,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x40bc,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 5,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1f,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0x2,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 6ch, 1P (14)",
.udt_umc = &zen_umc_nps6_1p,
.udt_pa = 0x320bc,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x80bc,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 3,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1f,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0x0,
.udt_dimm_bank_group = 0x1,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 6ch, 1P (15)",
.udt_umc = &zen_umc_nps6_1p,
.udt_pa = 0x420bc,
.udt_pass = B_TRUE,
.udt_norm_addr = 0xa0bc,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 4,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1f,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0x1,
.udt_dimm_bank_group = 0x1,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 6ch, 1P (16)",
.udt_umc = &zen_umc_nps6_1p,
.udt_pa = 0x720bc,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x120bc,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 4,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1f,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0x1,
.udt_dimm_bank_group = 0x2,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 6ch, 1P (17)",
.udt_umc = &zen_umc_nps6_1p,
.udt_pa = 0x1000020bc,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x2aaaa0bc,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 1,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1f,
.udt_dimm_row = 0xaaa,
.udt_dimm_bank = 0x1,
.udt_dimm_bank_group = 0x5,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 6ch, 1P (18)",
.udt_umc = &zen_umc_nps6_1p,
.udt_pa = 0x1800020bc,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x400000bc,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 0,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1f,
.udt_dimm_row = 0x1000,
.udt_dimm_bank = 0x0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 6ch, 1P (19)",
.udt_umc = &zen_umc_nps6_1p,
.udt_pa = 0x1c00020bc,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x4aaab0bc,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 2,
.udt_dimm_no = 0,
.udt_dimm_col = 0x21f,
.udt_dimm_row = 0x12aa,
.udt_dimm_bank = 0x1,
.udt_dimm_bank_group = 0x5,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 6ch, 1P (20)",
.udt_umc = &zen_umc_nps6_1p,
.udt_pa = 0x1c00060bc,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x4aaaa0bc,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 2,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1f,
.udt_dimm_row = 0x12aa,
.udt_dimm_bank = 0x1,
.udt_dimm_bank_group = 0x5,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 6ch, 1P (21)",
.udt_umc = &zen_umc_nps6_1p,
.udt_pa = 0x1c00040bc,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x4aaaa0bc,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 5,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1f,
.udt_dimm_row = 0x12aa,
.udt_dimm_bank = 0x1,
.udt_dimm_bank_group = 0x5,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 6ch, 1P (22)",
.udt_umc = &zen_umc_nps6_1p,
.udt_pa = 0x1c00041bc,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x4aaab0bc,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 3,
.udt_dimm_no = 0,
.udt_dimm_col = 0x21f,
.udt_dimm_row = 0x12aa,
.udt_dimm_bank = 0x1,
.udt_dimm_bank_group = 0x5,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 6ch, 1P (23)",
.udt_umc = &zen_umc_nps6_1p,
.udt_pa = 0x1c00061bc,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x4aaab0bc,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 0,
.udt_dimm_no = 0,
.udt_dimm_col = 0x21f,
.udt_dimm_row = 0x12aa,
.udt_dimm_bank = 0x1,
.udt_dimm_bank_group = 0x5,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 3ch, 2P (0)",
.udt_umc = &zen_umc_nps3_2p,
.udt_pa = 0xad,
.udt_pass = B_TRUE,
.udt_norm_addr = 0xad,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 0,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1b,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0x0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 3ch, 2P (1)",
.udt_umc = &zen_umc_nps3_2p,
.udt_pa = 0x1ad,
.udt_pass = B_TRUE,
.udt_norm_addr = 0xad,
.udt_sock = 1,
.udt_die = 0,
.udt_comp = 1,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1b,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0x0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 3ch, 2P (2)",
.udt_umc = &zen_umc_nps3_2p,
.udt_pa = 0x40ad,
.udt_pass = B_TRUE,
.udt_norm_addr = 0xad,
.udt_sock = 1,
.udt_die = 0,
.udt_comp = 2,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1b,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0x0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 3ch, 2P (3)",
.udt_umc = &zen_umc_nps3_2p,
.udt_pa = 0x41ad,
.udt_pass = B_TRUE,
.udt_norm_addr = 0xad,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 1,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1b,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0x0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 3ch, 2P (4)",
.udt_umc = &zen_umc_nps3_2p,
.udt_pa = 0x80ad,
.udt_pass = B_TRUE,
.udt_norm_addr = 0xad,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 2,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1b,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0x0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 3ch, 2P (5)",
.udt_umc = &zen_umc_nps3_2p,
.udt_pa = 0x81ad,
.udt_pass = B_TRUE,
.udt_norm_addr = 0xad,
.udt_sock = 1,
.udt_die = 0,
.udt_comp = 0,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1b,
.udt_dimm_row = 0x0,
.udt_dimm_bank = 0x0,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 3ch, 2P (6)",
.udt_umc = &zen_umc_nps3_2p,
.udt_pa = 0x1fc0ad,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x540ad,
.udt_sock = 1,
.udt_die = 0,
.udt_comp = 2,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1b,
.udt_dimm_row = 0x1,
.udt_dimm_bank = 0x2,
.udt_dimm_bank_group = 0x2,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 3ch, 2P (7)",
.udt_umc = &zen_umc_nps3_2p,
.udt_pa = 0x1fc1ad,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x540ad,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 1,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1b,
.udt_dimm_row = 0x1,
.udt_dimm_bank = 0x2,
.udt_dimm_bank_group = 0x2,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 3ch, 2P (8)",
.udt_umc = &zen_umc_nps3_2p,
.udt_pa = 0x2000ad,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x540ad,
.udt_sock = 1,
.udt_die = 0,
.udt_comp = 0,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1b,
.udt_dimm_row = 0x1,
.udt_dimm_bank = 0x2,
.udt_dimm_bank_group = 0x2,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 3ch, 2P (9)",
.udt_umc = &zen_umc_nps3_2p,
.udt_pa = 0x2001ad,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x540ad,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 2,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1b,
.udt_dimm_row = 0x1,
.udt_dimm_bank = 0x2,
.udt_dimm_bank_group = 0x2,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 3ch, 2P (10)",
.udt_umc = &zen_umc_nps3_2p,
.udt_pa = 0x2040ad,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x560ad,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 0,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1b,
.udt_dimm_row = 0x1,
.udt_dimm_bank = 0x3,
.udt_dimm_bank_group = 0x2,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 3ch, 2P (11)",
.udt_umc = &zen_umc_nps3_2p,
.udt_pa = 0x2041ad,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x560ad,
.udt_sock = 1,
.udt_die = 0,
.udt_comp = 1,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1b,
.udt_dimm_row = 0x1,
.udt_dimm_bank = 0x3,
.udt_dimm_bank_group = 0x2,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 3ch, 2P (12)",
.udt_umc = &zen_umc_nps3_2p,
.udt_pa = 0x2080ad,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x560ad,
.udt_sock = 1,
.udt_die = 0,
.udt_comp = 2,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1b,
.udt_dimm_row = 0x1,
.udt_dimm_bank = 0x3,
.udt_dimm_bank_group = 0x2,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 3ch, 2P (13)",
.udt_umc = &zen_umc_nps3_2p,
.udt_pa = 0x2081ad,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x560ad,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 1,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1b,
.udt_dimm_row = 0x1,
.udt_dimm_bank = 0x3,
.udt_dimm_bank_group = 0x2,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 3ch, 2P (14)",
.udt_umc = &zen_umc_nps3_2p,
.udt_pa = 0x20c0ad,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x560ad,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 2,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1b,
.udt_dimm_row = 0x1,
.udt_dimm_bank = 0x3,
.udt_dimm_bank_group = 0x2,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 3ch, 2P (15)",
.udt_umc = &zen_umc_nps3_2p,
.udt_pa = 0x20c1ad,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x560ad,
.udt_sock = 1,
.udt_die = 0,
.udt_comp = 0,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1b,
.udt_dimm_row = 0x1,
.udt_dimm_bank = 0x3,
.udt_dimm_bank_group = 0x2,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 3ch, 2P (16)",
.udt_umc = &zen_umc_nps3_2p,
.udt_pa = 0x10020c0ad,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x2ab020ad,
.udt_sock = 0,
.udt_die = 0,
.udt_comp = 0,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1b,
.udt_dimm_row = 0xaac,
.udt_dimm_bank = 0x1,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = "NPS 3ch, 2P (17)",
.udt_umc = &zen_umc_nps3_2p,
.udt_pa = 0x10020c1ad,
.udt_pass = B_TRUE,
.udt_norm_addr = 0x2ab020ad,
.udt_sock = 1,
.udt_die = 0,
.udt_comp = 1,
.udt_dimm_no = 0,
.udt_dimm_col = 0x1b,
.udt_dimm_row = 0xaac,
.udt_dimm_bank = 0x1,
.udt_dimm_bank_group = 0x0,
.udt_dimm_subchan = 0,
.udt_dimm_rm = 0,
.udt_dimm_cs = 0
}, {
.udt_desc = NULL
} };