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 ================================== 9 LoongArch的IRQ芯片模型(層級關係) 10 ================================== 11 12 目前,基於LoongArch的處理器(如龍芯3A5000)只能與LS7A芯片組配合工作。LoongArch計算機 13 中的中斷控制器(即IRQ芯片)包括CPUINTC(CPU Core Interrupt Controller)、LIOINTC( 14 Legacy I/O Interrupt Controller)、EIOINTC(Extended I/O Interrupt Controller)、 15 HTVECINTC(Hyper-Transport Vector Interrupt Controller)、PCH-PIC(LS7A芯片組的主中 16 斷控制器)、PCH-LPC(LS7A芯片組的LPC中斷控制器)和PCH-MSI(MSI中斷控制器)。 17 18 CPUINTC是一種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, 27 CPU串口(UARTs)中斷髮送到LIOINTC,而其他所有設備的中斷則分別發送到所連接的PCH-PIC/ 28 PCH-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, 63 CPU串口(UARTs)中斷髮送到LIOINTC,而其他所有設備的中斷則分別發送到所連接的PCH-PIC/ 64 PCH-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 90 ACPI相關的定義 91 ============== 92 93 CPUINTC:: 94 95 ACPI_MADT_TYPE_CORE_PIC; 96 struct acpi_madt_core_pic; 97 enum acpi_madt_core_pic_version; 98 99 LIOINTC:: 100 101 ACPI_MADT_TYPE_LIO_PIC; 102 struct acpi_madt_lio_pic; 103 enum acpi_madt_lio_pic_version; 104 105 EIOINTC:: 106 107 ACPI_MADT_TYPE_EIO_PIC; 108 struct acpi_madt_eio_pic; 109 enum acpi_madt_eio_pic_version; 110 111 HTVECINTC:: 112 113 ACPI_MADT_TYPE_HT_PIC; 114 struct acpi_madt_ht_pic; 115 enum acpi_madt_ht_pic_version; 116 117 PCH-PIC:: 118 119 ACPI_MADT_TYPE_BIO_PIC; 120 struct acpi_madt_bio_pic; 121 enum acpi_madt_bio_pic_version; 122 123 PCH-MSI:: 124 125 ACPI_MADT_TYPE_MSI_PIC; 126 struct acpi_madt_msi_pic; 127 enum acpi_madt_msi_pic_version; 128 129 PCH-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
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.