Hi,

 

I am working on the Intel 5400 EDAC driver as our product needs to monitor memory ecc errors and such. I have found a number of discrepancies between the code in [i5400_edac.c] and the 5400 MCH datasheet. I am wondering if anyone else has noticed them and more importantly has changes for them. Otherwise, I will embark upon the changes. The last commit to this code seems to be Roberson’s of 2009-10-29.

 

I noticed the following

 

1.       The datasheet reference is for the 5000 MCH (minor, I know).

2.       REDMEMB is an offset into Device 21,22, Function 1 but the code uses it as an offset into Device 16, function 1 via pvt->branchmap_werrors.

3.       RECMEMA and RECMEMB usage is being incorrectly used similar to REDMEMB.

4.       The values of RECMEMA, RECMEMB, and RECFB_DIMMA are 0xf0, 0xf4, 0xf8, respectively. These are incorrect. They should be 0xe0, 0xe4, 0xe8, respectively.

5.       The pci device referenced by pvt_branch_0 is the device  for Device 21, Function 0. There needs to be a pci_device in struct i5400_pvt for Device 21, Function 1.

6.       Same comment as item #5 but for branch_1, Device 22, Function 1.

7.       The function i5400_get_error_info() needs to obtain the values at offsets NRECMEMA, NRECMEMB, and REDMEMB, from Device 21,22, Function 1 instead of Device 16, Function 1.

 

This is what I have found so far.  If anyone can  confirm what I have found or have changes already please let me know.

 

Also, has this driver been used in production by anyone?

 

Thanks,

 

Ed Soloko

GridIron Systems, Inc.