Lines Matching +full:reserved +full:- +full:channels

25 /* Intel 3000 register addresses - device 0 function 0 - DRAM Controller */
33 * 7:1 reserved
39 * 6:1 reserved
54 deap |= (edeap & 1) << (32 - PAGE_SHIFT); in deap_pfn()
60 return deap & ~(I3000_DEAP_GRAIN - 1) & ~PAGE_MASK; in deap_offset()
75 * 15:12 reserved
78 * 10 reserved
79 * 9 LOCK to non-DRAM Memory Flag (LCKF)
81 * 7:2 reserved
82 * 1 Multi-bit DRAM ECC Error Flag (DMERR)
83 * 0 Single-bit DRAM ECC Error Flag (DSERR)
91 * 15:12 reserved
94 * 10 reserved
95 * 9 SERR on LOCK to non-DRAM Memory
99 * 7:2 reserved
100 * 1 SERR Multi-Bit DRAM ECC Error
102 * 0 SERR on Single-Bit ECC Error
106 /* Intel MMIO register space - device 0 function 0 - MMR space */
121 * 7 reserved
123 * 3 reserved
129 * 001: reserved
133 * Others: reserved
149 * 31:30 reserved
151 * 28:11 reserved
153 * 7 reserved
155 * 3:2 reserved
162 * 30:0 reserved
195 pdev = to_pci_dev(mci->pdev); in i3000_get_error_info()
202 pci_read_config_word(pdev, I3000_ERRSTS, &info->errsts); in i3000_get_error_info()
203 if (!(info->errsts & I3000_ERRSTS_BITS)) in i3000_get_error_info()
205 pci_read_config_byte(pdev, I3000_EDEAP, &info->edeap); in i3000_get_error_info()
206 pci_read_config_dword(pdev, I3000_DEAP, &info->deap); in i3000_get_error_info()
207 pci_read_config_byte(pdev, I3000_DERRSYN, &info->derrsyn); in i3000_get_error_info()
208 pci_read_config_word(pdev, I3000_ERRSTS, &info->errsts2); in i3000_get_error_info()
216 if ((info->errsts ^ info->errsts2) & I3000_ERRSTS_BITS) { in i3000_get_error_info()
217 pci_read_config_byte(pdev, I3000_EDEAP, &info->edeap); in i3000_get_error_info()
218 pci_read_config_dword(pdev, I3000_DEAP, &info->deap); in i3000_get_error_info()
219 pci_read_config_byte(pdev, I3000_DERRSYN, &info->derrsyn); in i3000_get_error_info()
237 multi_chan = mci->csrows[0]->nr_channels - 1; in i3000_process_error_info()
239 if (!(info->errsts & I3000_ERRSTS_BITS)) in i3000_process_error_info()
245 if ((info->errsts ^ info->errsts2) & I3000_ERRSTS_BITS) { in i3000_process_error_info()
247 -1, -1, -1, in i3000_process_error_info()
249 info->errsts = info->errsts2; in i3000_process_error_info()
252 pfn = deap_pfn(info->edeap, info->deap); in i3000_process_error_info()
253 offset = deap_offset(info->deap); in i3000_process_error_info()
254 channel = deap_channel(info->deap); in i3000_process_error_info()
258 if (info->errsts & I3000_ERRSTS_UE) in i3000_process_error_info()
261 row, -1, -1, in i3000_process_error_info()
265 pfn, offset, info->derrsyn, in i3000_process_error_info()
266 row, multi_chan ? channel : 0, -1, in i3000_process_error_info()
288 * If the channels aren't populated identically then in i3000_is_interleaved()
298 * If the rank boundaries for the two channels are different in i3000_is_interleaved()
330 return -ENODEV; in i3000_probe1()
346 * Figure out how many channels we have. in i3000_probe1()
348 * If we have what the datasheet calls "asymmetric channels" in i3000_probe1()
364 return -ENOMEM; in i3000_probe1()
368 mci->pdev = &pdev->dev; in i3000_probe1()
369 mci->mtype_cap = MEM_FLAG_DDR2; in i3000_probe1()
371 mci->edac_ctl_cap = EDAC_FLAG_SECDED; in i3000_probe1()
372 mci->edac_cap = EDAC_FLAG_SECDED; in i3000_probe1()
374 mci->mod_name = EDAC_MOD_STR; in i3000_probe1()
375 mci->ctl_name = i3000_devs[dev_idx].ctl_name; in i3000_probe1()
376 mci->dev_name = pci_name(pdev); in i3000_probe1()
377 mci->edac_check = i3000_check; in i3000_probe1()
378 mci->ctl_page_to_phys = NULL; in i3000_probe1()
389 for (last_cumul_size = i = 0; i < mci->nr_csrows; i++) { in i3000_probe1()
392 struct csrow_info *csrow = mci->csrows[i]; in i3000_probe1()
395 cumul_size = value << (I3000_DRB_SHIFT - PAGE_SHIFT); in i3000_probe1()
402 csrow->first_page = last_cumul_size; in i3000_probe1()
403 csrow->last_page = cumul_size - 1; in i3000_probe1()
404 nr_pages = cumul_size - last_cumul_size; in i3000_probe1()
408 struct dimm_info *dimm = csrow->channels[j]->dimm; in i3000_probe1()
410 dimm->nr_pages = nr_pages / nr_channels; in i3000_probe1()
411 dimm->grain = I3000_DEAP_GRAIN; in i3000_probe1()
412 dimm->mtype = MEM_DDR2; in i3000_probe1()
413 dimm->dtype = DEV_UNKNOWN; in i3000_probe1()
414 dimm->edac_mode = EDAC_UNKNOWN; in i3000_probe1()
425 rc = -ENODEV; in i3000_probe1()
432 i3000_pci = edac_pci_create_generic_ctl(&pdev->dev, EDAC_MOD_STR); in i3000_probe1()
461 return -EIO; in i3000_init_one()
463 rc = i3000_probe1(pdev, ent->driver_data); in i3000_init_one()
479 mci = edac_mc_del_mc(&pdev->dev); in i3000_remove_one()
523 pci_rc = -ENODEV; in i3000_init()
530 pci_rc = -ENODEV; in i3000_init()