[PATCH 1/2] ARM: dts: rockchip: increase vdd_arm voltage for rk3066a-rayeager board

Andy Yan andy.yan at rock-chips.com
Fri Jan 15 01:34:31 PST 2016


Hi Heiko:

On 2016年01月15日 17:22, Heiko Stuebner wrote:
> Hi Andy, Eddie,
>
> Am Freitag, 15. Januar 2016, 09:11:16 schrieb Andy Yan:
>> On 2016年01月14日 21:50, Eddie Cai wrote:
>>> Hi Heiko
>>>
>>> I don't want open source version kernel support too high frequency.
>>> Many people use RK3066/PX2 on their board. We don't know if their
>>> layout is good enough to support higher frequency. ie. bad layout will
>>> cause more voltage drop on the VDD_CPU power rail. So it may need
>>> higher voltage. I think stable is more important here. People want
>>> higher frequency can add more opp depend on their board's layout.
>>>
>>> 2016-01-14 21:20 GMT+08:00 Andy Yan <andy.yan at rock-chips.com>:
>>>> Hi Heiko:
>>>>
>>>> On 2016年01月14日 20:45, Heiko Stuebner wrote:
>>>>> Hi Andy,
>>>>>
>>>>> Am Donnerstag, 14. Januar 2016, 20:34:20 schrieb Andy Yan:
>>>>>> The current vdd_arm voltage is too low, increase it will make
>>>>>> the system more stable.
>>>>>>
>>>>>> Signed-off-by: Andy Yan <andy.yan at rock-chips.com>
>>>>>> ---
>>>>>>
>>>>>>     arch/arm/boot/dts/rk3066a-rayeager.dts | 8 ++++++++
>>>>>>     1 file changed, 8 insertions(+)
>>>>>>
>>>>>> diff --git a/arch/arm/boot/dts/rk3066a-rayeager.dts
>>>>>> b/arch/arm/boot/dts/rk3066a-rayeager.dts index 0bf6876..3d4c104
>>>>>> 100644
>>>>>> --- a/arch/arm/boot/dts/rk3066a-rayeager.dts
>>>>>> +++ b/arch/arm/boot/dts/rk3066a-rayeager.dts
>>>>>> @@ -159,6 +159,14 @@
>>>>>>
>>>>>>     &cpu0 {
>>>>>>     
>>>>>>           cpu0-supply = <&vdd_arm>;
>>>>>>
>>>>>> +       operating-points = <
>>>>>> +               /* kHz    uV */
>>>>>> +               1008000 1125000
>>>>>> +               816000  1125000
>>>>>> +               600000  1100000
>>>>>> +               504000  1100000
>>>>>> +               312000  1075000
>>>>>> +       >;
>>>>>>
>>>>>>     };
>>>>>>     
>>>>>>     &emac {
>>>>> Does this only apply to the rayeager-board / px2 soc or for all
>>>>> rk3066a/px2
>>>>> boards? I.e. the original values come from some sdk kernel and I
>>>>> might've
>>>>> transcribed that wrong at the time and I remember having problems
>>>>> trying
>>>>> to
>>>>> reach higher frequencies as well.
>>>>>
>>>>> So could you check what the full operating points looks like for both
>>>>> and
>>>>> if
>>>>> this can move to the rk3066a.dtsi, as both should be able to reach at
>>>>> least
>>>>> 1.4GHz / 1.6GHz.
>>>>>
>>>>>
>>>>> Thanks
>>>>> Heiko
>>>>>
>>>>> ______
>>>>>
>>>>       I have checked the sdk kernel, the opp for the sdk board is like
> bellow:
>>>>    /**
>>>>    * dvfs_cpu_logic_table: table for arm and logic dvfs
>>>>    * @frequency   : arm frequency
>>>>    * @cpu_volt    : arm voltage depend on frequency
>>>>    * @logic_volt  : logic voltage arm requests depend on frequency
>>>>    * comments     : min arm/logic voltage
>>>>    */
>>>>
>>>> static struct dvfs_arm_table dvfs_cpu_logic_table[] = {
>>>>
>>>>           {.frequency = 252 * 1000,       .cpu_volt = 1075 * 1000,
>>>>
>>>> .logic_volt = 1125 * 1000},//0.975V/1.000V
>>>>
>>>>           {.frequency = 504 * 1000,       .cpu_volt = 1100 * 1000,
>>>>
>>>> .logic_volt = 1125 * 1000},//0.975V/1.000V
>>>>
>>>>           {.frequency = 816 * 1000,       .cpu_volt = 1125 * 1000,
>>>>
>>>> .logic_volt = 1150 * 1000},//1.000V/1.025V
>>>>
>>>>           {.frequency = 1008 * 1000,      .cpu_volt = 1125 * 1000,
>>>>
>>>> .logic_volt = 1150 * 1000},//1.025V/1.050V
>>>>
>>>>           {.frequency = 1200 * 1000,      .cpu_volt = 1175 * 1000,
>>>>
>>>> .logic_volt = 1200 * 1000},//1.100V/1.050V
>>>>
>>>>           {.frequency = 1272 * 1000,      .cpu_volt = 1225 * 1000,
>>>>
>>>> .logic_volt = 1200 * 1000},//1.150V/1.100V
>>>>
>>>>           {.frequency = 1416 * 1000,      .cpu_volt = 1300 * 1000,
>>>>
>>>> .logic_volt = 1200 * 1000},//1.225V/1.100V
>>>>
>>>>           {.frequency = 1512 * 1000,      .cpu_volt = 1350 * 1000,
>>>>
>>>> .logic_volt = 1250 * 1000},//1.300V/1.150V
>>>>
>>>>           {.frequency = 1608 * 1000,      .cpu_volt = 1425 * 1000,
>>>>
>>>> .logic_volt = 1300 * 1000},//1.325V/1.175V
>>>>
>>>>           {.frequency = CPUFREQ_TABLE_END},
>>>>
>>>> };
>>>>
>>>>    This table is made base on mass stress test. So is a safe opp table
>>>>    for
>>>>
>>>> most rk3066a base boards. But it some
>>>>
>>>>    board is not so well in power supply circuit design, the may also
>>>>    need to
>>>>
>>>> adjust it.
>>>>
>>>>    From the table we see that the logic_voltage need to increase  as the
>>>>
>>>> cpufreq increase. But it seems that the current mainline kernel does
>>>> not
>>>> support adjust the logic voltage when cpufreq change. So we can only
>>>> scale the cpufreq to 1.4GHZ by fixed the logic_volt at 1.2V.
>>>>
>>>>    If you like, I can move it to rk3066a.dtsi with the max freq at
>>>>    1008MHZ, as>>
>>>> I haven't  test to 1.4GHZ  with the mainline kernel. Or give me some
>>>> time to test to see if the rayeager board can run to 1.4G stable with
>>>> the mainline .
>>     I have run Rayeager  board with cpufreq freely change from
>> 312MHZ~1416MHZ for 11 hours now, it's stable. Maybe we can set the
>> default opp table for rk3066a/PX2 from 312MHZ~1416HZ in current mainline.
> Thanks for doing that stress test and making that the default setting would
> be a nice way to go :-) .
>
> I just checked, the other 2 rk3066a boards we currently support (Hayou
> Marsboard and BQ Curie2) use the exact same power-layout (tps65210 + pwm-
> regulator for vdd_log), so should be quite save to do.
>
>
> Heiko
> Heiko
>
>
>
>
   Actually, all the rockchip rk3066 base platform use the same power 
supply design( control vdd_logic voltage by pwm).
   So I can move the opp table with max freq 1416MHZ to rk3066a.dtsi and 
keep the pwm-regulator in board specific dts?





More information about the Linux-rockchip mailing list