[PATCHv2 1/2] ARM pcm043: Use PDR0 to change cpu freq

Teresa Gamez T.Gamez at phytec.de
Tue Aug 23 05:31:02 EDT 2011


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 at 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 at lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/barebox
> 





More information about the barebox mailing list