A311D温度控制

以下根据A311D的降温策略理解Linux Thermal架构

Linux Thermal驱动架构


Thermal框架分为四部分:

  • Thermal Driver
    负责将获取温度的设备,注册成struct thermal_zone_device,比如Temp Sensor、NTC等;
  • Thermal Governor
    负责如何控制温度,注册成struct thermal_governor,比如Step Wise、Bang Bang等;
  • Thermal Cooling
    负责将控制温度设备,注册成struct thermal_cooling_device,比如风扇、CPU、DDR、GPU等;
  • Thermal Core
    核心使Thermal Driver、Thermal Governor、Thermal Governor相互绑定,同时提供了用户空间sysfs节点等通用功能;

所以Thermal的工作流程是通过Thermal Driver获取温度,然后经过Thermal Governor决策,最后通过Thermal Cooling执行降温。

A311D温度控制


  • Thermal Driver (获取温度设备 thermal_zone)

    • A311d有两个温度传感器
      thermal zone
    • 一个是soc温度传感器,另一个是ddr温度传感器
  • Thermal Cooling (执行降温设备 cooling_device)

    • A311d有5个降温设备
      cooling device
    • 这几个降温方式分别是GPU降频、GPU掉核、CPU降频、CPU掉核
  • Thermal Governor(降温策略)

    • A311D thermal_zone 支持多种降温算法
      governor
    • 这里介绍下内核中的几种温度控制策略:
      governor
接下来分析A311D CPU降温行为:
  • 传感器温度达到设置的温度触发点后 -> 执行降温算法 -> 降温算法调用底层降温设备提供的状态切换接口进行状态切换
  • 上面看到A311D注册了5个降温设备,其中我们重点分析cpufreq_cool和cpucore_cool,它们分别是降频降温和掉核降温
  • 注册cpufreq_cool的驱动文件为:drivers/thermal/cpu_cooling.c
  • 注册cpucore_cool的驱动文件为:drivers/amlogic/thermal/cpucore_cooling.c
  • 根据文件中的代码行为可判断它们分别为CPU频率变化和CPU核个数变化
  • 其中两个cpufreq_cool设备对应两个cluster:cluster0包括两个小核,cluster1包括4个大核
  • cpucore_cool没有cluster,所以它包含6个核
  • DTS 中cooling device:
    DTS
  • DTS中设置的温度触发节点
    dts thermal zone
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值