Rockchip平台常用资料

2024-09-22 09:27
277

一.CPU相关命令

1. 如何CPU定频


非大小核平台,执行如下命令:


/* 切换governor到userspace */

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


/* 设置216MHz */

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



大小核平台,执行如下命令:


/* 切换小核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



2. 如何查看当前CPU频率


非大小核平台,执行如下命令:


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

cat /sys/devices/system/cpu/cpufreq/policy0/scaling_cur_freq


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

cat /sys/kernel/debug/clk/armclk/clk_rate



大小核平台,执行如下命令:


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


cat /sys/devices/system/cpu/cpufreq/policy0/scaling_cur_freq /* 小核频率*/


cat /sys/devices/system/cpu/cpufreq/policy4/scaling_cur_freq /* 大核频率*/


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


cat /sys/kernel/debug/clk/armclkl/clk_rate /* 小核频率 */


cat /sys/kernel/debug/clk/armclkb/clk_rate /* 大核频率 */



3. 如何查看当前CPU电压


非大小核平台,执行如下命令:


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


cat /sys/kernel/debug/regulator/vdd_core/voltage


大小核平台,执行如下命令:


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


cat /sys/kernel/debug/regulator/vdd_core_l/voltage /* 小核电压*/


cat /sys/kernel/debug/regulator/vdd_core_b/voltage /* 大核电压*/



4. 如何单独调频调压


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


修改CPU定频,CPU调频通过 clock 的 debug 接口设置频率,举例如下:

/* 非大小核平台,比如RK3288,设置216MHz */:


echo 216000000 > /sys/kernel/debug/clk/armclk/clk_rate /* 设置频率*/


cat /sys/kernel/debug/clk/armclkl/clk_rate /* 查看频率 */


/* 大小核平台,比如 RK3399,小核设置 216MHz,大核设置 408Mhz */


echo 216000000 > /sys/kernel/debug/clk/armclkl/clk_rate /* 设置小核频率*/


cat /sys/kernel/debug/clk/armclkl/clk_rate /* 查看小核频率*/


echo 408000000 > /sys/kernel/debug/clk/armclkb/clk_rate /* 设置大核频率*/


cat /sys/kernel/debug/clk/armclkb/clk_rate /* 查看大核频率*/


CPU 调压,通过 regulator 的 debug 接口设置电压,举例如下:/*非大小核平台,比如 RK3288,设置 950mV,不一定是 vdd_core,根据实际的regulator配置修改*/


echo 950000 > /sys/kernel/debug/regulator/vdd_core/voltage /* 设置电压*/


cat /sys/kernel/debug/regulator/vdd_core/voltage /* 查看电压*/



/*大小核平台,比如 RK3399,小核设置 950mV,大核设置 1000mV,不一定是vdd_core_l 和vdd_core_b,根据实际的 regulator 配置修改*/


echo 950000 > /sys/kernel/debug/regulator/vdd_core_l/voltage /* 设置小核电压*/


cat /sys/kernel/debug/regulator/vdd_core_l/voltage /* 查看小核电压*/


echo 950000 > /sys/kernel/debug/regulator/vdd_core_b/voltage /* 设置大核电压*/


cat /sys/kernel/debug/regulator/vdd_core_b/voltage /* 查看大核电压*/


5. 如何查看CPU温度

cat /sys/class/thermal/thermal_zone0/temp


6. 如何查看频率电压表

cat /sys/kernel/debug/opp/opp_summary


7. 相关文档

  • Android SDK

    RKDocs\common\DVFS\Rockchip_Developer_Guide_CPUFreq_CN

  • Linux SDK

    docs\cn\Common\DVFS\Rockchip_Developer_Guide_CPUFreq_CN


二.GPU相关命令


1. 如何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


2. 如何查看当前GPU频率


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

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


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

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


3. 如何查看当前GPU电压


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

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


4. 如何单独调频调压

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


