Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1445054 > unrolled thread
| Started by | Ondřej Jirman <megous@megous.com> |
|---|---|
| First post | 2016-07-17 16:40 +0200 |
| Last post | 2016-07-25 11:00 +0200 |
| Articles | 3 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: [PATCH 06/14] ARM: dts: sun8i: Add cpu0 label to sun8i-h3.dtsi Ondřej Jirman <megous@megous.com> - 2016-07-17 16:40 +0200
Re: [PATCH 06/14] ARM: dts: sun8i: Add cpu0 label to sun8i-h3.dtsi Maxime Ripard <maxime.ripard@free-electrons.com> - 2016-07-25 10:30 +0200
Re: [PATCH 06/14] ARM: dts: sun8i: Add cpu0 label to sun8i-h3.dtsi Maxime Ripard <maxime.ripard@free-electrons.com> - 2016-07-25 11:00 +0200
| From | Ondřej Jirman <megous@megous.com> |
|---|---|
| Date | 2016-07-17 16:40 +0200 |
| Subject | Re: [PATCH 06/14] ARM: dts: sun8i: Add cpu0 label to sun8i-h3.dtsi |
| Message-ID | <rVVoC-1VV-13@gated-at.bofh.it> |
[Multipart message — attachments visible in raw view] — view raw
On 25.6.2016 09:02, Maxime Ripard wrote:
> On Sat, Jun 25, 2016 at 09:02:48AM +0800, Chen-Yu Tsai wrote:
>> On Sat, Jun 25, 2016 at 6:51 AM, Ondřej Jirman <megous@megous.com> wrote:
>>> Hello,
>>>
>>> comments below.
>>>
>>> On 24.6.2016 05:48, Chen-Yu Tsai wrote:
>>>> On Fri, Jun 24, 2016 at 3:20 AM, <megous@megous.com> wrote:
>>>>> From: Ondrej Jirman <megous@megous.com>
>>>>>
>>>>> Add label to the first cpu so that it can be referenced
>>>>> from derived dts files.
>>>>>
>>>>> Signed-off-by: Ondrej Jirman <megous@megous.com>
>>>>> ---
>>>>> arch/arm/boot/dts/sun8i-h3.dtsi | 2 +-
>>>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/arch/arm/boot/dts/sun8i-h3.dtsi b/arch/arm/boot/dts/sun8i-h3.dtsi
>>>>> index 9938972..82faefc 100644
>>>>> --- a/arch/arm/boot/dts/sun8i-h3.dtsi
>>>>> +++ b/arch/arm/boot/dts/sun8i-h3.dtsi
>>>>> @@ -52,7 +52,7 @@
>>>>> #address-cells = <1>;
>>>>> #size-cells = <0>;
>>>>>
>>>>> - cpu@0 {
>>>>> + cpu0: cpu@0 {
>>>>> compatible = "arm,cortex-a7";
>>>>> device_type = "cpu";
>>>>> reg = <0>;
>>>>
>>>> Can you also set the cpu clock here? It is part of the SoC
>>>> and does not belong in the board DTS files.
>>>
>>> Do you mean operating-points, or something else? Different SBCs will
>>> probably require different combinations of operating points just for
>>> safety's sake, because they have different regulators and [some have
>>> botched] thermal designs, so it might make sense to customize it for
>>> differnt boards, and I don't feel adventurous enough setting it for all
>>> H3 boards out there.
>>
>> I meant clocks = <...> and clock-latency = <...>.
>>
>> These 2 are part of the SoC.
>>
>> The OPP can stay in the board files. It's a pity there's no standard
>> OPP table for H3 though. :(
>
> This has never been the case, and we always had some deviation in the
> FEX files for all the SoCs.
>
> If we could come up with standard OPPs that work for every one,
> there's no reason it can't happen here.
>
> I don't really see why the thermal design should change anything. If a
> boards heats faster, it will throttle down to a lower OPP faster, but
> those OPPs are not going to change.
So I tried, and found out that it will not be so easy. Different boards
have different regulators, and linux doesn't deal well with voltages
that are not supported by the regulator.
So even if the board can run at certain frequency if you round the
voltage to the next higher voltage supported by the regulator, opp
implementation doesn't do the rounding and just drops the operating
points that have no support in the voltage regulator.
We have boards that have 1.1/1.3V switching, only 1.3V, fine tuned
voltage regulation and every such board will need it's own set of
operating points.
I'd leave the OPP definitions in the board files for now.
cpu cpu0: _opp_add: OPP not supported by regulators (1368000000)
core: _opp_supported_by_regulators: OPP minuV: 1340000 maxuV: 1340000,
not supported by regulator
cpu cpu0: _opp_add: OPP not supported by regulators (1344000000)
core: _opp_supported_by_regulators: OPP minuV: 1340000 maxuV: 1340000,
not supported by regulator
cpu cpu0: _opp_add: OPP not supported by regulators (1296000000)
core: _opp_supported_by_regulators: OPP minuV: 1200000 maxuV: 1200000,
not supported by regulator
cpu cpu0: _opp_add: OPP not supported by regulators (1104000000)
core: _opp_supported_by_regulators: OPP minuV: 1140000 maxuV: 1140000,
not supported by regulator
cpu cpu0: _opp_add: OPP not supported by regulators (1008000000)
regards,
o.
> Maxime
>
[toc] | [next] | [standalone]
| From | Maxime Ripard <maxime.ripard@free-electrons.com> |
|---|---|
| Date | 2016-07-25 10:30 +0200 |
| Message-ID | <rYJqV-2gM-7@gated-at.bofh.it> |
| In reply to | #1445054 |
[Multipart message — attachments visible in raw view] — view raw
On Sun, Jul 17, 2016 at 04:39:27PM +0200, Ondřej Jirman wrote:
>
>
> On 25.6.2016 09:02, Maxime Ripard wrote:
> > On Sat, Jun 25, 2016 at 09:02:48AM +0800, Chen-Yu Tsai wrote:
> >> On Sat, Jun 25, 2016 at 6:51 AM, Ondřej Jirman <megous@megous.com> wrote:
> >>> Hello,
> >>>
> >>> comments below.
> >>>
> >>> On 24.6.2016 05:48, Chen-Yu Tsai wrote:
> >>>> On Fri, Jun 24, 2016 at 3:20 AM, <megous@megous.com> wrote:
> >>>>> From: Ondrej Jirman <megous@megous.com>
> >>>>>
> >>>>> Add label to the first cpu so that it can be referenced
> >>>>> from derived dts files.
> >>>>>
> >>>>> Signed-off-by: Ondrej Jirman <megous@megous.com>
> >>>>> ---
> >>>>> arch/arm/boot/dts/sun8i-h3.dtsi | 2 +-
> >>>>> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>>>>
> >>>>> diff --git a/arch/arm/boot/dts/sun8i-h3.dtsi b/arch/arm/boot/dts/sun8i-h3.dtsi
> >>>>> index 9938972..82faefc 100644
> >>>>> --- a/arch/arm/boot/dts/sun8i-h3.dtsi
> >>>>> +++ b/arch/arm/boot/dts/sun8i-h3.dtsi
> >>>>> @@ -52,7 +52,7 @@
> >>>>> #address-cells = <1>;
> >>>>> #size-cells = <0>;
> >>>>>
> >>>>> - cpu@0 {
> >>>>> + cpu0: cpu@0 {
> >>>>> compatible = "arm,cortex-a7";
> >>>>> device_type = "cpu";
> >>>>> reg = <0>;
> >>>>
> >>>> Can you also set the cpu clock here? It is part of the SoC
> >>>> and does not belong in the board DTS files.
> >>>
> >>> Do you mean operating-points, or something else? Different SBCs will
> >>> probably require different combinations of operating points just for
> >>> safety's sake, because they have different regulators and [some have
> >>> botched] thermal designs, so it might make sense to customize it for
> >>> differnt boards, and I don't feel adventurous enough setting it for all
> >>> H3 boards out there.
> >>
> >> I meant clocks = <...> and clock-latency = <...>.
> >>
> >> These 2 are part of the SoC.
> >>
> >> The OPP can stay in the board files. It's a pity there's no standard
> >> OPP table for H3 though. :(
> >
> > This has never been the case, and we always had some deviation in the
> > FEX files for all the SoCs.
> >
> > If we could come up with standard OPPs that work for every one,
> > there's no reason it can't happen here.
> >
> > I don't really see why the thermal design should change anything. If a
> > boards heats faster, it will throttle down to a lower OPP faster, but
> > those OPPs are not going to change.
>
> So I tried, and found out that it will not be so easy. Different boards
> have different regulators, and linux doesn't deal well with voltages
> that are not supported by the regulator.
>
> So even if the board can run at certain frequency if you round the
> voltage to the next higher voltage supported by the regulator, opp
> implementation doesn't do the rounding and just drops the operating
> points that have no support in the voltage regulator.
>
> We have boards that have 1.1/1.3V switching, only 1.3V, fine tuned
> voltage regulation and every such board will need it's own set of
> operating points.
>
> I'd leave the OPP definitions in the board files for now.
Works for me.
Maxime
--
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
[toc] | [prev] | [next] | [standalone]
| From | Maxime Ripard <maxime.ripard@free-electrons.com> |
|---|---|
| Date | 2016-07-25 11:00 +0200 |
| Message-ID | <rYJTX-2qF-15@gated-at.bofh.it> |
| In reply to | #1445054 |
[Multipart message — attachments visible in raw view] — view raw
On Tue, Jul 19, 2016 at 07:10:54AM -0700, Thomas Kaiser wrote: > Hi, > > Ondřej Jirman wrote: > > > > We have boards that have 1.1/1.3V switching, only 1.3V, fine tuned > > voltage regulation and every such board will need it's own set of > > operating points. > > > > Yes, and Allwinner's current BSP kernel code might encourage board makers > to implement a forth variant: switching between 4 different voltages > through GPIOs. > > Currently we have 4 boards that rely on the simple '2 voltage regulation' > all using 1.1V/1.3V: Orange Pi One and Lite and NanoPi M1 and NEO. Then > there are 2 devices with (legacy) Linux support existing that use no > voltage regulation at all: Banana Pi M2+ (according to schematic using 1.2V > but in reality it's 1.3V VDD_CPUX) and Beelink X2. And according to Tsvetan > if/when Olimex will release their 2 H3 boards we have two more with fixed > but yet unknown VDD_CPUX voltage (since olimex fears overheating maybe they > use 1.1V or 1.2V limiting max cpufreq to 816 or 1008 MHz). And all the > bigger H3 based Orange Pi use the SY8106A voltage regulator being able to > adjust VDD_CPUX in steps of 20mV allowing VDD_CPUX to exceed 1200 MHz (a > reasonable value seems to be 1296 MHz since above throttling will be an > issue without active cooling) Ok, good to know. I'm not sure overclocking is ever a reasonable solution, but that's a separate topic. > Things get even worse since Xunlong uses copper layers inside the PCB to > spread the heat away from H3 so Orange Pi One/Lite do not overheat that > much like eg. NanoPi M1 (and maybe NEO -- can tell next week when I get dev > samples to play with). So while eg. Orange Pi One and NanoPi M1 switch > between the same voltages in the same way we (Armbian) found that we have > to allow M1 to downclock to even 240 MHz since when testing with legacy > kernel really heavy workloads led to throttling that low (even CPU cores > were killed at this low clockspeed -- same applies to BPi M2+ and Beelink > X2) And that's what I really want to avoid. Even though that board absolutely requires the 240MHz OPP to run properly, nothing prevents from using that OPP on other boards as well, that will also benefit from it. Thermal throttling is something that needs to be handled, but power management is also something we should consider, and I see no reason why not to have a consistent set of operating frequencies, even though the voltage might differ depending on the regulator capabilities. Maxime -- Maxime Ripard, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web