0

在一个MFD设备中。我想了解,我们如何到达irq base. 是随机数吗?

请有人解释一下。

4

1 回答 1

3

基本上,在尝试为该 IRQ 号注册 ISR 之前,首先需要将特定的 IRQ 号与实际的物理硬件中断相关联。这通常在 Linux 内核中使用irq_domain_add_linear().

过去,可以选择 IRQ 编号,以便它们将硬件 IRQ 线匹配到根中断控制器(即实际向 CPU 发出中断线的组件),现在这个数字只是一个数字

irq_alloc_desc*()和API 提供 irq 编号的irq_free_desc*()分配,但它们不提供任何支持将控制器本地 IRQ (hwirq) 编号反向映射到 Linux IRQ 编号空间。

Linux 内核的当前设计使用单个大数字空间,其中每个单独的 IRQ 源分配一个不同的数字。当只有一个中断控制器时这很简单,但在具有多个中断控制器的系统中,内核必须确保为每个中断控制器分配不重叠的 Linux IRQ 编号。

Linux-kernel Documentation/IRQ-domain.txt中的更多详细信息。

于 2013-08-16T18:54:56.547 回答