ASPEED 中断控制器
AST2700
AST2700 共有 480 个中断源。受处理器中断数量限制,编号大于 127 的中断每 32 个源合并。
中断控制器分两级:CPU 裸片的 INTC 和 I/O 裸片的 INTCIO。
中断映射
INTC:处理 0–127 的中断源,并整合 INTCIO 信号。
INTCIO:独立处理 128–319 的中断源。
QEMU 支持
目前仅支持 GIC 192–201。中断源来自 INTCIO, 连接到 INTC 输入引脚 0,通过输出引脚 0–9 连接 GIC 192–201。
GICINT 196 的设计
orgate 接收中断源 0–31,输出连接到 INTCIO 的 T0 GICINT_196, 再连接到 INTC 的 GIC_192_201 位 4,位 4 输出连接 GIC 196。
INTC GIC_192_201 输出引脚映射
INTC GIC_192_201 有 10 个输出引脚,映射如下:
位 |
GIC |
|---|---|
0 |
192 |
1 |
193 |
2 |
194 |
3 |
195 |
4 |
196 |
5 |
197 |
6 |
198 |
7 |
199 |
8 |
200 |
9 |
201 |
AST2700 A1 的 GICINT 196 框图
|-------------------------------------------------------------------------------------------------------|
| AST2700 A1 设计 |
| 至 GICINT196 |
| |
| ETH1 |-----------| |--------------------------| |--------------| |
| ------->|0 | | INTCIO | | orgates[0] | |
| ETH2 | 4| orgates[0]------>|inpin[0]-------->outpin[0]|------->| 0 | |
| ------->|1 5| orgates[1]------>|inpin[1]-------->outpin[1]|------->| 1 | |
| ETH3 | 6| orgates[2]------>|inpin[2]-------->outpin[2]|------->| 2 | |
| ------->|2 19| orgates[3]------>|inpin[3]-------->outpin[3]|------->| 3 OR[0:9] |-----| |
| UART0 | 20|-->orgates[4]------>|inpin[4]-------->outpin[4]|------->| 4 | | |
| ------->|7 21| orgates[5]------>|inpin[5]-------->outpin[5]|------->| 5 | | |
| UART1 | 22| orgates[6]------>|inpin[6]-------->outpin[6]|------->| 6 | | |
| ------->|8 23| orgates[7]------>|inpin[7]-------->outpin[7]|------->| 7 | | |
| UART2 | 24| orgates[8]------>|inpin[8]-------->outpin[8]|------->| 8 | | |
| ------->|9 25| orgates[9]------>|inpin[9]-------->outpin[9]|------->| 9 | | |
| UART3 | 26| |--------------------------| |--------------| | |
| ------->|10 27| | |
| UART5 | 28| | |
| ------->|11 29| | |
| UART6 | | | |
| ------->|12 30| |-----------------------------------------------------------------------| |
| UART7 | 31| | |
| ------->|13 | | |
| UART8 | OR[0:31] | | |-----------------------------| |----------| |
| ------->|14 | | | INTC | | GIC | |
| UART9 | | | |inpin[0:0]--------->outpin[0]|--------->|192 | |
| ------->|15 | | |inpin[0:1]--------->outpin[1]|--------->|193 | |
| UART10 | | | |inpin[0:2]--------->outpin[2]|--------->|194 | |
| ------->|16 | | |inpin[0:3]--------->outpin[3]|--------->|195 | |
| UART11 | | |--------------> |inpin[0:4]--------->outpin[4]|--------->|196 | |
| ------->|17 | |inpin[0:5]--------->outpin[5]|--------->|197 | |
| UART12 | | |inpin[0:6]--------->outpin[6]|--------->|198 | |
| ------->|18 | |inpin[0:7]--------->outpin[7]|--------->|199 | |
| |-----------| |inpin[0:8]--------->outpin[8]|--------->|200 | |
| |inpin[0:9]--------->outpin[9]|--------->|201 | |
| |-----------------------------| |----------| |
| |
| |
|-------------------------------------------------------------------------------------------------------|