系统是如何知道 CPU 支持哪些频率并写入到 scaling available frequencies 配置文件中的呢? 如果我直接修改了 scaling available frequencies 文件是否会引起什么后果?
1
redsonic 2016-07-14 07:24:58 +08:00
scaling available frequencies 是只读的吧。 cpu 可用频率存在于 bios acpi 的一个表中。 bios 上电以后会侦测 cpu 的类型,选择对应的可用频率表。所以很多老主板要支持新 cpu 一般都是需要刷 bios 的。内核在变频时把 cpu stats 作为索引选择表中的具体项。
|
3
redsonic 2016-07-14 11:37:46 +08:00 1
没做过移动设备的底层开发,但之前了解一点, ARM 有一个 device tree ,写在 firmware 或 uboot 上面,描述板子上的硬件配置,和 x86 的 acpi 差不多但简单很多,可以看内核 arch/arm/boot/dts 里面有一些直接支持的 cpu 的 device tree :
/* * Device Tree Source for OMAP34xx/OMAP35xx SoC * * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/ * * This file is licensed under the terms of the GNU General Public License * version 2. This program is licensed "as is" without any warranty of any * kind, whether express or implied. */ #include "omap3.dtsi" / { cpus { cpu@0 { /* OMAP343x/OMAP35xx variants OPP1-5 */ operating-points = < /* kHz uV */ 125000 975000 250000 1075000 500000 1200000 550000 1270000 600000 1350000 >; clock-latency = <300000>; /* From legacy driver */ }; }; ......................... 好像编译内核的时候会将这个文本描述编译成二进制文件,然后烧进去。具体可能要问问搞 BSP 的人 最后内核通过一套 OPP 接口来访问它。 |