【问题标题】:How IRQS get assigned如何分配 IRQS
【发布时间】:2023-04-04 15:05:01
【问题描述】:

我有一些关于 PCI 和 IRQS 的问题。

如何将 IRQ 分配给连接到 PCI 总线的设备,它是由 BIOS 在引导时分配的,还是总线选择它或总线控制器自动选择它,谁负责选择 IRQS 编号?

当设备连接到 PCI 总线时,设备可以填充 PCI 控制器配置寄存器中的 IRQ 字段吗?

Linux 内核可以分配和更改连接设备的 IRQS 吗?

对于 USB 控制器或 SATA 控制器等设备控制器,我们如何将 IRQ 分配给控制器,因为它连接了多个设备,以及连接到同一个控制器的多个设备如何使用 IRQS?

Linux 如何识别在机器运行时连接到机器的设备,以及如何为它们分配 IRQ 编号以及谁负责?

【问题讨论】:

    标签: linux linux-device-driver pci irq


    【解决方案1】:

    PCI 配置空间是由 Bios 配置的,这意味着 Bios 应该在引导时枚举所有 PCI 设备。当枚举设备时,Bios 将一条 IRQ 线路由到 IOAPIC 输入并设置 BAR 寄存器,然后内核可以使用从 pci 配置空间读取的适当 irq 号来 request_irq()。

    【讨论】:

    • 只是添加。 IRQ 编号和 BAR 值是不稳定的……即它们可以随着每次插入而改变。 +1
    猜你喜欢
    • 1970-01-01
    • 2019-11-17
    • 2021-04-25
    • 2011-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-08
    • 1970-01-01
    相关资源
    最近更新 更多