### Open Firmware Recommended Practice: Interrupt Mapping 版本 0.9 #### 1. 概述与背景 在计算机系统中,中断(Interrupt)是硬件设备与操作系统之间进行通信的重要方式之一。当一个设备需要处理紧急任务时,它会向处理器发送一个中断信号,从而中断当前的执行流程并跳转到特定的中断服务程序来处理该事件。Open Firmware (OF) 是一种引导加载程序,它定义了一系列标准接口来支持不同平台上的硬件初始化、系统配置以及启动过程。IEEE 1275-1994 标准定义了 OF 的基本规范,而这份推荐实践文档则进一步扩展了 OF 规范中的中断映射机制。 #### 2. 中断映射机制的目的 该推荐实践的主要目标是定义一个映射机制,用于将特定于总线的中断值(通过“interrupts”属性报告)映射到系统平台的“原生”中断设施上。IEEE Std 1275-1994 定义了一个通用的总线特定属性“interrupts”,用于报告总线设备使用的中断标识符。中断标识符通常包含一个数字成分,对应着中断控制器的输入端口;还可能包括其他关于中断的信息,例如中断是否为边沿触发或电平触发。 #### 3. 平台架构中的中断控制器 不同的平台架构(例如 CHRP)包含有中断控制器,这些控制器负责接收来自设备的中断信号。在某些情况下,中断标识符与中断控制器之间的关系非常直接简单。然而,在许多平台架构中,允许一定程度上任意的“布线”方式来连接中断,这增加了映射的复杂性。 #### 4. 映射机制的关键要素 为了实现有效的中断映射,推荐实践文档提出了以下几个关键要素: 1. **中断标识符格式**:每个绑定到 OF 的总线都必须定义其“interrupts”属性的格式和解释规则。 2. **控制器输入映射**:需要定义如何将中断标识符中的数字成分映射到中断控制器的具体输入端口。 3. **触发类型映射**:如果中断标识符中包含了触发类型信息(边沿触发或电平触发),则需要定义如何将其映射到控制器相应的特性。 4. **中断优先级和分组**:在多级中断控制器中,需要定义如何根据中断标识符来分配优先级和分组。 #### 5. 映射机制的实现 为了实现这一映射机制,推荐实践文档建议采用以下步骤: 1. **识别总线设备**:需要通过 OF 的设备树模型来识别所有连接到系统的总线设备。 2. **提取中断标识符**:对于每个设备,从其“interrupts”属性中提取出中断标识符。 3. **解析标识符**:根据总线绑定定义的格式,解析中断标识符以获取具体的数字成分和其他信息。 4. **映射到控制器**:基于解析出的信息,将中断标识符映射到适当的中断控制器输入端口,并考虑触发类型和其他特性。 5. **配置控制器**:根据映射结果来配置中断控制器,确保中断信号可以正确地被处理。 #### 6. 实例应用 为了更好地理解中断映射的过程,我们可以通过一个具体的实例来展示如何实现这一机制。假设有一个 PCI 总线设备,其“interrupts”属性设置为 `(<irq-type> <irq-number>)`,其中 `<irq-type>` 表示触发类型(例如 `0x1` 代表边沿触发,`0x2` 代表电平触发),`<irq-number>` 表示控制器的输入编号。在这个例子中,我们可以定义映射规则如下: 1. 对于 PCI 总线,`<irq-number>` 直接映射到中断控制器的相应输入端口。 2. 如果 `<irq-type>` 为 `0x1`,则映射到控制器的边沿触发模式。 3. 如果 `<irq-type>` 为 `0x2`,则映射到控制器的电平触发模式。 通过这样的映射规则,我们能够确保 PCI 设备的中断信号能够被正确地处理,同时也能支持不同类型的中断触发机制。 #### 结论 Open Firmware Recommended Practice: Interrupt Mapping 版本 0.9 提供了一种标准化的方法来处理不同总线设备与平台架构中的中断控制器之间的映射问题。通过对中断标识符的解析和映射,可以确保中断信号能够准确无误地被处理,进而提高系统的稳定性和可靠性。此外,这一推荐实践也为开发人员提供了一份宝贵的指南,帮助他们在设计和支持 OF 系统时能够更加高效地管理中断机制。
剩余10页未读,继续阅读
- 粉丝: 623
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助