Message ID | 20190701091258.3870-12-narmstrong@baylibre.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | arm64: g12a: add support for DVFS | expand |
Hi Neil, On Mon, Jul 1, 2019 at 11:13 AM Neil Armstrong <narmstrong@baylibre.com> wrote: > > Add the OPP table taken from the vendor u200 and u211 DTS. > > The Amlogic G12A SoC seems to available in 3 types : > - low-speed: up to 1,8GHz > - mid-speed: up to 1,908GHz > - high-speed: up to 2.1GHz > > And the S905X2 opp voltages are slightly higher than the S905D2 > OPP voltages for the low-speed table. > > This adds the conservative OPP table with the S905X2 higher voltages > and the maximum low-speed OPP frequency. have you considered all three as separate voltage tables? you're other patches are assigning the OPP table to the CPU in the board.dts anyways, so it's easy to use different OPP tables for different boards
On 03/07/2019 01:47, Martin Blumenstingl wrote: > Hi Neil, > > On Mon, Jul 1, 2019 at 11:13 AM Neil Armstrong <narmstrong@baylibre.com> wrote: >> >> Add the OPP table taken from the vendor u200 and u211 DTS. >> >> The Amlogic G12A SoC seems to available in 3 types : >> - low-speed: up to 1,8GHz >> - mid-speed: up to 1,908GHz >> - high-speed: up to 2.1GHz >> >> And the S905X2 opp voltages are slightly higher than the S905D2 >> OPP voltages for the low-speed table. >> >> This adds the conservative OPP table with the S905X2 higher voltages >> and the maximum low-speed OPP frequency. > have you considered all three as separate voltage tables? > you're other patches are assigning the OPP table to the CPU in the > board.dts anyways, so it's easy to use different OPP tables for > different boards We can't assume the board and the CPU type :-/ Kevin told me about cpufreq policy, where we could add a policy reading the eFUSE and changing the max frequency, then we could add the whole OPP table. Neil >
Hi Neil, On Wed, Jul 3, 2019 at 1:53 PM Neil Armstrong <narmstrong@baylibre.com> wrote: > > On 03/07/2019 01:47, Martin Blumenstingl wrote: > > Hi Neil, > > > > On Mon, Jul 1, 2019 at 11:13 AM Neil Armstrong <narmstrong@baylibre.com> wrote: > >> > >> Add the OPP table taken from the vendor u200 and u211 DTS. > >> > >> The Amlogic G12A SoC seems to available in 3 types : > >> - low-speed: up to 1,8GHz > >> - mid-speed: up to 1,908GHz > >> - high-speed: up to 2.1GHz > >> > >> And the S905X2 opp voltages are slightly higher than the S905D2 > >> OPP voltages for the low-speed table. > >> > >> This adds the conservative OPP table with the S905X2 higher voltages > >> and the maximum low-speed OPP frequency. > > have you considered all three as separate voltage tables? > > you're other patches are assigning the OPP table to the CPU in the > > board.dts anyways, so it's easy to use different OPP tables for > > different boards > > We can't assume the board and the CPU type :-/ OK, should we assign the OPP table to the CPU cores then in the soc.dtsi (instead of board.dts like the other patches from this series do)? > Kevin told me about cpufreq policy, where we could add a policy reading the > eFUSE and changing the max frequency, then we could add the whole OPP table. we can still do that in a second step, so I'm all for starting with the "conservative" OPP table and then improve performance (by having detecting the SoC and using the correct OPP table) Martin
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12a.dtsi index ac15967bb7fa..733a9d46fc4b 100644 --- a/arch/arm64/boot/dts/amlogic/meson-g12a.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-g12a.dtsi @@ -48,6 +48,66 @@ compatible = "cache"; }; }; + + cpu_opp_table: opp-table { + compatible = "operating-points-v2"; + opp-shared; + + opp-100000000 { + opp-hz = /bits/ 64 <100000000>; + opp-microvolt = <731000>; + }; + + opp-250000000 { + opp-hz = /bits/ 64 <250000000>; + opp-microvolt = <731000>; + }; + + opp-500000000 { + opp-hz = /bits/ 64 <500000000>; + opp-microvolt = <731000>; + }; + + opp-667000000 { + opp-hz = /bits/ 64 <666666666>; + opp-microvolt = <731000>; + }; + + opp-1000000000 { + opp-hz = /bits/ 64 <1000000000>; + opp-microvolt = <731000>; + }; + + opp-1200000000 { + opp-hz = /bits/ 64 <1200000000>; + opp-microvolt = <731000>; + }; + + opp-1398000000 { + opp-hz = /bits/ 64 <1398000000>; + opp-microvolt = <761000>; + }; + + opp-1512000000 { + opp-hz = /bits/ 64 <1512000000>; + opp-microvolt = <791000>; + }; + + opp-1608000000 { + opp-hz = /bits/ 64 <1608000000>; + opp-microvolt = <831000>; + }; + + opp-1704000000 { + opp-hz = /bits/ 64 <1704000000>; + opp-microvolt = <861000>; + }; + + opp-1800000000 { + opp-hz = /bits/ 64 <1800000000>; + opp-microvolt = <981000>; + }; + }; }; &sd_emmc_a {
Add the OPP table taken from the vendor u200 and u211 DTS. The Amlogic G12A SoC seems to available in 3 types : - low-speed: up to 1,8GHz - mid-speed: up to 1,908GHz - high-speed: up to 2.1GHz And the S905X2 opp voltages are slightly higher than the S905D2 OPP voltages for the low-speed table. This adds the conservative OPP table with the S905X2 higher voltages and the maximum low-speed OPP frequency. The values were tested to be stable on an Amlogic U200 Reference Board, SeiRobotics SEI510 and X96 Max Set-Top-Boxes running the arm64 cpuburn at [1] and cycling between all the possible cpufreq translations and checking the final frequency using the clock-measurer, script at [2]. [1] https://github.com/ssvb/cpuburn-arm/blob/master/cpuburn-a53.S [2] https://gist.github.com/superna9999/d4de964dbc0f84b7d527e1df2ddea25f Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> --- arch/arm64/boot/dts/amlogic/meson-g12a.dtsi | 60 +++++++++++++++++++++ 1 file changed, 60 insertions(+)