big.LITTLE status for rk3399/rockpro64?
Greg V
greg at unrelenting.technology
Thu Jul 30 21:27:42 UTC 2020
On Thu, Jul 30, 2020 at 12:06, Josh Howard <bsd at zeppelin.net> wrote:
> On Thu, 30 Jul 2020 11:08:11 -0700,
> Greg V wrote:
>>
>>
>>
>> On Thu, Jul 30, 2020 at 10:05, Josh Howard <bsd at zeppelin.net> wrote:
>> > On Thu, 30 Jul 2020 09:02:56 -0700,
>> > William Carson via freebsd-arm wrote:
>> >>
>> >>
>> >> > On Jul 28, 2020, at 10:43 AM, Vincent Milum Jr
>> >> <freebsd-arm at darkain.com> wrote:
>> >> >
>> >> > The downside is that the two big cores are not fully clocking
>> up
>> >> to their max
>> >> > speed, because FreeBSD doesn't have support yet to clock cores
>> >> or groups of
>> >> > cores independently.
>> >>
>> >> Is this true? I'm running r363091 on a RockPro64 with
>> >> sysutils/powerdxx and it
>> >> supports the different frequencies just fine:
>> >>
>> >> # sysctl dev.cpu.{0,1,2,3,4,5}.freq
>> >> dev.cpu.0.freq: 1416
>> >> dev.cpu.1.freq: 1416
>> >> dev.cpu.2.freq: 1416
>> >> dev.cpu.3.freq: 1416
>> >> dev.cpu.4.freq: 1800
>> >> dev.cpu.5.freq: 1800
>> >
>> > powerdxx definitely does help. I think the other issue is that if
>> > you set ncpu=4,
>> > you get get the max freq_levels of 1512 for the 4 CPUs, but when
>> all
>> > 6 are
>> > enabled, it finds the highest common freq, which is
>> > 1416. Furthermore, we only
>> > set the big cores at 1800, but they should be 2016.
>>
>> Wait, "it" == stock powerd? oh sure it might not support that. I was
>> only considering manual setting of these sysctls.
>>
>> re: what the maximum should be, that depends on your device tree.
>> I have overclocked mine to 2200.
>>
>
> I'm probably conflating too many things, between what I was observing
> on
> Linux, which seemed to default to max clock of 1512 on little cores
> and
> what I see on FreeBSD. I see in rk3399-opp.dtsi that those freq_levels
> match what's in the freq_levels in sysctl, so not sure the
> discrepency.
>
> What device tree are you using to get up to 2200?
I just edited /usr/src/sys/gnu/dts/arm64/rockchip/rk3399-opp.dtsi
and recompiled with a command like (in /usr/src):
MACHINE=arm64 DTC=/usr/bin/dtc tools/fdt/make_dtb.sh /usr/src/sys
gnu/dts/arm64/rockchip/rk3399-rockpro64.dts /tmp
More information about the freebsd-arm
mailing list