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