public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] ppc4xx: Add CONFIG_DDR_RFDC_FIXED to allow board specific RFDC values
@ 2010-07-19 12:24 Stefan Roese
  2010-07-19 17:54 ` Wolfgang Denk
  0 siblings, 1 reply; 3+ messages in thread
From: Stefan Roese @ 2010-07-19 12:24 UTC (permalink / raw)
  To: u-boot

Using this define, a board can define an opimized RFDC value and use
the auto calibration code to "tune" the remaining DDR2 controller
calibration register.

Signed-off-by: Stefan Roese <sr@denx.de>
---
 arch/powerpc/cpu/ppc4xx/4xx_ibm_ddr2_autocalib.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/arch/powerpc/cpu/ppc4xx/4xx_ibm_ddr2_autocalib.c b/arch/powerpc/cpu/ppc4xx/4xx_ibm_ddr2_autocalib.c
index 0f69ef9..5e35c61 100644
--- a/arch/powerpc/cpu/ppc4xx/4xx_ibm_ddr2_autocalib.c
+++ b/arch/powerpc/cpu/ppc4xx/4xx_ibm_ddr2_autocalib.c
@@ -767,6 +767,13 @@ static u32 DQS_calibration_methodB(struct ddrautocal *cal)
 
 	debug("\n\n");
 
+#if defined(CONFIG_DDR_RFDC_FIXED)
+	mtsdram(SDRAM_RFDC, CONFIG_DDR_RFDC_FIXED);
+	size = 512;
+	rffd_average = CONFIG_DDR_RFDC_FIXED & SDRAM_RFDC_RFFD_MASK;
+	mfsdram(SDRAM_RDCC, rdcc);	/* record this value */
+	cal->rdcc = rdcc;
+#else
 	in_window = 0;
 	rdcc = 0;
 
@@ -830,6 +837,7 @@ static u32 DQS_calibration_methodB(struct ddrautocal *cal)
 		rffd_average = SDRAM_RFDC_RFFD_MAX;
 
 	mtsdram(SDRAM_RFDC, rfdc_reg | SDRAM_RFDC_RFFD_ENCODE(rffd_average));
+#endif
 
 	rffd = rffd_average;
 	in_window = 0;
@@ -1211,10 +1219,14 @@ u32 DQS_autocalibration(void)
 		debug("*** best_result: read value SDRAM_RQDC 0x%08x\n",
 				rqdc_reg);
 
+#if defined(CONFIG_DDR_RFDC_FIXED)
+		mtsdram(SDRAM_RFDC, CONFIG_DDR_RFDC_FIXED);
+#else
 		mfsdram(SDRAM_RFDC, rfdc_reg);
 		rfdc_reg &= ~(SDRAM_RFDC_RFFD_MASK);
 		mtsdram(SDRAM_RFDC, rfdc_reg |
 				SDRAM_RFDC_RFFD_ENCODE(tcal.autocal.rffd));
+#endif
 
 		mfsdram(SDRAM_RFDC, rfdc_reg);
 		debug("*** best_result: read value SDRAM_RFDC 0x%08x\n",
-- 
1.7.1.1

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [U-Boot] [PATCH] ppc4xx: Add CONFIG_DDR_RFDC_FIXED to allow board specific RFDC values
  2010-07-19 12:24 [U-Boot] [PATCH] ppc4xx: Add CONFIG_DDR_RFDC_FIXED to allow board specific RFDC values Stefan Roese
@ 2010-07-19 17:54 ` Wolfgang Denk
  2010-07-20  5:01   ` Stefan Roese
  0 siblings, 1 reply; 3+ messages in thread
From: Wolfgang Denk @ 2010-07-19 17:54 UTC (permalink / raw)
  To: u-boot

Dear Stefan Roese,

In message <1279542253-27041-1-git-send-email-sr@denx.de> you wrote:
> Using this define, a board can define an opimized RFDC value and use
> the auto calibration code to "tune" the remaining DDR2 controller
> calibration register.
...
> @@ -767,6 +767,13 @@ static u32 DQS_calibration_methodB(struct ddrautocal *cal)
>  
>  	debug("\n\n");
>  
> +#if defined(CONFIG_DDR_RFDC_FIXED)
> +	mtsdram(SDRAM_RFDC, CONFIG_DDR_RFDC_FIXED);
> +	size = 512;
> +	rffd_average = CONFIG_DDR_RFDC_FIXED & SDRAM_RFDC_RFFD_MASK;
> +	mfsdram(SDRAM_RDCC, rdcc);	/* record this value */
> +	cal->rdcc = rdcc;
> +#else
>  	in_window = 0;
>  	rdcc = 0;
>  
> @@ -830,6 +837,7 @@ static u32 DQS_calibration_methodB(struct ddrautocal *cal)
>  		rffd_average = SDRAM_RFDC_RFFD_MAX;
>  
>  	mtsdram(SDRAM_RFDC, rfdc_reg | SDRAM_RFDC_RFFD_ENCODE(rffd_average));
> +#endif

In cases of such long blocks, where the ending #endif is many, many
lines away, it is usually helpful to mark where the #endif belongs to:

	#endif /* CONFIG_DDR_RFDC_FIXED */

Please do this here, too.


Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
I'm a programmer: I don't buy software, I write it.
                                                  -- Tom Christiansen

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [U-Boot] [PATCH] ppc4xx: Add CONFIG_DDR_RFDC_FIXED to allow board specific RFDC values
  2010-07-19 17:54 ` Wolfgang Denk
@ 2010-07-20  5:01   ` Stefan Roese
  0 siblings, 0 replies; 3+ messages in thread
From: Stefan Roese @ 2010-07-20  5:01 UTC (permalink / raw)
  To: u-boot

Hi Wolfgang,

On Monday 19 July 2010 19:54:08 Wolfgang Denk wrote:
> > @@ -767,6 +767,13 @@ static u32 DQS_calibration_methodB(struct ddrautocal
> > *cal)
> > 
> >  	debug("\n\n");
> > 
> > +#if defined(CONFIG_DDR_RFDC_FIXED)
> > +	mtsdram(SDRAM_RFDC, CONFIG_DDR_RFDC_FIXED);
> > +	size = 512;
> > +	rffd_average = CONFIG_DDR_RFDC_FIXED & SDRAM_RFDC_RFFD_MASK;
> > +	mfsdram(SDRAM_RDCC, rdcc);	/* record this value */
> > +	cal->rdcc = rdcc;
> > +#else
> > 
> >  	in_window = 0;
> >  	rdcc = 0;
> > 
> > @@ -830,6 +837,7 @@ static u32 DQS_calibration_methodB(struct ddrautocal
> > *cal)
> > 
> >  		rffd_average = SDRAM_RFDC_RFFD_MAX;
> >  	
> >  	mtsdram(SDRAM_RFDC, rfdc_reg | SDRAM_RFDC_RFFD_ENCODE(rffd_average));
> > 
> > +#endif
> 
> In cases of such long blocks, where the ending #endif is many, many
> lines away, it is usually helpful to mark where the #endif belongs to:
> 
> 	#endif /* CONFIG_DDR_RFDC_FIXED */
> 
> Please do this here, too.

Yes, good idea. Thanks.

Cheers,
Stefan

--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-0 Fax: (+49)-8142-66989-80 Email: office at denx.de

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2010-07-20  5:01 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-07-19 12:24 [U-Boot] [PATCH] ppc4xx: Add CONFIG_DDR_RFDC_FIXED to allow board specific RFDC values Stefan Roese
2010-07-19 17:54 ` Wolfgang Denk
2010-07-20  5:01   ` Stefan Roese

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox