#include "imc_test.h"
static const imc_t imc_basic_snb = {
.imc_gen = IMC_GEN_SANDY,
.imc_nsockets = 1,
.imc_sockets[0] = {
.isock_valid = IMC_SOCKET_V_VALID,
.isock_sad = {
.isad_flags = 0,
.isad_valid = IMC_SAD_V_VALID,
.isad_tolm = 0x80000000,
.isad_tohm = 0,
.isad_nrules = 10,
.isad_rules[0] = {
.isr_enable = B_TRUE,
.isr_limit = 0x80000000,
.isr_imode = IMC_SAD_IMODE_8t6,
.isr_ntargets = IMC_MAX_SAD_INTERLEAVE,
.isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 }
}
},
.isock_ntad = 1,
.isock_tad[0] = {
.itad_flags = 0,
.itad_nrules = 12,
.itad_rules[0] = {
.itr_base = 0x0,
.itr_limit = 0x80000000,
.itr_sock_way = 1,
.itr_chan_way = 1,
.itr_sock_gran = IMC_TAD_GRAN_64B,
.itr_chan_gran = IMC_TAD_GRAN_64B,
.itr_ntargets = 4,
.itr_targets = { 0, 0, 0, 0 }
}
},
.isock_nimc = 1,
.isock_imcs[0] = {
.icn_nchannels = 1,
.icn_dimm_type = IMC_DIMM_DDR3,
.icn_ecc = B_TRUE,
.icn_lockstep = B_FALSE,
.icn_closed = B_TRUE,
.icn_channels[0] = {
.ich_ndimms = 1,
.ich_dimms[0] = {
.idimm_present = B_TRUE,
.idimm_nbanks = 3,
.idimm_width = 8,
.idimm_density = 2,
.idimm_nranks = 2,
.idimm_nrows = 14,
.idimm_ncolumns = 10,
.idimm_size = 0x80000000
},
.ich_ntad_offsets = 12,
.ich_tad_offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
.ich_nrankileaves = 8,
.ich_rankileaves[0] = {
.irle_enabled = B_TRUE,
.irle_nways = 2,
.irle_nwaysbits = 1,
.irle_limit = 0x80000000,
.irle_nentries = 5,
.irle_entries[0] = { 0x0, 0x0 },
.irle_entries[1] = { 0x1, 0x0 }
}
}
}
}
};
const imc_test_case_t imc_test_basics[] = { {
.itc_desc = "decode basic single socket/channel/DIMM, dual rank (1)",
.itc_imc = &imc_basic_snb,
.itc_pa = 0x0,
.itc_pass = B_TRUE,
.itc_nodeid = 0,
.itc_tadid = 0,
.itc_channelid = 0,
.itc_chanaddr = 0,
.itc_dimmid = 0,
.itc_rankid = 0,
.itc_rankaddr = 0
}, {
.itc_desc = "decode basic single socket/channel/DIMM, dual rank (2)",
.itc_imc = &imc_basic_snb,
.itc_pa = 0x1000,
.itc_pass = B_TRUE,
.itc_nodeid = 0,
.itc_tadid = 0,
.itc_channelid = 0,
.itc_chanaddr = 0x1000,
.itc_dimmid = 0,
.itc_rankid = 0,
.itc_rankaddr = 0x800
}, {
.itc_desc = "decode basic single socket/channel/DIMM, dual rank (3)",
.itc_imc = &imc_basic_snb,
.itc_pa = 0x7fffffff,
.itc_pass = B_TRUE,
.itc_nodeid = 0,
.itc_tadid = 0,
.itc_channelid = 0,
.itc_chanaddr = 0x7fffffff,
.itc_dimmid = 0,
.itc_rankid = 1,
.itc_rankaddr = 0x3fffffff,
}, {
.itc_desc = NULL
} };