
子类__DDR_DVFS
KrisFei
工作记录.
展开
-
[RK3288][Android6.0] DDR Frequency控制流程小结
Platform: RK3288OS: Android 6.0Kernel: 3.10.92DVFS即Dynamic Voltage and Frequency Scaling.有看到RK将DDR的控制也放在DVFS中,也就是说DDR会在系统运行时被根据不同的情况做出不同的频率调整以降低系统功耗.DVFS驱动在dvfs.c中,这里不做描述,只要关注调用的接口即可.相关文件:ddr_rk32.cdd...原创 2016-09-13 08:42:27 · 7780 阅读 · 18 评论 -
[RK3399][Android7.1] 调试笔记 --- DDR中的freq table
OS: Android 7.1 Board: Firefly-RK3399 Kernel: v4.4.55dmc devfreq对应的freq table位于rk3399-opp.dtsi,驱动中通过rockchip_dmcfreq_init_freq_table()解析。 dmc_opp_table: opp-table3 { compatible = ...原创 2018-01-24 15:57:36 · 1855 阅读 · 4 评论 -
[RK3399][Android7.1] 调试笔记 --- DDR中clock相关配置
OS: Android 7.1 Board: Firefly-RK3399 Kernel: v4.4.55把这个拎出来说是因为在调试ddr default rate的时候对这部分有些误区。dmc中clock相关的配置有: dmc: dmc { compatible = "rockchip,rk3399-dmc"; ...... ...原创 2018-01-24 15:38:39 · 4331 阅读 · 0 评论 -
[RK3399][Android7.1] 调试笔记 --- DDR工作频率的获取和设置
OS: Android 7.1 Board: Firefly-RK3399 Kernel: v4.4.55 之前有提到loader中有设置ddr频率为800MHz,当kernel中开启了ddr devfreq之后,驱动加载时会获取ddr默认频率。rockchip_dmc.c:static int rockchip_dmcfreq_probe(struct platform...原创 2018-01-24 13:55:31 · 8859 阅读 · 3 评论 -
[RK3399][Android7.1] 调试笔记 --- 提高DDR频率到933MHz
OS: Android 7.1 Board: Firefly-RK3399 Kernel: v4.4.55默认使用的是800MHz.kris@eco:~/firefly_rk3399$ g df u-boot/diff --git a/u-boot/tools/rk_tools/RKBOOT/RK3399MINIALL.ini b/u-boot/tools/rk_tools/...原创 2018-01-23 17:35:28 · 5231 阅读 · 1 评论 -
[RK3399][Android7.1] DDR动态频率调节驱动小结
OS: Android 7.1 Board: Firefly-RK3399 Kernel: v4.4.55devfreq介绍:rk3288平台上, gpu和ddr有自己的一套dvfs机制,而在rk3399平台,使用了系统的devfreq框架。devfreq 是内核开发者定义的一套支持动态调整设备频率和电压的的框架模型。它能有效的降 低该设备的功耗,同时兼顾其性能。 devf...原创 2018-01-22 19:16:09 · 9679 阅读 · 0 评论 -
[RK3399][Android7.1] 调试笔记 --- DDR动态调节功能开启
OS: Android 7.1 Board: Firefly-RK3399 Kernel: v4.4.55功能开启:sdk默认是关闭此功能的,如下三步使能。打开dmc(Dynamic Memory Controller)和dfi功能,dfi负责监测ddr loading.kris@eco:~/firefly_rk3399$ g df kernel/diff --g...原创 2018-01-22 18:01:48 · 5570 阅读 · 0 评论 -
[RK3399][Android7.1] 调试笔记 --- 查看当前DDR的工作频率
OS: Android 7.1 Board: Firefly-RK3399 Kernel: v4.4.55sdk默认没有开启ddr动态频率调节,所以默认就是uboot中的工作频率,当前就是800MHz. 查看方法: rk3399_firefly_edp_box:/ # cat sys/kernel/debug/clk/clk_summary | grep sclk_ddrc ...原创 2018-01-22 17:25:16 · 4516 阅读 · 0 评论 -
[RK3399][Android7.1] 调试笔记 --- DDR的开机频率和大小
OS: Android 7.1 Board: Firefly-RK3399 Kernel: v4.4.55rk的ddr驱动是固定在bin文件中的,位于 u-boot/tools/rk_tools/bin/rk33 目录下:具体使用哪个bin文件由 u-boot/tools/rk_tools/RKBOOT/RK3399MINIALL.ini 决定[LOADER_OPTIO...原创 2018-01-19 11:16:27 · 6060 阅读 · 7 评论 -
[RK3288][Android6.0] DRAM中的Channel/RANK/BANK
Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92图片摘自 圖解RAM結構與原理,系統記憶體的Channel、Chip與BankDRAM中的术语层级关系: Channel>DIMM>Rank>Chip>Bank>Row/ColumnChannel: 每个Channel需对应单独的控制器 DIMM: 可以认为是PC上一个插槽上...原创 2017-11-21 14:52:40 · 2391 阅读 · 0 评论 -
[RK3288][Android6.0] GPU DVFS控制策略小结
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92mali_device_driver 分为两个部分 : platform_dependent_part 和 common_parts, 参见 mali_kbase_config_rk.c 开头部分的注释.gpu dvfs核心控制在mali_kbase_dvfs.c中.s_mali_dvfs_lev原创 2017-09-22 09:31:51 · 2591 阅读 · 1 评论 -
[RK3399][Android7.1] 新调度策略Energy Aware Scheduling
在看rk3399的cpu freq文档有看到一个新的调度策略,叫做Energy Aware Scheduling (EAS).EAS由一系列不同组件组成,由ARM和Linaro一起开发.默认情况下CPU Frequency governor, CPU Idle governor, CPU Scheduler 它们都是独立工作的,可是他们的变化对相互之间都有影响.EAS 的目的就是结...原创 2017-09-22 16:03:12 · 2923 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- CPU默认调度策略
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92CPU的频率调节策略: 1. Performance. 不考虑耗电,只用最高频率。 2. Interactive. 直接上最高频率,然后看CPU负荷慢慢降低。 3. Powersave. 通常以最低频率运行,流畅度会受影响,一般不会用这个吧! 4. Userspace. ...原创 2017-09-14 16:49:50 · 4705 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- 读取GPU当前频率方法
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 root@rk3288:/ # cat /sys/devices/ffa30000.gpu/clock current_gpu_clk_freq : 416666 KHz available_freqs : 99000, 198000, 297000, 417000, 48000原创 2017-09-18 14:57:26 · 5907 阅读 · 1 评论 -
[RK3288][Android6.0] 调试笔记 --- CPU使用的频率表
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92系统中有三张CPU相关的频率表:1. rockchip-cpufreq.c:/* Frequency table index must be sequential starting at 0 */static struct cpufreq_frequency_table default_freq原创 2017-09-19 10:31:14 · 4246 阅读 · 1 评论 -
[RK3288][Android6.0] CPU频率调度策略小结
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92CPU的频率调节模式: 1. Performance. 不考虑耗电,只用最高频率。 2. Interactive. 直接上最高频率,然后看CPU负荷慢慢降低。 3. Powersave. 通常以最低频率运行,流畅度会受影响,一般不会用这个吧! 4. Userspace. 可原创 2017-09-18 11:03:38 · 6161 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- CPU温度降频控制
rk3288平台关于温度调节cpu频率有个bug. 在rk3288.dtsi中,有:temp-limit-enable = <1>;target-temp = <80>;min_temp_limit = <48>;当温度升到超过80°时,随着温度升高,cpu频率最终会降到min_temp_limit的值,每次降的level按照下表执行 ...原创 2017-09-15 13:38:28 · 10870 阅读 · 7 评论 -
[RK3288][Android6.0] 调试笔记 --- 读取当前DDR频率方法
Platform: RockchipOS: Android 6.0Kernel: 3.10.92ddr和gpu的clock都受dvfs模块管控, 所以只要执行:root@rk3288:/ # cat /sys/dvfs/dvfs_tree kernel log中打印出来:[ 2264.928913] DVFS TREE:[ 2264.928977] |[ 2原创 2017-05-11 16:07:02 · 8034 阅读 · 9 评论 -
[RK3288][Android6.0] 调试笔记 --- 温度对GPU频率的影响
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92有两处温度设定会对GPU有影响:rk3288.dtsi clk_gpu_dvfs_table: clk_gpu { operating-points = < /* KHz uV原创 2017-09-21 16:54:23 · 3022 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- GPU DVFS的控制开关
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92GPU的DVFS不是在dts而是在驱动中直接控制并且默认打开的.DVFS控制核心函数是mali_dvfs_event_proc(), 放在队列中处理,而队列是否开启受变量dvfs->is_enabled的控制.int kbase_platform_dvfs_event(struct kbase_d原创 2017-09-21 17:17:28 · 3730 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- 播放GIF动画卡顿问题
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92现象: 偶发会遇到播放GIF动画会卡顿.原因一: CPU开启了温度检测,过热会导致CPU降频. 解决方法: 物理降温,如加散热片,风扇.原因二: GPU DVFS降频.可以看到中间有一次降到200M了. root@rk3288:/ # cat /sys/devices/ffa3000原创 2017-09-22 15:27:06 · 2309 阅读 · 0 评论 -
[RK3399][Android7.1] 调试笔记 --- 提高DDR内存频率之后刷机不稳定
Platform: RK3399OS: Android 7.1Kernel: v4.4.83现象:Ubuntu上使用upgrade_tool刷update.img和system.img失败Windows用Android Tool刷update.img失败。Ubuntu上的错误提示如下:Rockusb>di -s system.imgDownload system star...原创 2019-01-22 14:40:35 · 2542 阅读 · 6 评论