Module Name:    src
Committed By:   matt
Date:           Tue Nov  5 18:40:22 UTC 2013

Modified Files:
        src/sys/dev/i2c [matt-nb5-mips64]: spdmem.c

Log Message:
Deal with larger DIMMs


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.11.8.1 src/sys/dev/i2c/spdmem.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/i2c/spdmem.c
diff -u src/sys/dev/i2c/spdmem.c:1.11 src/sys/dev/i2c/spdmem.c:1.11.8.1
--- src/sys/dev/i2c/spdmem.c:1.11	Sun Sep 28 12:59:54 2008
+++ src/sys/dev/i2c/spdmem.c	Tue Nov  5 18:40:22 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: spdmem.c,v 1.11 2008/09/28 12:59:54 pgoyette Exp $ */
+/* $NetBSD: spdmem.c,v 1.11.8.1 2013/11/05 18:40:22 matt Exp $ */
 
 /*
  * Copyright (c) 2007 Nicolas Joly
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: spdmem.c,v 1.11 2008/09/28 12:59:54 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: spdmem.c,v 1.11.8.1 2013/11/05 18:40:22 matt Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -227,7 +227,7 @@ spdmem_attach(device_t parent, device_t 
 	const char *rambus_rev = "Reserved";
 	int num_banks = 0;
 	int per_chip = 0;
-	int dimm_size, cycle_time, d_clk, p_clk, bits;
+	unsigned int dimm_size, cycle_time, d_clk, p_clk, bits;
 	int i;
 	unsigned int spd_len, spd_size;
 	unsigned int tAA, tRCD, tRP, tRAS;
@@ -420,9 +420,12 @@ spdmem_attach(device_t parent, device_t 
 	}
 	if (IS_RAMBUS_TYPE ||
 	    (num_banks <= 8 && per_chip <= 8 && dimm_size > 0 &&
-	     dimm_size <= 12)) {
+	     dimm_size <= 18)) {
 		dimm_size = (1 << dimm_size) * num_banks * per_chip;
-		aprint_normal(", %dMB", dimm_size);
+		if (dimm_size >= 1024)
+			aprint_normal(", %uGB", dimm_size / 1024);
+		else
+			aprint_normal(", %uMB", dimm_size);
 		if (node != NULL)
 			sysctl_createv(NULL, 0, NULL, NULL,
 			    CTLFLAG_IMMEDIATE,
@@ -545,7 +548,7 @@ spdmem_attach(device_t parent, device_t 
 				p_clk += 50;
 			p_clk -= p_clk % 100;
 		}
-		aprint_normal(", %dMHz (%s-%d)\n",
+		aprint_normal(", %uMHz (%s-%u)\n",
 			      d_clk, ddr_type_string, p_clk);
 		if (node != NULL)
 			sysctl_createv(NULL, 0, NULL, NULL,

Reply via email to