#include "imc_test.h"
static const imc_t imc_skx_loop_2s = {
.imc_gen = IMC_GEN_SKYLAKE,
.imc_nsockets = 2,
.imc_sockets[0] = {
.isock_nodeid = 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 = 24,
.isad_rules[0] = {
.isr_enable = B_TRUE,
.isr_limit = 0x80000000,
.isr_imode = IMC_SAD_IMODE_8t6,
.isr_ntargets = IMC_MAX_SAD_INTERLEAVE,
.isr_targets = { 1, 1, 1, 1, 1, 1, 1, 1 }
},
.isad_mcroute = {
.ismc_nroutes = 6,
.ismc_mcroutes[0] = { 0, 0 },
}
}
},
.imc_sockets[1] = {
.isock_nodeid = 1,
.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 = 24,
.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_mcroute = {
.ismc_nroutes = 6,
.ismc_mcroutes[0] = { 0, 0 },
}
}
}
};
static const imc_t imc_skx_loop_self = {
.imc_gen = IMC_GEN_SKYLAKE,
.imc_nsockets = 1,
.imc_sockets[0] = {
.isock_nodeid = 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 = 24,
.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_mcroute = {
.ismc_nroutes = 6,
.ismc_mcroutes[0] = { 0, 0 },
}
}
}
};
static const imc_t imc_skx_loop_badsock = {
.imc_gen = IMC_GEN_SKYLAKE,
.imc_nsockets = 1,
.imc_sockets[0] = {
.isock_nodeid = 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 = 24,
.isad_rules[0] = {
.isr_enable = B_TRUE,
.isr_limit = 0x80000000,
.isr_imode = IMC_SAD_IMODE_8t6,
.isr_ntargets = IMC_MAX_SAD_INTERLEAVE,
.isr_targets = { 5, 5, 5, 5, 5, 5, 5, 5 }
},
.isad_mcroute = {
.ismc_nroutes = 6,
.ismc_mcroutes[0] = { 0, 0 },
}
}
}
};
const imc_test_case_t imc_test_skx_loop[] = { {
.itc_desc = "Skylake loop detection, 2s (1)",
.itc_imc = &imc_skx_loop_2s,
.itc_pa = 0x0,
.itc_pass = B_FALSE,
.itc_fail = IMC_DECODE_F_SAD_SEARCH_LOOP
}, {
.itc_desc = "Skylake loop detection, 2s (2)",
.itc_imc = &imc_skx_loop_2s,
.itc_pa = 0x7fffffff,
.itc_pass = B_FALSE,
.itc_fail = IMC_DECODE_F_SAD_SEARCH_LOOP
}, {
.itc_desc = "Skylake loop detection, self (1)",
.itc_imc = &imc_skx_loop_self,
.itc_pa = 0x0,
.itc_pass = B_FALSE,
.itc_fail = IMC_DECODE_F_SAD_SEARCH_LOOP
}, {
.itc_desc = "Skylake loop detection, self (2)",
.itc_imc = &imc_skx_loop_self,
.itc_pa = 0x7fffffff,
.itc_pass = B_FALSE,
.itc_fail = IMC_DECODE_F_SAD_SEARCH_LOOP
}, {
.itc_desc = "Skylake loop detection, bad sock (1)",
.itc_imc = &imc_skx_loop_badsock,
.itc_pa = 0x0,
.itc_pass = B_FALSE,
.itc_fail = IMC_DECODE_F_BAD_REMOTE_MC_ROUTE
}, {
.itc_desc = "Skylake loop detection, bad sock (2)",
.itc_imc = &imc_skx_loop_badsock,
.itc_pa = 0x7fffffff,
.itc_pass = B_FALSE,
.itc_fail = IMC_DECODE_F_BAD_REMOTE_MC_ROUTE
}, {
.itc_desc = NULL
} };