Serialized IRQ Support for PCI Systems——浅析时序

“Serialized IRQ Support for PCI Systems” 是 Linux 内核早期引入的一项关键特性,主要用于解决老式 PCI 设备在共享中断请求线时可能发生的竞争条件和数据损坏问题。
虽然这个规范在被时代逐渐淘汰,但现今为了兼容性设计,仍会有应用在一些计算机设备中。最近公司一项目需要,借此机会学习一下。

简述

Host通过串行总线IRQSER发送固定帧格式报文轮询外设,根据外设IRQ FRAME时上报的高低电平,从而获取各个外设中断状态。

输入\出

点击查看代码
module serirq_peripheral#(
    parameter  MAX_IRQ_NUM  = 32
)(
    input  wire                     pci_clk     ,
    input  wire                     rst_n       ,

    output reg                      serirq_oe   ,
    input  wire                     serirq_i    ,
    output reg                      serirq_o    ,

    input  wire [MAX_IRQ_NUM-1:0]   irq_status      
);

时序

START和STOP均由主机发起,IRQ由从机控制

START FRAME

host发起START时,IRQSER被拉低,持续时间可以为4、6、8个PCI clocks。配置依据如下

1.主板拓扑结构
  • 紧凑型嵌入式主板(走线短):仅需要4~5个周期,
  • 大型服务器主板需要(走线长):仅需6~8个周期补偿信号延迟
2.时钟频率
  • 33Mhz总线:典型值6周期
  • 100Mhz总线:压缩至4周期(减少等待时间)
3.挂接设备数量
  • ≤4个设备:4~5周期
  • 8个设备:7~8周期(确保远端设备可靠检测)

image

  • Host Control:主机拉低IRQSER几个时钟周期
  • Recovery :主机拉高IRQER
  • Turn-around :主机释放总线

IRQ FRAME

image

IRQ FRAME值得关注是S(Sample Period),R(Recovery Period),T(Turn-around Period)

  • Sample :从机根据当前IRQ设备中断状态,对IRQSER总线进行电平驱动
  • Recovery :从机拉高IRQER
  • Turn-around:从机释放总线

STOP帧结束后,可能理解紧接STRAT帧,也可能没有。

STOP FRAME

image

IRQ帧结束后紧接STOP帧

  • Idle : Idle状态在STOP帧中可能为1个clock或者多个clock,更有可能没有此状态
  • Host Control:主机拉低IRQER,Quiet mode下拉低2个clock,Continuous mode下拉低3个clock
  • Recovery :从机拉高IRQER
  • Turn-around :主机释放总线

补充

image
除了START、IRQ、STOP帧,其余SMI、IOCHCH、INT帧都不是必要的,根据主机实际情况判断。

附件资料

通过网盘分享的文件:serirq60.pdf
链接: https://pan.baidu.com/s/16Q0D-xU7kcxzW7-4eeBxGg?pwd=kb4v 提取码: kb4v

posted @ 2025-07-23 17:23  AlwaysComb  阅读(49)  评论(0)    收藏  举报