Hello,
I apologize for my bad English.
I have a NanoPi R6S and a NanoPC T6.
Both Nano devices have Armbian images.
Both devices use a processor:
CPU Model: Rockchip RK3588
Number of Cores: Quad-core ARM Cortex-A76 + Quad Core Cortex-A55
Frequency: Cortex-A76 (up to 2.4GHz), Cortex-A55 (up to 1.8GHz)
A few things struck me
On NanoPi R6S
in the dts file, the frequency of A76 cores is up to 2.4GHz
you can see the frequencies at which each core works
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_frequencies
408000 600000 816000 1008000 1200000 1416000 1608000 1800000
408000 600000 816000 1008000 1200000 1416000 1608000 1800000
408000 600000 816000 1008000 1200000 1416000 1608000 1800000
408000 600000 816000 1008000 1200000 1416000 1608000 1800000
408000 600000 816000 1008000 1200000 1416000 1608000 1800000 2016000 2208000 2352000
408000 600000 816000 1008000 1200000 1416000 1608000 1800000 2016000 2208000 2352000
408000 600000 816000 1008000 1200000 1416000 1608000 1800000 2016000 2208000 2256000
408000 600000 816000 1008000 1200000 1416000 1608000 1800000 2016000 2208000 2256000
governors:
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_governors
conservative ondemand userspace powersave performance schedutil
conservative ondemand userspace powersave performance schedutil
conservative ondemand userspace powersave performance schedutil
conservative ondemand userspace powersave performance schedutil
conservative ondemand userspace powersave performance schedutil
conservative ondemand userspace powersave performance schedutil
conservative ondemand userspace powersave performance schedutil
conservative ondemand userspace powersave performance schedutil
On NanoPi T6
in the dts file, the frequency of A76 cores is up to 2.2GHz - I fixed it
/sys/devices/system/cpu/cpu*/cpufreq/scaling_available_frequencies
- this is missing.
/sys/devices/system/cpu/cpu*/cpufreq/scaling_available_governors
- this is missing, having instead
cat /sys/devices/system/cpu/cpuidle/available_governors
ladder menu teo
NanoPi R6S is currently running kernel 5.10.110-rockchip-rk3588
NanoPC T6 is currently running kernel 6.8.0-rc6-edge-rockchip-rk3588
I also noticed differences in CPU cache.
NanoPI R6S
Architecture: aarch64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 1
Core(s) per socket: 2
Socket(s): 3
Vendor ID: ARM
Model: 0
Model name: Cortex-A55
Stepping: r2p0
CPU max MHz: 2352.0000
CPU min MHz: 408.0000
BogoMIPS: 48.00
L1d cache: 256 KiB
L1i cache: 256 KiB
L2 cache: 1 MiB
L3 cache: 3 MiB
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Vulnerable: Unprivileged eBPF enabled
Vulnerability Srbds: Not affected
Vulnerability Tsx async abort: Not affected
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
NanoPC T6
Architecture: aarch64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Vendor ID: ARM
Model name: Cortex-A55
Model: 0
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
Stepping: r2p0
BogoMIPS: 48.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
Model name: Cortex-A76
Model: 0
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
Stepping: r4p0
BogoMIPS: 48.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
Caches (sum of all):
L1d: 384 KiB (8 instances)
L1i: 384 KiB (8 instances)
L2: 2.5 MiB (8 instances)
L3: 3 MiB (1 instance)
NUMA:
NUMA node(s): 1
NUMA node0 CPU(s): 0-7
Vulnerabilities:
Gather data sampling: Not affected
Itlb multihit: Not affected
L1tf: Not affected
Mds: Not affected
Meltdown: Not affected
Mmio stale data: Not affected
Retbleed: Not affected
Spec rstack overflow: Not affected
Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Spectre v1: Mitigation; __user pointer sanitization
Spectre v2: Vulnerable: Unprivileged eBPF enabled
Srbds: Not affected
Tsx async abort: Not affected
When using the command: cpufreq-info
NanoPI R6S
cpufreq-info
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to cpufreq@vger.kernel.org, please.
analyzing CPU 0:
driver: cpufreq-dt
CPUs which run at the same hardware frequency: 0 1 2 3
CPUs which need to have their frequency coordinated by software: 0 1 2 3
maximum transition latency: 84.0 us.
hardware limits: 408 MHz - 1.80 GHz
available frequency steps: 408 MHz, 600 MHz, 816 MHz, 1.01 GHz, 1.20 GHz, 1.42 GHz, 1.61 GHz, 1.80 GHz
available cpufreq governors: conservative, ondemand, userspace, powersave, performance, schedutil
current policy: frequency should be within 408 MHz and 1.80 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 408 MHz (asserted by call to hardware).
cpufreq stats: 408 MHz:76.72%, 600 MHz:6.69%, 816 MHz:0.31%, 1.01 GHz:0.00%, 1.20 GHz:0.00%, 1.42 GHz:0.00%, 1.61 GHz:0.00%, 1.80 GHz:16.29% (11087717)
analyzing CPU 1:
driver: cpufreq-dt
CPUs which run at the same hardware frequency: 0 1 2 3
CPUs which need to have their frequency coordinated by software: 0 1 2 3
maximum transition latency: 84.0 us.
hardware limits: 408 MHz - 1.80 GHz
available frequency steps: 408 MHz, 600 MHz, 816 MHz, 1.01 GHz, 1.20 GHz, 1.42 GHz, 1.61 GHz, 1.80 GHz
available cpufreq governors: conservative, ondemand, userspace, powersave, performance, schedutil
current policy: frequency should be within 408 MHz and 1.80 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 408 MHz (asserted by call to hardware).
cpufreq stats: 408 MHz:76.72%, 600 MHz:6.69%, 816 MHz:0.31%, 1.01 GHz:0.00%, 1.20 GHz:0.00%, 1.42 GHz:0.00%, 1.61 GHz:0.00%, 1.80 GHz:16.29% (11087717)
analyzing CPU 2:
driver: cpufreq-dt
CPUs which run at the same hardware frequency: 0 1 2 3
CPUs which need to have their frequency coordinated by software: 0 1 2 3
maximum transition latency: 84.0 us.
hardware limits: 408 MHz - 1.80 GHz
available frequency steps: 408 MHz, 600 MHz, 816 MHz, 1.01 GHz, 1.20 GHz, 1.42 GHz, 1.61 GHz, 1.80 GHz
available cpufreq governors: conservative, ondemand, userspace, powersave, performance, schedutil
current policy: frequency should be within 408 MHz and 1.80 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 408 MHz (asserted by call to hardware).
cpufreq stats: 408 MHz:76.72%, 600 MHz:6.69%, 816 MHz:0.31%, 1.01 GHz:0.00%, 1.20 GHz:0.00%, 1.42 GHz:0.00%, 1.61 GHz:0.00%, 1.80 GHz:16.29% (11087717)
analyzing CPU 3:
driver: cpufreq-dt
CPUs which run at the same hardware frequency: 0 1 2 3
CPUs which need to have their frequency coordinated by software: 0 1 2 3
maximum transition latency: 84.0 us.
hardware limits: 408 MHz - 1.80 GHz
available frequency steps: 408 MHz, 600 MHz, 816 MHz, 1.01 GHz, 1.20 GHz, 1.42 GHz, 1.61 GHz, 1.80 GHz
available cpufreq governors: conservative, ondemand, userspace, powersave, performance, schedutil
current policy: frequency should be within 408 MHz and 1.80 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 408 MHz (asserted by call to hardware).
cpufreq stats: 408 MHz:76.72%, 600 MHz:6.69%, 816 MHz:0.31%, 1.01 GHz:0.00%, 1.20 GHz:0.00%, 1.42 GHz:0.00%, 1.61 GHz:0.00%, 1.80 GHz:16.29% (11087717)
analyzing CPU 4:
driver: cpufreq-dt
CPUs which run at the same hardware frequency: 4 5
CPUs which need to have their frequency coordinated by software: 4 5
maximum transition latency: 324 us.
hardware limits: 408 MHz - 2.35 GHz
available frequency steps: 408 MHz, 600 MHz, 816 MHz, 1.01 GHz, 1.20 GHz, 1.42 GHz, 1.61 GHz, 1.80 GHz, 2.02 GHz, 2.21 GHz, 2.35 GHz
available cpufreq governors: conservative, ondemand, userspace, powersave, performance, schedutil
current policy: frequency should be within 408 MHz and 2.35 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 408 MHz (asserted by call to hardware).
cpufreq stats: 408 MHz:85.33%, 600 MHz:1.13%, 816 MHz:0.40%, 1.01 GHz:0.00%, 1.20 GHz:0.00%, 1.42 GHz:0.00%, 1.61 GHz:0.00%, 1.80 GHz:0.00%, 2.02 GHz:0.00%, 2.21 GHz:0.00%, 2.35 GHz:13.14% (2586948)
analyzing CPU 5:
driver: cpufreq-dt
CPUs which run at the same hardware frequency: 4 5
CPUs which need to have their frequency coordinated by software: 4 5
maximum transition latency: 324 us.
hardware limits: 408 MHz - 2.35 GHz
available frequency steps: 408 MHz, 600 MHz, 816 MHz, 1.01 GHz, 1.20 GHz, 1.42 GHz, 1.61 GHz, 1.80 GHz, 2.02 GHz, 2.21 GHz, 2.35 GHz
available cpufreq governors: conservative, ondemand, userspace, powersave, performance, schedutil
current policy: frequency should be within 408 MHz and 2.35 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 408 MHz (asserted by call to hardware).
cpufreq stats: 408 MHz:85.33%, 600 MHz:1.13%, 816 MHz:0.40%, 1.01 GHz:0.00%, 1.20 GHz:0.00%, 1.42 GHz:0.00%, 1.61 GHz:0.00%, 1.80 GHz:0.00%, 2.02 GHz:0.00%, 2.21 GHz:0.00%, 2.35 GHz:13.14% (2586948)
analyzing CPU 6:
driver: cpufreq-dt
CPUs which run at the same hardware frequency: 6 7
CPUs which need to have their frequency coordinated by software: 6 7
maximum transition latency: 324 us.
hardware limits: 408 MHz - 2.26 GHz
available frequency steps: 408 MHz, 600 MHz, 816 MHz, 1.01 GHz, 1.20 GHz, 1.42 GHz, 1.61 GHz, 1.80 GHz, 2.02 GHz, 2.21 GHz, 2.26 GHz
available cpufreq governors: conservative, ondemand, userspace, powersave, performance, schedutil
current policy: frequency should be within 408 MHz and 2.26 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 408 MHz (asserted by call to hardware).
cpufreq stats: 408 MHz:92.30%, 600 MHz:0.44%, 816 MHz:0.16%, 1.01 GHz:0.00%, 1.20 GHz:0.00%, 1.42 GHz:0.00%, 1.61 GHz:0.00%, 1.80 GHz:0.00%, 2.02 GHz:0.00%, 2.21 GHz:0.00%, 2.26 GHz:7.10% (1012245)
analyzing CPU 7:
driver: cpufreq-dt
CPUs which run at the same hardware frequency: 6 7
CPUs which need to have their frequency coordinated by software: 6 7
maximum transition latency: 324 us.
hardware limits: 408 MHz - 2.26 GHz
available frequency steps: 408 MHz, 600 MHz, 816 MHz, 1.01 GHz, 1.20 GHz, 1.42 GHz, 1.61 GHz, 1.80 GHz, 2.02 GHz, 2.21 GHz, 2.26 GHz
available cpufreq governors: conservative, ondemand, userspace, powersave, performance, schedutil
current policy: frequency should be within 408 MHz and 2.26 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 408 MHz (asserted by call to hardware).
cpufreq stats: 408 MHz:92.30%, 600 MHz:0.44%, 816 MHz:0.16%, 1.01 GHz:0.00%, 1.20 GHz:0.00%, 1.42 GHz:0.00%, 1.61 GHz:0.00%, 1.80 GHz:0.00%, 2.02 GHz:0.00%, 2.21 GHz:0.00%, 2.26 GHz:7.10% (1012245)
NanoPC T6
cpufreq-info
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to cpufreq@vger.kernel.org, please.
analyzing CPU 0:
no or unknown cpufreq driver is active on this CPU
maximum transition latency: 4294.55 ms.
analyzing CPU 1:
no or unknown cpufreq driver is active on this CPU
maximum transition latency: 4294.55 ms.
analyzing CPU 2:
no or unknown cpufreq driver is active on this CPU
maximum transition latency: 4294.55 ms.
analyzing CPU 3:
no or unknown cpufreq driver is active on this CPU
maximum transition latency: 4294.55 ms.
analyzing CPU 4:
no or unknown cpufreq driver is active on this CPU
maximum transition latency: 4294.55 ms.
analyzing CPU 5:
no or unknown cpufreq driver is active on this CPU
maximum transition latency: 4294.55 ms.
analyzing CPU 6:
no or unknown cpufreq driver is active on this CPU
maximum transition latency: 4294.55 ms.
analyzing CPU 7:
no or unknown cpufreq driver is active on this CPU
maximum transition latency: 4294.55 ms.
The CPU driver appears to be missing.
When using the command: cpu-info
NanoPI R6S
cpu-info
Packages:
0: Unknown
Microarchitectures:
4x Cortex-A76
4x Cortex-A55
Cores:
0: 1 processor (0), ARM Cortex-A76
1: 1 processor (1), ARM Cortex-A76
2: 1 processor (2), ARM Cortex-A76
3: 1 processor (3), ARM Cortex-A76
4: 1 processor (4), ARM Cortex-A55
5: 1 processor (5), ARM Cortex-A55
6: 1 processor (6), ARM Cortex-A55
7: 1 processor (7), ARM Cortex-A55
NanoPC T6
cpu-info
Packages:
0: Unknown
Microarchitectures:
8x Cortex-A55
Cores:
0: 1 processor (0), ARM Cortex-A55
1: 1 processor (1), ARM Cortex-A55
2: 1 processor (2), ARM Cortex-A55
3: 1 processor (3), ARM Cortex-A55
4: 1 processor (4), ARM Cortex-A55
5: 1 processor (5), ARM Cortex-A55
6: 1 processor (6), ARM Cortex-A55
7: 1 processor (7), ARM Cortex-A55
My question is the following. Are the differences because of the dts file or because of the kernel.
Anyone else using a NanoPC T6 and would like to help fix this?
At the moment, I'm not using NanoPC T6 as a server yet, and I have the opportunity to experiment.
It will be used as a small server for graphics, tftp and others.
Is there any additional information needed.
Regards,