[U-Boot] [PATCH] fsl_ddr: Fix DDR3 calculation of rank density with	8GB or more
    Kumar Gala 
    galak at kernel.crashing.org
       
    Thu Jul  2 06:20:46 CEST 2009
    
    
  
From: Timur Tabi <timur at freescale.com>
The calculate for rank density in compute_ranksize() for DDR3 used all
integers for the expression, so the result was also a 32-bit integer, even
though the 'bsize' variable is a u64.  Fix the expression to calculate a
true 64-bit value.
Signed-off-by: Timur Tabi <timur at freescale.com>
---
 cpu/mpc8xxx/ddr/ddr3_dimm_params.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/cpu/mpc8xxx/ddr/ddr3_dimm_params.c b/cpu/mpc8xxx/ddr/ddr3_dimm_params.c
index 62c4df7..f0cd0d9 100644
--- a/cpu/mpc8xxx/ddr/ddr3_dimm_params.c
+++ b/cpu/mpc8xxx/ddr/ddr3_dimm_params.c
@@ -68,7 +68,7 @@ compute_ranksize(const ddr3_spd_eeprom_t *spd)
 	if ((spd->organization & 0x7) < 4)
 		nbit_sdram_width = (spd->organization & 0x7) + 2;
 
-	bsize = 1 << (nbit_sdram_cap_bsize - 3
+	bsize = 1ULL << (nbit_sdram_cap_bsize - 3
 		    + nbit_primary_bus_width - nbit_sdram_width);
 
 	debug("DDR: DDR III rank density = 0x%16Lx\n", (u64) bsize);
-- 
1.6.0.6
    
    
More information about the U-Boot
mailing list