File Index
Files and directories
Sign in
FILE

irq-chip-model.rst

File preview with syntax highlighting.

linux-6.19.14/Documentation/translations/zh_TW/arch/loongarch/irq-chip-model.rst RESTRUCTUREDTEXT
  1.. SPDX-License-Identifier: GPL-2.0
  2
  3.. include:: ../../disclaimer-zh_TW.rst
  4
  5:Original: Documentation/arch/loongarch/irq-chip-model.rst
  6:Translator: Huacai Chen <chenhuacai@loongson.cn>
  7
  8==================================
  9LoongArch的IRQ芯片模型(層級關係)
 10==================================
 11
 12目前,基於LoongArch的處理器(如龍芯3A5000)只能與LS7A芯片組配合工作。LoongArch計算機
 13中的中斷控制器(即IRQ芯片)包括CPUINTC(CPU Core Interrupt Controller)、LIOINTC(
 14Legacy I/O Interrupt Controller)、EIOINTC(Extended I/O Interrupt Controller)、
 15HTVECINTC(Hyper-Transport Vector Interrupt Controller)、PCH-PIC(LS7A芯片組的主中
 16斷控制器)、PCH-LPC(LS7A芯片組的LPC中斷控制器)和PCH-MSI(MSI中斷控制器)。
 17
 18CPUINTC是一種CPU內部的每個核本地的中斷控制器,LIOINTC/EIOINTC/HTVECINTC是CPU內部的
 19全局中斷控制器(每個芯片一個,所有核共享),而PCH-PIC/PCH-LPC/PCH-MSI是CPU外部的中
 20斷控制器(在配套芯片組裏面)。這些中斷控制器(或者說IRQ芯片)以一種層次樹的組織形式
 21級聯在一起,一共有兩種層級關係模型(傳統IRQ模型和擴展IRQ模型)。
 22
 23傳統IRQ模型
 24===========
 25
 26在這種模型裏面,IPI(Inter-Processor Interrupt)和CPU本地時鐘中斷直接發送到CPUINTC,
 27CPU串口(UARTs)中斷髮送到LIOINTC,而其他所有設備的中斷則分別發送到所連接的PCH-PIC/
 28PCH-LPC/PCH-MSI,然後被HTVECINTC統一收集,再發送到LIOINTC,最後到達CPUINTC::
 29
 30     +-----+     +---------+     +-------+
 31     | IPI | --> | CPUINTC | <-- | Timer |
 32     +-----+     +---------+     +-------+
 33                      ^
 34                      |
 35                 +---------+     +-------+
 36                 | LIOINTC | <-- | UARTs |
 37                 +---------+     +-------+
 38                      ^
 39                      |
 40                +-----------+
 41                | HTVECINTC |
 42                +-----------+
 43                 ^         ^
 44                 |         |
 45           +---------+ +---------+
 46           | PCH-PIC | | PCH-MSI |
 47           +---------+ +---------+
 48             ^     ^           ^
 49             |     |           |
 50     +---------+ +---------+ +---------+
 51     | PCH-LPC | | Devices | | Devices |
 52     +---------+ +---------+ +---------+
 53          ^
 54          |
 55     +---------+
 56     | Devices |
 57     +---------+
 58
 59擴展IRQ模型
 60===========
 61
 62在這種模型裏面,IPI(Inter-Processor Interrupt)和CPU本地時鐘中斷直接發送到CPUINTC,
 63CPU串口(UARTs)中斷髮送到LIOINTC,而其他所有設備的中斷則分別發送到所連接的PCH-PIC/
 64PCH-LPC/PCH-MSI,然後被EIOINTC統一收集,再直接到達CPUINTC::
 65
 66          +-----+     +---------+     +-------+
 67          | IPI | --> | CPUINTC | <-- | Timer |
 68          +-----+     +---------+     +-------+
 69                       ^       ^
 70                       |       |
 71                +---------+ +---------+     +-------+
 72                | EIOINTC | | LIOINTC | <-- | UARTs |
 73                +---------+ +---------+     +-------+
 74                 ^       ^
 75                 |       |
 76          +---------+ +---------+
 77          | PCH-PIC | | PCH-MSI |
 78          +---------+ +---------+
 79            ^     ^           ^
 80            |     |           |
 81    +---------+ +---------+ +---------+
 82    | PCH-LPC | | Devices | | Devices |
 83    +---------+ +---------+ +---------+
 84         ^
 85         |
 86    +---------+
 87    | Devices |
 88    +---------+
 89
 90ACPI相關的定義
 91==============
 92
 93CPUINTC::
 94
 95  ACPI_MADT_TYPE_CORE_PIC;
 96  struct acpi_madt_core_pic;
 97  enum acpi_madt_core_pic_version;
 98
 99LIOINTC::
100
101  ACPI_MADT_TYPE_LIO_PIC;
102  struct acpi_madt_lio_pic;
103  enum acpi_madt_lio_pic_version;
104
105EIOINTC::
106
107  ACPI_MADT_TYPE_EIO_PIC;
108  struct acpi_madt_eio_pic;
109  enum acpi_madt_eio_pic_version;
110
111HTVECINTC::
112
113  ACPI_MADT_TYPE_HT_PIC;
114  struct acpi_madt_ht_pic;
115  enum acpi_madt_ht_pic_version;
116
117PCH-PIC::
118
119  ACPI_MADT_TYPE_BIO_PIC;
120  struct acpi_madt_bio_pic;
121  enum acpi_madt_bio_pic_version;
122
123PCH-MSI::
124
125  ACPI_MADT_TYPE_MSI_PIC;
126  struct acpi_madt_msi_pic;
127  enum acpi_madt_msi_pic_version;
128
129PCH-LPC::
130
131  ACPI_MADT_TYPE_LPC_PIC;
132  struct acpi_madt_lpc_pic;
133  enum acpi_madt_lpc_pic_version;
134
135參考文獻
136========
137
138龍芯3A5000的文檔:
139
140  https://github.com/loongson/LoongArch-Documentation/releases/latest/download/Loongson-3A5000-usermanual-1.02-CN.pdf (中文版)
141
142  https://github.com/loongson/LoongArch-Documentation/releases/latest/download/Loongson-3A5000-usermanual-1.02-EN.pdf (英文版)
143
144龍芯LS7A芯片組的文檔:
145
146  https://github.com/loongson/LoongArch-Documentation/releases/latest/download/Loongson-7A1000-usermanual-2.00-CN.pdf (中文版)
147
148  https://github.com/loongson/LoongArch-Documentation/releases/latest/download/Loongson-7A1000-usermanual-2.00-EN.pdf (英文版)
149
150.. note::
151    - CPUINTC:即《龍芯架構參考手冊卷一》第7.4節所描述的CSR.ECFG/CSR.ESTAT寄存器及其
152      中斷控制邏輯;
153    - LIOINTC:即《龍芯3A5000處理器使用手冊》第11.1節所描述的“傳統I/O中斷”;
154    - EIOINTC:即《龍芯3A5000處理器使用手冊》第11.2節所描述的“擴展I/O中斷”;
155    - HTVECINTC:即《龍芯3A5000處理器使用手冊》第14.3節所描述的“HyperTransport中斷”;
156    - PCH-PIC/PCH-MSI:即《龍芯7A1000橋片用戶手冊》第5章所描述的“中斷控制器”;
157    - PCH-LPC:即《龍芯7A1000橋片用戶手冊》第24.3節所描述的“LPC中斷”。
158
~/ Read-only file preview.