PCIE中断支持.docx_第1页
PCIE中断支持.docx_第2页
PCIE中断支持.docx_第3页
PCIE中断支持.docx_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PCIESS提供了14种中断,能处理MSI和legacy中断。当作为EP端时,PCIESS能够产生MSI或者legacy中断,但是一个PCIe设备不能同时产生这两种中断。EP端能产生的中断类型在配置的时候配置好的。RC端能处理MSI和legacy中断。2.14.1 中断分配2.14.2 EP模式产生的中断当PCIESS作为EP端的时候,会产生legacy中断或者MSI中断,最终在RC设备端产生一个中断。每个PCIe功能只能产生一种类型的中断,这种类型由配置的时候决定的。2.14.2.1 EP模式产生的legacy中断EP设备能够通过in-band Assert_INTx / Deassert_INTx消息在RC端产生一个PCI legacy中断。在RC端口产生的中断类型实际是根据EP产生中断的配置信息决定的,可能是INTA,INTB,INTC,或者INTD。在配置空间寄存器中可以查看相关中断寄存器。为了产生一个中断,需要以下几步:1. 设置LEGACY_X_IRQ_ENABLE_SET是能够产生legacy中断。2. 向EP_IRQ_SET寄存器写1来使能legacy中断。3. An assert INTA/B/C/D message is automatically sent4. 向EP_IRQ_CLR寄存器写1来disable the legacy interrupt by sending a deassert INT A/B/C/D message一旦产生一个assert message,知道产生一个deassert message才会产生下一个assert message。因此,每次只会有一个中断被挂起。这个挂起状态可以通过EP_IRQ_STATUS寄存器来查看。2.14.2.2 EP模式产生的MSI中断一个PCIE 32位内存的写事务会产生MSI中断。PCIE系统软件在初始化EP设备的时候会配置在写事务中用到的地址和数据。MSI机制支持多个中断,每个设备能够请求最多32个中断向量,尽管分配的中断可能没有请求的数目多。产生一个MSI中断,需要下面几步:1. 在设备中确保支持MSI(设置MSI_CAP的MSI_EN位,关闭legacy中断)。2. 在本地PCIe配置空间中读取MSI地址寄存器的值(32位地址读取MSI_LOW32寄存器的值,64位地址读取MSI_UP32和MSI_LOW32(在MSI_CAP寄存器中使能64BIT_EN位)3. 在本地PCIe配置空间中读取MSI数据寄存器的值(读取MSI_DATA寄存器的值)4. 确定分配给设备的MSI向量数目(和请求数目)。5. 根据分配的MSI中断数目,发送一个内存写请求,地址和MSI地址寄存器一样,数据和MSI数据寄存器一样。In the data, the LSBs can be modified to reflect the appropriate MSI event that needs to be notified to root complex。6. 如果目的PCIE地址不可以直接到达的时候,内存写请求也可以通过outbound地址转换接口进行路由。在RC端产生MSI终端实际上有MSI_IRQ寄存器决定。MSI中断由RC端向MSI_IRQ寄存器写入MSI向量值而激发的32个事件中的一种产生的。在EP端能够发送MSI中断之前,系统软件必须配置好MSI数据寄存器和地址寄存器,这样确保用合适的MSI向量值来使用MSI_IRQ寄存器。如果没有软件支持,用户程序需要确保EP端能够用合适的MSI向量值发送内存写事务到RC端的MSI_IRQ寄存器中。对每个PCIE设备来说,一个EP端设备只能向RC产生MSI中断。但是PCIESS规定允许从EP端向另一个EP端产生MSI中断。为了能够向另一个EP端产生中断,一个EP端能够将内存的写映射到另一个EP设备的类似寄存器。这个内存写应该在BAR0内存空间。2.14.3 RC端产生的中断按照PCIE基本标准,RC端口只能够接收中断。没有机制能够产生从RC到EP的中断。但是,PCIESS的确支持从RC向EP产生中断。这个过程和RC端产生和接受MSI中断类似,除了这个功能在EP端同样可以使用。RC端可以通过PCIE链路写MSI_IRQ寄存器来产生一个32位的EP中断。PCIESS遵循PCIE MSI规定,不需要对同一个MSI向量计算多次写。只有一个写才会被处理,在清中断之前其余的写可能会丢失。2.14.4 EP端接受中断PCIE规定并没有说EP可以接受legacy中断。因此,只会用事件来映射中断。在EP设备上不支持MSI中断,但是PCIESS确实支持这些中断。在EP端向MSI_IRQ寄存器写入MSI向量值的时候会产生32种事件中的一种。通过写寄存器由链路传送的这些中断也可能来自另一个EP设备,该设备在EP BAR0空间的合适中断寄存器操作。这由软件设计者来决定中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论