有两种方法 :
1. 设备向 GICR_SETLPIR(每个CPU有一个,TODO) 写入 INTID(从8192开始),写入之后,会对特定CPU产生中断,中断号为 INTID
1.0 每个 cpu(target) 对应一个 Target Redistributor,对应一个 GICR_SETLPIR
1.1 设备把 INTID 发送给 Target Redistributor
2. ID为DeviceID的设备向 GITS)TRANSLATER 写入 EventID(从0开始),写入之后,经过转换,会对特定CPU产生中断,中断号为 INTID
2.0 Device Table , Collection Table 只有一个,地址 ITS 已经知道
2.0 一个设备有一个Interrupt Translation Table
2.1 ITS 使用 DeviceID 在 Device Table 中找到一项,该项存储了 设备的Interrupt Translation Table 的基址
2.2 ITS 使用 EventID 在 ITT 中找到一项,该项存储了 INTID 和 Collection ID
2.3 ITS 使用 Collection ID 在 Collection Table 中找到一项,该项存储了 Target Redistributor
2.4 ITS 把 INTID 发送给 Target Redistributor
问题 : DeviceID 在哪里体现的
在pcie中,device id 是 rid , rid = (bus << 8) | (dev << 4) | function
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)