持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第9天,点击查看活动详情
简介
符合ACPI规范的平台为OSPM提供了对计算机电源管理和主板设备配置功能的直接和独家控制的电源管理和主机板设备配置功能。在操作系统初始化过程中,OSPM将这些功能从传统的实现方式(如APM BIOS、基于SMM的BIOS)中接管这些功能,如APM BIOS、基于SMM的固件、传统的应用程序和PNPBIOS。这样做后,OSPM负责处理主板设备配置事件以及根据用户的偏好控制系统的电源、性能和散热状态。应用程序请求和操作系统强加的服务质量(QOS)/可用性目标。ACPI提供了低级别的接口允许OSPM执行这些功能。
ACPI规范所涵盖的功能领域是有:散热管理,EC控制,SMBus控制,配置/即插即用,系统事件管理等等。
一、0x60/0x64端口
什么是0x60/0x64?
尽管目前市场上有大量的微控制器,但最常用的是的嵌入式控制器包括一个主机接口,将嵌入式控制器连接到主机数据总线上,允许双向通信。双向中断方案减少了主机处理器与嵌入式控制器通信的延迟。
目前,纳入微控制器的最常见的主机接口结构是以标准的IA-PC架构键盘控制器为模型。这个键盘控制器是在系统I/O空间的0x64处访问。端口0x60被称为数据寄存器,它允许与主机和嵌入式控制器之间的双向数据传输。端口0x64被称为命令/状态寄存器;它在读取时返回端口状态信息,并在写入时产生一个命令序列给嵌入式控制器。这类控制器还包括第二个解码范围,它有一个命令/状态寄存器和一个数据寄存器,与键盘接口的属性相同。下图形象地描述了这个接口。
示例
0x60代码
// The function of processing 60 port
void Core_60Port(BYTE KBHI)
{
switch(KBHI)
{
case 0x60:
Cmd_60Data();
break;
case 0x73:
Cmd_73Data();
break;
case 0x74:
Cmd_74Data();
break;
case 0x76:
Cmd_76Data();
break;
}
}
0x64代码
// The function of processing 64 port
void Core_64Port(BYTE KBHICmd)
{
switch(KBHICmd)
{
case 0x20:
Cmd_20();
break;
case 0x33:
Cmd_33();
break;
case 0x34:
Cmd_34();
break;
case 0x36:
Cmd_36();
break;
}
}
二、完结
本文结束。