瑞芯微 RK 系列 RK3588 CPU、GPU、NPU、VPU、RGA、DDR 状态查看与操作

CPU

查看当前CPU频率

/* 方法一:cpufreq 的用户态接口 */

watch -n 1 cat /sys/devices/system/cpu/cpufreq/policy0/scaling_cur_freq /* 小核频率*/

watch -n 1 cat /sys/devices/system/cpu/cpufreq/policy4/scaling_cur_freq /* 大核频率*/

/* 方法二:clock debug 接口 */

watch -n 1 cat /sys/kernel/debug/clk/armclkl/clk_rate /* 小核频率 */

watch -n 1 cat /sys/kernel/debug/clk/armclkb/clk_rate /* 大核频率 */

查看当前CPU电压

/* 不一定是vdd_core_l和vdd_core_b,根据实际的regulator配置修改*/  

watch -n 1 cat /sys/kernel/debug/regulator/vdd_core_l/voltage /* 小核电压*/

watch -n 1 cat /sys/kernel/debug/regulator/vdd_core_b/voltage /* 大核电压*/

查看CPU温度

watch -n 1 cat /sys/class/thermal/thermal_zone0/temp

查看频率电压表

watch -n 1 cat /sys/kernel/debug/opp/opp_summary

CPU定频

/* 切换小核governor到userspace */

echo userspace > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor

/* 设置小核216MHz */

echo 216000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_setspeed

/* 切换大核governor到userspace */

echo userspace > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor

/* 设置大核408MHz */

echo 408000 > /sys/devices/system/cpu/cpufreq/policy4/scaling_setspeed

GPU

查看当前GPU频率

/* 方法一:devfreq的用户态接口,不一定是ff400000.gpu,根据不同的平台修改*/

watch -n 1 cat /sys/class/devfreq/fb000000.gpu/cur_freq

/* 方法二:clock debug接口,不一定是aclk_gpu,根据实际的clock配置修改*/

watch -n 1 cat /sys/kernel/debug/clk/scmi_clk_gpu/clk_rate

查看当前GPU电压

/* 不一定是vdd_logic,根据实际的regulator配置修改 */

watch -n 1 cat /sys/kernel/debug/regulator/vdd_gpu_s0/voltage

查看GPU利用率

/*不一定是fb000000.gpu,根据不同的平台修改 */

watch -n 1 cat /sys/devices/platform/fb000000.gpu/devfreq/fb000000.gpu/load

查看GPU温度

watch -n 1 cat /sys/class/thermal/thermal_zone1/temp

输出:

Every 1.0s: cat /sys/class/thermal/thermal_zone1/temp                                                                                                                    lubancat: Sat Dec 28 16:40:00 2024

30538

GPU定频

/* 切换到userspace,不一定是ff400000.gpu,根据不同的平台修改*/

echo userspace > /sys/class/devfreq/ff400000.gpu/governor

/* 设置400MHz */

echo 400000000 > /sys/class/devfreq/ff400000.gpu/userspace/set_freq

/* 查看当前频率 */

cat /sys/class/devfreq/ff400000.gpu/cur_freq

单独调频调压

注意:升频需要先调压再调频, 降频需要先调频再调压

/* 关闭自动变频,不一定是ff400000.gpu,根据不同的平台修改 */

echo userspace > /sys/class/devfreq/ff400000.gpu/governor

/* 调频,不一定是aclk_gpu,根据实际的clock配置修改 */

echo 400000000 > /sys/kernel/debug/clk/aclk_gpu/clk_rate

cat /sys/kernel/debug/clk/aclk_gpu/clk_rate

/* 调压,不一定是vdd_logic,根据实际的regulator配置修改 */

echo 1000000 > /sys/kernel/debug/regulator/vdd_logic/voltage

cat /sys/kernel/debug/regulator/vdd_logic/voltage

NPU

查看NPU频率

cat /sys/class/devfreq/fdab0000.npu/cur_freq

cat /sys/kernel/debug/clk/clk_summary | grep npu

查询NPU利用率

watch -n 1 cat /sys/kernel/debug/rknpu/load

输出如下:

