随笔分类 - PMIC
摘要:概要 高通充电平台不论是线性充电还是开关充电,充电类型识别均是基于《Battery Charging Specification Revisions 1.2》(俗称BC1.2)规范基础上进行设计。下面主要介绍在开发过程中几种基础的充电类型。 充电类型 标准下行接口(SDP : Standard Do
阅读全文
摘要:1. Linux pm qos PM QOS表示linux 的电源管理服务质量 linux使用 suspned/resume 机制在系统不使用的时候, 整体进入休眠状态,以节省电源,后面又引入更细粒度的runtime PM, 在设备不使用时, 单独suspend一个设备 不管是generic PM还
阅读全文
摘要:近来集中遇到不少user抱怨手机卡顿的case,能引起系统卡顿的原因可以成千上万,但最核心的起因通常避不开CPU被限制频率或多核CPU部分cpu被关核了。 本文将从几个工作中遇到的实际案例出发(只分析与CPU调控有关的案例),先尽可能地还原出完整的案发现场,再分析具体情况下CPU频率和核心的变化情况
阅读全文
摘要:1. 前言 在当前移动处理芯片性能过剩的时代,用户对手机的温度要求越来越高,更加苛刻的标准,最好永不发热。在这种背景下,温控领域的工作变得日益重要,众多大厂都在不断魔改和优化他们的温控技术。今天我们也带大家看看温控技术的其中一部分:Thermal Engine。下面,我们将基于 GitHub 上的源
阅读全文
摘要:一、简介 当今的复杂SoC由多个子模块协同工作组成。在执行各种用例的操作系统中,并非SoC中的所有模块都需要始终保持最高性能。为方便起见,将SoC中的子模块分组为域,从而允许某些域以较低的电压和频率运行,而其他域以较高的电压/频率对运行。 对于这些设备支持的频率和电压对,我们称之为OPP(Opera
阅读全文
摘要:前不久在高通 SDM450 平台接触了 voter 机制(投票机制)。最近终于得空,结合一个问题简单研究了一下。现将研究流程简单记录一下,由于时间有限,所以是实用为目的,没有做详细的分析,不过结合着这篇分析和源码一起参考,应该能快速地应用 voter 做一些事情。voter 第一步是找到 voter
阅读全文
摘要:1. 前言 在计算机系统中,CPU的功能是执行程序,总结起来就是我们在教科书上学到的:取指、译码、执行。那么问题来了,如果没有程序要执行,CPU要怎么办?也许您会说,停掉就是了啊。确实,是要停掉,但何时停、怎么停,却要仔细斟酌,因为实际的软硬件环境是非常复杂的。 我们回到Linux kernel上,
阅读全文
摘要:1. 前言 也许大家会觉得奇怪:为什么Linux kernel把对ARM big·Lttile的支持放到了cpufreq的框架中? 众所周知,ARM的big·Little架构,也称作HMP(具体可参考“Linux CPU core的电源管理(2)_cpu topology”中相关的介绍),通过在一个
阅读全文
摘要:1. 前言 前面两篇clock framework的分析文章,分别从clock consumer和clock provider的角度,介绍了Linux kernel怎么管理系统的clock资源,以及device driver怎么使用clock资源。本文将深入到clock framework的内部,分
阅读全文
摘要:1. 前言 本文接上篇文章,从clock driver的角度,分析怎么借助common clock framework管理系统的时钟资源。换句话说,就是怎么编写一个clock driver。 由于kernel称clock driver为clock provider(相应的,clock的使用者为clo
阅读全文
摘要:1. 前言 common clock framework是用来管理系统clock资源的子系统,根据职能,可分为三个部分: 1)向其它driver提供操作clocks的通用API。 2)实现clock控制的通用逻辑,这部分和硬件无关。 3)将和硬件相关的clock控制逻辑封装成操作函数集,交由底层的p
阅读全文
摘要:1. 前言 本文是分析cpufreq framework之前的一篇前置文章,用于介绍Linux电源管理中的Operating Performance Point (OPP)接口。 OPP是一个单纯的软件library,用于归纳、管理各个硬件模块的、可工作的{频率}/ {电压}组合。它不涉及任何硬件,
阅读全文
摘要:/sys/class/regulator下有所有的regular,如 每个节点有如下的属性 cpu0-cpu 使用者名字 device max_microvolts 最大电压 microvolts min_microvolts 最小电压 name 电源名字 num_users 当前的使用者数量(us
阅读全文
摘要:1 什么是进程冻结 进程冻结技术(freezing of tasks)是指在系统hibernate或者suspend的时候,将用户进程和部分内核线程置于“可控”的暂停状态。 2 为什么需要冻结技术 假设没有冻结技术,进程可以在任意可调度的点暂停,而且直到cpu_down才会暂停并迁移。这会给系统带来
阅读全文
摘要:1. 前言 per-device PM QoS是针对指定设备的QoS framework,背后的思考如下: 1)resume_latency 在Runtime PM的框架下,当device的引用计数减为0的时候,RPM会suspend该device。不过,device进入suspend状态以及从su
阅读全文
摘要:1. 前言 回顾上一篇文章(Linux PM QoS framework(1)_概述和软件架构),PM QoS framework抽象出4个系统级别的QoS constraint(统称为PM QoS class),分别是cpu&dma latency、network latency、network
阅读全文
摘要:1. 前言 QOS为Quality Of Service(服务质量)的简称,对PM QoS而言,表示Linux kernel电源管理相关的服务质量。那到底什么是服务质量呢? 我们知道,Linux PM的主要功能,是节省功耗,但同时,会付出一定的性能代价,例如延迟(latency)增加、吞吐量(thr
阅读全文
摘要:本章节分析governor之一的step_wise。 1、基本术语概念 在介绍之前,先介绍几个术语概念来帮助大家理解: 1.1 trip point 可以理解为一个阈值吧,每一个温度区间的阈值可以理解为一个trip point。 1.2 cooling state 可以认为是温控调节的下一目标的索引
阅读全文
摘要:IPA(Intelligent PowerAllocation)是由ARM开发的符合linux内核thermalframework的governor,代码中的名字为power_allocator,旨在满足温控效果的条件下最大化性能。 IPA背景 熟悉ARM终端芯片系统的开发人员,应该对EAS(Ene
阅读全文
摘要:1. 前言 本文从regulator driver的角度,描述怎样基于regulator framework编写regulator驱动。同时,以此为契机,学习、理解regulator有关的物理特性,以便能够更好的使用它们。 2. regulator driver的实现步骤 2.1 确定系统中regu
阅读全文


浙公网安备 33010602011771号