/* 关闭自动变频,不一定是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


5. 如何查看GPU利用率


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

cat /sys/devices/platform/fb000000.gpu/devfreq/fb000000.gpu/load


6. 如何查看GPU温度

cat /sys/class/thermal/thermal_zone1/temp


7. 相关文档

  • Android SDK RKDocs\common\DVFS\Rockchip_Developer_Guide_Devfreq_CN

  • Linux SDK docs\cn\Common\DVFS\Rockchip_Developer_Guide_Devfreq_CN



三.DDR相关命令


1. 查看DDR频率

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

cat /sys/class/devfreq/dmc/cur_freq


2. 如何DDR定频

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


cat /sys/class/devfreq/dmc/available_frequencies


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


3. 如何查看DDR带宽利用率

cat /sys/class/devfreq/dmc/load


4. 如何统计DDR带宽

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


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


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


5. 内存调试


查看内存信息

cat /proc/meminfo


查看虚拟内存使用情况

cat /proc/vmallocinfo


CMA调试需要先打开下面宏配置

CONFIG_CMA_DEBUGFS=y #打开调试文件节点

CONFIG_CMA_DEBUG=y #打印CMA日志信息

ls /sys/kernel/debug/cma/cma-reserved

alloc:用于从当前CMA块分配内存,单位:页

bitmap:标记当前CMA块各个页是否被分配,1表示已被申请,0表示未被申请free:用于当前CMA块释放内存,单位:页

order_per_bit:表示一个BIT所代表的页的阶数

used:当前被申请的页的个数,单位:页

base_pfn:当前CMA块首个页的页帧数

maxchunk:当前CMA块最大连续空闲页的数量,单位:页


查看DMA buffer信息

cat /sys/kernel/debug/dma_buf/bufinfo

cat /proc/rk_dmabuf/size


RV1106/RV1103专用分配器:RK-DMA-HEAP

cat /proc/rk_cma/rk-dma-heap-cma

cat /proc/rk_dma_heap/dma_heap_info


6. 内存压力测试

stressapptest -s 43200 -i 4 -C 4 -W --stop_on_errors -M 128

memtester 128m > /data/memtester_log.txt &



7. 相关文档

  • Android SDK

    RKDocs\common\DDR***

    RKDocs\common\MEMORY***

  • Linux SDK

    docs\cn\Common\DDR***

    docs\cn\Common\MEMORY***

四.NPU相关命令


目前Rockchip包含NPU的芯片分为RKNPU和RKNPU2

RKNPU包含:RK3399pro/RK1808/RV1126/RV1109

RKNPU2包含:RK3562/RK3566/RK3568/RK3588/RV1103/RV1106


1. 查看NPU频率

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

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

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


2. 如何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


3. NPU支持查询设置项


下面命令只支持RKNPU2平台驱动且驱动版本在 0.7.2 之后。


查询NPU利用率

cat /sys/kernel/debug/rknpu/load

cat /proc/debug/rknpu/load


查询NPU驱动版本

cat /sys/kernel/debug/rknpu/driver_version

cat /proc/debug/rknpu/driver_version


查询NPU电源状态

cat /sys/kernel/debug/rknpu/power


打开NPU电源

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


关闭NPU电源

echo off > /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


4. 相关资料

  • RKNPU开发资料

    工具: https://github.com/airockchip/rknn-toolkit

    Runtime: https://github.com/airockchip/rknpu

    https://github.com/airockchip/RK3399Pro_npu

  • RKNPU2开发资料

    工具: https://github.com/airockchip/rknn-toolkit2

    Runtime: https://github.com/airockchip/rknpu2

    rknn_model_zoo: https://github.com/airockchip/rknn_model_zoo

五.RGA相关命令


1. 查询RGA频率

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


2. 修改RGA频率

echo 400000000 > /sys/kernel/debug/clk/aclk_rga/clk_rate //400000000修改为想要修改的频率


3. RGA驱动版本查询

cat /sys/kernel/debug/rkrga/driver_version

cat /proc/rkrga/driver_version


4. 查询librga库版本号

  • Android系统

    strings vendor/lib64/librga.so |grep rga_api |grep version

  • Linux系统

    strings usr/lib/librga.so |grep rga_api |grep version


5. 开启librga日志

Android系统

setprop vendor.rga.log 1

logcat -s librga

setprop vendor.rga.log_level 6


日志等级:全打印(0)、DEFAULT(1)、DEBUG(3)、INFO(4)、WRANING(5)、ERROR(6)


Linux系统(librga 1.9.0版本以上)

export ROCKCHIP_RGA_LOG=1

export ROCKCHIP_RGA_LOG_LEVEL=6


日志等级:全打印(0)、DEFAULT(1)、DEBUG(3)、INFO(4)、WRANING(5)、ERROR(6)


6. RGA debug节点

cat /sys/kernel/debug/rkrga/debug

REG [DIS]

MSG [DIS]

TIME [DIS]

INT [DIS]

MM [DIS]

CHECK [DIS]

STOP [DIS]

help:

'echo reg > debug' to enable/disable register log printing.

'echo msg > debug' to enable/disable message log printing.

'echo time > debug' to enable/disable time log printing.

'echo int > debug' to enable/disable interruppt log printing.

'echo mm > debug' to enable/disable memory manager log printing.

'echo check > debug' to enable/disable check mode.

'echo stop > debug' to enable/disable stop using hardware


7. RGA负载查询

cat sys/kernel/debug/rkrga/load


8. RGA内存管理器查询

cat sys/kernel/debug/rkrga/mm_session


9. RGA任务请求查询

cat sys/kernel/debug/rkrga/request_manager


10. RGA硬件信息查询

cat sys/kernel/debug/rkrga/hardware


11. Dump运行数据


通过以下命令dump运行数据用于调试,可以通过调试节点配置实现将RGA接下来几帧数据写到指定目录下,如果没有该节点说明当前kernel不支持。


设置dump数据路径

echo /data/rga_image > sys/kernel/debug/rkrga/dump_path


设置dump数据帧数

echo 1 > sys/kernel/debug/rkrga/dump_image


12. 相关文档

  • Android SDK

    RKDocs\common\RGA***

  • Linux SDK

    docs\cn\Common\RGA***

    https://github.com/airockchip/librga/tree/main/docs

六.VPU相关命令


1. 查询VPU驱动版本

cat /proc/mpp_service/version


2. 查看VPU帧率

cat /proc/mpp_service/sessions-summary


3 查看频率

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


4. 修改频率

echo 600000000 > /proc/mpp_service/rkvenc/clk_core


5. 打开debug打印

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


6. 相关文档

  • Android SDK

    RKDocs\android\video\Rockchip_Android_Multimedia_FAQ_CN

    RKDocs\common\MPP\Rockchip_Developer_Guide_MPP_CN

  • Linux SDK

    docs\cn\Common\MPP\Rockchip_Developer_Guide_MPP_CN


七.打开性能模式

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





福州华芯创辉科技(hua-chips)是一家专注从事嵌入式方案设计与研发的高新企业,拥有一支多年从事嵌入式研发的团队。团队擅长全国产化替代方案设计,工业控制产品研发,AI产品研发等。产品所涉及的领域包括安防,电力,轨道交通,码头等。 已陆续推出了基于RK3588, RK3576, RK3568,RV1126 等芯片的多款产品,获得客户的一致认可。 我们也为客户提供专业的定制服务,如您有任何产品问题,设计问题都可以通过右侧的联系方式联系我们,我们会有专人为您进行解答。
产品展示
热门文章