Re: [PATCH 4/4] MIPS: CI20: Reduce MSC0 frequency and add second percpu timer for SMP.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Paul,

于 Tue, 22 Jun 2021 13:39:02 +0100
Paul Cercueil <paul@xxxxxxxxxxxxxxx> 写道:

> Hi Zhou,
> 
> Le mar., juin 22 2021 at 15:37:25 +0800, 周琰杰 (Zhou Yanjie) 
> <zhouyanjie@xxxxxxxxxxxxxx> a écrit :
> > 1.On the hardware of CI20 v1, when the MSC0 clock is 50MHz, there is
> >   a certain probability that the communication with the SD card will
> >   be abnormal, and the file system will be damaged in severe cases.
> >   Limiting the maximum MSC0 clock frequency to 25MHz can solve this
> >   problem.  
> 
> That doesn't prevent anything, since you could very well use a recent 
> kernel with an older device tree.
> 
> Besides, the PM does say that 50 MHz bus clock is supported, so I 
> suspect that your problem is actually a driver issue.
> 
> The proper way to work around it, temporarily or not, would be to set 
> the max frequency to 25 MHz in the driver itself, if the board's 
> compatible strings matches ingenic,ci20.
> 

Sure, then let's focus on tcu first, I will send the v2 version.

Thanks and best regards!

> Cheers,
> -Paul
> 
> > 2.Add a new TCU channel as the percpu timer of core1, this is to
> >   prepare for the subsequent SMP support. The newly added channel
> >   will not adversely affect the current single-core state.
> > 3.Adjust the position of TCU node to make it consistent with the
> >   order in jz4780.dtsi file.
> > 
> > Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@xxxxxxxxxxxxxx>
> > ---
> >  arch/mips/boot/dts/ingenic/ci20.dts | 23 ++++++++++++-----------
> >  1 file changed, 12 insertions(+), 11 deletions(-)
> > 
> > diff --git a/arch/mips/boot/dts/ingenic/ci20.dts 
> > b/arch/mips/boot/dts/ingenic/ci20.dts
> > index 8877c62..58123e0 100644
> > --- a/arch/mips/boot/dts/ingenic/ci20.dts
> > +++ b/arch/mips/boot/dts/ingenic/ci20.dts
> > @@ -118,11 +118,22 @@
> >  	assigned-clock-rates = <48000000>;
> >  };
> > 
> > +&tcu {
> > +	/*
> > +	 * 750 kHz for the system timers and 3 MHz for the
> > clocksources,
> > +	 * use channel #0 and #1 for the per cpu system timers,
> > and use
> > +	 * channel #2 for the clocksource.
> > +	 */
> > +	assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu
> > TCU_CLK_TIMER1>,
> > +					  <&tcu TCU_CLK_TIMER2>,
> > <&tcu TCU_CLK_OST>;
> > +	assigned-clock-rates = <750000>, <750000>, <3000000>,
> > <3000000>; +};
> > +
> >  &mmc0 {
> >  	status = "okay";
> > 
> >  	bus-width = <4>;
> > -	max-frequency = <50000000>;
> > +	max-frequency = <25000000>;
> > 
> >  	pinctrl-names = "default";
> >  	pinctrl-0 = <&pins_mmc0>;
> > @@ -522,13 +533,3 @@
> >  		bias-disable;
> >  	};
> >  };
> > -
> > -&tcu {
> > -	/*
> > -	 * 750 kHz for the system timer and 3 MHz for the
> > clocksource,
> > -	 * use channel #0 for the system timer, #1 for the
> > clocksource.
> > -	 */
> > -	assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu
> > TCU_CLK_TIMER1>,
> > -					  <&tcu TCU_CLK_OST>;
> > -	assigned-clock-rates = <750000>, <3000000>, <3000000>;
> > -};
> > --
> > 2.7.4
> >   
> 




[Index of Archives]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux