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周期(确保远端设备可靠检测)

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

IRQ FRAME值得关注是S(Sample Period),R(Recovery Period),T(Turn-around Period)
- Sample :从机根据当前IRQ设备中断状态,对IRQSER总线进行电平驱动
- Recovery :从机拉高IRQER
- Turn-around:从机释放总线
STOP帧结束后,可能理解紧接STRAT帧,也可能没有。
STOP FRAME

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

除了START、IRQ、STOP帧,其余SMI、IOCHCH、INT帧都不是必要的,根据主机实际情况判断。
附件资料
通过网盘分享的文件:serirq60.pdf
链接: https://pan.baidu.com/s/16Q0D-xU7kcxzW7-4eeBxGg?pwd=kb4v 提取码: kb4v

浙公网安备 33010602011771号