Lines Matching +full:clear +full:- +full:bit

14  * www.radisys.com/files/support_downloads/007-01277-0002.82600DataBook.pdf
35 * sizes of 64 bit wide (72 bits with ECC) Synchronous DRAM (SDRAM) DIMMs,
38 * registered and unbuffered DIMMs as well as mixing of ECC and non-ECC DIMMs
49 /* Radisys 82600 register addresses - device 0 function 0 - PCI bridge */
102 * 2 NMI on Single Bit Eror (RW)
110 * write 1=Clear MBE status (must also
111 * clear SBE)
117 * write 1=Clear SBE status (must also
118 * clear MBE)
125 * 7:0 Address lines 30:24 - upper limit of
142 pdev = to_pci_dev(mci->pdev); in r82600_get_error_info()
143 pci_read_config_dword(pdev, R82600_EAP, &info->eapr); in r82600_get_error_info()
145 if (info->eapr & BIT(0)) in r82600_get_error_info()
146 /* Clear error to allow next error to be reported [p.62] */ in r82600_get_error_info()
148 ((u32) BIT(0) & (u32) BIT(1)), in r82600_get_error_info()
149 ((u32) BIT(0) & (u32) BIT(1))); in r82600_get_error_info()
151 if (info->eapr & BIT(1)) in r82600_get_error_info()
152 /* Clear error to allow next error to be reported [p.62] */ in r82600_get_error_info()
154 ((u32) BIT(0) & (u32) BIT(1)), in r82600_get_error_info()
155 ((u32) BIT(0) & (u32) BIT(1))); in r82600_get_error_info()
168 /* bits 30:12 store the upper 19 bits of the 32 bit error address */ in r82600_process_error_info()
169 eapaddr = ((info->eapr >> 12) & 0x7FFF) << 13; in r82600_process_error_info()
171 syndrome = (info->eapr >> 4) & 0xFF; in r82600_process_error_info()
177 if (info->eapr & BIT(0)) { /* CE? */ in r82600_process_error_info()
184 0, -1, in r82600_process_error_info()
185 mci->ctl_name, ""); in r82600_process_error_info()
188 if (info->eapr & BIT(1)) { /* UE? */ in r82600_process_error_info()
196 0, -1, in r82600_process_error_info()
197 mci->ctl_name, ""); in r82600_process_error_info()
213 return dramcr & BIT(5); in ecc_enabled()
227 reg_sdram = dramcr & BIT(4); in r82600_init_csrows()
230 for (index = 0; index < mci->nr_csrows; index++) { in r82600_init_csrows()
231 csrow = mci->csrows[index]; in r82600_init_csrows()
232 dimm = csrow->channels[0]->dimm; in r82600_init_csrows()
251 csrow->first_page = row_base >> PAGE_SHIFT; in r82600_init_csrows()
252 csrow->last_page = (row_high_limit >> PAGE_SHIFT) - 1; in r82600_init_csrows()
254 dimm->nr_pages = csrow->last_page - csrow->first_page + 1; in r82600_init_csrows()
255 /* Error address is top 19 bits - so granularity is * in r82600_init_csrows()
257 dimm->grain = 1 << 14; in r82600_init_csrows()
258 dimm->mtype = reg_sdram ? MEM_RDDR : MEM_DDR; in r82600_init_csrows()
259 /* FIXME - check that this is unknowable with this chipset */ in r82600_init_csrows()
260 dimm->dtype = DEV_UNKNOWN; in r82600_init_csrows()
263 dimm->edac_mode = ecc_on ? EDAC_SECDED : EDAC_NONE; in r82600_init_csrows()
281 scrub_disabled = eapr & BIT(31); in r82600_probe1()
282 sdram_refresh_rate = dramcr & (BIT(0) | BIT(1)); in r82600_probe1()
293 return -ENOMEM; in r82600_probe1()
296 mci->pdev = &pdev->dev; in r82600_probe1()
297 mci->mtype_cap = MEM_FLAG_RDDR | MEM_FLAG_DDR; in r82600_probe1()
298 mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_EC | EDAC_FLAG_SECDED; in r82600_probe1()
303 /* On the R82600, the pins for memory bits 72:65 - i.e. the * in r82600_probe1()
307 mci->edac_cap = EDAC_FLAG_NONE | EDAC_FLAG_EC | EDAC_FLAG_SECDED; in r82600_probe1()
311 edac_dbg(3, "mci = %p - Scrubbing disabled! EAP: %#0x\n", in r82600_probe1()
314 mci->edac_cap = EDAC_FLAG_NONE; in r82600_probe1()
316 mci->mod_name = EDAC_MOD_STR; in r82600_probe1()
317 mci->ctl_name = "R82600"; in r82600_probe1()
318 mci->dev_name = pci_name(pdev); in r82600_probe1()
319 mci->edac_check = r82600_check; in r82600_probe1()
320 mci->ctl_page_to_phys = NULL; in r82600_probe1()
322 r82600_get_error_info(mci, &discard); /* clear counters */ in r82600_probe1()
336 pci_write_bits32(pdev, R82600_EAP, BIT(31), BIT(31)); in r82600_probe1()
340 r82600_pci = edac_pci_create_generic_ctl(&pdev->dev, EDAC_MOD_STR); in r82600_probe1()
355 return -ENODEV; in r82600_probe1()
365 return r82600_probe1(pdev, ent->driver_data); in r82600_init_one()
377 if ((mci = edac_mc_del_mc(&pdev->dev)) == NULL) in r82600_remove_one()
418 MODULE_AUTHOR("Tim Small <tim@buttersideup.com> - WPAD Ltd. on behalf of EADS Astrium");