All of lore.kernel.org
 help / color / mirror / Atom feed
From: York Sun <yorksun@freescale.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 2/7] powerpc/mpc8xxx: adjust DDR burst length and chop accroding to sdram width
Date: Fri, 27 May 2011 07:25:48 +0800	[thread overview]
Message-ID: <1306452353-11611-2-git-send-email-yorksun@freescale.com> (raw)
In-Reply-To: <1306452353-11611-1-git-send-email-yorksun@freescale.com>

From: york <yorksun@freescale.com>

If the bus width is 32-bit, burst chop should be disabled and burst length
should be 8. Read from SPD or other source to determine the width.

Signed-off-by: York Sun <yorksun@freescale.com>
---
 arch/powerpc/cpu/mpc8xxx/ddr/options.c |   24 ++++++++++++++++++++----
 1 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/arch/powerpc/cpu/mpc8xxx/ddr/options.c b/arch/powerpc/cpu/mpc8xxx/ddr/options.c
index 6ccc3b0..80c7046 100644
--- a/arch/powerpc/cpu/mpc8xxx/ddr/options.c
+++ b/arch/powerpc/cpu/mpc8xxx/ddr/options.c
@@ -418,8 +418,19 @@ unsigned int populate_memctl_options(int all_DIMMs_registered,
 	/* Choose dynamic power management mode. */
 	popts->dynamic_power = 0;
 
-	/* 0 = 64-bit, 1 = 32-bit, 2 = 16-bit */
-	popts->data_bus_width = 0;
+	/*
+	 * check first dimm for primary sdram width
+	 * presuming all dimms are similar
+	 * 0 = 64-bit, 1 = 32-bit, 2 = 16-bit
+	 */
+	if (pdimm[0].primary_sdram_width == 64)
+		popts->data_bus_width = 0;
+	else if (pdimm[0].primary_sdram_width == 32)
+		popts->data_bus_width = 1;
+	else if (pdimm[0].primary_sdram_width == 16)
+		popts->data_bus_width = 2;
+	else
+		panic("Error: invalid primary sdram width!\n");
 
 	/* Choose burst length. */
 #if defined(CONFIG_FSL_DDR3)
@@ -427,8 +438,13 @@ unsigned int populate_memctl_options(int all_DIMMs_registered,
 	popts->OTF_burst_chop_en = 0;	/* on-the-fly burst chop disable */
 	popts->burst_length = DDR_BL8;	/* Fixed 8-beat burst len */
 #else
-	popts->OTF_burst_chop_en = 1;	/* on-the-fly burst chop */
-	popts->burst_length = DDR_OTF;	/* on-the-fly BC4 and BL8 */
+	if (popts->data_bus_width == 1) {	/* 32-bit bus */
+		popts->OTF_burst_chop_en = 0;
+		popts->burst_length = DDR_BL8;
+	} else {
+		popts->OTF_burst_chop_en = 1;	/* on-the-fly burst chop */
+		popts->burst_length = DDR_OTF;	/* on-the-fly BC4 and BL8 */
+	}
 #endif
 #else
 	popts->burst_length = DDR_BL4;	/* has to be 4 for DDR2 */
-- 
1.7.0.4

  reply	other threads:[~2011-05-26 23:25 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-26 23:25 [U-Boot] [PATCH 1/7] powerpc/i2c: introduce CONFIG_I2C_TWR for setting tWR value York Sun
2011-05-26 23:25 ` York Sun [this message]
2011-06-03  7:42   ` [U-Boot] [PATCH 2/7] powerpc/mpc8xxx: adjust DDR burst length and chop accroding to sdram width Kumar Gala
2011-05-26 23:25 ` [U-Boot] [PATCH 3/7] powerpc/mpc8xxx: Enable calculation for fixed DDR chips York Sun
2011-06-03  7:42   ` Kumar Gala
2011-06-03  7:48     ` Kumar Gala
2011-05-26 23:25 ` [U-Boot] [PATCH 4/7] powerpc/mpc8xxx: check SPD length before using part number York Sun
2011-06-03  7:42   ` Kumar Gala
2011-05-26 23:25 ` [U-Boot] [PATCH 5/7] powerpc/mpc8xxx: Add 16-bit support for DDR3 York Sun
2011-06-03  7:42   ` Kumar Gala
2011-05-26 23:25 ` [U-Boot] [PATCH 6/7] powerpc/mpc8xxx: Adding fallback to raw timing on supported boards York Sun
2011-06-03  7:46   ` Kumar Gala
2011-06-03  8:10     ` York Sun
2011-06-03 13:11       ` Kumar Gala
2011-05-26 23:25 ` [U-Boot] [PATCH 7/7] powerpc/mpc8xxx: change raw timing function call parameters York Sun
2011-05-27  0:20 ` [U-Boot] [u-boot-release] [PATCH 1/7] powerpc/i2c: introduce CONFIG_I2C_TWR for setting tWR value Tabi Timur-B04825
2011-05-27  0:25   ` York Sun
2011-05-27  6:04 ` [U-Boot] " Heiko Schocher
2011-05-27  6:25   ` York Sun

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1306452353-11611-2-git-send-email-yorksun@freescale.com \
    --to=yorksun@freescale.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.