datasheet这里是这样描述的: The MPIC provides a mechanism to support alternate external interrupt controllers such as the PC/AT-compatible 8259 interrupt controller architecture. After a hard reset, the MPIC defaults to pass-through mode, in which active-high interrupts from external source IRQ0 are passed directly to core 0 as shown in Figure 31-2; all other external interrupt signals are ignored. Thus, the interrupt signal from an external interrupt controller can be connected to IRQ0 and cause direct interrupts to the processor core 0.The MPIC does not perform a vector fetch from an 8259 interrupt controller.
When pass-through mode is enabled, the internally-generated interrupts shown in Table 31-3 are not forwarded to core 0. Instead, the MPIC passes the raw interrupts from the internal sources to the interrupt output signal, IRQ_OUT.
NOTES In pass-through mode, interrupts generated within the MPIC (global timers,interprocessor, and message register interrupts) are disabled. If internal or MPIC-generated interrupts must be reported internally to the processor, mixed mode must be used. In pass-through mode, the target for each interrupt must be set to int (xILRn[INTTGT] = 0x00). This is the default setting of each register; therefore, no programming should be necessary to comply with this requirement.
不明白的地方是,在Pass-Througt模式,中断不经过中断控制器直接传递给e500mc内核进行处理。那么,在外部中断处理过程中,是不是和MPIC相关的寄存器都不会进行操作?它的外部中断处理过程又是怎么样的呀?与mixed mode有不同? 还有,我读GCR寄存器里的值是0,说明是Pass-Througt模式。但是,我们用到了消息中断,能收到消息中断。按datasheet里描述,In pass-through mode, interrupts generated within the MPIC (global timers,interprocessor, and message register interrupts) are disabled. 消息中断应该是禁止的。 麻烦大家帮忙答疑一下,谢谢!
Pass-Througt模式:硬件重启后的默认模式。在这个模式,中断不经过PIC而直接传给内核进行处理。通过(GCR[M] = 0)来允许Pass-Through模式。datasheet这里是这样描述的:The MPIC provides a mechanism to support alternate external interrupt controllers such as th