mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* [PATCHv2 1/2] ARM pcm043: Use PDR0 to change cpu freq
@ 2011-08-22 13:51 Teresa Gámez
  2011-08-22 13:51 ` [PATCHv2 2/2] ARM pcm043: change RAM timings Teresa Gámez
  2011-08-22 17:27 ` [PATCHv2 1/2] ARM pcm043: Use PDR0 to change cpu freq Sascha Hauer
  0 siblings, 2 replies; 5+ messages in thread
From: Teresa Gámez @ 2011-08-22 13:51 UTC (permalink / raw)
  To: barebox

Instead of changing the MPCTL to set an other cpu frequency,
use the post divider.

This prevents freezing when changing the clock from 399MHz to 532MHz.

Signed-off-by: Teresa Gámez <t.gamez@phytec.de>
---
 arch/arm/boards/pcm043/pcm043.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm/boards/pcm043/pcm043.c b/arch/arm/boards/pcm043/pcm043.c
index 966899a..5cd6432 100644
--- a/arch/arm/boards/pcm043/pcm043.c
+++ b/arch/arm/boards/pcm043/pcm043.c
@@ -301,8 +301,8 @@ static int pcm043_core_setup(void)
 
 core_initcall(pcm043_core_setup);
 
-#define MPCTL_PARAM_399     (IMX_PLL_PD(0) | IMX_PLL_MFD(15) | IMX_PLL_MFI(8) | IMX_PLL_MFN(5))
-#define MPCTL_PARAM_532     ((1 << 31) | IMX_PLL_PD(0) | IMX_PLL_MFD(11) | IMX_PLL_MFI(11) | IMX_PLL_MFN(1))
+#define CCM_PDR0_PARAM_399	((1 << 12) | (1 << 16))
+#define CCM_PDR0_PARAM_532	(1 << 12)
 
 static int do_cpufreq(struct command *cmdtp, int argc, char *argv[])
 {
@@ -315,10 +315,10 @@ static int do_cpufreq(struct command *cmdtp, int argc, char *argv[])
 
 	switch (freq) {
 	case 399:
-		writel(MPCTL_PARAM_399, IMX_CCM_BASE + CCM_MPCTL);
+		writel(CCM_PDR0_PARAM_399, IMX_CCM_BASE + CCM_PDR0);
 		break;
 	case 532:
-		writel(MPCTL_PARAM_532, IMX_CCM_BASE + CCM_MPCTL);
+		writel(CCM_PDR0_PARAM_532, IMX_CCM_BASE + CCM_PDR0);
 		break;
 	default:
 		return COMMAND_ERROR_USAGE;
-- 
1.7.0.4


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

* [PATCHv2 2/2] ARM pcm043: change RAM timings
  2011-08-22 13:51 [PATCHv2 1/2] ARM pcm043: Use PDR0 to change cpu freq Teresa Gámez
@ 2011-08-22 13:51 ` Teresa Gámez
  2011-08-22 17:27 ` [PATCHv2 1/2] ARM pcm043: Use PDR0 to change cpu freq Sascha Hauer
  1 sibling, 0 replies; 5+ messages in thread
From: Teresa Gámez @ 2011-08-22 13:51 UTC (permalink / raw)
  To: barebox

Update RAM timing for new sdrams (IS43DR16320B).
RAM timings are reworked with extended row cycle delay.
Timings where also tested with older sdrams (MT47H32M16).

Signed-off-by: Teresa Gámez <t.gamez@phytec.de>
---
 arch/arm/boards/pcm043/lowlevel.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/arm/boards/pcm043/lowlevel.c b/arch/arm/boards/pcm043/lowlevel.c
index eff96f9..bbe586b 100644
--- a/arch/arm/boards/pcm043/lowlevel.c
+++ b/arch/arm/boards/pcm043/lowlevel.c
@@ -146,7 +146,7 @@ void __bare_init __naked board_init_lowlevel(void)
 	writel(0x00000304, ESDMISC); /* was 0x00000004 */
 
 	/* set timing paramters */
-	writel(0x00255417, ESDCFG0);
+	writel(0x0025541F, ESDCFG0);
 	/* select Precharge-All mode */
 	writel(0x92220000, ESDCTL0);
 	/* Precharge-All */
-- 
1.7.0.4


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

* Re: [PATCHv2 1/2] ARM pcm043: Use PDR0 to change cpu freq
  2011-08-22 13:51 [PATCHv2 1/2] ARM pcm043: Use PDR0 to change cpu freq Teresa Gámez
  2011-08-22 13:51 ` [PATCHv2 2/2] ARM pcm043: change RAM timings Teresa Gámez
@ 2011-08-22 17:27 ` Sascha Hauer
  2011-08-23  9:31   ` Teresa Gamez
  1 sibling, 1 reply; 5+ messages in thread
From: Sascha Hauer @ 2011-08-22 17:27 UTC (permalink / raw)
  To: Teresa Gámez; +Cc: barebox

Hi Teresa,

On Mon, Aug 22, 2011 at 03:51:04PM +0200, Teresa Gámez wrote:
> Instead of changing the MPCTL to set an other cpu frequency,
> use the post divider.
> 
> This prevents freezing when changing the clock from 399MHz to 532MHz.

Originally this command was meant for debugging purposes. The pcm043
comes up with 532MHz and there should be no need to change the
frequency. I remember that some boards are able to run barebox with
532MHz but don't manage to start the kernel with this frequency. Also I
have one board which does not run with 532MHz at all, but I think it's
an early development sample.
Is there a need to run boards with a lower frequency than they are able
to do? Otherwise, if some boards are not stable at the default 532MHz
I suggest we should also lower the default to 399MHz.

Sascha

> 
> Signed-off-by: Teresa Gámez <t.gamez@phytec.de>
> ---
>  arch/arm/boards/pcm043/pcm043.c |    8 ++++----
>  1 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/arm/boards/pcm043/pcm043.c b/arch/arm/boards/pcm043/pcm043.c
> index 966899a..5cd6432 100644
> --- a/arch/arm/boards/pcm043/pcm043.c
> +++ b/arch/arm/boards/pcm043/pcm043.c
> @@ -301,8 +301,8 @@ static int pcm043_core_setup(void)
>  
>  core_initcall(pcm043_core_setup);
>  
> -#define MPCTL_PARAM_399     (IMX_PLL_PD(0) | IMX_PLL_MFD(15) | IMX_PLL_MFI(8) | IMX_PLL_MFN(5))
> -#define MPCTL_PARAM_532     ((1 << 31) | IMX_PLL_PD(0) | IMX_PLL_MFD(11) | IMX_PLL_MFI(11) | IMX_PLL_MFN(1))
> +#define CCM_PDR0_PARAM_399	((1 << 12) | (1 << 16))
> +#define CCM_PDR0_PARAM_532	(1 << 12)
>  
>  static int do_cpufreq(struct command *cmdtp, int argc, char *argv[])
>  {
> @@ -315,10 +315,10 @@ static int do_cpufreq(struct command *cmdtp, int argc, char *argv[])
>  
>  	switch (freq) {
>  	case 399:
> -		writel(MPCTL_PARAM_399, IMX_CCM_BASE + CCM_MPCTL);
> +		writel(CCM_PDR0_PARAM_399, IMX_CCM_BASE + CCM_PDR0);
>  		break;
>  	case 532:
> -		writel(MPCTL_PARAM_532, IMX_CCM_BASE + CCM_MPCTL);
> +		writel(CCM_PDR0_PARAM_532, IMX_CCM_BASE + CCM_PDR0);
>  		break;
>  	default:
>  		return COMMAND_ERROR_USAGE;
> -- 
> 1.7.0.4
> 
> 
> _______________________________________________
> barebox mailing list
> barebox@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

* Re: [PATCHv2 1/2] ARM pcm043: Use PDR0 to change cpu freq
  2011-08-22 17:27 ` [PATCHv2 1/2] ARM pcm043: Use PDR0 to change cpu freq Sascha Hauer
@ 2011-08-23  9:31   ` Teresa Gamez
  2011-08-23 10:43     ` Sascha Hauer
  0 siblings, 1 reply; 5+ messages in thread
From: Teresa Gamez @ 2011-08-23  9:31 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: barebox

Am Montag, den 22.08.2011, 19:27 +0200 schrieb Sascha Hauer:
> Hi Teresa,
> 
> On Mon, Aug 22, 2011 at 03:51:04PM +0200, Teresa Gámez wrote:
> > Instead of changing the MPCTL to set an other cpu frequency,
> > use the post divider.
> > 
> > This prevents freezing when changing the clock from 399MHz to 532MHz.
> 
> Originally this command was meant for debugging purposes. The pcm043
> comes up with 532MHz and there should be no need to change the
> frequency. I remember that some boards are able to run barebox with
> 532MHz but don't manage to start the kernel with this frequency. Also I
> have one board which does not run with 532MHz at all, but I think it's
> an early development sample.
> Is there a need to run boards with a lower frequency than they are able
> to do? Otherwise, if some boards are not stable at the default 532MHz
> I suggest we should also lower the default to 399MHz.

Yes, there where different problems with older i.MX35 modules so that the
frequency was lowered to 399MHz. 
For the revision 1315.4 we made some PCB optimizations to run the pcm043
safe with 532MHz. Additionally we switched the silicon revision to TO 2.1. 
So it is ensured that all pcm043 with >= TO 2.1 run with 532MHz. 
For that case we made a patch (for u-boot-v2) that checks the silicon revision
and sets up the frequency post divider accordingly. 
I'll update the patch and send it.

Teresa

> 
> Sascha
> 
> > 
> > Signed-off-by: Teresa Gámez <t.gamez@phytec.de>
> > ---
> >  arch/arm/boards/pcm043/pcm043.c |    8 ++++----
> >  1 files changed, 4 insertions(+), 4 deletions(-)
> > 
> > diff --git a/arch/arm/boards/pcm043/pcm043.c b/arch/arm/boards/pcm043/pcm043.c
> > index 966899a..5cd6432 100644
> > --- a/arch/arm/boards/pcm043/pcm043.c
> > +++ b/arch/arm/boards/pcm043/pcm043.c
> > @@ -301,8 +301,8 @@ static int pcm043_core_setup(void)
> >  
> >  core_initcall(pcm043_core_setup);
> >  
> > -#define MPCTL_PARAM_399     (IMX_PLL_PD(0) | IMX_PLL_MFD(15) | IMX_PLL_MFI(8) | IMX_PLL_MFN(5))
> > -#define MPCTL_PARAM_532     ((1 << 31) | IMX_PLL_PD(0) | IMX_PLL_MFD(11) | IMX_PLL_MFI(11) | IMX_PLL_MFN(1))
> > +#define CCM_PDR0_PARAM_399	((1 << 12) | (1 << 16))
> > +#define CCM_PDR0_PARAM_532	(1 << 12)
> >  
> >  static int do_cpufreq(struct command *cmdtp, int argc, char *argv[])
> >  {
> > @@ -315,10 +315,10 @@ static int do_cpufreq(struct command *cmdtp, int argc, char *argv[])
> >  
> >  	switch (freq) {
> >  	case 399:
> > -		writel(MPCTL_PARAM_399, IMX_CCM_BASE + CCM_MPCTL);
> > +		writel(CCM_PDR0_PARAM_399, IMX_CCM_BASE + CCM_PDR0);
> >  		break;
> >  	case 532:
> > -		writel(MPCTL_PARAM_532, IMX_CCM_BASE + CCM_MPCTL);
> > +		writel(CCM_PDR0_PARAM_532, IMX_CCM_BASE + CCM_PDR0);
> >  		break;
> >  	default:
> >  		return COMMAND_ERROR_USAGE;
> > -- 
> > 1.7.0.4
> > 
> > 
> > _______________________________________________
> > barebox mailing list
> > barebox@lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/barebox
> 



_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

* Re: [PATCHv2 1/2] ARM pcm043: Use PDR0 to change cpu freq
  2011-08-23  9:31   ` Teresa Gamez
@ 2011-08-23 10:43     ` Sascha Hauer
  0 siblings, 0 replies; 5+ messages in thread
From: Sascha Hauer @ 2011-08-23 10:43 UTC (permalink / raw)
  To: Teresa Gamez; +Cc: barebox

On Tue, Aug 23, 2011 at 11:31:02AM +0200, Teresa Gamez wrote:
> Am Montag, den 22.08.2011, 19:27 +0200 schrieb Sascha Hauer:
> > Hi Teresa,
> > 
> > On Mon, Aug 22, 2011 at 03:51:04PM +0200, Teresa Gámez wrote:
> > > Instead of changing the MPCTL to set an other cpu frequency,
> > > use the post divider.
> > > 
> > > This prevents freezing when changing the clock from 399MHz to 532MHz.
> > 
> > Originally this command was meant for debugging purposes. The pcm043
> > comes up with 532MHz and there should be no need to change the
> > frequency. I remember that some boards are able to run barebox with
> > 532MHz but don't manage to start the kernel with this frequency. Also I
> > have one board which does not run with 532MHz at all, but I think it's
> > an early development sample.
> > Is there a need to run boards with a lower frequency than they are able
> > to do? Otherwise, if some boards are not stable at the default 532MHz
> > I suggest we should also lower the default to 399MHz.
> 
> Yes, there where different problems with older i.MX35 modules so that the
> frequency was lowered to 399MHz. 
> For the revision 1315.4 we made some PCB optimizations to run the pcm043
> safe with 532MHz. Additionally we switched the silicon revision to TO 2.1. 
> So it is ensured that all pcm043 with >= TO 2.1 run with 532MHz. 
> For that case we made a patch (for u-boot-v2) that checks the silicon revision
> and sets up the frequency post divider accordingly. 
> I'll update the patch and send it.

Thanks. This looks like a sane solution.

Sascha

> 
> Teresa
> 
> > 
> > Sascha
> > 
> > > 
> > > Signed-off-by: Teresa Gámez <t.gamez@phytec.de>
> > > ---
> > >  arch/arm/boards/pcm043/pcm043.c |    8 ++++----
> > >  1 files changed, 4 insertions(+), 4 deletions(-)
> > > 
> > > diff --git a/arch/arm/boards/pcm043/pcm043.c b/arch/arm/boards/pcm043/pcm043.c
> > > index 966899a..5cd6432 100644
> > > --- a/arch/arm/boards/pcm043/pcm043.c
> > > +++ b/arch/arm/boards/pcm043/pcm043.c
> > > @@ -301,8 +301,8 @@ static int pcm043_core_setup(void)
> > >  
> > >  core_initcall(pcm043_core_setup);
> > >  
> > > -#define MPCTL_PARAM_399     (IMX_PLL_PD(0) | IMX_PLL_MFD(15) | IMX_PLL_MFI(8) | IMX_PLL_MFN(5))
> > > -#define MPCTL_PARAM_532     ((1 << 31) | IMX_PLL_PD(0) | IMX_PLL_MFD(11) | IMX_PLL_MFI(11) | IMX_PLL_MFN(1))
> > > +#define CCM_PDR0_PARAM_399	((1 << 12) | (1 << 16))
> > > +#define CCM_PDR0_PARAM_532	(1 << 12)
> > >  
> > >  static int do_cpufreq(struct command *cmdtp, int argc, char *argv[])
> > >  {
> > > @@ -315,10 +315,10 @@ static int do_cpufreq(struct command *cmdtp, int argc, char *argv[])
> > >  
> > >  	switch (freq) {
> > >  	case 399:
> > > -		writel(MPCTL_PARAM_399, IMX_CCM_BASE + CCM_MPCTL);
> > > +		writel(CCM_PDR0_PARAM_399, IMX_CCM_BASE + CCM_PDR0);
> > >  		break;
> > >  	case 532:
> > > -		writel(MPCTL_PARAM_532, IMX_CCM_BASE + CCM_MPCTL);
> > > +		writel(CCM_PDR0_PARAM_532, IMX_CCM_BASE + CCM_PDR0);
> > >  		break;
> > >  	default:
> > >  		return COMMAND_ERROR_USAGE;
> > > -- 
> > > 1.7.0.4
> > > 
> > > 
> > > _______________________________________________
> > > barebox mailing list
> > > barebox@lists.infradead.org
> > > http://lists.infradead.org/mailman/listinfo/barebox
> > 
> 
> 
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

end of thread, other threads:[~2011-08-23 10:43 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-08-22 13:51 [PATCHv2 1/2] ARM pcm043: Use PDR0 to change cpu freq Teresa Gámez
2011-08-22 13:51 ` [PATCHv2 2/2] ARM pcm043: change RAM timings Teresa Gámez
2011-08-22 17:27 ` [PATCHv2 1/2] ARM pcm043: Use PDR0 to change cpu freq Sascha Hauer
2011-08-23  9:31   ` Teresa Gamez
2011-08-23 10:43     ` Sascha Hauer

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