提交 43920a59 编写于 作者: A Arthur Jones 提交者: Linus Torvalds

edac: i5100 fix enable ecc hardware

It is possible that the BIOS did not enable ECC at boot time.  We check
for that case and fail to load if it is true.
Signed-off-by: NArthur Jones <ajones@riverbed.com>
Signed-off-by: NDoug Thompson <dougthompson@xmission.com>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 f7952ffc
......@@ -24,6 +24,8 @@
/* register addresses and bit field accessors... */
/* device 16, func 1 */
#define I5100_MC 0x40 /* Memory Control Register */
#define I5100_MC_ERRDETEN(a) ((a) >> 5 & 1)
#define I5100_MS 0x44 /* Memory Status Register */
#define I5100_SPDDATA 0x48 /* Serial Presence Detect Status Reg */
#define I5100_SPDDATA_RDO(a) ((a) >> 15 & 1)
......@@ -688,6 +690,14 @@ static int __devinit i5100_init_one(struct pci_dev *pdev,
goto bail;
}
/* ECC enabled? */
pci_read_config_dword(pdev, I5100_MC, &dw);
if (!I5100_MC_ERRDETEN(dw)) {
printk(KERN_INFO "i5100_edac: ECC not enabled.\n");
ret = -ENODEV;
goto bail;
}
/* figure out how many ranks, from strapped state of 48GB_Mode input */
pci_read_config_dword(pdev, I5100_MS, &dw);
ranksperch = !!(dw & (1 << 8)) * 2 + 4;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册