ACPICA User Guide and Programmer Reference 翻译10

本文详细阐述了ACPICA子系统在操作系统初始化中的角色,包括内核早期加载ACPI表、初始化命名空间、硬件设置、安装中断处理程序等关键步骤。介绍了AcpiInitializeSubsystem、AcpiLoadTables等接口的功能,强调了硬件初始化和事件管理的重要性,以确保ACPI相关中断(如SCI)的正确处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

4.1规定的主操作系统初始化序列

        本小节说明包含ACPICA子系统的通用操作系统的初始化序列。在内核初始化期间,ACPICA子系统必须被很早被加载。实际上,必须将ACPICA作为内核的基本初始化模块之一。ACPICA子系统对OS的基本要求包括对内存管理、同步原语和中断的支持。只要这些服务都可用,ACPICA子系统就需要被初始化。只有ACPI可用之后,主板设备的枚举和配置才开始。

         总的来说,ACPI表是对硬件的描述,因此需要在很早的时候就要被加载到OS。

4.1.1 Bootload和内核底层初始化

  • OS被bootloader或者downloader加载到内存

  • 初始化OS数据结构、对象和运行时环境

  • 初始化内核底层子系统

  • 早期如果需要使用ACPI表则要初始化ACPI表管理器(ACPI Table Manager)

  • 初始化并使能free space manager

  • 初始化和使能同步原语

  • 初始化基本中断机制和硬件

  • 初始化并启动系统定时器

4.1.2 ACPICA子系统初始化

  • 初始化ACPI表管理器并装载ACPI表
  • 初始化命名空间
笔记本的风扇控制 ---------------------------------------- 09 November 2006. Summary of changes for version 20061109: 1) ACPI CA Core Subsystem: Optimized the Load ASL operator in the case where the source operand is an operation region. Simply map the operation region memory, instead of performing a bytewise read. (Region must be of type SystemMemory, see below.) Fixed the Load ASL operator for the case where the source operand is a region field. A buffer object is also allowed as the source operand. BZ 480 Fixed a problem where the Load ASL operator allowed the source operand to be an operation region of any type. It is now restricted to regions of type SystemMemory, as per the ACPI specification. BZ 481 Additional cleanup and optimizations for the new Table Manager code. AcpiEnable will now fail if all of the required ACPI tables are not loaded (FADT, FACS, DSDT). BZ 477 Added #pragma pack(8/4) to acobject.h to ensure that the structures in this header are always compiled as aligned. The ACPI_OPERAND_OBJECT has been manually optimized to be aligned and will not work if it is byte-packed. Example Code and Data Size: These are the sizes for the OS- independent acpica.lib produced by the Microsoft Visual C++ 6.0 32- bit compiler. The debug version of the code includes the debug output trace mechanism and has a much larger code and data size. Previous Release: Non-Debug Version: 78.1K Code, 17.1K Data, 95.2K Total Debug Version: 155.4K Code, 63.1K Data, 218.5K Total Current Release: Non-Debug Version: 77.9K Code, 17.0K Data, 94.9K Total Debug Version: 155.2K Code, 63.1K Data, 218.3K Total 2) iASL Compiler/Disassembler and Tools: Fixed a problem where the presence of the _OSI predefined control method within complex expressions could cause an internal compiler error. AcpiExec: Implemented full region support for multiple address spaces. SpaceId is now part of the REGION object. BZ 429 ---------------------------------------- 11 Oc
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值