1*eb00b1c8SRobert Mustacchi /* 2*eb00b1c8SRobert Mustacchi * This file and its contents are supplied under the terms of the 3*eb00b1c8SRobert Mustacchi * Common Development and Distribution License ("CDDL"), version 1.0. 4*eb00b1c8SRobert Mustacchi * You may only use this file in accordance with the terms of version 5*eb00b1c8SRobert Mustacchi * 1.0 of the CDDL. 6*eb00b1c8SRobert Mustacchi * 7*eb00b1c8SRobert Mustacchi * A full copy of the text of the CDDL should have accompanied this 8*eb00b1c8SRobert Mustacchi * source. A copy of the CDDL is also available via the Internet at 9*eb00b1c8SRobert Mustacchi * http://www.illumos.org/license/CDDL. 10*eb00b1c8SRobert Mustacchi */ 11*eb00b1c8SRobert Mustacchi 12*eb00b1c8SRobert Mustacchi /* 13*eb00b1c8SRobert Mustacchi * Copyright 2019 Joyent, Inc. 14*eb00b1c8SRobert Mustacchi */ 15*eb00b1c8SRobert Mustacchi 16*eb00b1c8SRobert Mustacchi #include "imc_test.h" 17*eb00b1c8SRobert Mustacchi 18*eb00b1c8SRobert Mustacchi /* 19*eb00b1c8SRobert Mustacchi * This file tests several different miscellaneous failure modes by using 20*eb00b1c8SRobert Mustacchi * incomplete imc_t and imc_t with bad data. 21*eb00b1c8SRobert Mustacchi */ 22*eb00b1c8SRobert Mustacchi 23*eb00b1c8SRobert Mustacchi /* 24*eb00b1c8SRobert Mustacchi * This IMC is a nominally valid IMC; however, it has flags indicate that the 25*eb00b1c8SRobert Mustacchi * socket has bad data. 26*eb00b1c8SRobert Mustacchi */ 27*eb00b1c8SRobert Mustacchi static const imc_t imc_badsock = { 28*eb00b1c8SRobert Mustacchi .imc_gen = IMC_GEN_SANDY, 29*eb00b1c8SRobert Mustacchi .imc_nsockets = 1, 30*eb00b1c8SRobert Mustacchi .imc_sockets[0] = { 31*eb00b1c8SRobert Mustacchi .isock_valid = IMC_SOCKET_V_BAD_NODEID, 32*eb00b1c8SRobert Mustacchi .isock_sad = { 33*eb00b1c8SRobert Mustacchi .isad_flags = 0, 34*eb00b1c8SRobert Mustacchi .isad_valid = IMC_SAD_V_VALID, 35*eb00b1c8SRobert Mustacchi .isad_tolm = 0x80000000, /* 2 GiB */ 36*eb00b1c8SRobert Mustacchi .isad_tohm = 0x280000000ULL, /* 10 GiB */ 37*eb00b1c8SRobert Mustacchi .isad_nrules = 10, 38*eb00b1c8SRobert Mustacchi .isad_rules[0] = { 39*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 40*eb00b1c8SRobert Mustacchi .isr_limit = 0x80000000, 41*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 42*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 43*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 44*eb00b1c8SRobert Mustacchi }, 45*eb00b1c8SRobert Mustacchi .isad_rules[1] = { 46*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 47*eb00b1c8SRobert Mustacchi .isr_limit = 0x280000000ULL, 48*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 49*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 50*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 51*eb00b1c8SRobert Mustacchi } 52*eb00b1c8SRobert Mustacchi }, 53*eb00b1c8SRobert Mustacchi .isock_ntad = 1, 54*eb00b1c8SRobert Mustacchi .isock_tad[0] = { 55*eb00b1c8SRobert Mustacchi .itad_flags = 0, 56*eb00b1c8SRobert Mustacchi .itad_nrules = 12, 57*eb00b1c8SRobert Mustacchi .itad_rules[0] = { 58*eb00b1c8SRobert Mustacchi .itr_base = 0x0, 59*eb00b1c8SRobert Mustacchi .itr_limit = 0x80000000, 60*eb00b1c8SRobert Mustacchi .itr_sock_way = 1, 61*eb00b1c8SRobert Mustacchi .itr_chan_way = 1, 62*eb00b1c8SRobert Mustacchi .itr_sock_gran = IMC_TAD_GRAN_64B, 63*eb00b1c8SRobert Mustacchi .itr_chan_gran = IMC_TAD_GRAN_64B, 64*eb00b1c8SRobert Mustacchi .itr_ntargets = 4, 65*eb00b1c8SRobert Mustacchi .itr_targets = { 0, 0, 0, 0 } 66*eb00b1c8SRobert Mustacchi }, 67*eb00b1c8SRobert Mustacchi .itad_rules[1] = { 68*eb00b1c8SRobert Mustacchi .itr_base = 0x80000000, 69*eb00b1c8SRobert Mustacchi .itr_limit = 0x280000000ULL, 70*eb00b1c8SRobert Mustacchi .itr_sock_way = 1, 71*eb00b1c8SRobert Mustacchi .itr_chan_way = 1, 72*eb00b1c8SRobert Mustacchi .itr_sock_gran = IMC_TAD_GRAN_64B, 73*eb00b1c8SRobert Mustacchi .itr_chan_gran = IMC_TAD_GRAN_64B, 74*eb00b1c8SRobert Mustacchi .itr_ntargets = 4, 75*eb00b1c8SRobert Mustacchi .itr_targets = { 0, 0, 0, 0 } 76*eb00b1c8SRobert Mustacchi } 77*eb00b1c8SRobert Mustacchi }, 78*eb00b1c8SRobert Mustacchi .isock_nimc = 1, 79*eb00b1c8SRobert Mustacchi .isock_imcs[0] = { 80*eb00b1c8SRobert Mustacchi .icn_nchannels = 1, 81*eb00b1c8SRobert Mustacchi .icn_dimm_type = IMC_DIMM_DDR3, 82*eb00b1c8SRobert Mustacchi .icn_ecc = B_TRUE, 83*eb00b1c8SRobert Mustacchi .icn_lockstep = B_FALSE, 84*eb00b1c8SRobert Mustacchi .icn_closed = B_FALSE, 85*eb00b1c8SRobert Mustacchi .icn_channels[0] = { 86*eb00b1c8SRobert Mustacchi .ich_ndimms = 1, 87*eb00b1c8SRobert Mustacchi .ich_dimms[0] = { 88*eb00b1c8SRobert Mustacchi .idimm_present = B_TRUE, 89*eb00b1c8SRobert Mustacchi .idimm_nbanks = 3, 90*eb00b1c8SRobert Mustacchi .idimm_width = 8, 91*eb00b1c8SRobert Mustacchi .idimm_density = 2, 92*eb00b1c8SRobert Mustacchi .idimm_nranks = 2, 93*eb00b1c8SRobert Mustacchi .idimm_nrows = 14, 94*eb00b1c8SRobert Mustacchi .idimm_ncolumns = 10, 95*eb00b1c8SRobert Mustacchi .idimm_size = 0x80000000 96*eb00b1c8SRobert Mustacchi }, 97*eb00b1c8SRobert Mustacchi .ich_ntad_offsets = 12, 98*eb00b1c8SRobert Mustacchi .ich_tad_offsets = { 0, 0x80000000, 0, 0, 0, 0, 99*eb00b1c8SRobert Mustacchi 0, 0, 0, 0, 0 }, 100*eb00b1c8SRobert Mustacchi .ich_nrankileaves = 8, 101*eb00b1c8SRobert Mustacchi .ich_rankileaves[0] = { 102*eb00b1c8SRobert Mustacchi .irle_enabled = B_TRUE, 103*eb00b1c8SRobert Mustacchi .irle_nways = 2, 104*eb00b1c8SRobert Mustacchi .irle_nwaysbits = 1, 105*eb00b1c8SRobert Mustacchi .irle_limit = 0x200000000ULL, 106*eb00b1c8SRobert Mustacchi .irle_nentries = 5, 107*eb00b1c8SRobert Mustacchi .irle_entries[0] = { 0x0, 0x0 }, 108*eb00b1c8SRobert Mustacchi .irle_entries[1] = { 0x1, 0x0 } 109*eb00b1c8SRobert Mustacchi } 110*eb00b1c8SRobert Mustacchi } 111*eb00b1c8SRobert Mustacchi } 112*eb00b1c8SRobert Mustacchi } 113*eb00b1c8SRobert Mustacchi }; 114*eb00b1c8SRobert Mustacchi 115*eb00b1c8SRobert Mustacchi static const imc_t imc_invalid_sad = { 116*eb00b1c8SRobert Mustacchi .imc_gen = IMC_GEN_SANDY, 117*eb00b1c8SRobert Mustacchi .imc_nsockets = 1, 118*eb00b1c8SRobert Mustacchi .imc_sockets[0] = { 119*eb00b1c8SRobert Mustacchi .isock_valid = 0, 120*eb00b1c8SRobert Mustacchi .isock_sad = { 121*eb00b1c8SRobert Mustacchi .isad_flags = 0, 122*eb00b1c8SRobert Mustacchi .isad_valid = IMC_SAD_V_BAD_DRAM_ATTR, 123*eb00b1c8SRobert Mustacchi .isad_tolm = 0x80000000, /* 2 GiB */ 124*eb00b1c8SRobert Mustacchi .isad_tohm = 0x280000000ULL, /* 10 GiB */ 125*eb00b1c8SRobert Mustacchi .isad_nrules = 10, 126*eb00b1c8SRobert Mustacchi .isad_rules[0] = { 127*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 128*eb00b1c8SRobert Mustacchi .isr_limit = 0x80000000, 129*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 130*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 131*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 132*eb00b1c8SRobert Mustacchi }, 133*eb00b1c8SRobert Mustacchi .isad_rules[1] = { 134*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 135*eb00b1c8SRobert Mustacchi .isr_limit = 0x280000000ULL, 136*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 137*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 138*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 139*eb00b1c8SRobert Mustacchi } 140*eb00b1c8SRobert Mustacchi } 141*eb00b1c8SRobert Mustacchi } 142*eb00b1c8SRobert Mustacchi }; 143*eb00b1c8SRobert Mustacchi 144*eb00b1c8SRobert Mustacchi static const imc_t imc_invalid_sad_rule = { 145*eb00b1c8SRobert Mustacchi .imc_gen = IMC_GEN_SANDY, 146*eb00b1c8SRobert Mustacchi .imc_nsockets = 1, 147*eb00b1c8SRobert Mustacchi .imc_sockets[0] = { 148*eb00b1c8SRobert Mustacchi .isock_valid = 0, 149*eb00b1c8SRobert Mustacchi .isock_sad = { 150*eb00b1c8SRobert Mustacchi .isad_flags = 0, 151*eb00b1c8SRobert Mustacchi .isad_valid = IMC_SAD_V_VALID, 152*eb00b1c8SRobert Mustacchi .isad_tolm = 0x80000000, /* 2 GiB */ 153*eb00b1c8SRobert Mustacchi .isad_tohm = 0x280000000ULL, /* 10 GiB */ 154*eb00b1c8SRobert Mustacchi .isad_nrules = 10, 155*eb00b1c8SRobert Mustacchi .isad_rules[0] = { 156*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 157*eb00b1c8SRobert Mustacchi .isr_limit = 0x34, 158*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 159*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 160*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 161*eb00b1c8SRobert Mustacchi }, 162*eb00b1c8SRobert Mustacchi .isad_rules[1] = { 163*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 164*eb00b1c8SRobert Mustacchi .isr_limit = 0x42, 165*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 166*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 167*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 168*eb00b1c8SRobert Mustacchi } 169*eb00b1c8SRobert Mustacchi } 170*eb00b1c8SRobert Mustacchi } 171*eb00b1c8SRobert Mustacchi }; 172*eb00b1c8SRobert Mustacchi 173*eb00b1c8SRobert Mustacchi static const imc_t imc_invalid_sad_interleave = { 174*eb00b1c8SRobert Mustacchi .imc_gen = IMC_GEN_SANDY, 175*eb00b1c8SRobert Mustacchi .imc_nsockets = 1, 176*eb00b1c8SRobert Mustacchi .imc_sockets[0] = { 177*eb00b1c8SRobert Mustacchi .isock_valid = 0, 178*eb00b1c8SRobert Mustacchi .isock_sad = { 179*eb00b1c8SRobert Mustacchi .isad_flags = 0, 180*eb00b1c8SRobert Mustacchi .isad_valid = IMC_SAD_V_VALID, 181*eb00b1c8SRobert Mustacchi .isad_tolm = 0x80000000, /* 2 GiB */ 182*eb00b1c8SRobert Mustacchi .isad_tohm = 0x280000000ULL, /* 10 GiB */ 183*eb00b1c8SRobert Mustacchi .isad_nrules = 10, 184*eb00b1c8SRobert Mustacchi .isad_rules[0] = { 185*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 186*eb00b1c8SRobert Mustacchi .isr_limit = 0x80000000, 187*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 188*eb00b1c8SRobert Mustacchi .isr_ntargets = 0 189*eb00b1c8SRobert Mustacchi }, 190*eb00b1c8SRobert Mustacchi .isad_rules[1] = { 191*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 192*eb00b1c8SRobert Mustacchi .isr_limit = 0x280000000ULL, 193*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 194*eb00b1c8SRobert Mustacchi .isr_ntargets = 0 195*eb00b1c8SRobert Mustacchi } 196*eb00b1c8SRobert Mustacchi } 197*eb00b1c8SRobert Mustacchi } 198*eb00b1c8SRobert Mustacchi }; 199*eb00b1c8SRobert Mustacchi 200*eb00b1c8SRobert Mustacchi static const imc_t imc_invalid_sad_target = { 201*eb00b1c8SRobert Mustacchi .imc_gen = IMC_GEN_SANDY, 202*eb00b1c8SRobert Mustacchi .imc_nsockets = 1, 203*eb00b1c8SRobert Mustacchi .imc_sockets[0] = { 204*eb00b1c8SRobert Mustacchi .isock_valid = 0, 205*eb00b1c8SRobert Mustacchi .isock_sad = { 206*eb00b1c8SRobert Mustacchi .isad_flags = 0, 207*eb00b1c8SRobert Mustacchi .isad_valid = IMC_SAD_V_VALID, 208*eb00b1c8SRobert Mustacchi .isad_tolm = 0x80000000, /* 2 GiB */ 209*eb00b1c8SRobert Mustacchi .isad_tohm = 0x280000000ULL, /* 10 GiB */ 210*eb00b1c8SRobert Mustacchi .isad_nrules = 10, 211*eb00b1c8SRobert Mustacchi .isad_rules[0] = { 212*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 213*eb00b1c8SRobert Mustacchi .isr_limit = 0x80000000, 214*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 215*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 216*eb00b1c8SRobert Mustacchi .isr_targets = { 9, 9, 9, 9, 9, 9, 9, 9 } 217*eb00b1c8SRobert Mustacchi }, 218*eb00b1c8SRobert Mustacchi .isad_rules[1] = { 219*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 220*eb00b1c8SRobert Mustacchi .isr_limit = 0x280000000ULL, 221*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 222*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 223*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 224*eb00b1c8SRobert Mustacchi } 225*eb00b1c8SRobert Mustacchi } 226*eb00b1c8SRobert Mustacchi } 227*eb00b1c8SRobert Mustacchi }; 228*eb00b1c8SRobert Mustacchi 229*eb00b1c8SRobert Mustacchi static const imc_t imc_bad_tad_rule = { 230*eb00b1c8SRobert Mustacchi .imc_gen = IMC_GEN_SANDY, 231*eb00b1c8SRobert Mustacchi .imc_nsockets = 1, 232*eb00b1c8SRobert Mustacchi .imc_sockets[0] = { 233*eb00b1c8SRobert Mustacchi .isock_valid = IMC_SOCKET_V_VALID, 234*eb00b1c8SRobert Mustacchi .isock_sad = { 235*eb00b1c8SRobert Mustacchi .isad_flags = 0, 236*eb00b1c8SRobert Mustacchi .isad_valid = IMC_SAD_V_VALID, 237*eb00b1c8SRobert Mustacchi .isad_tolm = 0x80000000, /* 2 GiB */ 238*eb00b1c8SRobert Mustacchi .isad_tohm = 0x280000000ULL, /* 10 GiB */ 239*eb00b1c8SRobert Mustacchi .isad_nrules = 10, 240*eb00b1c8SRobert Mustacchi .isad_rules[0] = { 241*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 242*eb00b1c8SRobert Mustacchi .isr_limit = 0x80000000, 243*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 244*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 245*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 246*eb00b1c8SRobert Mustacchi }, 247*eb00b1c8SRobert Mustacchi .isad_rules[1] = { 248*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 249*eb00b1c8SRobert Mustacchi .isr_limit = 0x280000000ULL, 250*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 251*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 252*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 253*eb00b1c8SRobert Mustacchi } 254*eb00b1c8SRobert Mustacchi }, 255*eb00b1c8SRobert Mustacchi .isock_ntad = 1, 256*eb00b1c8SRobert Mustacchi .isock_tad[0] = { 257*eb00b1c8SRobert Mustacchi .itad_flags = 0, 258*eb00b1c8SRobert Mustacchi .itad_nrules = 12, 259*eb00b1c8SRobert Mustacchi .itad_rules[0] = { 260*eb00b1c8SRobert Mustacchi .itr_base = 0x0, 261*eb00b1c8SRobert Mustacchi .itr_limit = 0x2, 262*eb00b1c8SRobert Mustacchi .itr_sock_way = 1, 263*eb00b1c8SRobert Mustacchi .itr_chan_way = 1, 264*eb00b1c8SRobert Mustacchi .itr_sock_gran = IMC_TAD_GRAN_64B, 265*eb00b1c8SRobert Mustacchi .itr_chan_gran = IMC_TAD_GRAN_64B, 266*eb00b1c8SRobert Mustacchi .itr_ntargets = 4, 267*eb00b1c8SRobert Mustacchi .itr_targets = { 0, 0, 0, 0 } 268*eb00b1c8SRobert Mustacchi }, 269*eb00b1c8SRobert Mustacchi .itad_rules[1] = { 270*eb00b1c8SRobert Mustacchi .itr_base = 0x277777777ULL, 271*eb00b1c8SRobert Mustacchi .itr_limit = 0x280000000ULL, 272*eb00b1c8SRobert Mustacchi .itr_sock_way = 1, 273*eb00b1c8SRobert Mustacchi .itr_chan_way = 1, 274*eb00b1c8SRobert Mustacchi .itr_sock_gran = IMC_TAD_GRAN_64B, 275*eb00b1c8SRobert Mustacchi .itr_chan_gran = IMC_TAD_GRAN_64B, 276*eb00b1c8SRobert Mustacchi .itr_ntargets = 4, 277*eb00b1c8SRobert Mustacchi .itr_targets = { 0, 0, 0, 0 } 278*eb00b1c8SRobert Mustacchi } 279*eb00b1c8SRobert Mustacchi } 280*eb00b1c8SRobert Mustacchi } 281*eb00b1c8SRobert Mustacchi }; 282*eb00b1c8SRobert Mustacchi 283*eb00b1c8SRobert Mustacchi static const imc_t imc_bad_tad_3way = { 284*eb00b1c8SRobert Mustacchi .imc_gen = IMC_GEN_SANDY, 285*eb00b1c8SRobert Mustacchi .imc_nsockets = 1, 286*eb00b1c8SRobert Mustacchi .imc_sockets[0] = { 287*eb00b1c8SRobert Mustacchi .isock_valid = IMC_SOCKET_V_VALID, 288*eb00b1c8SRobert Mustacchi .isock_sad = { 289*eb00b1c8SRobert Mustacchi .isad_flags = 0, 290*eb00b1c8SRobert Mustacchi .isad_valid = IMC_SAD_V_VALID, 291*eb00b1c8SRobert Mustacchi .isad_tolm = 0x80000000, /* 2 GiB */ 292*eb00b1c8SRobert Mustacchi .isad_tohm = 0x280000000ULL, /* 10 GiB */ 293*eb00b1c8SRobert Mustacchi .isad_nrules = 10, 294*eb00b1c8SRobert Mustacchi .isad_rules[0] = { 295*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 296*eb00b1c8SRobert Mustacchi .isr_limit = 0x80000000, 297*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 298*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 299*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 300*eb00b1c8SRobert Mustacchi }, 301*eb00b1c8SRobert Mustacchi .isad_rules[1] = { 302*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 303*eb00b1c8SRobert Mustacchi .isr_limit = 0x280000000ULL, 304*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 305*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 306*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 307*eb00b1c8SRobert Mustacchi } 308*eb00b1c8SRobert Mustacchi }, 309*eb00b1c8SRobert Mustacchi .isock_ntad = 1, 310*eb00b1c8SRobert Mustacchi .isock_tad[0] = { 311*eb00b1c8SRobert Mustacchi .itad_flags = 0, 312*eb00b1c8SRobert Mustacchi .itad_nrules = 12, 313*eb00b1c8SRobert Mustacchi .itad_rules[0] = { 314*eb00b1c8SRobert Mustacchi .itr_base = 0x0, 315*eb00b1c8SRobert Mustacchi .itr_limit = 0x80000000, 316*eb00b1c8SRobert Mustacchi .itr_sock_way = 1, 317*eb00b1c8SRobert Mustacchi .itr_chan_way = 3, 318*eb00b1c8SRobert Mustacchi .itr_sock_gran = IMC_TAD_GRAN_64B, 319*eb00b1c8SRobert Mustacchi .itr_chan_gran = IMC_TAD_GRAN_64B, 320*eb00b1c8SRobert Mustacchi .itr_ntargets = 4, 321*eb00b1c8SRobert Mustacchi .itr_targets = { 0, 0, 0, 0 } 322*eb00b1c8SRobert Mustacchi }, 323*eb00b1c8SRobert Mustacchi .itad_rules[1] = { 324*eb00b1c8SRobert Mustacchi .itr_base = 0x80000000, 325*eb00b1c8SRobert Mustacchi .itr_limit = 0x280000000ULL, 326*eb00b1c8SRobert Mustacchi .itr_sock_way = 1, 327*eb00b1c8SRobert Mustacchi .itr_chan_way = 3, 328*eb00b1c8SRobert Mustacchi .itr_sock_gran = IMC_TAD_GRAN_64B, 329*eb00b1c8SRobert Mustacchi .itr_chan_gran = IMC_TAD_GRAN_64B, 330*eb00b1c8SRobert Mustacchi .itr_ntargets = 4, 331*eb00b1c8SRobert Mustacchi .itr_targets = { 0, 0, 0, 0 } 332*eb00b1c8SRobert Mustacchi } 333*eb00b1c8SRobert Mustacchi } 334*eb00b1c8SRobert Mustacchi } 335*eb00b1c8SRobert Mustacchi }; 336*eb00b1c8SRobert Mustacchi 337*eb00b1c8SRobert Mustacchi static const imc_t imc_bad_tad_target = { 338*eb00b1c8SRobert Mustacchi .imc_gen = IMC_GEN_SANDY, 339*eb00b1c8SRobert Mustacchi .imc_nsockets = 1, 340*eb00b1c8SRobert Mustacchi .imc_sockets[0] = { 341*eb00b1c8SRobert Mustacchi .isock_valid = IMC_SOCKET_V_VALID, 342*eb00b1c8SRobert Mustacchi .isock_sad = { 343*eb00b1c8SRobert Mustacchi .isad_flags = 0, 344*eb00b1c8SRobert Mustacchi .isad_valid = IMC_SAD_V_VALID, 345*eb00b1c8SRobert Mustacchi .isad_tolm = 0x80000000, /* 2 GiB */ 346*eb00b1c8SRobert Mustacchi .isad_tohm = 0x280000000ULL, /* 10 GiB */ 347*eb00b1c8SRobert Mustacchi .isad_nrules = 10, 348*eb00b1c8SRobert Mustacchi .isad_rules[0] = { 349*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 350*eb00b1c8SRobert Mustacchi .isr_limit = 0x80000000, 351*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 352*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 353*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 354*eb00b1c8SRobert Mustacchi }, 355*eb00b1c8SRobert Mustacchi .isad_rules[1] = { 356*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 357*eb00b1c8SRobert Mustacchi .isr_limit = 0x280000000ULL, 358*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 359*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 360*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 361*eb00b1c8SRobert Mustacchi } 362*eb00b1c8SRobert Mustacchi }, 363*eb00b1c8SRobert Mustacchi .isock_ntad = 1, 364*eb00b1c8SRobert Mustacchi .isock_tad[0] = { 365*eb00b1c8SRobert Mustacchi .itad_flags = 0, 366*eb00b1c8SRobert Mustacchi .itad_nrules = 12, 367*eb00b1c8SRobert Mustacchi .itad_rules[0] = { 368*eb00b1c8SRobert Mustacchi .itr_base = 0x0, 369*eb00b1c8SRobert Mustacchi .itr_limit = 0x80000000, 370*eb00b1c8SRobert Mustacchi .itr_sock_way = 1, 371*eb00b1c8SRobert Mustacchi .itr_chan_way = 1, 372*eb00b1c8SRobert Mustacchi .itr_sock_gran = IMC_TAD_GRAN_64B, 373*eb00b1c8SRobert Mustacchi .itr_chan_gran = IMC_TAD_GRAN_64B, 374*eb00b1c8SRobert Mustacchi .itr_ntargets = 0, 375*eb00b1c8SRobert Mustacchi .itr_targets = { 0, 0, 0, 0 } 376*eb00b1c8SRobert Mustacchi }, 377*eb00b1c8SRobert Mustacchi .itad_rules[1] = { 378*eb00b1c8SRobert Mustacchi .itr_base = 0x80000000, 379*eb00b1c8SRobert Mustacchi .itr_limit = 0x280000000ULL, 380*eb00b1c8SRobert Mustacchi .itr_sock_way = 1, 381*eb00b1c8SRobert Mustacchi .itr_chan_way = 1, 382*eb00b1c8SRobert Mustacchi .itr_sock_gran = IMC_TAD_GRAN_64B, 383*eb00b1c8SRobert Mustacchi .itr_chan_gran = IMC_TAD_GRAN_64B, 384*eb00b1c8SRobert Mustacchi .itr_ntargets = 0, 385*eb00b1c8SRobert Mustacchi .itr_targets = { 0, 0, 0, 0 } 386*eb00b1c8SRobert Mustacchi } 387*eb00b1c8SRobert Mustacchi } 388*eb00b1c8SRobert Mustacchi } 389*eb00b1c8SRobert Mustacchi }; 390*eb00b1c8SRobert Mustacchi 391*eb00b1c8SRobert Mustacchi static const imc_t imc_bad_tad_channelid = { 392*eb00b1c8SRobert Mustacchi .imc_gen = IMC_GEN_SANDY, 393*eb00b1c8SRobert Mustacchi .imc_nsockets = 1, 394*eb00b1c8SRobert Mustacchi .imc_sockets[0] = { 395*eb00b1c8SRobert Mustacchi .isock_valid = IMC_SOCKET_V_VALID, 396*eb00b1c8SRobert Mustacchi .isock_sad = { 397*eb00b1c8SRobert Mustacchi .isad_flags = 0, 398*eb00b1c8SRobert Mustacchi .isad_valid = IMC_SAD_V_VALID, 399*eb00b1c8SRobert Mustacchi .isad_tolm = 0x80000000, /* 2 GiB */ 400*eb00b1c8SRobert Mustacchi .isad_tohm = 0x280000000ULL, /* 10 GiB */ 401*eb00b1c8SRobert Mustacchi .isad_nrules = 10, 402*eb00b1c8SRobert Mustacchi .isad_rules[0] = { 403*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 404*eb00b1c8SRobert Mustacchi .isr_limit = 0x80000000, 405*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 406*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 407*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 408*eb00b1c8SRobert Mustacchi }, 409*eb00b1c8SRobert Mustacchi .isad_rules[1] = { 410*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 411*eb00b1c8SRobert Mustacchi .isr_limit = 0x280000000ULL, 412*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 413*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 414*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 415*eb00b1c8SRobert Mustacchi } 416*eb00b1c8SRobert Mustacchi }, 417*eb00b1c8SRobert Mustacchi .isock_ntad = 1, 418*eb00b1c8SRobert Mustacchi .isock_tad[0] = { 419*eb00b1c8SRobert Mustacchi .itad_flags = 0, 420*eb00b1c8SRobert Mustacchi .itad_nrules = 12, 421*eb00b1c8SRobert Mustacchi .itad_rules[0] = { 422*eb00b1c8SRobert Mustacchi .itr_base = 0x0, 423*eb00b1c8SRobert Mustacchi .itr_limit = 0x80000000, 424*eb00b1c8SRobert Mustacchi .itr_sock_way = 1, 425*eb00b1c8SRobert Mustacchi .itr_chan_way = 1, 426*eb00b1c8SRobert Mustacchi .itr_sock_gran = IMC_TAD_GRAN_64B, 427*eb00b1c8SRobert Mustacchi .itr_chan_gran = IMC_TAD_GRAN_64B, 428*eb00b1c8SRobert Mustacchi .itr_ntargets = 4, 429*eb00b1c8SRobert Mustacchi .itr_targets = { 17, 23, 42, 167 } 430*eb00b1c8SRobert Mustacchi }, 431*eb00b1c8SRobert Mustacchi .itad_rules[1] = { 432*eb00b1c8SRobert Mustacchi .itr_base = 0x80000000, 433*eb00b1c8SRobert Mustacchi .itr_limit = 0x280000000ULL, 434*eb00b1c8SRobert Mustacchi .itr_sock_way = 1, 435*eb00b1c8SRobert Mustacchi .itr_chan_way = 1, 436*eb00b1c8SRobert Mustacchi .itr_sock_gran = IMC_TAD_GRAN_64B, 437*eb00b1c8SRobert Mustacchi .itr_chan_gran = IMC_TAD_GRAN_64B, 438*eb00b1c8SRobert Mustacchi .itr_ntargets = 4, 439*eb00b1c8SRobert Mustacchi .itr_targets = { 17, 23, 42, 167 } 440*eb00b1c8SRobert Mustacchi } 441*eb00b1c8SRobert Mustacchi }, 442*eb00b1c8SRobert Mustacchi .isock_nimc = 1, 443*eb00b1c8SRobert Mustacchi .isock_imcs[0] = { 444*eb00b1c8SRobert Mustacchi .icn_nchannels = 1, 445*eb00b1c8SRobert Mustacchi .icn_dimm_type = IMC_DIMM_DDR3, 446*eb00b1c8SRobert Mustacchi .icn_ecc = B_TRUE, 447*eb00b1c8SRobert Mustacchi .icn_lockstep = B_FALSE, 448*eb00b1c8SRobert Mustacchi .icn_closed = B_FALSE, 449*eb00b1c8SRobert Mustacchi .icn_channels[0] = { 450*eb00b1c8SRobert Mustacchi .ich_ndimms = 1, 451*eb00b1c8SRobert Mustacchi .ich_dimms[0] = { 452*eb00b1c8SRobert Mustacchi .idimm_present = B_TRUE, 453*eb00b1c8SRobert Mustacchi .idimm_nbanks = 3, 454*eb00b1c8SRobert Mustacchi .idimm_width = 8, 455*eb00b1c8SRobert Mustacchi .idimm_density = 2, 456*eb00b1c8SRobert Mustacchi .idimm_nranks = 2, 457*eb00b1c8SRobert Mustacchi .idimm_nrows = 14, 458*eb00b1c8SRobert Mustacchi .idimm_ncolumns = 10, 459*eb00b1c8SRobert Mustacchi .idimm_size = 0x80000000 460*eb00b1c8SRobert Mustacchi }, 461*eb00b1c8SRobert Mustacchi .ich_ntad_offsets = 12, 462*eb00b1c8SRobert Mustacchi .ich_tad_offsets = { 0, 0x80000000, 0, 0, 0, 0, 463*eb00b1c8SRobert Mustacchi 0, 0, 0, 0, 0 }, 464*eb00b1c8SRobert Mustacchi .ich_nrankileaves = 8, 465*eb00b1c8SRobert Mustacchi .ich_rankileaves[0] = { 466*eb00b1c8SRobert Mustacchi .irle_enabled = B_TRUE, 467*eb00b1c8SRobert Mustacchi .irle_nways = 2, 468*eb00b1c8SRobert Mustacchi .irle_nwaysbits = 1, 469*eb00b1c8SRobert Mustacchi .irle_limit = 0x200000000ULL, 470*eb00b1c8SRobert Mustacchi .irle_nentries = 5, 471*eb00b1c8SRobert Mustacchi .irle_entries[0] = { 0x0, 0x0 }, 472*eb00b1c8SRobert Mustacchi .irle_entries[1] = { 0x1, 0x0 } 473*eb00b1c8SRobert Mustacchi } 474*eb00b1c8SRobert Mustacchi } 475*eb00b1c8SRobert Mustacchi } 476*eb00b1c8SRobert Mustacchi } 477*eb00b1c8SRobert Mustacchi }; 478*eb00b1c8SRobert Mustacchi 479*eb00b1c8SRobert Mustacchi static const imc_t imc_bad_channel_offset = { 480*eb00b1c8SRobert Mustacchi .imc_gen = IMC_GEN_SANDY, 481*eb00b1c8SRobert Mustacchi .imc_nsockets = 1, 482*eb00b1c8SRobert Mustacchi .imc_sockets[0] = { 483*eb00b1c8SRobert Mustacchi .isock_valid = IMC_SOCKET_V_VALID, 484*eb00b1c8SRobert Mustacchi .isock_sad = { 485*eb00b1c8SRobert Mustacchi .isad_flags = 0, 486*eb00b1c8SRobert Mustacchi .isad_valid = IMC_SAD_V_VALID, 487*eb00b1c8SRobert Mustacchi .isad_tolm = 0x80000000, /* 2 GiB */ 488*eb00b1c8SRobert Mustacchi .isad_tohm = 0x280000000ULL, /* 10 GiB */ 489*eb00b1c8SRobert Mustacchi .isad_nrules = 10, 490*eb00b1c8SRobert Mustacchi .isad_rules[0] = { 491*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 492*eb00b1c8SRobert Mustacchi .isr_limit = 0x80000000, 493*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 494*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 495*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 496*eb00b1c8SRobert Mustacchi }, 497*eb00b1c8SRobert Mustacchi .isad_rules[1] = { 498*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 499*eb00b1c8SRobert Mustacchi .isr_limit = 0x280000000ULL, 500*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 501*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 502*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 503*eb00b1c8SRobert Mustacchi } 504*eb00b1c8SRobert Mustacchi }, 505*eb00b1c8SRobert Mustacchi .isock_ntad = 1, 506*eb00b1c8SRobert Mustacchi .isock_tad[0] = { 507*eb00b1c8SRobert Mustacchi .itad_flags = 0, 508*eb00b1c8SRobert Mustacchi .itad_nrules = 12, 509*eb00b1c8SRobert Mustacchi .itad_rules[0] = { 510*eb00b1c8SRobert Mustacchi .itr_base = 0x0, 511*eb00b1c8SRobert Mustacchi .itr_limit = 0x80000000, 512*eb00b1c8SRobert Mustacchi .itr_sock_way = 1, 513*eb00b1c8SRobert Mustacchi .itr_chan_way = 1, 514*eb00b1c8SRobert Mustacchi .itr_sock_gran = IMC_TAD_GRAN_64B, 515*eb00b1c8SRobert Mustacchi .itr_chan_gran = IMC_TAD_GRAN_64B, 516*eb00b1c8SRobert Mustacchi .itr_ntargets = 4, 517*eb00b1c8SRobert Mustacchi .itr_targets = { 0, 0, 0, 0 } 518*eb00b1c8SRobert Mustacchi }, 519*eb00b1c8SRobert Mustacchi .itad_rules[1] = { 520*eb00b1c8SRobert Mustacchi .itr_base = 0x80000000, 521*eb00b1c8SRobert Mustacchi .itr_limit = 0x280000000ULL, 522*eb00b1c8SRobert Mustacchi .itr_sock_way = 1, 523*eb00b1c8SRobert Mustacchi .itr_chan_way = 1, 524*eb00b1c8SRobert Mustacchi .itr_sock_gran = IMC_TAD_GRAN_64B, 525*eb00b1c8SRobert Mustacchi .itr_chan_gran = IMC_TAD_GRAN_64B, 526*eb00b1c8SRobert Mustacchi .itr_ntargets = 4, 527*eb00b1c8SRobert Mustacchi .itr_targets = { 0, 0, 0, 0 } 528*eb00b1c8SRobert Mustacchi } 529*eb00b1c8SRobert Mustacchi }, 530*eb00b1c8SRobert Mustacchi .isock_nimc = 1, 531*eb00b1c8SRobert Mustacchi .isock_imcs[0] = { 532*eb00b1c8SRobert Mustacchi .icn_nchannels = 1, 533*eb00b1c8SRobert Mustacchi .icn_dimm_type = IMC_DIMM_DDR3, 534*eb00b1c8SRobert Mustacchi .icn_ecc = B_TRUE, 535*eb00b1c8SRobert Mustacchi .icn_lockstep = B_FALSE, 536*eb00b1c8SRobert Mustacchi .icn_closed = B_FALSE, 537*eb00b1c8SRobert Mustacchi .icn_channels[0] = { 538*eb00b1c8SRobert Mustacchi .ich_ndimms = 1, 539*eb00b1c8SRobert Mustacchi .ich_dimms[0] = { 540*eb00b1c8SRobert Mustacchi .idimm_present = B_TRUE, 541*eb00b1c8SRobert Mustacchi .idimm_nbanks = 3, 542*eb00b1c8SRobert Mustacchi .idimm_width = 8, 543*eb00b1c8SRobert Mustacchi .idimm_density = 2, 544*eb00b1c8SRobert Mustacchi .idimm_nranks = 2, 545*eb00b1c8SRobert Mustacchi .idimm_nrows = 14, 546*eb00b1c8SRobert Mustacchi .idimm_ncolumns = 10, 547*eb00b1c8SRobert Mustacchi .idimm_size = 0x80000000 548*eb00b1c8SRobert Mustacchi }, 549*eb00b1c8SRobert Mustacchi .ich_ntad_offsets = 0, 550*eb00b1c8SRobert Mustacchi .ich_tad_offsets = { 0, 0x80000000, 0, 0, 0, 0, 551*eb00b1c8SRobert Mustacchi 0, 0, 0, 0, 0 }, 552*eb00b1c8SRobert Mustacchi .ich_nrankileaves = 8, 553*eb00b1c8SRobert Mustacchi .ich_rankileaves[0] = { 554*eb00b1c8SRobert Mustacchi .irle_enabled = B_TRUE, 555*eb00b1c8SRobert Mustacchi .irle_nways = 2, 556*eb00b1c8SRobert Mustacchi .irle_nwaysbits = 1, 557*eb00b1c8SRobert Mustacchi .irle_limit = 0x200000000ULL, 558*eb00b1c8SRobert Mustacchi .irle_nentries = 5, 559*eb00b1c8SRobert Mustacchi .irle_entries[0] = { 0x0, 0x0 }, 560*eb00b1c8SRobert Mustacchi .irle_entries[1] = { 0x1, 0x0 } 561*eb00b1c8SRobert Mustacchi } 562*eb00b1c8SRobert Mustacchi } 563*eb00b1c8SRobert Mustacchi } 564*eb00b1c8SRobert Mustacchi } 565*eb00b1c8SRobert Mustacchi }; 566*eb00b1c8SRobert Mustacchi 567*eb00b1c8SRobert Mustacchi static const imc_t imc_bad_rir_rule = { 568*eb00b1c8SRobert Mustacchi .imc_gen = IMC_GEN_SANDY, 569*eb00b1c8SRobert Mustacchi .imc_nsockets = 1, 570*eb00b1c8SRobert Mustacchi .imc_sockets[0] = { 571*eb00b1c8SRobert Mustacchi .isock_valid = IMC_SOCKET_V_VALID, 572*eb00b1c8SRobert Mustacchi .isock_sad = { 573*eb00b1c8SRobert Mustacchi .isad_flags = 0, 574*eb00b1c8SRobert Mustacchi .isad_valid = IMC_SAD_V_VALID, 575*eb00b1c8SRobert Mustacchi .isad_tolm = 0x80000000, /* 2 GiB */ 576*eb00b1c8SRobert Mustacchi .isad_tohm = 0x280000000ULL, /* 10 GiB */ 577*eb00b1c8SRobert Mustacchi .isad_nrules = 10, 578*eb00b1c8SRobert Mustacchi .isad_rules[0] = { 579*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 580*eb00b1c8SRobert Mustacchi .isr_limit = 0x80000000, 581*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 582*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 583*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 584*eb00b1c8SRobert Mustacchi }, 585*eb00b1c8SRobert Mustacchi .isad_rules[1] = { 586*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 587*eb00b1c8SRobert Mustacchi .isr_limit = 0x280000000ULL, 588*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 589*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 590*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 591*eb00b1c8SRobert Mustacchi } 592*eb00b1c8SRobert Mustacchi }, 593*eb00b1c8SRobert Mustacchi .isock_ntad = 1, 594*eb00b1c8SRobert Mustacchi .isock_tad[0] = { 595*eb00b1c8SRobert Mustacchi .itad_flags = 0, 596*eb00b1c8SRobert Mustacchi .itad_nrules = 12, 597*eb00b1c8SRobert Mustacchi .itad_rules[0] = { 598*eb00b1c8SRobert Mustacchi .itr_base = 0x0, 599*eb00b1c8SRobert Mustacchi .itr_limit = 0x80000000, 600*eb00b1c8SRobert Mustacchi .itr_sock_way = 1, 601*eb00b1c8SRobert Mustacchi .itr_chan_way = 1, 602*eb00b1c8SRobert Mustacchi .itr_sock_gran = IMC_TAD_GRAN_64B, 603*eb00b1c8SRobert Mustacchi .itr_chan_gran = IMC_TAD_GRAN_64B, 604*eb00b1c8SRobert Mustacchi .itr_ntargets = 4, 605*eb00b1c8SRobert Mustacchi .itr_targets = { 0, 0, 0, 0 } 606*eb00b1c8SRobert Mustacchi }, 607*eb00b1c8SRobert Mustacchi .itad_rules[1] = { 608*eb00b1c8SRobert Mustacchi .itr_base = 0x80000000, 609*eb00b1c8SRobert Mustacchi .itr_limit = 0x280000000ULL, 610*eb00b1c8SRobert Mustacchi .itr_sock_way = 1, 611*eb00b1c8SRobert Mustacchi .itr_chan_way = 1, 612*eb00b1c8SRobert Mustacchi .itr_sock_gran = IMC_TAD_GRAN_64B, 613*eb00b1c8SRobert Mustacchi .itr_chan_gran = IMC_TAD_GRAN_64B, 614*eb00b1c8SRobert Mustacchi .itr_ntargets = 4, 615*eb00b1c8SRobert Mustacchi .itr_targets = { 0, 0, 0, 0 } 616*eb00b1c8SRobert Mustacchi } 617*eb00b1c8SRobert Mustacchi }, 618*eb00b1c8SRobert Mustacchi .isock_nimc = 1, 619*eb00b1c8SRobert Mustacchi .isock_imcs[0] = { 620*eb00b1c8SRobert Mustacchi .icn_nchannels = 1, 621*eb00b1c8SRobert Mustacchi .icn_dimm_type = IMC_DIMM_DDR3, 622*eb00b1c8SRobert Mustacchi .icn_ecc = B_TRUE, 623*eb00b1c8SRobert Mustacchi .icn_lockstep = B_FALSE, 624*eb00b1c8SRobert Mustacchi .icn_closed = B_FALSE, 625*eb00b1c8SRobert Mustacchi .icn_channels[0] = { 626*eb00b1c8SRobert Mustacchi .ich_ndimms = 1, 627*eb00b1c8SRobert Mustacchi .ich_dimms[0] = { 628*eb00b1c8SRobert Mustacchi .idimm_present = B_TRUE, 629*eb00b1c8SRobert Mustacchi .idimm_nbanks = 3, 630*eb00b1c8SRobert Mustacchi .idimm_width = 8, 631*eb00b1c8SRobert Mustacchi .idimm_density = 2, 632*eb00b1c8SRobert Mustacchi .idimm_nranks = 2, 633*eb00b1c8SRobert Mustacchi .idimm_nrows = 14, 634*eb00b1c8SRobert Mustacchi .idimm_ncolumns = 10, 635*eb00b1c8SRobert Mustacchi .idimm_size = 0x80000000 636*eb00b1c8SRobert Mustacchi }, 637*eb00b1c8SRobert Mustacchi .ich_ntad_offsets = 12, 638*eb00b1c8SRobert Mustacchi .ich_tad_offsets = { 0, 0x80000000, 0, 0, 0, 0, 639*eb00b1c8SRobert Mustacchi 0, 0, 0, 0, 0 }, 640*eb00b1c8SRobert Mustacchi .ich_nrankileaves = 8, 641*eb00b1c8SRobert Mustacchi .ich_rankileaves[0] = { 642*eb00b1c8SRobert Mustacchi .irle_enabled = B_TRUE, 643*eb00b1c8SRobert Mustacchi .irle_nways = 2, 644*eb00b1c8SRobert Mustacchi .irle_nwaysbits = 1, 645*eb00b1c8SRobert Mustacchi .irle_limit = 0x1, 646*eb00b1c8SRobert Mustacchi .irle_nentries = 5, 647*eb00b1c8SRobert Mustacchi .irle_entries[0] = { 0x0, 0x0 }, 648*eb00b1c8SRobert Mustacchi .irle_entries[1] = { 0x1, 0x0 } 649*eb00b1c8SRobert Mustacchi } 650*eb00b1c8SRobert Mustacchi } 651*eb00b1c8SRobert Mustacchi } 652*eb00b1c8SRobert Mustacchi } 653*eb00b1c8SRobert Mustacchi }; 654*eb00b1c8SRobert Mustacchi 655*eb00b1c8SRobert Mustacchi static const imc_t imc_bad_rir_ileave = { 656*eb00b1c8SRobert Mustacchi .imc_gen = IMC_GEN_SANDY, 657*eb00b1c8SRobert Mustacchi .imc_nsockets = 1, 658*eb00b1c8SRobert Mustacchi .imc_sockets[0] = { 659*eb00b1c8SRobert Mustacchi .isock_valid = IMC_SOCKET_V_VALID, 660*eb00b1c8SRobert Mustacchi .isock_sad = { 661*eb00b1c8SRobert Mustacchi .isad_flags = 0, 662*eb00b1c8SRobert Mustacchi .isad_valid = IMC_SAD_V_VALID, 663*eb00b1c8SRobert Mustacchi .isad_tolm = 0x80000000, /* 2 GiB */ 664*eb00b1c8SRobert Mustacchi .isad_tohm = 0x280000000ULL, /* 10 GiB */ 665*eb00b1c8SRobert Mustacchi .isad_nrules = 10, 666*eb00b1c8SRobert Mustacchi .isad_rules[0] = { 667*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 668*eb00b1c8SRobert Mustacchi .isr_limit = 0x80000000, 669*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 670*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 671*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 672*eb00b1c8SRobert Mustacchi }, 673*eb00b1c8SRobert Mustacchi .isad_rules[1] = { 674*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 675*eb00b1c8SRobert Mustacchi .isr_limit = 0x280000000ULL, 676*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 677*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 678*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 679*eb00b1c8SRobert Mustacchi } 680*eb00b1c8SRobert Mustacchi }, 681*eb00b1c8SRobert Mustacchi .isock_ntad = 1, 682*eb00b1c8SRobert Mustacchi .isock_tad[0] = { 683*eb00b1c8SRobert Mustacchi .itad_flags = 0, 684*eb00b1c8SRobert Mustacchi .itad_nrules = 12, 685*eb00b1c8SRobert Mustacchi .itad_rules[0] = { 686*eb00b1c8SRobert Mustacchi .itr_base = 0x0, 687*eb00b1c8SRobert Mustacchi .itr_limit = 0x80000000, 688*eb00b1c8SRobert Mustacchi .itr_sock_way = 1, 689*eb00b1c8SRobert Mustacchi .itr_chan_way = 1, 690*eb00b1c8SRobert Mustacchi .itr_sock_gran = IMC_TAD_GRAN_64B, 691*eb00b1c8SRobert Mustacchi .itr_chan_gran = IMC_TAD_GRAN_64B, 692*eb00b1c8SRobert Mustacchi .itr_ntargets = 4, 693*eb00b1c8SRobert Mustacchi .itr_targets = { 0, 0, 0, 0 } 694*eb00b1c8SRobert Mustacchi }, 695*eb00b1c8SRobert Mustacchi .itad_rules[1] = { 696*eb00b1c8SRobert Mustacchi .itr_base = 0x80000000, 697*eb00b1c8SRobert Mustacchi .itr_limit = 0x280000000ULL, 698*eb00b1c8SRobert Mustacchi .itr_sock_way = 1, 699*eb00b1c8SRobert Mustacchi .itr_chan_way = 1, 700*eb00b1c8SRobert Mustacchi .itr_sock_gran = IMC_TAD_GRAN_64B, 701*eb00b1c8SRobert Mustacchi .itr_chan_gran = IMC_TAD_GRAN_64B, 702*eb00b1c8SRobert Mustacchi .itr_ntargets = 4, 703*eb00b1c8SRobert Mustacchi .itr_targets = { 0, 0, 0, 0 } 704*eb00b1c8SRobert Mustacchi } 705*eb00b1c8SRobert Mustacchi }, 706*eb00b1c8SRobert Mustacchi .isock_nimc = 1, 707*eb00b1c8SRobert Mustacchi .isock_imcs[0] = { 708*eb00b1c8SRobert Mustacchi .icn_nchannels = 1, 709*eb00b1c8SRobert Mustacchi .icn_dimm_type = IMC_DIMM_DDR3, 710*eb00b1c8SRobert Mustacchi .icn_ecc = B_TRUE, 711*eb00b1c8SRobert Mustacchi .icn_lockstep = B_FALSE, 712*eb00b1c8SRobert Mustacchi .icn_closed = B_FALSE, 713*eb00b1c8SRobert Mustacchi .icn_channels[0] = { 714*eb00b1c8SRobert Mustacchi .ich_ndimms = 1, 715*eb00b1c8SRobert Mustacchi .ich_dimms[0] = { 716*eb00b1c8SRobert Mustacchi .idimm_present = B_TRUE, 717*eb00b1c8SRobert Mustacchi .idimm_nbanks = 3, 718*eb00b1c8SRobert Mustacchi .idimm_width = 8, 719*eb00b1c8SRobert Mustacchi .idimm_density = 2, 720*eb00b1c8SRobert Mustacchi .idimm_nranks = 2, 721*eb00b1c8SRobert Mustacchi .idimm_nrows = 14, 722*eb00b1c8SRobert Mustacchi .idimm_ncolumns = 10, 723*eb00b1c8SRobert Mustacchi .idimm_size = 0x80000000 724*eb00b1c8SRobert Mustacchi }, 725*eb00b1c8SRobert Mustacchi .ich_ntad_offsets = 12, 726*eb00b1c8SRobert Mustacchi .ich_tad_offsets = { 0, 0x80000000, 0, 0, 0, 0, 727*eb00b1c8SRobert Mustacchi 0, 0, 0, 0, 0 }, 728*eb00b1c8SRobert Mustacchi .ich_nrankileaves = 8, 729*eb00b1c8SRobert Mustacchi .ich_rankileaves[0] = { 730*eb00b1c8SRobert Mustacchi .irle_enabled = B_TRUE, 731*eb00b1c8SRobert Mustacchi .irle_nways = 2, 732*eb00b1c8SRobert Mustacchi .irle_nwaysbits = 1, 733*eb00b1c8SRobert Mustacchi .irle_limit = 0x200000000ULL, 734*eb00b1c8SRobert Mustacchi .irle_nentries = 0 735*eb00b1c8SRobert Mustacchi } 736*eb00b1c8SRobert Mustacchi } 737*eb00b1c8SRobert Mustacchi } 738*eb00b1c8SRobert Mustacchi } 739*eb00b1c8SRobert Mustacchi }; 740*eb00b1c8SRobert Mustacchi 741*eb00b1c8SRobert Mustacchi static const imc_t imc_bad_dimm_index = { 742*eb00b1c8SRobert Mustacchi .imc_gen = IMC_GEN_SANDY, 743*eb00b1c8SRobert Mustacchi .imc_nsockets = 1, 744*eb00b1c8SRobert Mustacchi .imc_sockets[0] = { 745*eb00b1c8SRobert Mustacchi .isock_valid = IMC_SOCKET_V_VALID, 746*eb00b1c8SRobert Mustacchi .isock_sad = { 747*eb00b1c8SRobert Mustacchi .isad_flags = 0, 748*eb00b1c8SRobert Mustacchi .isad_valid = IMC_SAD_V_VALID, 749*eb00b1c8SRobert Mustacchi .isad_tolm = 0x80000000, /* 2 GiB */ 750*eb00b1c8SRobert Mustacchi .isad_tohm = 0x280000000ULL, /* 10 GiB */ 751*eb00b1c8SRobert Mustacchi .isad_nrules = 10, 752*eb00b1c8SRobert Mustacchi .isad_rules[0] = { 753*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 754*eb00b1c8SRobert Mustacchi .isr_limit = 0x80000000, 755*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 756*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 757*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 758*eb00b1c8SRobert Mustacchi }, 759*eb00b1c8SRobert Mustacchi .isad_rules[1] = { 760*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 761*eb00b1c8SRobert Mustacchi .isr_limit = 0x280000000ULL, 762*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 763*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 764*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 765*eb00b1c8SRobert Mustacchi } 766*eb00b1c8SRobert Mustacchi }, 767*eb00b1c8SRobert Mustacchi .isock_ntad = 1, 768*eb00b1c8SRobert Mustacchi .isock_tad[0] = { 769*eb00b1c8SRobert Mustacchi .itad_flags = 0, 770*eb00b1c8SRobert Mustacchi .itad_nrules = 12, 771*eb00b1c8SRobert Mustacchi .itad_rules[0] = { 772*eb00b1c8SRobert Mustacchi .itr_base = 0x0, 773*eb00b1c8SRobert Mustacchi .itr_limit = 0x80000000, 774*eb00b1c8SRobert Mustacchi .itr_sock_way = 1, 775*eb00b1c8SRobert Mustacchi .itr_chan_way = 1, 776*eb00b1c8SRobert Mustacchi .itr_sock_gran = IMC_TAD_GRAN_64B, 777*eb00b1c8SRobert Mustacchi .itr_chan_gran = IMC_TAD_GRAN_64B, 778*eb00b1c8SRobert Mustacchi .itr_ntargets = 4, 779*eb00b1c8SRobert Mustacchi .itr_targets = { 0, 0, 0, 0 } 780*eb00b1c8SRobert Mustacchi }, 781*eb00b1c8SRobert Mustacchi .itad_rules[1] = { 782*eb00b1c8SRobert Mustacchi .itr_base = 0x80000000, 783*eb00b1c8SRobert Mustacchi .itr_limit = 0x280000000ULL, 784*eb00b1c8SRobert Mustacchi .itr_sock_way = 1, 785*eb00b1c8SRobert Mustacchi .itr_chan_way = 1, 786*eb00b1c8SRobert Mustacchi .itr_sock_gran = IMC_TAD_GRAN_64B, 787*eb00b1c8SRobert Mustacchi .itr_chan_gran = IMC_TAD_GRAN_64B, 788*eb00b1c8SRobert Mustacchi .itr_ntargets = 4, 789*eb00b1c8SRobert Mustacchi .itr_targets = { 0, 0, 0, 0 } 790*eb00b1c8SRobert Mustacchi } 791*eb00b1c8SRobert Mustacchi }, 792*eb00b1c8SRobert Mustacchi .isock_nimc = 1, 793*eb00b1c8SRobert Mustacchi .isock_imcs[0] = { 794*eb00b1c8SRobert Mustacchi .icn_nchannels = 1, 795*eb00b1c8SRobert Mustacchi .icn_dimm_type = IMC_DIMM_DDR3, 796*eb00b1c8SRobert Mustacchi .icn_ecc = B_TRUE, 797*eb00b1c8SRobert Mustacchi .icn_lockstep = B_FALSE, 798*eb00b1c8SRobert Mustacchi .icn_closed = B_FALSE, 799*eb00b1c8SRobert Mustacchi .icn_channels[0] = { 800*eb00b1c8SRobert Mustacchi .ich_ndimms = 1, 801*eb00b1c8SRobert Mustacchi .ich_dimms[0] = { 802*eb00b1c8SRobert Mustacchi .idimm_present = B_TRUE, 803*eb00b1c8SRobert Mustacchi .idimm_nbanks = 3, 804*eb00b1c8SRobert Mustacchi .idimm_width = 8, 805*eb00b1c8SRobert Mustacchi .idimm_density = 2, 806*eb00b1c8SRobert Mustacchi .idimm_nranks = 2, 807*eb00b1c8SRobert Mustacchi .idimm_nrows = 14, 808*eb00b1c8SRobert Mustacchi .idimm_ncolumns = 10, 809*eb00b1c8SRobert Mustacchi .idimm_size = 0x80000000 810*eb00b1c8SRobert Mustacchi }, 811*eb00b1c8SRobert Mustacchi .ich_ntad_offsets = 12, 812*eb00b1c8SRobert Mustacchi .ich_tad_offsets = { 0, 0x80000000, 0, 0, 0, 0, 813*eb00b1c8SRobert Mustacchi 0, 0, 0, 0, 0 }, 814*eb00b1c8SRobert Mustacchi .ich_nrankileaves = 8, 815*eb00b1c8SRobert Mustacchi .ich_rankileaves[0] = { 816*eb00b1c8SRobert Mustacchi .irle_enabled = B_TRUE, 817*eb00b1c8SRobert Mustacchi .irle_nways = 2, 818*eb00b1c8SRobert Mustacchi .irle_nwaysbits = 1, 819*eb00b1c8SRobert Mustacchi .irle_limit = 0x200000000ULL, 820*eb00b1c8SRobert Mustacchi .irle_nentries = 5, 821*eb00b1c8SRobert Mustacchi .irle_entries[0] = { 0x23, 0x0 }, 822*eb00b1c8SRobert Mustacchi .irle_entries[1] = { 0x42, 0x0 } 823*eb00b1c8SRobert Mustacchi } 824*eb00b1c8SRobert Mustacchi } 825*eb00b1c8SRobert Mustacchi } 826*eb00b1c8SRobert Mustacchi } 827*eb00b1c8SRobert Mustacchi }; 828*eb00b1c8SRobert Mustacchi 829*eb00b1c8SRobert Mustacchi static const imc_t imc_missing_dimm = { 830*eb00b1c8SRobert Mustacchi .imc_gen = IMC_GEN_SANDY, 831*eb00b1c8SRobert Mustacchi .imc_nsockets = 1, 832*eb00b1c8SRobert Mustacchi .imc_sockets[0] = { 833*eb00b1c8SRobert Mustacchi .isock_valid = IMC_SOCKET_V_VALID, 834*eb00b1c8SRobert Mustacchi .isock_sad = { 835*eb00b1c8SRobert Mustacchi .isad_flags = 0, 836*eb00b1c8SRobert Mustacchi .isad_valid = IMC_SAD_V_VALID, 837*eb00b1c8SRobert Mustacchi .isad_tolm = 0x80000000, /* 2 GiB */ 838*eb00b1c8SRobert Mustacchi .isad_tohm = 0x280000000ULL, /* 10 GiB */ 839*eb00b1c8SRobert Mustacchi .isad_nrules = 10, 840*eb00b1c8SRobert Mustacchi .isad_rules[0] = { 841*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 842*eb00b1c8SRobert Mustacchi .isr_limit = 0x80000000, 843*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 844*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 845*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 846*eb00b1c8SRobert Mustacchi }, 847*eb00b1c8SRobert Mustacchi .isad_rules[1] = { 848*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 849*eb00b1c8SRobert Mustacchi .isr_limit = 0x280000000ULL, 850*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 851*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 852*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 853*eb00b1c8SRobert Mustacchi } 854*eb00b1c8SRobert Mustacchi }, 855*eb00b1c8SRobert Mustacchi .isock_ntad = 1, 856*eb00b1c8SRobert Mustacchi .isock_tad[0] = { 857*eb00b1c8SRobert Mustacchi .itad_flags = 0, 858*eb00b1c8SRobert Mustacchi .itad_nrules = 12, 859*eb00b1c8SRobert Mustacchi .itad_rules[0] = { 860*eb00b1c8SRobert Mustacchi .itr_base = 0x0, 861*eb00b1c8SRobert Mustacchi .itr_limit = 0x80000000, 862*eb00b1c8SRobert Mustacchi .itr_sock_way = 1, 863*eb00b1c8SRobert Mustacchi .itr_chan_way = 1, 864*eb00b1c8SRobert Mustacchi .itr_sock_gran = IMC_TAD_GRAN_64B, 865*eb00b1c8SRobert Mustacchi .itr_chan_gran = IMC_TAD_GRAN_64B, 866*eb00b1c8SRobert Mustacchi .itr_ntargets = 4, 867*eb00b1c8SRobert Mustacchi .itr_targets = { 0, 0, 0, 0 } 868*eb00b1c8SRobert Mustacchi }, 869*eb00b1c8SRobert Mustacchi .itad_rules[1] = { 870*eb00b1c8SRobert Mustacchi .itr_base = 0x80000000, 871*eb00b1c8SRobert Mustacchi .itr_limit = 0x280000000ULL, 872*eb00b1c8SRobert Mustacchi .itr_sock_way = 1, 873*eb00b1c8SRobert Mustacchi .itr_chan_way = 1, 874*eb00b1c8SRobert Mustacchi .itr_sock_gran = IMC_TAD_GRAN_64B, 875*eb00b1c8SRobert Mustacchi .itr_chan_gran = IMC_TAD_GRAN_64B, 876*eb00b1c8SRobert Mustacchi .itr_ntargets = 4, 877*eb00b1c8SRobert Mustacchi .itr_targets = { 0, 0, 0, 0 } 878*eb00b1c8SRobert Mustacchi } 879*eb00b1c8SRobert Mustacchi }, 880*eb00b1c8SRobert Mustacchi .isock_nimc = 1, 881*eb00b1c8SRobert Mustacchi .isock_imcs[0] = { 882*eb00b1c8SRobert Mustacchi .icn_nchannels = 1, 883*eb00b1c8SRobert Mustacchi .icn_dimm_type = IMC_DIMM_DDR3, 884*eb00b1c8SRobert Mustacchi .icn_ecc = B_TRUE, 885*eb00b1c8SRobert Mustacchi .icn_lockstep = B_FALSE, 886*eb00b1c8SRobert Mustacchi .icn_closed = B_FALSE, 887*eb00b1c8SRobert Mustacchi .icn_channels[0] = { 888*eb00b1c8SRobert Mustacchi .ich_ndimms = 1, 889*eb00b1c8SRobert Mustacchi .ich_dimms[0] = { 890*eb00b1c8SRobert Mustacchi .idimm_present = B_FALSE 891*eb00b1c8SRobert Mustacchi }, 892*eb00b1c8SRobert Mustacchi .ich_ntad_offsets = 12, 893*eb00b1c8SRobert Mustacchi .ich_tad_offsets = { 0, 0x80000000, 0, 0, 0, 0, 894*eb00b1c8SRobert Mustacchi 0, 0, 0, 0, 0 }, 895*eb00b1c8SRobert Mustacchi .ich_nrankileaves = 8, 896*eb00b1c8SRobert Mustacchi .ich_rankileaves[0] = { 897*eb00b1c8SRobert Mustacchi .irle_enabled = B_TRUE, 898*eb00b1c8SRobert Mustacchi .irle_nways = 2, 899*eb00b1c8SRobert Mustacchi .irle_nwaysbits = 1, 900*eb00b1c8SRobert Mustacchi .irle_limit = 0x200000000ULL, 901*eb00b1c8SRobert Mustacchi .irle_nentries = 5, 902*eb00b1c8SRobert Mustacchi .irle_entries[0] = { 0x0, 0x0 }, 903*eb00b1c8SRobert Mustacchi .irle_entries[1] = { 0x1, 0x0 } 904*eb00b1c8SRobert Mustacchi } 905*eb00b1c8SRobert Mustacchi } 906*eb00b1c8SRobert Mustacchi } 907*eb00b1c8SRobert Mustacchi } 908*eb00b1c8SRobert Mustacchi }; 909*eb00b1c8SRobert Mustacchi 910*eb00b1c8SRobert Mustacchi static const imc_t imc_bad_rank_index = { 911*eb00b1c8SRobert Mustacchi .imc_gen = IMC_GEN_SANDY, 912*eb00b1c8SRobert Mustacchi .imc_nsockets = 1, 913*eb00b1c8SRobert Mustacchi .imc_sockets[0] = { 914*eb00b1c8SRobert Mustacchi .isock_valid = IMC_SOCKET_V_VALID, 915*eb00b1c8SRobert Mustacchi .isock_sad = { 916*eb00b1c8SRobert Mustacchi .isad_flags = 0, 917*eb00b1c8SRobert Mustacchi .isad_valid = IMC_SAD_V_VALID, 918*eb00b1c8SRobert Mustacchi .isad_tolm = 0x80000000, /* 2 GiB */ 919*eb00b1c8SRobert Mustacchi .isad_tohm = 0x280000000ULL, /* 10 GiB */ 920*eb00b1c8SRobert Mustacchi .isad_nrules = 10, 921*eb00b1c8SRobert Mustacchi .isad_rules[0] = { 922*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 923*eb00b1c8SRobert Mustacchi .isr_limit = 0x80000000, 924*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 925*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 926*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 927*eb00b1c8SRobert Mustacchi }, 928*eb00b1c8SRobert Mustacchi .isad_rules[1] = { 929*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 930*eb00b1c8SRobert Mustacchi .isr_limit = 0x280000000ULL, 931*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 932*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 933*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 934*eb00b1c8SRobert Mustacchi } 935*eb00b1c8SRobert Mustacchi }, 936*eb00b1c8SRobert Mustacchi .isock_ntad = 1, 937*eb00b1c8SRobert Mustacchi .isock_tad[0] = { 938*eb00b1c8SRobert Mustacchi .itad_flags = 0, 939*eb00b1c8SRobert Mustacchi .itad_nrules = 12, 940*eb00b1c8SRobert Mustacchi .itad_rules[0] = { 941*eb00b1c8SRobert Mustacchi .itr_base = 0x0, 942*eb00b1c8SRobert Mustacchi .itr_limit = 0x80000000, 943*eb00b1c8SRobert Mustacchi .itr_sock_way = 1, 944*eb00b1c8SRobert Mustacchi .itr_chan_way = 1, 945*eb00b1c8SRobert Mustacchi .itr_sock_gran = IMC_TAD_GRAN_64B, 946*eb00b1c8SRobert Mustacchi .itr_chan_gran = IMC_TAD_GRAN_64B, 947*eb00b1c8SRobert Mustacchi .itr_ntargets = 4, 948*eb00b1c8SRobert Mustacchi .itr_targets = { 0, 0, 0, 0 } 949*eb00b1c8SRobert Mustacchi }, 950*eb00b1c8SRobert Mustacchi .itad_rules[1] = { 951*eb00b1c8SRobert Mustacchi .itr_base = 0x80000000, 952*eb00b1c8SRobert Mustacchi .itr_limit = 0x280000000ULL, 953*eb00b1c8SRobert Mustacchi .itr_sock_way = 1, 954*eb00b1c8SRobert Mustacchi .itr_chan_way = 1, 955*eb00b1c8SRobert Mustacchi .itr_sock_gran = IMC_TAD_GRAN_64B, 956*eb00b1c8SRobert Mustacchi .itr_chan_gran = IMC_TAD_GRAN_64B, 957*eb00b1c8SRobert Mustacchi .itr_ntargets = 4, 958*eb00b1c8SRobert Mustacchi .itr_targets = { 0, 0, 0, 0 } 959*eb00b1c8SRobert Mustacchi } 960*eb00b1c8SRobert Mustacchi }, 961*eb00b1c8SRobert Mustacchi .isock_nimc = 1, 962*eb00b1c8SRobert Mustacchi .isock_imcs[0] = { 963*eb00b1c8SRobert Mustacchi .icn_nchannels = 1, 964*eb00b1c8SRobert Mustacchi .icn_dimm_type = IMC_DIMM_DDR3, 965*eb00b1c8SRobert Mustacchi .icn_ecc = B_TRUE, 966*eb00b1c8SRobert Mustacchi .icn_lockstep = B_FALSE, 967*eb00b1c8SRobert Mustacchi .icn_closed = B_FALSE, 968*eb00b1c8SRobert Mustacchi .icn_channels[0] = { 969*eb00b1c8SRobert Mustacchi .ich_ndimms = 1, 970*eb00b1c8SRobert Mustacchi .ich_dimms[0] = { 971*eb00b1c8SRobert Mustacchi .idimm_present = B_TRUE, 972*eb00b1c8SRobert Mustacchi .idimm_nbanks = 3, 973*eb00b1c8SRobert Mustacchi .idimm_width = 8, 974*eb00b1c8SRobert Mustacchi .idimm_density = 2, 975*eb00b1c8SRobert Mustacchi .idimm_nranks = 2, 976*eb00b1c8SRobert Mustacchi .idimm_nrows = 14, 977*eb00b1c8SRobert Mustacchi .idimm_ncolumns = 10, 978*eb00b1c8SRobert Mustacchi .idimm_size = 0x80000000 979*eb00b1c8SRobert Mustacchi }, 980*eb00b1c8SRobert Mustacchi .ich_ntad_offsets = 12, 981*eb00b1c8SRobert Mustacchi .ich_tad_offsets = { 0, 0x80000000, 0, 0, 0, 0, 982*eb00b1c8SRobert Mustacchi 0, 0, 0, 0, 0 }, 983*eb00b1c8SRobert Mustacchi .ich_nrankileaves = 8, 984*eb00b1c8SRobert Mustacchi .ich_rankileaves[0] = { 985*eb00b1c8SRobert Mustacchi .irle_enabled = B_TRUE, 986*eb00b1c8SRobert Mustacchi .irle_nways = 2, 987*eb00b1c8SRobert Mustacchi .irle_nwaysbits = 1, 988*eb00b1c8SRobert Mustacchi .irle_limit = 0x200000000ULL, 989*eb00b1c8SRobert Mustacchi .irle_nentries = 5, 990*eb00b1c8SRobert Mustacchi .irle_entries[0] = { 0x2, 0x0 }, 991*eb00b1c8SRobert Mustacchi .irle_entries[1] = { 0x3, 0x0 } 992*eb00b1c8SRobert Mustacchi } 993*eb00b1c8SRobert Mustacchi } 994*eb00b1c8SRobert Mustacchi } 995*eb00b1c8SRobert Mustacchi } 996*eb00b1c8SRobert Mustacchi }; 997*eb00b1c8SRobert Mustacchi 998*eb00b1c8SRobert Mustacchi static const imc_t imc_chanoff_underflow = { 999*eb00b1c8SRobert Mustacchi .imc_gen = IMC_GEN_SANDY, 1000*eb00b1c8SRobert Mustacchi .imc_nsockets = 1, 1001*eb00b1c8SRobert Mustacchi .imc_sockets[0] = { 1002*eb00b1c8SRobert Mustacchi .isock_valid = IMC_SOCKET_V_VALID, 1003*eb00b1c8SRobert Mustacchi .isock_sad = { 1004*eb00b1c8SRobert Mustacchi .isad_flags = 0, 1005*eb00b1c8SRobert Mustacchi .isad_valid = IMC_SAD_V_VALID, 1006*eb00b1c8SRobert Mustacchi .isad_tolm = 0x80000000, /* 2 GiB */ 1007*eb00b1c8SRobert Mustacchi .isad_tohm = 0x280000000ULL, /* 10 GiB */ 1008*eb00b1c8SRobert Mustacchi .isad_nrules = 10, 1009*eb00b1c8SRobert Mustacchi .isad_rules[0] = { 1010*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 1011*eb00b1c8SRobert Mustacchi .isr_limit = 0x80000000, 1012*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 1013*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 1014*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 1015*eb00b1c8SRobert Mustacchi }, 1016*eb00b1c8SRobert Mustacchi .isad_rules[1] = { 1017*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 1018*eb00b1c8SRobert Mustacchi .isr_limit = 0x280000000ULL, 1019*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 1020*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 1021*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 1022*eb00b1c8SRobert Mustacchi } 1023*eb00b1c8SRobert Mustacchi }, 1024*eb00b1c8SRobert Mustacchi .isock_ntad = 1, 1025*eb00b1c8SRobert Mustacchi .isock_tad[0] = { 1026*eb00b1c8SRobert Mustacchi .itad_flags = 0, 1027*eb00b1c8SRobert Mustacchi .itad_nrules = 12, 1028*eb00b1c8SRobert Mustacchi .itad_rules[0] = { 1029*eb00b1c8SRobert Mustacchi .itr_base = 0x0, 1030*eb00b1c8SRobert Mustacchi .itr_limit = 0x80000000, 1031*eb00b1c8SRobert Mustacchi .itr_sock_way = 1, 1032*eb00b1c8SRobert Mustacchi .itr_chan_way = 1, 1033*eb00b1c8SRobert Mustacchi .itr_sock_gran = IMC_TAD_GRAN_64B, 1034*eb00b1c8SRobert Mustacchi .itr_chan_gran = IMC_TAD_GRAN_64B, 1035*eb00b1c8SRobert Mustacchi .itr_ntargets = 4, 1036*eb00b1c8SRobert Mustacchi .itr_targets = { 0, 0, 0, 0 } 1037*eb00b1c8SRobert Mustacchi }, 1038*eb00b1c8SRobert Mustacchi .itad_rules[1] = { 1039*eb00b1c8SRobert Mustacchi .itr_base = 0x80000000, 1040*eb00b1c8SRobert Mustacchi .itr_limit = 0x280000000ULL, 1041*eb00b1c8SRobert Mustacchi .itr_sock_way = 1, 1042*eb00b1c8SRobert Mustacchi .itr_chan_way = 1, 1043*eb00b1c8SRobert Mustacchi .itr_sock_gran = IMC_TAD_GRAN_64B, 1044*eb00b1c8SRobert Mustacchi .itr_chan_gran = IMC_TAD_GRAN_64B, 1045*eb00b1c8SRobert Mustacchi .itr_ntargets = 4, 1046*eb00b1c8SRobert Mustacchi .itr_targets = { 0, 0, 0, 0 } 1047*eb00b1c8SRobert Mustacchi } 1048*eb00b1c8SRobert Mustacchi }, 1049*eb00b1c8SRobert Mustacchi .isock_nimc = 1, 1050*eb00b1c8SRobert Mustacchi .isock_imcs[0] = { 1051*eb00b1c8SRobert Mustacchi .icn_nchannels = 1, 1052*eb00b1c8SRobert Mustacchi .icn_dimm_type = IMC_DIMM_DDR3, 1053*eb00b1c8SRobert Mustacchi .icn_ecc = B_TRUE, 1054*eb00b1c8SRobert Mustacchi .icn_lockstep = B_FALSE, 1055*eb00b1c8SRobert Mustacchi .icn_closed = B_FALSE, 1056*eb00b1c8SRobert Mustacchi .icn_channels[0] = { 1057*eb00b1c8SRobert Mustacchi .ich_ndimms = 1, 1058*eb00b1c8SRobert Mustacchi .ich_dimms[0] = { 1059*eb00b1c8SRobert Mustacchi .idimm_present = B_TRUE, 1060*eb00b1c8SRobert Mustacchi .idimm_nbanks = 3, 1061*eb00b1c8SRobert Mustacchi .idimm_width = 8, 1062*eb00b1c8SRobert Mustacchi .idimm_density = 2, 1063*eb00b1c8SRobert Mustacchi .idimm_nranks = 2, 1064*eb00b1c8SRobert Mustacchi .idimm_nrows = 14, 1065*eb00b1c8SRobert Mustacchi .idimm_ncolumns = 10, 1066*eb00b1c8SRobert Mustacchi .idimm_size = 0x80000000 1067*eb00b1c8SRobert Mustacchi }, 1068*eb00b1c8SRobert Mustacchi .ich_ntad_offsets = 12, 1069*eb00b1c8SRobert Mustacchi .ich_tad_offsets = { 0x1000000000ULL, 1070*eb00b1c8SRobert Mustacchi 0x1000000000ULL, 1071*eb00b1c8SRobert Mustacchi 0x1000000000ULL, 1072*eb00b1c8SRobert Mustacchi 0x1000000000ULL, 1073*eb00b1c8SRobert Mustacchi 0x1000000000ULL, 1074*eb00b1c8SRobert Mustacchi 0x1000000000ULL, 1075*eb00b1c8SRobert Mustacchi 0x1000000000ULL, 1076*eb00b1c8SRobert Mustacchi 0x1000000000ULL, 1077*eb00b1c8SRobert Mustacchi 0x1000000000ULL, 1078*eb00b1c8SRobert Mustacchi 0x1000000000ULL, 1079*eb00b1c8SRobert Mustacchi 0x1000000000ULL, 1080*eb00b1c8SRobert Mustacchi 0x1000000000ULL 1081*eb00b1c8SRobert Mustacchi }, 1082*eb00b1c8SRobert Mustacchi .ich_nrankileaves = 8, 1083*eb00b1c8SRobert Mustacchi .ich_rankileaves[0] = { 1084*eb00b1c8SRobert Mustacchi .irle_enabled = B_TRUE, 1085*eb00b1c8SRobert Mustacchi .irle_nways = 2, 1086*eb00b1c8SRobert Mustacchi .irle_nwaysbits = 1, 1087*eb00b1c8SRobert Mustacchi .irle_limit = 0x200000000ULL, 1088*eb00b1c8SRobert Mustacchi .irle_nentries = 5, 1089*eb00b1c8SRobert Mustacchi .irle_entries[0] = { 0x0, 0x0 }, 1090*eb00b1c8SRobert Mustacchi .irle_entries[1] = { 0x1, 0x0 } 1091*eb00b1c8SRobert Mustacchi } 1092*eb00b1c8SRobert Mustacchi } 1093*eb00b1c8SRobert Mustacchi } 1094*eb00b1c8SRobert Mustacchi } 1095*eb00b1c8SRobert Mustacchi }; 1096*eb00b1c8SRobert Mustacchi 1097*eb00b1c8SRobert Mustacchi static const imc_t imc_riroff_underflow = { 1098*eb00b1c8SRobert Mustacchi .imc_gen = IMC_GEN_SANDY, 1099*eb00b1c8SRobert Mustacchi .imc_nsockets = 1, 1100*eb00b1c8SRobert Mustacchi .imc_sockets[0] = { 1101*eb00b1c8SRobert Mustacchi .isock_valid = IMC_SOCKET_V_VALID, 1102*eb00b1c8SRobert Mustacchi .isock_sad = { 1103*eb00b1c8SRobert Mustacchi .isad_flags = 0, 1104*eb00b1c8SRobert Mustacchi .isad_valid = IMC_SAD_V_VALID, 1105*eb00b1c8SRobert Mustacchi .isad_tolm = 0x80000000, /* 2 GiB */ 1106*eb00b1c8SRobert Mustacchi .isad_tohm = 0x280000000ULL, /* 10 GiB */ 1107*eb00b1c8SRobert Mustacchi .isad_nrules = 10, 1108*eb00b1c8SRobert Mustacchi .isad_rules[0] = { 1109*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 1110*eb00b1c8SRobert Mustacchi .isr_limit = 0x80000000, 1111*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 1112*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 1113*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 1114*eb00b1c8SRobert Mustacchi }, 1115*eb00b1c8SRobert Mustacchi .isad_rules[1] = { 1116*eb00b1c8SRobert Mustacchi .isr_enable = B_TRUE, 1117*eb00b1c8SRobert Mustacchi .isr_limit = 0x280000000ULL, 1118*eb00b1c8SRobert Mustacchi .isr_imode = IMC_SAD_IMODE_8t6, 1119*eb00b1c8SRobert Mustacchi .isr_ntargets = IMC_MAX_SAD_INTERLEAVE, 1120*eb00b1c8SRobert Mustacchi .isr_targets = { 0, 0, 0, 0, 0, 0, 0, 0 } 1121*eb00b1c8SRobert Mustacchi } 1122*eb00b1c8SRobert Mustacchi }, 1123*eb00b1c8SRobert Mustacchi .isock_ntad = 1, 1124*eb00b1c8SRobert Mustacchi .isock_tad[0] = { 1125*eb00b1c8SRobert Mustacchi .itad_flags = 0, 1126*eb00b1c8SRobert Mustacchi .itad_nrules = 12, 1127*eb00b1c8SRobert Mustacchi .itad_rules[0] = { 1128*eb00b1c8SRobert Mustacchi .itr_base = 0x0, 1129*eb00b1c8SRobert Mustacchi .itr_limit = 0x80000000, 1130*eb00b1c8SRobert Mustacchi .itr_sock_way = 1, 1131*eb00b1c8SRobert Mustacchi .itr_chan_way = 1, 1132*eb00b1c8SRobert Mustacchi .itr_sock_gran = IMC_TAD_GRAN_64B, 1133*eb00b1c8SRobert Mustacchi .itr_chan_gran = IMC_TAD_GRAN_64B, 1134*eb00b1c8SRobert Mustacchi .itr_ntargets = 4, 1135*eb00b1c8SRobert Mustacchi .itr_targets = { 0, 0, 0, 0 } 1136*eb00b1c8SRobert Mustacchi }, 1137*eb00b1c8SRobert Mustacchi .itad_rules[1] = { 1138*eb00b1c8SRobert Mustacchi .itr_base = 0x80000000, 1139*eb00b1c8SRobert Mustacchi .itr_limit = 0x280000000ULL, 1140*eb00b1c8SRobert Mustacchi .itr_sock_way = 1, 1141*eb00b1c8SRobert Mustacchi .itr_chan_way = 1, 1142*eb00b1c8SRobert Mustacchi .itr_sock_gran = IMC_TAD_GRAN_64B, 1143*eb00b1c8SRobert Mustacchi .itr_chan_gran = IMC_TAD_GRAN_64B, 1144*eb00b1c8SRobert Mustacchi .itr_ntargets = 4, 1145*eb00b1c8SRobert Mustacchi .itr_targets = { 0, 0, 0, 0 } 1146*eb00b1c8SRobert Mustacchi } 1147*eb00b1c8SRobert Mustacchi }, 1148*eb00b1c8SRobert Mustacchi .isock_nimc = 1, 1149*eb00b1c8SRobert Mustacchi .isock_imcs[0] = { 1150*eb00b1c8SRobert Mustacchi .icn_nchannels = 1, 1151*eb00b1c8SRobert Mustacchi .icn_dimm_type = IMC_DIMM_DDR3, 1152*eb00b1c8SRobert Mustacchi .icn_ecc = B_TRUE, 1153*eb00b1c8SRobert Mustacchi .icn_lockstep = B_FALSE, 1154*eb00b1c8SRobert Mustacchi .icn_closed = B_FALSE, 1155*eb00b1c8SRobert Mustacchi .icn_channels[0] = { 1156*eb00b1c8SRobert Mustacchi .ich_ndimms = 1, 1157*eb00b1c8SRobert Mustacchi .ich_dimms[0] = { 1158*eb00b1c8SRobert Mustacchi .idimm_present = B_TRUE, 1159*eb00b1c8SRobert Mustacchi .idimm_nbanks = 3, 1160*eb00b1c8SRobert Mustacchi .idimm_width = 8, 1161*eb00b1c8SRobert Mustacchi .idimm_density = 2, 1162*eb00b1c8SRobert Mustacchi .idimm_nranks = 2, 1163*eb00b1c8SRobert Mustacchi .idimm_nrows = 14, 1164*eb00b1c8SRobert Mustacchi .idimm_ncolumns = 10, 1165*eb00b1c8SRobert Mustacchi .idimm_size = 0x80000000 1166*eb00b1c8SRobert Mustacchi }, 1167*eb00b1c8SRobert Mustacchi .ich_ntad_offsets = 12, 1168*eb00b1c8SRobert Mustacchi .ich_tad_offsets = { 0, 0x80000000, 0, 0, 0, 0, 1169*eb00b1c8SRobert Mustacchi 0, 0, 0, 0, 0 }, 1170*eb00b1c8SRobert Mustacchi .ich_nrankileaves = 8, 1171*eb00b1c8SRobert Mustacchi .ich_rankileaves[0] = { 1172*eb00b1c8SRobert Mustacchi .irle_enabled = B_TRUE, 1173*eb00b1c8SRobert Mustacchi .irle_nways = 2, 1174*eb00b1c8SRobert Mustacchi .irle_nwaysbits = 1, 1175*eb00b1c8SRobert Mustacchi .irle_limit = 0x200000000ULL, 1176*eb00b1c8SRobert Mustacchi .irle_nentries = 5, 1177*eb00b1c8SRobert Mustacchi .irle_entries[0] = { 0x0, 1178*eb00b1c8SRobert Mustacchi 0x100000000000ULL }, 1179*eb00b1c8SRobert Mustacchi .irle_entries[1] = { 0x1, 1180*eb00b1c8SRobert Mustacchi 0x100000000000ULL } 1181*eb00b1c8SRobert Mustacchi } 1182*eb00b1c8SRobert Mustacchi } 1183*eb00b1c8SRobert Mustacchi } 1184*eb00b1c8SRobert Mustacchi } 1185*eb00b1c8SRobert Mustacchi }; 1186*eb00b1c8SRobert Mustacchi 1187*eb00b1c8SRobert Mustacchi const imc_test_case_t imc_test_fail[] = { { 1188*eb00b1c8SRobert Mustacchi .itc_desc = "Bad Socket data (1)", 1189*eb00b1c8SRobert Mustacchi .itc_imc = &imc_badsock, 1190*eb00b1c8SRobert Mustacchi .itc_pa = 0x34, 1191*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1192*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_BAD_SOCKET 1193*eb00b1c8SRobert Mustacchi }, { 1194*eb00b1c8SRobert Mustacchi .itc_desc = "Bad Socket data (2)", 1195*eb00b1c8SRobert Mustacchi .itc_imc = &imc_badsock, 1196*eb00b1c8SRobert Mustacchi .itc_pa = 0x7fffff, 1197*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1198*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_BAD_SOCKET 1199*eb00b1c8SRobert Mustacchi }, { 1200*eb00b1c8SRobert Mustacchi .itc_desc = "Bad Socket data (3)", 1201*eb00b1c8SRobert Mustacchi .itc_imc = &imc_badsock, 1202*eb00b1c8SRobert Mustacchi .itc_pa = 0x123456789ULL, 1203*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1204*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_BAD_SOCKET 1205*eb00b1c8SRobert Mustacchi }, { 1206*eb00b1c8SRobert Mustacchi .itc_desc = "Bad SAD data (1)", 1207*eb00b1c8SRobert Mustacchi .itc_imc = &imc_invalid_sad, 1208*eb00b1c8SRobert Mustacchi .itc_pa = 0x34, 1209*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1210*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_BAD_SAD 1211*eb00b1c8SRobert Mustacchi }, { 1212*eb00b1c8SRobert Mustacchi .itc_desc = "Bad SAD data (2)", 1213*eb00b1c8SRobert Mustacchi .itc_imc = &imc_invalid_sad, 1214*eb00b1c8SRobert Mustacchi .itc_pa = 0x7fffff, 1215*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1216*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_BAD_SAD 1217*eb00b1c8SRobert Mustacchi }, { 1218*eb00b1c8SRobert Mustacchi .itc_desc = "Bad SAD data (3)", 1219*eb00b1c8SRobert Mustacchi .itc_imc = &imc_invalid_sad, 1220*eb00b1c8SRobert Mustacchi .itc_pa = 0x123456789ULL, 1221*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1222*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_BAD_SAD 1223*eb00b1c8SRobert Mustacchi }, { 1224*eb00b1c8SRobert Mustacchi .itc_desc = "Bad SAD rule (1)", 1225*eb00b1c8SRobert Mustacchi .itc_imc = &imc_invalid_sad_rule, 1226*eb00b1c8SRobert Mustacchi .itc_pa = 0x45, 1227*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1228*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_NO_SAD_RULE 1229*eb00b1c8SRobert Mustacchi }, { 1230*eb00b1c8SRobert Mustacchi .itc_desc = "Bad SAD rule (2)", 1231*eb00b1c8SRobert Mustacchi .itc_imc = &imc_invalid_sad_rule, 1232*eb00b1c8SRobert Mustacchi .itc_pa = 0x7fffff, 1233*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1234*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_NO_SAD_RULE 1235*eb00b1c8SRobert Mustacchi }, { 1236*eb00b1c8SRobert Mustacchi .itc_desc = "Bad SAD rule (3)", 1237*eb00b1c8SRobert Mustacchi .itc_imc = &imc_invalid_sad_rule, 1238*eb00b1c8SRobert Mustacchi .itc_pa = 0x123456789ULL, 1239*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1240*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_NO_SAD_RULE 1241*eb00b1c8SRobert Mustacchi }, { 1242*eb00b1c8SRobert Mustacchi .itc_desc = "Bad SAD interleave (1)", 1243*eb00b1c8SRobert Mustacchi .itc_imc = &imc_invalid_sad_interleave, 1244*eb00b1c8SRobert Mustacchi .itc_pa = 0x45, 1245*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1246*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_BAD_SAD_INTERLEAVE 1247*eb00b1c8SRobert Mustacchi }, { 1248*eb00b1c8SRobert Mustacchi .itc_desc = "Bad SAD interleave (2)", 1249*eb00b1c8SRobert Mustacchi .itc_imc = &imc_invalid_sad_interleave, 1250*eb00b1c8SRobert Mustacchi .itc_pa = 0x7fffff, 1251*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1252*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_BAD_SAD_INTERLEAVE 1253*eb00b1c8SRobert Mustacchi }, { 1254*eb00b1c8SRobert Mustacchi .itc_desc = "Bad SAD interleave (3)", 1255*eb00b1c8SRobert Mustacchi .itc_imc = &imc_invalid_sad_interleave, 1256*eb00b1c8SRobert Mustacchi .itc_pa = 0x123456789ULL, 1257*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1258*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_BAD_SAD_INTERLEAVE 1259*eb00b1c8SRobert Mustacchi }, { 1260*eb00b1c8SRobert Mustacchi .itc_desc = "Bad SAD TAD target (1)", 1261*eb00b1c8SRobert Mustacchi .itc_imc = &imc_invalid_sad_target, 1262*eb00b1c8SRobert Mustacchi .itc_pa = 0x45, 1263*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1264*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_SAD_BAD_SOCKET 1265*eb00b1c8SRobert Mustacchi }, { 1266*eb00b1c8SRobert Mustacchi .itc_desc = "Bad SAD TAD target (2)", 1267*eb00b1c8SRobert Mustacchi .itc_imc = &imc_invalid_sad_target, 1268*eb00b1c8SRobert Mustacchi .itc_pa = 0x7fffff, 1269*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1270*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_SAD_BAD_SOCKET 1271*eb00b1c8SRobert Mustacchi }, { 1272*eb00b1c8SRobert Mustacchi .itc_desc = "Bad SAD TAD target (3)", 1273*eb00b1c8SRobert Mustacchi .itc_imc = &imc_invalid_sad_target, 1274*eb00b1c8SRobert Mustacchi .itc_pa = 0x123456789ULL, 1275*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1276*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_SAD_BAD_TAD 1277*eb00b1c8SRobert Mustacchi }, { 1278*eb00b1c8SRobert Mustacchi .itc_desc = "Bad TAD rule (1)", 1279*eb00b1c8SRobert Mustacchi .itc_imc = &imc_bad_tad_rule, 1280*eb00b1c8SRobert Mustacchi .itc_pa = 0x45, 1281*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1282*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_NO_TAD_RULE 1283*eb00b1c8SRobert Mustacchi }, { 1284*eb00b1c8SRobert Mustacchi .itc_desc = "Bad TAD rule (2)", 1285*eb00b1c8SRobert Mustacchi .itc_imc = &imc_bad_tad_rule, 1286*eb00b1c8SRobert Mustacchi .itc_pa = 0x7fffff, 1287*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1288*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_NO_TAD_RULE 1289*eb00b1c8SRobert Mustacchi }, { 1290*eb00b1c8SRobert Mustacchi .itc_desc = "Bad TAD rule (3)", 1291*eb00b1c8SRobert Mustacchi .itc_imc = &imc_bad_tad_rule, 1292*eb00b1c8SRobert Mustacchi .itc_pa = 0x123456789ULL, 1293*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1294*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_NO_TAD_RULE 1295*eb00b1c8SRobert Mustacchi }, { 1296*eb00b1c8SRobert Mustacchi .itc_desc = "Unsupported 3 way interleave (1)", 1297*eb00b1c8SRobert Mustacchi .itc_imc = &imc_bad_tad_3way, 1298*eb00b1c8SRobert Mustacchi .itc_pa = 0x45, 1299*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1300*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_TAD_3_ILEAVE 1301*eb00b1c8SRobert Mustacchi }, { 1302*eb00b1c8SRobert Mustacchi .itc_desc = "Unsupported 3 way interleave (2)", 1303*eb00b1c8SRobert Mustacchi .itc_imc = &imc_bad_tad_3way, 1304*eb00b1c8SRobert Mustacchi .itc_pa = 0x7fffff, 1305*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1306*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_TAD_3_ILEAVE 1307*eb00b1c8SRobert Mustacchi }, { 1308*eb00b1c8SRobert Mustacchi .itc_desc = "Unsupported 3 way interleave (3)", 1309*eb00b1c8SRobert Mustacchi .itc_imc = &imc_bad_tad_3way, 1310*eb00b1c8SRobert Mustacchi .itc_pa = 0x123456789ULL, 1311*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1312*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_TAD_3_ILEAVE 1313*eb00b1c8SRobert Mustacchi }, { 1314*eb00b1c8SRobert Mustacchi .itc_desc = "Bad TAD target index (1)", 1315*eb00b1c8SRobert Mustacchi .itc_imc = &imc_bad_tad_target, 1316*eb00b1c8SRobert Mustacchi .itc_pa = 0x45, 1317*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1318*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_TAD_BAD_TARGET_INDEX 1319*eb00b1c8SRobert Mustacchi }, { 1320*eb00b1c8SRobert Mustacchi .itc_desc = "Bad TAD target index (2)", 1321*eb00b1c8SRobert Mustacchi .itc_imc = &imc_bad_tad_target, 1322*eb00b1c8SRobert Mustacchi .itc_pa = 0x7fffff, 1323*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1324*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_TAD_BAD_TARGET_INDEX 1325*eb00b1c8SRobert Mustacchi }, { 1326*eb00b1c8SRobert Mustacchi .itc_desc = "Bad TAD target index (3)", 1327*eb00b1c8SRobert Mustacchi .itc_imc = &imc_bad_tad_target, 1328*eb00b1c8SRobert Mustacchi .itc_pa = 0x123456789ULL, 1329*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1330*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_TAD_BAD_TARGET_INDEX 1331*eb00b1c8SRobert Mustacchi }, { 1332*eb00b1c8SRobert Mustacchi .itc_desc = "Bad TAD target channel (1)", 1333*eb00b1c8SRobert Mustacchi .itc_imc = &imc_bad_tad_channelid, 1334*eb00b1c8SRobert Mustacchi .itc_pa = 0x45, 1335*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1336*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_BAD_CHANNEL_ID 1337*eb00b1c8SRobert Mustacchi }, { 1338*eb00b1c8SRobert Mustacchi .itc_desc = "Bad TAD target channel (2)", 1339*eb00b1c8SRobert Mustacchi .itc_imc = &imc_bad_tad_channelid, 1340*eb00b1c8SRobert Mustacchi .itc_pa = 0x7fffff, 1341*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1342*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_BAD_CHANNEL_ID 1343*eb00b1c8SRobert Mustacchi }, { 1344*eb00b1c8SRobert Mustacchi .itc_desc = "Bad TAD target channel (3)", 1345*eb00b1c8SRobert Mustacchi .itc_imc = &imc_bad_tad_channelid, 1346*eb00b1c8SRobert Mustacchi .itc_pa = 0x123456789ULL, 1347*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1348*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_BAD_CHANNEL_ID 1349*eb00b1c8SRobert Mustacchi }, { 1350*eb00b1c8SRobert Mustacchi .itc_desc = "Bad channel offset target (1)", 1351*eb00b1c8SRobert Mustacchi .itc_imc = &imc_bad_channel_offset, 1352*eb00b1c8SRobert Mustacchi .itc_pa = 0x45, 1353*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1354*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_BAD_CHANNEL_TAD_OFFSET 1355*eb00b1c8SRobert Mustacchi }, { 1356*eb00b1c8SRobert Mustacchi .itc_desc = "Bad channel offset target (2)", 1357*eb00b1c8SRobert Mustacchi .itc_imc = &imc_bad_channel_offset, 1358*eb00b1c8SRobert Mustacchi .itc_pa = 0x7fffff, 1359*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1360*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_BAD_CHANNEL_TAD_OFFSET 1361*eb00b1c8SRobert Mustacchi }, { 1362*eb00b1c8SRobert Mustacchi .itc_desc = "Bad channel offset target (3)", 1363*eb00b1c8SRobert Mustacchi .itc_imc = &imc_bad_channel_offset, 1364*eb00b1c8SRobert Mustacchi .itc_pa = 0x123456789ULL, 1365*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1366*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_BAD_CHANNEL_TAD_OFFSET 1367*eb00b1c8SRobert Mustacchi }, { 1368*eb00b1c8SRobert Mustacchi .itc_desc = "Bad RIR rule (1)", 1369*eb00b1c8SRobert Mustacchi .itc_imc = &imc_bad_rir_rule, 1370*eb00b1c8SRobert Mustacchi .itc_pa = 0x45, 1371*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1372*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_NO_RIR_RULE 1373*eb00b1c8SRobert Mustacchi }, { 1374*eb00b1c8SRobert Mustacchi .itc_desc = "Bad RIR rule (2)", 1375*eb00b1c8SRobert Mustacchi .itc_imc = &imc_bad_rir_rule, 1376*eb00b1c8SRobert Mustacchi .itc_pa = 0x7fffff, 1377*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1378*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_NO_RIR_RULE 1379*eb00b1c8SRobert Mustacchi }, { 1380*eb00b1c8SRobert Mustacchi .itc_desc = "Bad RIR rule (3)", 1381*eb00b1c8SRobert Mustacchi .itc_pa = 0x123456789ULL, 1382*eb00b1c8SRobert Mustacchi .itc_imc = &imc_bad_rir_rule, 1383*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_NO_RIR_RULE 1384*eb00b1c8SRobert Mustacchi }, { 1385*eb00b1c8SRobert Mustacchi .itc_desc = "Bad RIR interleave target (1)", 1386*eb00b1c8SRobert Mustacchi .itc_imc = &imc_bad_rir_ileave, 1387*eb00b1c8SRobert Mustacchi .itc_pa = 0x45, 1388*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1389*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_BAD_RIR_ILEAVE_TARGET 1390*eb00b1c8SRobert Mustacchi }, { 1391*eb00b1c8SRobert Mustacchi .itc_desc = "Bad RIR interleave target (2)", 1392*eb00b1c8SRobert Mustacchi .itc_imc = &imc_bad_rir_ileave, 1393*eb00b1c8SRobert Mustacchi .itc_pa = 0x7fffff, 1394*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1395*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_BAD_RIR_ILEAVE_TARGET 1396*eb00b1c8SRobert Mustacchi }, { 1397*eb00b1c8SRobert Mustacchi .itc_desc = "Bad RIR interleave target (3)", 1398*eb00b1c8SRobert Mustacchi .itc_imc = &imc_bad_rir_ileave, 1399*eb00b1c8SRobert Mustacchi .itc_pa = 0x123456789ULL, 1400*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1401*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_BAD_RIR_ILEAVE_TARGET 1402*eb00b1c8SRobert Mustacchi }, { 1403*eb00b1c8SRobert Mustacchi .itc_desc = "Bad RIR DIMM target (1)", 1404*eb00b1c8SRobert Mustacchi .itc_imc = &imc_bad_dimm_index, 1405*eb00b1c8SRobert Mustacchi .itc_pa = 0x45, 1406*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1407*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_BAD_DIMM_INDEX 1408*eb00b1c8SRobert Mustacchi }, { 1409*eb00b1c8SRobert Mustacchi .itc_desc = "Bad RIR DIMM target (2)", 1410*eb00b1c8SRobert Mustacchi .itc_imc = &imc_bad_dimm_index, 1411*eb00b1c8SRobert Mustacchi .itc_pa = 0x7fffff, 1412*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1413*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_BAD_DIMM_INDEX 1414*eb00b1c8SRobert Mustacchi }, { 1415*eb00b1c8SRobert Mustacchi .itc_desc = "Bad RIR DIMM target (3)", 1416*eb00b1c8SRobert Mustacchi .itc_imc = &imc_bad_dimm_index, 1417*eb00b1c8SRobert Mustacchi .itc_pa = 0x123456789ULL, 1418*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1419*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_BAD_DIMM_INDEX 1420*eb00b1c8SRobert Mustacchi }, { 1421*eb00b1c8SRobert Mustacchi .itc_desc = "Bad RIR DIMM target (1)", 1422*eb00b1c8SRobert Mustacchi .itc_imc = &imc_missing_dimm, 1423*eb00b1c8SRobert Mustacchi .itc_pa = 0x45, 1424*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1425*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_DIMM_NOT_PRESENT 1426*eb00b1c8SRobert Mustacchi }, { 1427*eb00b1c8SRobert Mustacchi .itc_desc = "Bad RIR DIMM target (2)", 1428*eb00b1c8SRobert Mustacchi .itc_imc = &imc_missing_dimm, 1429*eb00b1c8SRobert Mustacchi .itc_pa = 0x7fffff, 1430*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1431*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_DIMM_NOT_PRESENT 1432*eb00b1c8SRobert Mustacchi }, { 1433*eb00b1c8SRobert Mustacchi .itc_desc = "Bad RIR DIMM target (3)", 1434*eb00b1c8SRobert Mustacchi .itc_imc = &imc_missing_dimm, 1435*eb00b1c8SRobert Mustacchi .itc_pa = 0x123456789ULL, 1436*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1437*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_DIMM_NOT_PRESENT 1438*eb00b1c8SRobert Mustacchi }, { 1439*eb00b1c8SRobert Mustacchi .itc_desc = "Bad RIR rank target (1)", 1440*eb00b1c8SRobert Mustacchi .itc_imc = &imc_bad_rank_index, 1441*eb00b1c8SRobert Mustacchi .itc_pa = 0x45, 1442*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1443*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_BAD_DIMM_RANK 1444*eb00b1c8SRobert Mustacchi }, { 1445*eb00b1c8SRobert Mustacchi .itc_desc = "Bad RIR rank target (2)", 1446*eb00b1c8SRobert Mustacchi .itc_imc = &imc_bad_rank_index, 1447*eb00b1c8SRobert Mustacchi .itc_pa = 0x7fffff, 1448*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1449*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_BAD_DIMM_RANK 1450*eb00b1c8SRobert Mustacchi }, { 1451*eb00b1c8SRobert Mustacchi .itc_desc = "Bad RIR rank target (3)", 1452*eb00b1c8SRobert Mustacchi .itc_imc = &imc_bad_rank_index, 1453*eb00b1c8SRobert Mustacchi .itc_pa = 0x123456789ULL, 1454*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1455*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_BAD_DIMM_RANK 1456*eb00b1c8SRobert Mustacchi }, { 1457*eb00b1c8SRobert Mustacchi .itc_desc = "Bad channel offset underflow (1)", 1458*eb00b1c8SRobert Mustacchi .itc_imc = &imc_chanoff_underflow, 1459*eb00b1c8SRobert Mustacchi .itc_pa = 0x45, 1460*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1461*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_CHANOFF_UNDERFLOW 1462*eb00b1c8SRobert Mustacchi }, { 1463*eb00b1c8SRobert Mustacchi .itc_desc = "Bad channel offset underflow (2)", 1464*eb00b1c8SRobert Mustacchi .itc_imc = &imc_chanoff_underflow, 1465*eb00b1c8SRobert Mustacchi .itc_pa = 0x7fffff, 1466*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1467*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_CHANOFF_UNDERFLOW 1468*eb00b1c8SRobert Mustacchi }, { 1469*eb00b1c8SRobert Mustacchi .itc_desc = "Bad channel offset underflow (3)", 1470*eb00b1c8SRobert Mustacchi .itc_imc = &imc_chanoff_underflow, 1471*eb00b1c8SRobert Mustacchi .itc_pa = 0x123456789ULL, 1472*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1473*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_CHANOFF_UNDERFLOW 1474*eb00b1c8SRobert Mustacchi }, { 1475*eb00b1c8SRobert Mustacchi .itc_desc = "Bad rank offset underflow (1)", 1476*eb00b1c8SRobert Mustacchi .itc_imc = &imc_riroff_underflow, 1477*eb00b1c8SRobert Mustacchi .itc_pa = 0x45, 1478*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1479*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_RANKOFF_UNDERFLOW 1480*eb00b1c8SRobert Mustacchi }, { 1481*eb00b1c8SRobert Mustacchi .itc_desc = "Bad rank offset underflow (2)", 1482*eb00b1c8SRobert Mustacchi .itc_imc = &imc_riroff_underflow, 1483*eb00b1c8SRobert Mustacchi .itc_pa = 0x7fffff, 1484*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1485*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_RANKOFF_UNDERFLOW 1486*eb00b1c8SRobert Mustacchi }, { 1487*eb00b1c8SRobert Mustacchi .itc_desc = "Bad rank offset underflow (3)", 1488*eb00b1c8SRobert Mustacchi .itc_imc = &imc_riroff_underflow, 1489*eb00b1c8SRobert Mustacchi .itc_pa = 0x123456789ULL, 1490*eb00b1c8SRobert Mustacchi .itc_pass = B_FALSE, 1491*eb00b1c8SRobert Mustacchi .itc_fail = IMC_DECODE_F_RANKOFF_UNDERFLOW 1492*eb00b1c8SRobert Mustacchi }, { 1493*eb00b1c8SRobert Mustacchi .itc_desc = NULL 1494*eb00b1c8SRobert Mustacchi } }; 1495