From: Timur Tabi Date: Wed, 1 Jul 2009 21:51:59 +0000 (-0500) Subject: fsl_ddr: Fix DDR3 calculation of rank density with 8GB or more X-Git-Tag: v2009.08-rc1~122^2~6 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=e66f38da8434425aca8df08d06d9ef41b3478d3b;p=oweals%2Fu-boot.git fsl_ddr: Fix DDR3 calculation of rank density with 8GB or more 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 Signed-off-by: Kumar Gala --- diff --git a/cpu/mpc8xxx/ddr/ddr3_dimm_params.c b/cpu/mpc8xxx/ddr/ddr3_dimm_params.c index 8d686ac5d9..13d234e933 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%08x\n", bsize);