Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 174464
b: refs/heads/master
c: 8566c4d
h: refs/heads/master
v: v3
  • Loading branch information
Borislav Petkov committed Dec 7, 2009
1 parent 9aae02c commit b07a1b5
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 21 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: 8de1d91e628c19c1154ca15b1ea1fcc0a098b793
refs/heads/master: 8566c4df1690f3862ae338a4c533f4bb5a863f9a
42 changes: 22 additions & 20 deletions trunk/drivers/edac/amd64_edac.c
Original file line number Diff line number Diff line change
Expand Up @@ -822,8 +822,7 @@ static enum edac_type amd64_determine_edac_cap(struct amd64_pvt *pvt)
}


static void f10_debug_display_dimm_sizes(int ctrl, struct amd64_pvt *pvt,
int ganged);
static void amd64_debug_display_dimm_sizes(int ctrl, struct amd64_pvt *pvt);

static void amd64_dump_dramcfg_low(u32 dclr, int chan)
{
Expand Down Expand Up @@ -875,8 +874,10 @@ static void amd64_dump_misc_regs(struct amd64_pvt *pvt)
(pvt->dhar & DHAR_VALID) ? "yes" : "no");

/* everything below this point is Fam10h and above */
if (boot_cpu_data.x86 == 0xf)
if (boot_cpu_data.x86 == 0xf) {
amd64_debug_display_dimm_sizes(0, pvt);
return;
}

/* Only if NOT ganged does dclr1 have valid info */
if (!dct_ganging_enabled(pvt))
Expand All @@ -888,10 +889,10 @@ static void amd64_dump_misc_regs(struct amd64_pvt *pvt)
*/
ganged = dct_ganging_enabled(pvt);

f10_debug_display_dimm_sizes(0, pvt, ganged);
amd64_debug_display_dimm_sizes(0, pvt);

if (!ganged)
f10_debug_display_dimm_sizes(1, pvt, ganged);
amd64_debug_display_dimm_sizes(1, pvt);
}

/* Read in both of DBAM registers */
Expand Down Expand Up @@ -1726,23 +1727,31 @@ static int map_dbam_to_csrow_size(int index)
}

/*
* debug routine to display the memory sizes of a DIMM (ganged or not) and it
* debug routine to display the memory sizes of all logical DIMMs and its
* CSROWs as well
*/
static void f10_debug_display_dimm_sizes(int ctrl, struct amd64_pvt *pvt,
int ganged)
static void amd64_debug_display_dimm_sizes(int ctrl, struct amd64_pvt *pvt)
{
int dimm, size0, size1;
u32 dbam;
u32 *dcsb;

debugf1(" dbam%d: 0x%8.08x CSROW is %s\n", ctrl,
ctrl ? pvt->dbam1 : pvt->dbam0,
ganged ? "GANGED - dbam1 not used" : "NON-GANGED");
if (boot_cpu_data.x86 == 0xf) {
/* K8 families < revF not supported yet */
if (pvt->ext_model < OPTERON_CPU_REV_F)
return;
else
WARN_ON(ctrl != 0);
}

debugf1("F2x%d80 (DRAM Bank Address Mapping): 0x%08x\n",
ctrl, ctrl ? pvt->dbam1 : pvt->dbam0);

dbam = ctrl ? pvt->dbam1 : pvt->dbam0;
dcsb = ctrl ? pvt->dcsb1 : pvt->dcsb0;

edac_printk(KERN_DEBUG, EDAC_MC, "DCT%d chip selects:\n", ctrl);

/* Dump memory sizes for DIMM and its CSROWs */
for (dimm = 0; dimm < 4; dimm++) {

Expand All @@ -1754,15 +1763,8 @@ static void f10_debug_display_dimm_sizes(int ctrl, struct amd64_pvt *pvt,
if (dcsb[dimm*2 + 1] & K8_DCSB_CS_ENABLE)
size1 = map_dbam_to_csrow_size(DBAM_DIMM(dimm, dbam));

debugf1(" CTRL-%d DIMM-%d=%5dMB CSROW-%d=%5dMB "
"CSROW-%d=%5dMB\n",
ctrl,
dimm,
size0 + size1,
dimm * 2,
size0,
dimm * 2 + 1,
size1);
edac_printk(KERN_DEBUG, EDAC_MC, " %d: %5dMB %d: %5dMB\n",
dimm * 2, size0, dimm * 2 + 1, size1);
}
}

Expand Down

0 comments on commit b07a1b5

Please sign in to comment.