• <div id="0yoao"><tr id="0yoao"></tr></div>
    <dl id="0yoao"></dl>
  • <sup id="0yoao"></sup>
    <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>
  • Linux reset framework

    作者:wowo 发布于:2017-9-1 10:46 分类:电源管理子系统

    大家都知道,复杂IC内部有很多具有独立功能的?#24067;?#27169;块,例如CPU cores、GPU cores、USB控制器、MMC控制器、等等,出于功耗、稳定性等方面?#30446;?#34385;,有些IC在内部为这些?#24067;?#27169;块设计了复位信号(reset signals),软件可通过寄存器(一般1个bit控制1个?#24067;?#25511;制这些?#24067;?#27169;块的复位状态。

    Linux kernel为了方便设备驱动的编写,抽象出一个简单的软件框架----reset framework,为reset的provider提供统一的reset资源管理手段,并为reset的consumer(各个?#24067;?#27169;块)提供便捷、统一的复位控制API。

    reset framework的思路、实现和使用都非常简单、易懂(参考kernel有关的API--include/linux/reset-controller.h、include/linux/reset.h可知),不过麻雀虽小,五脏俱全,通过它可以加深对Linux kernel的设备模型、驱动框架、分层设计、provider/consumer等设计思想的理解,因此本文将对其进行一个简单的罗列和总结。

    阅读全文>>

    标签: Linux Kernel 内核 framework reset

    评论(0) 浏览(4721)

    系统休眠(System Suspend)和设备中断处理

    作者:linuxer 发布于:2017-4-21 12:02 分类:电源管理子系统

    本文主要描述系统休眠过程是如何和中断子系统交互的,全文的结构保持和内核文档中的power/suspend-and-interrupts.txt一致,当然,本质上?#37096;?#20197;说这份文档?#23884;詓uspend-and-interrupts.txt的翻译。

    阅读全文>>

    标签: suspend irq

    评论(24) 浏览(10746)

    Common Clock Framework系统结构

    作者:linuxer 发布于:2016-4-21 19:23 分类:电源管理子系统

    之前,wowo同学已经发表了关于CCF(Common Clock Framework)的三份文档,相信大家对CCF有一定的了解了,本文就是在阅读那三份文档的基础上,针对Linux 4.4.6内核的内核代码实现,记录自己对CCF的理解,并对CCF进行系统结构层面的归纳和整理。

    本文内容包括三个部分,第二章给出了整个CCF相关的block diagram图,随后在第三章对各个模块进行功能层面的描述。最后,第四章给出了各个block之间的接口描述。

    另外,在阅读CCF代码的过?#35752;校?#25105;准备用两份文档来分享我对CCF的理解。这一份是系统结构,另外一份是逻辑解析。

    阅读全文>>

    标签: framework clock common

    评论(9) 浏览(7529)

    Linux进程冻结技术

    作者:itrocker 发布于:2015-11-24 15:01 分类:电源管理子系统

    什么是进程冻结

    进程冻结技术(freezing of tasks)是指在系统hibernate或者suspend的时候,将用户进程和部分内核线?#35752;?#20110;“可控”的暂停状态。

    为什么需要冻结技术

    假设没有冻结技术,进程可以在?#25105;?#21487;调度的点暂停,而且直到cpu_down才会暂停并迁移。这会给系统带来很多问题:

    阅读全文>>

    标签: Linux freeze

    评论(38) 浏览(14796)

    linux cpufreq framework(5)_ARM big Little driver

    作者:wowo 发布于:2015-11-10 22:04 分类:电源管理子系统

    也许大家会觉得奇怪:为什么Linux kernel把对ARM big·Lttile的支持放到了cpufreq?#30446;?#26550;中?

    众所周知,ARM的big·Little架构,也称作HMP(具体可参考“Linux CPU core的电源管理(2)_cpu topology”中相关的介绍),通过在一个chip中封装两种不同类型的ARM core的方式,达到性能和功耗的平衡。这两类ARM Core,以cluster为单位,一类为高性能Core(即big core),一类为低性能Core(即Little core),通过它们的组合,可以满足不同应用场景下的性能和功耗要求,例如:非交互式的后台任务、或者流式多媒体的解码,可以使用低功耗的Little core处理;突发性的屏幕刷新,可以使用高性能的big core处理。

    那么问题来了,Linux kernel怎么支持这种框架呢?

    注1:本文很多理论性的表述,或多或少的理解并翻译自:“http://lwn.net/Articles/481055/?#20445;行?#36259;的读者可以自?#24615;?#35835;。

    注2:本文基于linux-3.18-rc4内核,其它版本内核可能会?#26434;?#19981;同。

    阅读全文>>

    标签: Linux ARM cpufreq hmp big little

    评论(35) 浏览(9590)

    Linux CPU core的电源管理(5)_cpu control及cpu hotplug

    作者:wowo 发布于:2015-9-19 21:39 分类:电源管理子系统

    由“Linux CPU core的电源管理(1)_概述”的描述可知,kernel cpu control位于“.\kernel\cpu.c”中,是一个承上启下的模块,负责屏蔽arch-dependent的实现细节,向上层软件提供控制CPU core的统一API(主要包括cpu_up/cpu_down等接口的实现)。本文将基于这些API,?#30001;系?#19979;,分析CPU core从启动到关闭的整个过程(主要是CPU hotplug),进一步理解系统运行过?#35752;蠧PU core电源管理相关的行为。

    注1:其实这一部分已经不属于电源管理的?#20923;?#20102;,而是系统级的软件行为(boot、调度、电源管理等等),之所以放到这里讲述,主要原因是,这些复杂行为的背后,目的只有一个----节电。因此,本文只会focus在CPU core power状态切换的过程上,涉及到得其它知识,如进程调度,只会一笔带过。

    阅读全文>>

    标签: Linux cpu hotplug cpu_up cpu_down smpboot

    评论(17) 浏览(21867)

    linux cpufreq framework(4)_cpufreq governor

    作者:wowo 发布于:2015-8-23 21:15 分类:电源管理子系统

    由“linux cpufreq framework(3)_cpufreq core”的描述可知,cpufreq policy负责设定cpu调频的一个大?#36335;段В?#32780;cpu的具体运行频率,则需要?#19978;?#24212;的cufreq governor决定(可自行调节频率的CPU除外,后面会再详细介绍)。那到?#36164;?#20040;是cpufreq governor?它的运行机制是什么?这就是本文要描述的内容。

    阅读全文>>

    标签: Linux governor cpufreq

    评论(32) 浏览(8755)

    linux cpufreq framework(3)_cpufreq core

    作者:wowo 发布于:2015-7-30 20:58 分类:电源管理子系统

    前?#27169;?a href="http://www.71402172.com/pm_subsystem/cpufreq_driver.html">Linux cpufreq framework(2)_cpufreq driver)从平台驱动工程师的?#23884;齲?#31616;单的介绍了编写一个cpufreq driver的大概步骤。但要更深入理解、更灵活的使用,必须理解其内部的实现逻辑。

    因此,本文将从cpufreq framework core的?#23884;齲?#23545;cpufreq framework的内部实现做一个简单的分析。

    阅读全文>>

    标签: Linux core cpufreq

    评论(10) 浏览(8700)

    Linux CPU core的电源管理(3)_cpu ops

    作者:wowo 发布于:2015-7-17 22:15 分类:电源管理子系统

    由“ARMv8-a架构简介”中有关的介绍可知,ARMv8(包括ARMv7的一些扩展)引入了Virtualization、Security等概念。在这些概念之下,传统的CPU boot、shutdown、reset、suspend/resume等操作,不再那么简单和单纯。因此,ARM将这些底层操作抽象为一些operations,在以统一的方式向上层软件提供API的同?#20445;?#21487;以根据不同的场景,有不同的实现。这就是本文要描述的cpu ops。

    注1:由“Linux CPU core的电源管理(1)_概述”的描述可知,cpu ops属于arch-dependent的部分,本文基于ARM64平台。

    阅读全文>>

    标签: Linux SMP cpu operations spin_table psci

    评论(19) 浏览(15028)

    Linux cpufreq framework(2)_cpufreq driver

    作者:wowo 发布于:2015-6-19 22:27 分类:电源管理子系统

    本文从平台驱动工程师的?#23884;齲?#20171;绍怎么编写cpufreq驱动。

    注1:本文基于linux-3.18-rc4内核,其它版本内核可能会?#26434;?#19981;同。

    阅读全文>>

    标签: Linux driver cpufreq

    评论(3) 浏览(9146)

    Copyright @ 2013-2015 蜗窝科技 All rights reserved. Powered by emlog
    连码三全中是什么
  • <div id="0yoao"><tr id="0yoao"></tr></div>
    <dl id="0yoao"></dl>
  • <sup id="0yoao"></sup>
    <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>
    <dl id="0yoao"></dl>
  • <sup id="0yoao"></sup>
    <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>