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       |    |
|                                              |-----------------------------|          |----------|    |
|                                                                                                       |
|                                                                                                       |
|-------------------------------------------------------------------------------------------------------|