/Linux-v5.10/drivers/edac/ |
D | ghes_edac.c | 88 struct dimm_info *dimm; in find_dimm_by_handle() local 90 mci_for_each_dimm(mci, dimm) { in find_dimm_by_handle() 91 if (dimm->smbios_handle == handle) in find_dimm_by_handle() 92 return dimm; in find_dimm_by_handle() 98 static void dimm_setup_label(struct dimm_info *dimm, u16 handle) in dimm_setup_label() argument 106 snprintf(dimm->label, sizeof(dimm->label), "%s %s", bank, device); in dimm_setup_label() 109 static void assign_dmi_dimm_info(struct dimm_info *dimm, struct memdev_dmi_entry *entry) in assign_dmi_dimm_info() argument 114 pr_info("Can't get DIMM%i size\n", dimm->idx); in assign_dmi_dimm_info() 115 dimm->nr_pages = MiB_TO_PAGES(32);/* Unknown */ in assign_dmi_dimm_info() 117 dimm->nr_pages = MiB_TO_PAGES(entry->extended_size); in assign_dmi_dimm_info() [all …]
|
D | edac_mc_sysfs.c | 168 nr_pages += csrow->channels[i]->dimm->nr_pages; in csrow_size_show() 177 return sprintf(data, "%s\n", edac_mem_types[csrow->channels[0]->dimm->mtype]); in csrow_mem_type_show() 185 return sprintf(data, "%s\n", dev_types[csrow->channels[0]->dimm->dtype]); in csrow_dev_type_show() 194 return sprintf(data, "%s\n", edac_caps[csrow->channels[0]->dimm->edac_mode]); in csrow_edac_mode_show() 207 if (!rank->dimm->label[0]) in channel_dimm_label_show() 210 return snprintf(data, sizeof(rank->dimm->label) + 1, "%s\n", in channel_dimm_label_show() 211 rank->dimm->label); in channel_dimm_label_show() 229 if (copy_count == 0 || copy_count >= sizeof(rank->dimm->label)) in channel_dimm_label_store() 232 strncpy(rank->dimm->label, data, copy_count); in channel_dimm_label_store() 233 rank->dimm->label[copy_count] = '\0'; in channel_dimm_label_store() [all …]
|
D | edac_mc.c | 61 unsigned int edac_dimm_info_location(struct dimm_info *dimm, char *buf, in edac_dimm_info_location() argument 64 struct mem_ctl_info *mci = dimm->mci; in edac_dimm_info_location() 71 dimm->location[i]); in edac_dimm_info_location() 89 edac_dbg(4, " channel->dimm = %p\n", chan->dimm); in edac_mc_dump_channel() 92 static void edac_mc_dump_dimm(struct dimm_info *dimm) in edac_mc_dump_dimm() argument 96 if (!dimm->nr_pages) in edac_mc_dump_dimm() 99 edac_dimm_info_location(dimm, location, sizeof(location)); in edac_mc_dump_dimm() 102 dimm->mci->csbased ? "rank" : "dimm", in edac_mc_dump_dimm() 103 dimm->idx, location, dimm->csrow, dimm->cschannel); in edac_mc_dump_dimm() 104 edac_dbg(4, " dimm = %p\n", dimm); in edac_mc_dump_dimm() [all …]
|
D | pasemi_edac.c | 127 struct dimm_info *dimm; in pasemi_edac_init_csrows() local 133 dimm = csrow->channels[0]->dimm; in pasemi_edac_init_csrows() 145 dimm->nr_pages = 128 << (20 - PAGE_SHIFT); in pasemi_edac_init_csrows() 148 dimm->nr_pages = 256 << (20 - PAGE_SHIFT); in pasemi_edac_init_csrows() 152 dimm->nr_pages = 512 << (20 - PAGE_SHIFT); in pasemi_edac_init_csrows() 155 dimm->nr_pages = 1024 << (20 - PAGE_SHIFT); in pasemi_edac_init_csrows() 158 dimm->nr_pages = 2048 << (20 - PAGE_SHIFT); in pasemi_edac_init_csrows() 168 csrow->last_page = csrow->first_page + dimm->nr_pages - 1; in pasemi_edac_init_csrows() 169 last_page_in_mmc += dimm->nr_pages; in pasemi_edac_init_csrows() 171 dimm->grain = PASEMI_EDAC_ERROR_GRAIN; in pasemi_edac_init_csrows() [all …]
|
D | i82860_edac.c | 101 struct dimm_info *dimm; in i82860_process_error_info() local 118 dimm = mci->csrows[row]->channels[0]->dimm; in i82860_process_error_info() 123 dimm->location[0], dimm->location[1], -1, in i82860_process_error_info() 128 dimm->location[0], dimm->location[1], -1, in i82860_process_error_info() 150 struct dimm_info *dimm; in i82860_init_csrows() local 164 dimm = csrow->channels[0]->dimm; in i82860_init_csrows() 176 dimm->nr_pages = cumul_size - last_cumul_size; in i82860_init_csrows() 178 dimm->grain = 1 << 12; /* I82860_EAP has 4KiB reolution */ in i82860_init_csrows() 179 dimm->mtype = MEM_RMBS; in i82860_init_csrows() 180 dimm->dtype = DEV_UNKNOWN; in i82860_init_csrows() [all …]
|
D | bluefield_edac.c | 184 struct dimm_info *dimm; in bluefield_edac_init_dimms() local 189 dimm = mci->dimms[i]; in bluefield_edac_init_dimms() 195 dimm->mtype = MEM_EMPTY; in bluefield_edac_init_dimms() 201 dimm->edac_mode = EDAC_SECDED; in bluefield_edac_init_dimms() 204 dimm->mtype = MEM_NVDIMM; in bluefield_edac_init_dimms() 206 dimm->mtype = MEM_LRDDR4; in bluefield_edac_init_dimms() 208 dimm->mtype = MEM_RDDR4; in bluefield_edac_init_dimms() 210 dimm->mtype = MEM_DDR4; in bluefield_edac_init_dimms() 212 dimm->nr_pages = in bluefield_edac_init_dimms() 215 dimm->grain = MLXBF_EDAC_ERROR_GRAIN; in bluefield_edac_init_dimms() [all …]
|
D | ti_edac.c | 132 struct dimm_info *dimm; in ti_edac_setup_dimm() local 138 dimm = edac_get_dimm(mci, 0, 0, 0); in ti_edac_setup_dimm() 149 dimm->dtype = DEV_X16; in ti_edac_setup_dimm() 152 dimm->dtype = DEV_X32; in ti_edac_setup_dimm() 166 dimm->dtype = DEV_X64; in ti_edac_setup_dimm() 170 dimm->dtype = DEV_X32; in ti_edac_setup_dimm() 174 dimm->dtype = DEV_X16; in ti_edac_setup_dimm() 181 dimm->nr_pages = memsize >> PAGE_SHIFT; in ti_edac_setup_dimm() 182 dimm->grain = 4; in ti_edac_setup_dimm() 184 dimm->mtype = MEM_DDR2; in ti_edac_setup_dimm() [all …]
|
D | amd76x_edac.c | 191 struct dimm_info *dimm; in amd76x_init_csrows() local 197 dimm = csrow->channels[0]->dimm; in amd76x_init_csrows() 210 dimm->nr_pages = (mba_mask + 1) >> PAGE_SHIFT; in amd76x_init_csrows() 211 csrow->last_page = csrow->first_page + dimm->nr_pages - 1; in amd76x_init_csrows() 213 dimm->grain = dimm->nr_pages << PAGE_SHIFT; in amd76x_init_csrows() 214 dimm->mtype = MEM_RDDR; in amd76x_init_csrows() 215 dimm->dtype = ((dms >> index) & 0x1) ? DEV_X4 : DEV_UNKNOWN; in amd76x_init_csrows() 216 dimm->edac_mode = edac_mode; in amd76x_init_csrows()
|
D | skx_common.c | 121 res->dimm = (int)adxl_values[component_indices[INDEX_DIMM]]; in skx_adxl_decode() 306 int skx_get_dimm_info(u32 mtr, u32 mcmtr, u32 amap, struct dimm_info *dimm, in skx_get_dimm_info() argument 332 dimm->nr_pages = npages; in skx_get_dimm_info() 333 dimm->grain = 32; in skx_get_dimm_info() 334 dimm->dtype = get_width(mtr); in skx_get_dimm_info() 335 dimm->mtype = MEM_DDR4; in skx_get_dimm_info() 336 dimm->edac_mode = EDAC_SECDED; /* likely better than this */ in skx_get_dimm_info() 337 snprintf(dimm->label, sizeof(dimm->label), "CPU_SrcID#%u_MC#%u_Chan#%u_DIMM#%u", in skx_get_dimm_info() 343 int skx_get_nvdimm_info(struct dimm_info *dimm, struct skx_imc *imc, in skx_get_nvdimm_info() argument 376 dimm->nr_pages = size >> PAGE_SHIFT; in skx_get_nvdimm_info() [all …]
|
D | ie31200_edac.c | 486 struct dimm_info *dimm; in ie31200_probe1() local 495 dimm = edac_get_dimm(mci, (i * 2) + 1, j, 0); in ie31200_probe1() 496 dimm->nr_pages = nr_pages; in ie31200_probe1() 498 dimm->grain = 8; /* just a guess */ in ie31200_probe1() 500 dimm->mtype = MEM_DDR4; in ie31200_probe1() 502 dimm->mtype = MEM_DDR3; in ie31200_probe1() 503 dimm->dtype = DEV_UNKNOWN; in ie31200_probe1() 504 dimm->edac_mode = EDAC_UNKNOWN; in ie31200_probe1() 506 dimm = edac_get_dimm(mci, i * 2, j, 0); in ie31200_probe1() 507 dimm->nr_pages = nr_pages; in ie31200_probe1() [all …]
|
D | skx_base.c | 182 struct dimm_info *dimm; in skx_get_dimm_config() local 194 dimm = edac_get_dimm(mci, i, j, 0); in skx_get_dimm_config() 198 ndimms += skx_get_dimm_info(mtr, mcmtr, amap, dimm, imc, i, j); in skx_get_dimm_config() 200 ndimms += skx_get_nvdimm_info(dimm, imc, i, j, in skx_get_dimm_config() 502 res->dimm = chan_rank / 4; in skx_rir_decode() 506 res->addr, res->dimm, res->rank, in skx_rir_decode() 552 struct skx_dimm *dimm = &r->dev->imc[r->imc].chan[r->channel].dimms[r->dimm]; in skx_mad_decode() local 553 int bg0 = dimm->fine_grain_bank ? 6 : 13; in skx_mad_decode() 555 if (dimm->close_pg) { in skx_mad_decode() 556 r->row = skx_bits(r->rank_address, dimm->rowbits, skx_close_row); in skx_mad_decode() [all …]
|
D | r82600_edac.c | 221 struct dimm_info *dimm; in r82600_init_csrows() local 233 dimm = csrow->channels[0]->dimm; in r82600_init_csrows() 255 dimm->nr_pages = csrow->last_page - csrow->first_page + 1; in r82600_init_csrows() 258 dimm->grain = 1 << 14; in r82600_init_csrows() 259 dimm->mtype = reg_sdram ? MEM_RDDR : MEM_DDR; in r82600_init_csrows() 261 dimm->dtype = DEV_UNKNOWN; in r82600_init_csrows() 264 dimm->edac_mode = ecc_on ? EDAC_SECDED : EDAC_NONE; in r82600_init_csrows()
|
D | i5400_edac.c | 861 static int determine_mtr(struct i5400_pvt *pvt, int dimm, int channel) in determine_mtr() argument 869 n = dimm; in determine_mtr() 873 dimm); in determine_mtr() 918 static void handle_channel(struct i5400_pvt *pvt, int dimm, int channel, in handle_channel() argument 925 mtr = determine_mtr(pvt, dimm, channel); in handle_channel() 930 if (amb_present_reg & (1 << dimm)) { in handle_channel() 959 int dimm, max_dimms; in calculate_dimm_size() local 979 for (dimm = max_dimms - 1; dimm >= 0; dimm--) { in calculate_dimm_size() 983 if (dimm & 0x1) { in calculate_dimm_size() 992 n = snprintf(p, space, "dimm %2d ", dimm); in calculate_dimm_size() [all …]
|
D | highbank_mc_edac.c | 151 struct dimm_info *dimm; in highbank_mc_probe() local 221 dimm = *mci->dimms; in highbank_mc_probe() 222 dimm->nr_pages = (~0UL >> PAGE_SHIFT) + 1; in highbank_mc_probe() 223 dimm->grain = 8; in highbank_mc_probe() 224 dimm->dtype = DEV_X8; in highbank_mc_probe() 225 dimm->mtype = MEM_DDR3; in highbank_mc_probe() 226 dimm->edac_mode = EDAC_SECDED; in highbank_mc_probe()
|
D | i82443bxgx_edac.c | 190 struct dimm_info *dimm; in i82443bxgx_init_csrows() local 199 dimm = csrow->channels[0]->dimm; in i82443bxgx_init_csrows() 220 dimm->nr_pages = csrow->last_page - csrow->first_page + 1; in i82443bxgx_init_csrows() 222 dimm->grain = 1 << 12; in i82443bxgx_init_csrows() 223 dimm->mtype = mtype; in i82443bxgx_init_csrows() 225 dimm->dtype = DEV_UNKNOWN; in i82443bxgx_init_csrows() 227 dimm->edac_mode = edac_mode; in i82443bxgx_init_csrows()
|
D | i82975x_edac.c | 313 (1 << mci->csrows[row]->channels[chan]->dimm->grain)); in i82975x_process_error_info() 369 struct dimm_info *dimm; in i82975x_init_csrows() local 408 dimm = mci->csrows[index]->channels[chan]->dimm; in i82975x_init_csrows() 410 dimm->nr_pages = nr_pages / csrow->nr_channels; in i82975x_init_csrows() 412 snprintf(csrow->channels[chan]->dimm->label, EDAC_MC_LABEL_LEN, "DIMM %c%d", in i82975x_init_csrows() 415 dimm->grain = 1 << 7; /* 128Byte cache-line resolution */ in i82975x_init_csrows() 418 dimm->dtype = DEV_X8; in i82975x_init_csrows() 420 dimm->mtype = MEM_DDR2; /* I82975x supports only DDR2 */ in i82975x_init_csrows() 421 dimm->edac_mode = EDAC_SECDED; /* only supported */ in i82975x_init_csrows()
|
D | armada_xp_edac.c | 224 struct dimm_info *dimm; in axp_mc_read_config() local 237 dimm = mci->dimms[i]; in axp_mc_read_config() 251 dimm->nr_pages = 524288; in axp_mc_read_config() 254 dimm->nr_pages = 65536; in axp_mc_read_config() 257 dimm->nr_pages = 131072; in axp_mc_read_config() 260 dimm->nr_pages = 262144; in axp_mc_read_config() 263 dimm->nr_pages = 1048576; in axp_mc_read_config() 266 dimm->nr_pages = 2097152; in axp_mc_read_config() 269 dimm->grain = 8; in axp_mc_read_config() 270 dimm->dtype = cs_struct ? DEV_X16 : DEV_X8; in axp_mc_read_config() [all …]
|
D | i82875p_edac.c | 345 struct dimm_info *dimm; in i82875p_init_csrows() local 377 dimm = csrow->channels[j]->dimm; in i82875p_init_csrows() 379 dimm->nr_pages = nr_pages / nr_chans; in i82875p_init_csrows() 380 dimm->grain = 1 << 12; /* I82875P_EAP has 4KiB reolution */ in i82875p_init_csrows() 381 dimm->mtype = MEM_DDR; in i82875p_init_csrows() 382 dimm->dtype = DEV_UNKNOWN; in i82875p_init_csrows() 383 dimm->edac_mode = drc_ddim ? EDAC_SECDED : EDAC_NONE; in i82875p_init_csrows()
|
D | amd64_edac.c | 790 static int f17_get_cs_mode(int dimm, u8 ctrl, struct amd64_pvt *pvt) in f17_get_cs_mode() argument 794 if (csrow_enabled(2 * dimm, ctrl, pvt)) in f17_get_cs_mode() 797 if (csrow_enabled(2 * dimm + 1, ctrl, pvt)) in f17_get_cs_mode() 801 if (csrow_sec_enabled(2 * dimm + 1, ctrl, pvt)) in f17_get_cs_mode() 809 int dimm, size0, size1, cs0, cs1, cs_mode; in debug_display_dimm_sizes_df() local 813 for (dimm = 0; dimm < 2; dimm++) { in debug_display_dimm_sizes_df() 814 cs0 = dimm * 2; in debug_display_dimm_sizes_df() 815 cs1 = dimm * 2 + 1; in debug_display_dimm_sizes_df() 817 cs_mode = f17_get_cs_mode(dimm, ctrl, pvt); in debug_display_dimm_sizes_df() 1579 int dimm, size = 0; in f17_addr_mask_to_cs_size() local [all …]
|
D | pnd2_edac.c | 53 int dimm; member 988 daddr->dimm = 0; in apl_pmi2mem() 1008 daddr->dimm = (daddr->rank >= 2) ^ drp[pmiidx].dimmflip; in dnv_pmi2mem() 1138 addr, pmiaddr, daddr->chan, daddr->dimm, daddr->rank, daddr->bank, daddr->row, daddr->col); in get_memory_error_data() 1208 errcode, daddr->chan, daddr->dimm, daddr->rank, daddr->row, daddr->bank, daddr->col); in pnd2_mce_output_error() 1214 m->addr & ~PAGE_MASK, 0, daddr->chan, daddr->dimm, -1, optype, msg); in pnd2_mce_output_error() 1225 struct dimm_info *dimm; in apl_get_dimm_config() local 1234 dimm = edac_get_dimm(mci, i, 0, 0); in apl_get_dimm_config() 1235 if (!dimm) { in apl_get_dimm_config() 1256 dimm->nr_pages = MiB_TO_PAGES(capacity >> (20 - 3)); in apl_get_dimm_config() [all …]
|
D | cell_edac.c | 131 struct dimm_info *dimm; in cell_edac_init_csrows() local 153 dimm = csrow->channels[j]->dimm; in cell_edac_init_csrows() 154 dimm->mtype = MEM_XDR; in cell_edac_init_csrows() 155 dimm->edac_mode = EDAC_SECDED; in cell_edac_init_csrows() 156 dimm->nr_pages = nr_pages / csrow->nr_channels; in cell_edac_init_csrows()
|
/Linux-v5.10/drivers/gpu/drm/i915/ |
D | intel_dram.c | 39 static int intel_dimm_num_devices(const struct dram_dimm_info *dimm) in intel_dimm_num_devices() argument 41 return dimm->ranks * 64 / (dimm->width ?: 1); in intel_dimm_num_devices() 111 skl_is_16gb_dimm(const struct dram_dimm_info *dimm) in skl_is_16gb_dimm() argument 114 return 8 * dimm->size / (intel_dimm_num_devices(dimm) ?: 1) == 16; in skl_is_16gb_dimm() 119 struct dram_dimm_info *dimm, in skl_dram_get_dimm_info() argument 123 dimm->size = cnl_get_dimm_size(val); in skl_dram_get_dimm_info() 124 dimm->width = cnl_get_dimm_width(val); in skl_dram_get_dimm_info() 125 dimm->ranks = cnl_get_dimm_ranks(val); in skl_dram_get_dimm_info() 127 dimm->size = skl_get_dimm_size(val); in skl_dram_get_dimm_info() 128 dimm->width = skl_get_dimm_width(val); in skl_dram_get_dimm_info() [all …]
|
/Linux-v5.10/include/linux/ |
D | edac.h | 401 struct dimm_info *dimm; member 590 #define mci_for_each_dimm(mci, dimm) \ argument 591 for ((dimm) = (mci)->dimms[0]; \ 592 (dimm); \ 593 (dimm) = (dimm)->idx + 1 < (mci)->tot_dimms \ 594 ? (mci)->dimms[(dimm)->idx + 1] \
|
/Linux-v5.10/Documentation/ABI/testing/ |
D | sysfs-devices-edac | 86 What: /sys/devices/system/edac/mc/mc*/(dimm|rank)*/size 90 Description: This attribute file will display the size of dimm or rank. 91 For dimm*/size, this is the size, in MB of the DIMM memory 94 is also the total size of the dimm. On dual rank (2R) memories, 97 What: /sys/devices/system/edac/mc/mc*/(dimm|rank)*/dimm_dev_type 104 What: /sys/devices/system/edac/mc/mc*/(dimm|rank)*/dimm_edac_mode 112 What: /sys/devices/system/edac/mc/mc*/(dimm|rank)*/dimm_label 127 What: /sys/devices/system/edac/mc/mc*/(dimm|rank)*/dimm_location 132 branch/channel/slot or channel/slot) of the dimm or rank. 134 What: /sys/devices/system/edac/mc/mc*/(dimm|rank)*/dimm_mem_type [all …]
|
/Linux-v5.10/tools/testing/nvdimm/test/ |
D | nfit.c | 123 #define NFIT_DIMM_HANDLE(node, socket, imc, chan, dimm) \ argument 125 | ((imc & 0xf) << 8) | ((chan & 0xf) << 4) | (dimm & 0xf)) 193 void **dimm; member 935 static int override_return_code(int dimm, unsigned int func, int rc) in override_return_code() argument 937 if ((1 << func) & dimm_fail_cmd_flags[dimm]) { in override_return_code() 938 if (dimm_fail_cmd_code[dimm]) in override_return_code() 939 return dimm_fail_cmd_code[dimm]; in override_return_code() 947 unsigned int buf_len, int dimm) in nd_intel_test_cmd_security_status() argument 950 struct nfit_test_sec *sec = &dimm_sec_info[dimm]; in nd_intel_test_cmd_security_status() 962 unsigned int buf_len, int dimm) in nd_intel_test_cmd_unlock_unit() argument [all …]
|