summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorYork Sun <yorksun@freescale.com>2011-05-27 07:25:50 +0800
committerKumar Gala <galak@kernel.crashing.org>2011-07-11 13:24:19 -0500
commitd2246549c7a71a3fca240e78bbcda6951195cfe3 (patch)
tree9b12c4b0157679266a0ea859a7fd390e61414014 /arch
parente090aa7cf05fe3cde7ce751cbb4f0c59cc113035 (diff)
downloadblackbird-obmc-uboot-d2246549c7a71a3fca240e78bbcda6951195cfe3.tar.gz
blackbird-obmc-uboot-d2246549c7a71a3fca240e78bbcda6951195cfe3.zip
powerpc/mpc8xxx: check SPD length before using part number
Only use DDR DIMM part number if SPD has valid length, to prevent from display garbage in case SPD doesn't cover these fields. Signed-off-by: York Sun <yorksun@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/powerpc/cpu/mpc8xxx/ddr/ddr3_dimm_params.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/powerpc/cpu/mpc8xxx/ddr/ddr3_dimm_params.c b/arch/powerpc/cpu/mpc8xxx/ddr/ddr3_dimm_params.c
index 756b15f7ab..838cebed57 100644
--- a/arch/powerpc/cpu/mpc8xxx/ddr/ddr3_dimm_params.c
+++ b/arch/powerpc/cpu/mpc8xxx/ddr/ddr3_dimm_params.c
@@ -114,7 +114,8 @@ ddr_compute_dimm_parameters(const ddr3_spd_eeprom_t *spd,
* and copying the part name in ASCII from the SPD onto it
*/
memset(pdimm->mpart, 0, sizeof(pdimm->mpart));
- memcpy(pdimm->mpart, spd->mpart, sizeof(pdimm->mpart) - 1);
+ if ((spd->info_size_crc & 0xF) > 1)
+ memcpy(pdimm->mpart, spd->mpart, sizeof(pdimm->mpart) - 1);
/* DIMM organization parameters */
pdimm->n_ranks = ((spd->organization >> 3) & 0x7) + 1;
OpenPOWER on IntegriCloud