2022-05-14 01:21:02

by Maxime Ripard

[permalink] [raw]
Subject: Re: [PATCH v3 2/2] ARM: dts: sun8i-r40: Add "cpu-supply" node for sun8i-r40 based board

Hi,

On Thu, May 12, 2022 at 03:18:58PM +0800, [email protected] wrote:
> From: qianfan Zhao <[email protected]>
>
> sun8i-r40 actived cpufreq feature now, let's add "cpu-supply" node on
> board.
>
> Signed-off-by: qianfan Zhao <[email protected]>
> ---
> arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts | 4 ++++
> arch/arm/boot/dts/sun8i-r40-feta40i.dtsi | 4 ++++
> arch/arm/boot/dts/sun8i-t3-cqa3t-bv3.dts | 4 ++++
> arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts | 4 ++++
> 4 files changed, 16 insertions(+)
>
> diff --git a/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts b/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts
> index a6a1087a0c9b..4f30018ec4a2 100644
> --- a/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts
> +++ b/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts
> @@ -113,6 +113,10 @@ &ahci {
> status = "okay";
> };
>
> +&cpu0 {
> + cpu-supply = <&reg_dcdc2>;
> +};
> +

This will break bisection on those boards. Indeed, you added the OPPs on
the first patch, and if you only apply that patch, the boards in the
second patch will be missing their CPU regulator. The kernel will then
ramp up the frequency to the highest OPP, but will not change the
voltage, resulting in a crash.

There's a similar issue for all the boards that don't have a regulator
in the first place.

The way we worked around this for the other SoCs is to have a DTSI with
the OPPs with a frequency higher than what U-Boot boots with (1008MHz?),
and only include that DTSI on boards that have a CPU regulator hooked in.

Maxime


Attachments:
(No filename) (1.58 kB)
signature.asc (235.00 B)
Download all attachments

2022-05-14 04:20:17

by qianfan

[permalink] [raw]
Subject: Re: [PATCH v3 2/2] ARM: dts: sun8i-r40: Add "cpu-supply" node for sun8i-r40 based board



在 2022/5/13 15:38, Maxime Ripard 写道:
> Hi,
>
> On Thu, May 12, 2022 at 03:18:58PM +0800, [email protected] wrote:
>> From: qianfan Zhao <[email protected]>
>>
>> sun8i-r40 actived cpufreq feature now, let's add "cpu-supply" node on
>> board.
>>
>> Signed-off-by: qianfan Zhao <[email protected]>
>> ---
>> arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts | 4 ++++
>> arch/arm/boot/dts/sun8i-r40-feta40i.dtsi | 4 ++++
>> arch/arm/boot/dts/sun8i-t3-cqa3t-bv3.dts | 4 ++++
>> arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts | 4 ++++
>> 4 files changed, 16 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts b/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts
>> index a6a1087a0c9b..4f30018ec4a2 100644
>> --- a/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts
>> +++ b/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts
>> @@ -113,6 +113,10 @@ &ahci {
>> status = "okay";
>> };
>>
>> +&cpu0 {
>> + cpu-supply = <&reg_dcdc2>;
>> +};
>> +
> This will break bisection on those boards. Indeed, you added the OPPs on
> the first patch, and if you only apply that patch, the boards in the
> second patch will be missing their CPU regulator. The kernel will then
> ramp up the frequency to the highest OPP, but will not change the
> voltage, resulting in a crash.
This is a good point and I will merge those two patch.
>
> There's a similar issue for all the boards that don't have a regulator
> in the first place.
>
> The way we worked around this for the other SoCs is to have a DTSI with
> the OPPs with a frequency higher than what U-Boot boots with (1008MHz?),
> and only include that DTSI on boards that have a CPU regulator hooked in.
Is this really necessary? It seems like every board based on sun8i-r40
have a cpu regulator.
>
> Maxime