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.