[coreboot] r851 - in coreboot-v3: arch/x86/amd/model_fxx northbridge/amd/k8
svn at coreboot.org
svn at coreboot.org
Sun Aug 31 04:46:38 CEST 2008
Author: rminnich
Date: 2008-08-31 04:46:37 +0200 (Sun, 31 Aug 2008)
New Revision: 851
Modified:
coreboot-v3/arch/x86/amd/model_fxx/init_cpus.c
coreboot-v3/northbridge/amd/k8/raminit.c
Log:
add some printks to raminit and correct a typo on one comment.
Signed-off-by: Ronald G. Minnich <rminnich at gmail.com>
Acked-by: Ronald G. Minnich <rminnich at gmail.com>
Modified: coreboot-v3/arch/x86/amd/model_fxx/init_cpus.c
===================================================================
--- coreboot-v3/arch/x86/amd/model_fxx/init_cpus.c 2008-08-30 05:01:43 UTC (rev 850)
+++ coreboot-v3/arch/x86/amd/model_fxx/init_cpus.c 2008-08-31 02:46:37 UTC (rev 851)
@@ -335,7 +335,7 @@
*/
/* that is from initial apicid, we need nodeid and coreid later */
- /* this comment still confuses me, but I *think* "that" means the "bsp_apicid. Not sure. */
+ /* this comment still confuses me, but I *think* "that" means the "bsp_apicid". Not sure. */
id = get_node_core_id();
printk(BIOS_DEBUG, "init_cpus: node %d core %d\n", id.nodeid, id.coreid);
Modified: coreboot-v3/northbridge/amd/k8/raminit.c
===================================================================
--- coreboot-v3/northbridge/amd/k8/raminit.c 2008-08-30 05:01:43 UTC (rev 850)
+++ coreboot-v3/northbridge/amd/k8/raminit.c 2008-08-31 02:46:37 UTC (rev 851)
@@ -753,25 +753,29 @@
if ((value & 0xff) == 0) goto val_err; // max is 16 ?
sz->per_rank += value & 0xff;
sz->rows = value & 0xff;
+ printk(BIOS_SPEW, "%d rows\n", sz->rows);
value = spd_read_byte(device, SPD_COL_NUM); /* columns */
if (value < 0) goto hw_err;
if ((value & 0xff) == 0) goto val_err; //max is 11
sz->per_rank += value & 0xff;
sz->col = value & 0xff;
+ printk(BIOS_SPEW, "%d pre_rank %d col\n", sz->per_rank, sz->col);
value = spd_read_byte(device, SPD_BANK_NUM); /* banks */
if (value < 0) goto hw_err;
if ((value & 0xff) == 0) goto val_err;
sz->bank = log2(value & 0xff); // convert 4 to 2, and 8 to 3
+ printk(BIOS_SPEW, "%d SPD banks %d bank\n", value, sz->bank);
sz->per_rank += sz->bank;
-
+ printk(BIOS_SPEW, "sz->per_rank is now %d\n", sz->per_rank);
/* Get the module data width and convert it to a power of two */
value = spd_read_byte(device, SPD_DATA_WIDTH);
if (value < 0) goto hw_err;
value &= 0xff;
if ((value != 72) && (value != 64)) goto val_err;
sz->per_rank += log2(value) - 3; //64 bit So another 3 lines
+ printk(BIOS_SPEW, "value %d log2(value) %d sz->per_rank now %d\n", value, log2(value), sz->per_rank);
/* How many ranks? */
value = spd_read_byte(device, SPD_MOD_ATTRIB_RANK); /* number of physical banks */
@@ -779,6 +783,7 @@
// value >>= SPD_MOD_ATTRIB_RANK_NUM_SHIFT;
value &= SPD_MOD_ATTRIB_RANK_NUM_MASK;
value += SPD_MOD_ATTRIB_RANK_NUM_BASE; // 0-->1, 1-->2, 3-->4
+ printk(BIOS_SPEW, "# banks %d\n", value);
/*
rank == 1 only one rank or say one side
rank == 2 two side , and two ranks
@@ -796,9 +801,11 @@
value = spd_read_byte(device, SPD_RANK_SIZE);
if (value < 0) goto hw_err;
value &= 0xff;
+ printk(BIOS_SPEW, "spd rank size is %d\n", value);
value = log2(value);
if(value <=4 ) value += 8; // add back to 1G to high
value += (27-5); // make 128MB to the real lines
+ printk(BIOS_SPEW, " computed value is %d\n", value);
if( value != (sz->per_rank)) {
printk(BIOS_ERR, "Bad RANK Size -- value is 0x%x, and it should be 0x%x\n", value, sz->per_rank);
goto val_err;
More information about the coreboot
mailing list