Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 215971
b: refs/heads/master
c: 15154c5
h: refs/heads/master
i:
  215969: c719224
  215967: 06bd3bd
v: v3
  • Loading branch information
Mauro Carvalho Chehab committed Aug 30, 2010
1 parent f9c78f5 commit 2d33b5a
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 5 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: bb81a21637f84e2192bf327575645a7843c70cdb
refs/heads/master: 15154c57c62494292f43df9133a7b370cbbf1ecb
18 changes: 14 additions & 4 deletions trunk/drivers/edac/i7300_edac.c
Original file line number Diff line number Diff line change
Expand Up @@ -450,14 +450,24 @@ static int decode_mtr(struct i7300_pvt *pvt,
p_csrow->mtype = MEM_FB_DDR2;

/*
* FIXME: the type of error detection actually depends of the
* The type of error detection actually depends of the
* mode of operation. When it is just one single memory chip, at
* socket 0, channel 0, it uses 8-byte-over-32-byte SECDED+ code.
* In normal or mirrored mode, it uses Single Device Data correction,
* socket 0, channel 0, it uses 8-byte-over-32-byte SECDED+ code.
* In normal or mirrored mode, it uses Lockstep mode,
* with the possibility of using an extended algorithm for x8 memories
* See datasheet Sections 7.3.6 to 7.3.8
*/
p_csrow->edac_mode = EDAC_S8ECD8ED;

if (IS_SINGLE_MODE(pvt->mc_settings_a)) {
p_csrow->edac_mode = EDAC_SECDED;
debugf0("ECC code is 8-byte-over-32-byte SECDED+ code\n");
} else {
debugf0("ECC code is on Lockstep mode\n");
if (MTR_DRAM_WIDTH(mtr))
p_csrow->edac_mode = EDAC_S8ECD8ED;
else
p_csrow->edac_mode = EDAC_S4ECD4ED;
}

/* ask what device type on this row */
if (MTR_DRAM_WIDTH(mtr)) {
Expand Down

0 comments on commit 2d33b5a

Please sign in to comment.