#include "imc_test.h"
static const imc_t imc_badaddr = {
.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 = 0x280000000ULL,
.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 }
},
.isad_rules[1] = {
.isr_enable = B_TRUE,
.isr_limit = 0x280000000ULL,
.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 }
},
.itad_rules[1] = {
.itr_base = 0x80000000,
.itr_limit = 0x280000000ULL,
.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_FALSE,
.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, 0x80000000, 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 = 0x200000000ULL,
.irle_nentries = 5,
.irle_entries[0] = { 0x0, 0x0 },
.irle_entries[1] = { 0x1, 0x0 }
}
}
}
}
};
const imc_test_case_t imc_test_badaddr[] = { {
.itc_desc = "Bad Address, legacy VGA (1)",
.itc_imc = &imc_badaddr,
.itc_pa = 0xa0000,
.itc_pass = B_FALSE,
.itc_fail = IMC_DECODE_F_LEGACY_RANGE
}, {
.itc_desc = "Bad Address, legacy VGA (2)",
.itc_imc = &imc_badaddr,
.itc_pa = 0xbffff,
.itc_pass = B_FALSE,
.itc_fail = IMC_DECODE_F_LEGACY_RANGE
}, {
.itc_desc = "Bad Address, legacy VGA (3)",
.itc_imc = &imc_badaddr,
.itc_pa = 0xafc89,
.itc_pass = B_FALSE,
.itc_fail = IMC_DECODE_F_LEGACY_RANGE
}, {
.itc_desc = "Bad Address, legacy PAM (1)",
.itc_imc = &imc_badaddr,
.itc_pa = 0xc0000,
.itc_pass = B_FALSE,
.itc_fail = IMC_DECODE_F_LEGACY_RANGE
}, {
.itc_desc = "Bad Address, legacy PAM (2)",
.itc_imc = &imc_badaddr,
.itc_pa = 0xfffff,
.itc_pass = B_FALSE,
.itc_fail = IMC_DECODE_F_LEGACY_RANGE
}, {
.itc_desc = "Bad Address, Reserved (1)",
.itc_imc = &imc_badaddr,
.itc_pa = 0xffffff,
.itc_pass = B_FALSE,
.itc_fail = IMC_DECODE_F_LEGACY_RANGE
}, {
.itc_desc = "Bad Address, Reserved (1)",
.itc_imc = &imc_badaddr,
.itc_pa = 0xffffff,
.itc_pass = B_FALSE,
.itc_fail = IMC_DECODE_F_LEGACY_RANGE
}, {
.itc_desc = "Bad Address, System (1)",
.itc_imc = &imc_badaddr,
.itc_pa = 0x00fe000000,
.itc_pass = B_FALSE,
.itc_fail = IMC_DECODE_F_LEGACY_RANGE
}, {
.itc_desc = "Bad Address, System (2)",
.itc_imc = &imc_badaddr,
.itc_pa = 0x00fe123446,
.itc_pass = B_FALSE,
.itc_fail = IMC_DECODE_F_LEGACY_RANGE
}, {
.itc_desc = "Bad Address, System (3)",
.itc_imc = &imc_badaddr,
.itc_pa = 0x00ff000000,
.itc_pass = B_FALSE,
.itc_fail = IMC_DECODE_F_LEGACY_RANGE
}, {
.itc_desc = "Bad Address, System (4)",
.itc_imc = &imc_badaddr,
.itc_pa = 0x00ffffffff,
.itc_pass = B_FALSE,
.itc_fail = IMC_DECODE_F_LEGACY_RANGE
}, {
.itc_desc = "Bad Address, System (5)",
.itc_imc = &imc_badaddr,
.itc_pa = 0x00ff5abc32,
.itc_pass = B_FALSE,
.itc_fail = IMC_DECODE_F_LEGACY_RANGE
}, {
.itc_desc = "Outside TOLM (1)",
.itc_imc = &imc_badaddr,
.itc_pa = 0x80000000,
.itc_pass = B_FALSE,
.itc_fail = IMC_DECODE_F_OUTSIDE_DRAM
}, {
.itc_desc = "Outside TOLM (2)",
.itc_imc = &imc_badaddr,
.itc_pa = 0xF0000000,
.itc_pass = B_FALSE,
.itc_fail = IMC_DECODE_F_OUTSIDE_DRAM
}, {
.itc_desc = "Outside TOLM (3)",
.itc_imc = &imc_badaddr,
.itc_pa = 0xfdffffffULL,
.itc_pass = B_FALSE,
.itc_fail = IMC_DECODE_F_OUTSIDE_DRAM
}, {
.itc_desc = "Outside TOHM (1)",
.itc_imc = &imc_badaddr,
.itc_pa = 0x280000000ULL,
.itc_pass = B_FALSE,
.itc_fail = IMC_DECODE_F_OUTSIDE_DRAM
}, {
.itc_desc = "Outside TOHM (2)",
.itc_imc = &imc_badaddr,
.itc_pa = UINT64_MAX,
.itc_pass = B_FALSE,
.itc_fail = IMC_DECODE_F_OUTSIDE_DRAM
}, {
.itc_desc = "Outside TOHM (1)",
.itc_imc = &imc_badaddr,
.itc_pa = 0x1280000000ULL,
.itc_pass = B_FALSE,
.itc_fail = IMC_DECODE_F_OUTSIDE_DRAM
}, {
.itc_desc = NULL
} };