Files
QEMU-S5L8950X/docs/specs/aspeed-intc.rst
T
Yaya48 cf256aa081 Import QEMU upstream snapshot d2e570c
Upstream: https://gitlab.com/qemu-project/qemu.git

Upstream-Commit: d2e570cc0f97b936902a5b1b86b73c0f5998b475
2026-08-31 02:15:30 +02:00

95 lines
5.7 KiB
ReStructuredText

===========================
ASPEED Interrupt Controller
===========================
AST2700
-------
There are a total of 480 interrupt sources in AST2700. Due to the limitation of
interrupt numbers of processors, the interrupts are merged every 32 sources for
interrupt numbers greater than 127.
There are two levels of interrupt controllers, INTC (CPU Die) and INTCIO
(I/O Die).
Interrupt Mapping
-----------------
- INTC: Handles interrupt sources 0 - 127 and integrates signals from INTCIO.
- INTCIO: Handles interrupt sources 128 - 319 independently.
QEMU Support
------------
Currently, only GIC 192 to 201 are supported, and their source interrupts are
from INTCIO and connected to INTC at input pin 0 and output pins 0 to 9 for
GIC 192-201.
Design for GICINT 196
---------------------
The orgate has interrupt sources ranging from 0 to 31, with its output pin
connected to INTCIO "T0 GICINT_196". The output pin is then connected to INTC
"GIC_192_201" at bit 4, and its bit 4 output pin is connected to GIC 196.
INTC GIC_192_201 Output Pin Mapping
-----------------------------------
The design of INTC GIC_192_201 have 10 output pins, mapped as following:
==== ====
Bit GIC
==== ====
0 192
1 193
2 194
3 195
4 196
5 197
6 198
7 199
8 200
9 201
==== ====
Block Diagram of GICINT 196 for AST2700 A1
------------------------------------------------------------------------
.. code-block::
|-------------------------------------------------------------------------------------------------------|
| AST2700 A1 Design |
| To 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 | |
| |-----------------------------| |----------| |
| |
| |
|-------------------------------------------------------------------------------------------------------|