Every 1.0s: cat /sys/kernel/debug/rknpu/load                                                                                                                             lubancat: Sat Dec 28 16:44:42 2024

NPU load:  Core0:  0%, Core1:  0%, Core2:  0%,

NPU定频

/*不一定是fdab0000.npu,根据不同的平台修改 */

echo userspace > /sys/class/devfreq/fdab0000.npu/governor

echo 1000000000 > /sys/class/devfreq/fdab0000.npu/userspace/set_freq

cat /sys/class/devfreq/fdab0000.npu/cur_freq

查询NPU驱动版本

cat /sys/kernel/debug/rknpu/version

查询NPU电源状态

cat /sys/kernel/debug/rknpu/power

打开/关闭NPU电源

echo on/of > /sys/kernel/debug/rknpu/power

查询NPU工作电压

cat /sys/kernel/debug/rknpu/volt

查询 NPU 动态开关电源,电源延迟关闭时间(单位: ms)

cat /sys/kernel/debug/rknpu/delayms

设置 NPU 动态开关电源,电源延迟关闭时间(单位: ms)

echo 2000 > /sys/kernel/debug/rknpu/delayms

VPU

查看VPU是否有工作

# 启动调试

echo 0x0100 > /sys/module/rk_vcodec/parameters/mpp_dev_debug

# 查看输出

dmesg -w

如果能看到如下信息,说明正在工作:

[  220.830446] rk_vcodec: fdbd0000.rkvenc-core:0 session 11179:1 time: 3644 us
[  220.873302] rk_vcodec: fdbd0000.rkvenc-core:0 session 11179:1 time: 3646 us
[  220.889479] rk_vcodec: fdbd0000.rkvenc-core:0 session 11179:1 time: 3595 us
[  220.928104] rk_vcodec: fdbd0000.rkvenc-core:0 session 11179:1 time: 3595 us
[  220.966875] rk_vcodec: fdbd0000.rkvenc-core:0 session 11179:1 time: 3605 us
[  220.993482] rk_vcodec: fdbd0000.rkvenc-core:0 session 11179:1 time: 3633 us
[  221.035330] rk_vcodec: fdbd0000.rkvenc-core:0 session 11179:1 time: 3638 us
[  221.063925] rk_vcodec: fdbd0000.rkvenc-core:0 session 11179:1 time: 3645 us

查询VPU驱动版本

cat /proc/mpp_service/version

查看VPU帧率

watch -n 1 cat /proc/mpp_service/sessions-summary

运行时才会显示下面的数据

session iova range dump:
   0: 0x00000000ffe00000..0x00000000ffffdfff (      2040 KiB)
   1: 0x00000000ff3c0000..0x00000000ff5bdfff (      2040 KiB)
   2: 0x00000000fdfa0000..0x00000000fe19dfff (      2040 KiB)
   3: 0x00000000fe690000..0x00000000feb75fff (      5016 KiB)
   4: 0x00000000febb0000..0x00000000feec2fff (      3148 KiB)
   5: 0x00000000ff5f0000..0x00000000ff902fff (      3148 KiB)
   6: 0x00000000feb80000..0x00000000feba1fff (       136 KiB)
   7: 0x00000000ff5c0000..0x00000000ff5e1fff (       136 KiB)
session: pid=40224 index=3
 device: fdbd0000.rkvenc-core
 memory: 17 MiB
------------------------------------------------------------------------------------------------------------
| session|  device|   width|  height|  format|  fps_in| fps_out| rc_mode| bitrate|gop_size| profile|
|       3|  RKVENC|    1920|    1080|    h264|   65535|   65535|   fixqp| 2000000|     100|    high|

修改频率

echo 600000000 > /proc/mpp_service/rkvenc/clk_core

打开性能模式

echo performance | tee $(find /sys/ -name *governor);

RGA

查询RGA频率

cat /sys/kernel/debug/clk/clk_summary | grep rga //查询rga频率,其中的aclk的频率

