linux设备acpi表配置,Linux acpi off简介
Linux acpi off – the Advanced Configuration & Power Interface. ACPI是OS,BIOS和硬件之间的抽象层。它允许OS和平台独立的发展,比如新的OS可以控制老的平台,老的OS也可以控制新的平台而不需要额外的修改。
ACPI寄存器,描述了和ACPI相关的寄存器。OS可以直接从ACPI表中取得这些寄存器的信息,因此不必了解具体的硬件配置。
AML代码,一种类C的代码。由BIOS提供,OS的AML解释器(在Linux中叫ACPI CA)解释执行这些代码。这是ACPI抽象层的关键,下面会详细介绍。
配置信息,ACPI包含的配置信息很多,比如多处理器配置信息(MADT)、NUMA配置信息(SRAT、SLIT)、高精度定时器(HPET)等。
AML代码是抽象的关键。为了消除平台相关性,BIOS把平台相关的操作用AML代码来实现。OS不需要知道平台细节,它只是解释执行这些代码,在解释执行的过程中平台相关的操作就被执行了。ACPI规范定义了一些标准的AML函数,OS解释执行一个这样的标准函数就可以实现特定的功能。举个例子:
Scope (_SB.PCI0.LPC)
{
OperationRegion (LPCS, PCI_Config, 0x00, 0x0100)
Field (LPCS, AnyAcc, NoLock, Preserve)
{
Offset (0x60),
PIRA, 8,
}
}
Device (LNKA)
{
Method (_DIS, 0, NotSerialized)
{
Or (\_SB.PCI0.LPC.PIRA, 0x80, \_SB.PCI0.LPC.PIRA)
}
}
比如我们想禁止LNKA设备,Linux acpi off规范定义了OS必须执行此设备的_DIS函数。从硬件的角度来讲,禁止LNKA设备需要将某个PCI设备的配置空间的寄存器0×60的最高位置上。OS不需要知道硬件的细节,它解释执行_DIS函数即可。上面的代码就是AML代码,由BIOS提供,语句‘Or (\_SB.PCI0.LPC.PIRA, 0×80, \_SB.PCI0.LPC.PIRA)’实际上就是给寄存器\_SB.PCI0.LPC.PIRA置上最高位, 而PIRA就是PCI设备LPC的配置空间的寄存器0×60。从此段代码我们可以明显的看出BIOS以AML代码的形式隐藏(抽象)了硬件的细节,从而使得OS看到的是一个平台无关的硬件。
更多的Linux acpi off预定义的函数可以在ACPI规范中找到,可以在http://www.acpi.info下载最新的规范。
Linux acpi off实现中使用的AML解释器是ACPICA -the ACPI Component Architecture. 可以从http://www.intel.com/technology/iapc/acpi/downloads.htm得到。它包含一个AML解释器(Linux kernel包含了这个解释器,很多其他OS也是如此,比如BSD、opensolaris等),一个编译器(将ACPI Source Language (ASL)编译成AML代码)和一些测试工具。
最新的Linux acpi off的代码可以使用git在http://www.kernel.org/git/?p=linux/kernel/git/lenb/linux-acpi-2.6.git得到。
linux设备acpi表配置,Linux acpi off简介相关推荐
- linux设备acpi表配置,linux ACPI 知识
为什么学习ACPI ACPI是Intel(i386,x86_64,IA64)平台的标准固件规范,绝大部分OS需要从BIOS得到的信息都可以从ACPI得到,并且现在的趋势是未来的任何新的特性相关的信息都 ...
- linux多路径策略配置,linux 多路径配置
首先介绍一下什么是多路径(multi-path)?先说说多路径功能产生的背景,在多路径功能出现之前,主机上的硬盘是直接挂接到一个总线(PCI)上,路径是一对一的关系,也就是一条路径指向一个硬盘或是存储 ...
- linux设备驱动程序调试方法,Linux设备驱动程序学习(2)-调试技术
Linux设备驱动程序学习(2)-调试技术 Linux设备驱动程序学习(2)-调试技术 今天进入<Linux设备驱动程序(第3版)>第四章调试技术的学习. 一.内核中的调试支持 在前面已经 ...
- linux 设备驱动阻塞,深入浅出:Linux设备驱动中的阻塞和非阻塞I/O
今天写的是Linux设备驱动中的阻塞和非阻塞I/0,何谓阻塞与非阻塞I/O?简单来说就是对I/O操作的两种不同的方式,驱动程序可以灵活的支持用户空间对设备的这两种访问方式. 一.基本概念: 阻塞操作 ...
- linux下网卡参数配置,linux网卡配置参数
配置linux网卡时参数记录. 参数 说明 NAME 网卡设备的别名 DEVICE 网卡的设备名称 ONBOOT yes:开机自动启用网络连接 no:不自动启用 TYPE 网络类型,常见的Ethern ...
- linux lighttpd php,安装配置Linux+lighttpd+mysql+PHP(FastCGI)
安装配置Linux+lighttpd+mysql+PHP(FastCGI) . 分类: Linux-web服务器搭建 2009-08-28 17:38 3758人阅读 评论(0) 收藏 举报 安装配置 ...
- linux服务器检查硬件配置,linux怎么查看服务器硬件配置
你们知道怎么查看服务器的硬件配置信息吗?下面是学习啦小编带来的关于linux怎么查看服务器硬件配置的内容,欢迎阅读! linux怎么查看服务器硬件配置? 1.查看机器所有硬件信息: dmidecode ...
- linux设备和驱动注册,Linux驱动第五篇-----驱动注册和生成设备节点
加载驱动的指令是:insmod xx.ko 查看驱动的指令是: lsmod 卸载驱动的指令是:rmmod xx 在include/linux/platform_device.h这个文件中定义了平台驱动 ...
- java调用linux设备,使用Java调用Linux系统命令
有时候,咱们在使用Java作一些操做时,可能性能上并不能达到咱们满意的效果,就拿最近工做中的遇到的一个场景来讲,须要对大量的小文件进行合并成一个大文件.java 最开始的想法是使用Java作文件操做, ...
最新文章
- 微软最新论文解读 | 基于预训练自然语言生成的文本摘要方法
- AI Studio 学习 Go 豆瓣电影爬取
- Docker - Compose 使用说明、详解docker-compose
- C++基础之this指针的详解
- php 函数 中文,PHP语言之PHP中文函数连载(二)
- tf卡量产工具万能版_手上还有SD卡/TF卡的小伙伴,这些玩法你有关注过吗
- h3c 链路聚合测试_4G/5G聚合路由器在直播中无线多链路聚合图传技术是什么?
- MySQL慢查询分析方法
- 树莓派---MAC下安装AndroidThings
- MODBUS-RTU CRC校验算法及函数源码
- java记事本写玫瑰花代码_第一个用记事本写的java代码
- Google企业邮箱申请
- 双稳态电路的两个稳定状态是什么_555时基电路内部结构及其工作原理
- DEDE标签调用说明
- 【Redis消息队列实现异步秒杀】--Redis学习笔记08
- 消除计算机硬盘上的碎片应该使用什么软件,磁盘清理有什么用,详细教您磁盘碎片整理有什么用...
- idea突然很卡解决办法
- 视频聊天软件的技术实现
- 开发板之驱动安装与烧写程序
- linux教程deepin,国产系统Linux Deepin 2014详细评测