遗留中断模式 - 1.3 简体中文

UltraScale+ 器件 Integrated Block for PCI Express 产品指南 (PG213)

Document ID
PG213
Release Date
2022-11-16
Version
1.3 简体中文
  • 用户应用首先断言 cfg_interrupt_intcfg_interrupt_pending 有效,以断言中断有效。
  • 然后,核会断言 cfg_interrupt_sent 有效,以指示已接受中断。如果 PCI 命令寄存器中的中断禁用位设为 0,那么核会发送断言中断有效报文 (Assert_INTA)。中断处理完成后,用户应用会发出 deasserts cfg_interrupt_int 以将其断言无效。
  • 当用户应用发出 deasserts cfg_interrupt_int 以将其断言无效后,核会发出断言中断无效报文 (Deassert_INTA)。这通过第 2 次断言 cfg_interrupt_sent 有效来表示。

cfg_interrupt_int 必须保持断言有效,直至用户应用接收到断言中断有效报文 (Assert_INTA) 的确认(通过断言 cfg_interrupt_sent 有效来表示),并且中断已由根的中断服务例程 (ISR) 来完成处理/清除为止。断言 cfg_interrupt_int 无效会导致核发出断言中断无效报文 (Deassert_INTA)。cfg_interrupt_pending 必须随 cfg_interrupt_int 一起保持断言有效,直至中断处理完成为止,否则状态寄存器中的中断状态位将无法正确更新。当首次断言 cfg_interrupt_sent 有效后,cfg_interrupt_pending 可随 cfg_interrupt_int 一起断言无效。当软件/根的 ISR 收到断言中断有效报文后,它会读取此中断状态位以判定针对此功能是否存在中断暂挂。

注释: 对于 PCIE4C 块,在命令寄存器中如果中断禁用位已置位(即,命令寄存器位 10 = 1),那么该核不会阻塞 INTx 中断。用户应用必须监控 cfg_function_status 以检查 INTx 中断处于启用还是禁用状态,仅当在命令寄存器中已启用中断时,cfg_interrupt_int 才能断言有效。
图 1. 遗留中断信号