结果如下

		hclk_rga3_0           0        4        0   198000000          0     0  50000
		hclk_rga2             0        2        0   198000000          0     0  50000
	 hclk_rga3_root           0        1        0   198000000          0     0  50000
		hclk_rga3_1           0        4        0   198000000          0     0  50000
  clk_rga3_0_core             0        1        0   750000000          0     0  50000
  clk_rga2_core               0        1        0   750000000          0     0  50000
	 aclk_rga3_0              0        4        0   750000000          0     0  50000
	 aclk_rga2                0        2        0   750000000          0     0  50000
  aclk_rga3_root              0        1        0   750000000          0     0  50000
	 aclk_rga3_1              0        4        0   750000000          0     0  50000
  clk_rga3_1_core             0        1        0   750000000          0     0  50000

RGA驱动版本查询

cat /sys/kernel/debug/rkrga/driver_version

查询librga库版本号

strings /usr/lib/aarch64-linux-gnu/librga.so | grep rga_api | grep version

RGA负载查询

watch -n 1 cat /sys/kernel/debug/rkrga/load

RGA内存管理器查询

watch -n 1 cat /sys/kernel/debug/rkrga/mm_session

RGA任务请求查询

watch -n 1 cat /sys/kernel/debug/rkrga/request_manager

打印如下

rga internal request dump:
request count = 1
===============================================================
------------------ request: 24414 ------------------
         set cmd num: 1, finish job: 0, failed job: 0, flags = 0x0, ref = 1
         cmd dump:

                 rotate_mode = 1
                 src: y = d uv = 0 v = c99000 aw = 3840 ah = 2160 vw = 3840 vh = 3440
                 src: xoff = 0, yoff = 0, format = 0x1e, rd_mode = 1
                 dst: y=e uv=0 v=1fa400 aw=1920 ah=1080 vw=1920 vh=1080
                 dst: xoff = 0, yoff = 0, format = 0xa, rd_mode = 1
                 mmu: mmu_flag=80000521 en=1
                 alpha: rop_mode = 0
                 yuv2rgb mode is 0
                 set core = 3, priority = 0, in_fence_fd = -1

RGA硬件信息查询

cat /sys/kernel/debug/rkrga/hardware

打印如下

===================================
rga3_core0, core 1: version: 3.0.76831
input range: 68x2 ~ 8176x8176
output range: 68x2 ~ 8128x8128
scale limit: 1/8 ~ 8
byte_stride_align: 16
max_byte_stride: 32768
csc: RGB2YUV 0xf YUV2RGB 0xf
feature: 0x4
mmu: RK_IOMMU
-----------------------------------
rga3_core1, core 2: version: 3.0.76831
input range: 68x2 ~ 8176x8176
output range: 68x2 ~ 8128x8128
scale limit: 1/8 ~ 8
byte_stride_align: 16
max_byte_stride: 32768
csc: RGB2YUV 0xf YUV2RGB 0xf
feature: 0x4
mmu: RK_IOMMU
-----------------------------------
rga2, core 4: version: 3.2.63318
input range: 2x2 ~ 8192x8192
output range: 2x2 ~ 4096x4096
scale limit: 1/16 ~ 16
byte_stride_align: 4
max_byte_stride: 32768
csc: RGB2YUV 0x3 YUV2RGB 0x7
feature: 0x205f
mmu: RGA_MMU
-----------------------------------

DDR

查看DDR频率

cat /sys/class/devfreq/dmc/cur_freq

DDR定频

echo userspace > /sys/class/devfreq/dmc/governor

cat /sys/class/devfreq/dmc/available_frequencies

echo 1560000000 > /sys/class/devfreq/dmc/userspace/set_freq

查看DDR带宽利用率

cat /sys/class/devfreq/dmc/load

统计DDR带宽

/* 需要找FAE申请DDR带宽统计工具rk-msch-probe,包含32位和64位对应不同平台 */

./rk-msch-probe-for-user-32bit -c rv1126 -f 924

/* -c rv1126 表示当前芯片为1126, -f 表示当前频率为 924M ,可通过-h 参考具体的命令 */

查看内存信息

cat /proc/meminfo

查看虚拟内存使用情况

cat /proc/vmallocinfo

查看DMA buffer信息

watch -n 1 cat /sys/kernel/debug/dma_buf/bufinfo

猜你喜欢

转载自blog.csdn.net/Leon_Chenl/article/details/144791617
今日推荐