€•!yŒsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ1/translations/zh_CN/arch/loongarch/irq-chip-model”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ1/translations/zh_TW/arch/loongarch/irq-chip-model”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ1/translations/it_IT/arch/loongarch/irq-chip-model”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ1/translations/ja_JP/arch/loongarch/irq-chip-model”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ1/translations/ko_KR/arch/loongarch/irq-chip-model”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ1/translations/sp_SP/arch/loongarch/irq-chip-model”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…””}”hh£sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1h¡hhhžhhŸŒK/var/lib/git/docbuild/linux/Documentation/arch/loongarch/irq-chip-model.rst”h KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ'IRQ chip model (hierarchy) of LoongArch”h]”hŒ'IRQ chip model (hierarchy) of LoongArch”…””}”(hh»hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hh¶hžhhŸh³h KubhŒ paragraph”“”)”}”(hXÞCurrently, LoongArch based processors (e.g. Loongson-3A5000) can only work together with LS7A chipsets. The irq chips in LoongArch computers include CPUINTC (CPU Core Interrupt Controller), LIOINTC (Legacy I/O Interrupt Controller), EIOINTC (Extended I/O Interrupt Controller), HTVECINTC (Hyper-Transport Vector Interrupt Controller), PCH-PIC (Main Interrupt Controller in LS7A chipset), PCH-LPC (LPC Interrupt Controller in LS7A chipset) and PCH-MSI (MSI Interrupt Controller).”h]”hXÞCurrently, LoongArch based processors (e.g. Loongson-3A5000) can only work together with LS7A chipsets. The irq chips in LoongArch computers include CPUINTC (CPU Core Interrupt Controller), LIOINTC (Legacy I/O Interrupt Controller), EIOINTC (Extended I/O Interrupt Controller), HTVECINTC (Hyper-Transport Vector Interrupt Controller), PCH-PIC (Main Interrupt Controller in LS7A chipset), PCH-LPC (LPC Interrupt Controller in LS7A chipset) and PCH-MSI (MSI Interrupt Controller).”…””}”(hhËhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Khh¶hžhubhÊ)”}”(hXICPUINTC is a per-core controller (in CPU), LIOINTC/EIOINTC/HTVECINTC are per-package controllers (in CPU), while PCH-PIC/PCH-LPC/PCH-MSI are controllers out of CPU (i.e., in chipsets). These controllers (in other words, irqchips) are linked in a hierarchy, and there are two models of hierarchy (legacy model and extended model).”h]”hXICPUINTC is a per-core controller (in CPU), LIOINTC/EIOINTC/HTVECINTC are per-package controllers (in CPU), while PCH-PIC/PCH-LPC/PCH-MSI are controllers out of CPU (i.e., in chipsets). These controllers (in other words, irqchips) are linked in a hierarchy, and there are two models of hierarchy (legacy model and extended model).”…””}”(hhÙhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Khh¶hžhubhµ)”}”(hhh]”(hº)”}”(hŒLegacy IRQ model”h]”hŒLegacy IRQ model”…””}”(hhêhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hhçhžhhŸh³h KubhÊ)”}”(hXIn this model, IPI (Inter-Processor Interrupt) and CPU Local Timer interrupt go to CPUINTC directly, CPU UARTS interrupts go to LIOINTC, while all other devices interrupts go to PCH-PIC/PCH-LPC/PCH-MSI and gathered by HTVECINTC, and then go to LIOINTC, and then CPUINTC::”h]”hXIn this model, IPI (Inter-Processor Interrupt) and CPU Local Timer interrupt go to CPUINTC directly, CPU UARTS interrupts go to LIOINTC, while all other devices interrupts go to PCH-PIC/PCH-LPC/PCH-MSI and gathered by HTVECINTC, and then go to LIOINTC, and then CPUINTC:”…””}”(hhøhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KhhçhžhubhŒ literal_block”“”)”}”(hXÚ+-----+ +---------+ +-------+ | IPI | --> | CPUINTC | <-- | Timer | +-----+ +---------+ +-------+ ^ | +---------+ +-------+ | LIOINTC | <-- | UARTs | +---------+ +-------+ ^ | +-----------+ | HTVECINTC | +-----------+ ^ ^ | | +---------+ +---------+ | PCH-PIC | | PCH-MSI | +---------+ +---------+ ^ ^ ^ | | | +---------+ +---------+ +---------+ | PCH-LPC | | Devices | | Devices | +---------+ +---------+ +---------+ ^ | +---------+ | Devices | +---------+”h]”hXÚ+-----+ +---------+ +-------+ | IPI | --> | CPUINTC | <-- | Timer | +-----+ +---------+ +-------+ ^ | +---------+ +-------+ | LIOINTC | <-- | UARTs | +---------+ +-------+ ^ | +-----------+ | HTVECINTC | +-----------+ ^ ^ | | +---------+ +---------+ | PCH-PIC | | PCH-MSI | +---------+ +---------+ ^ ^ ^ | | | +---------+ +---------+ +---------+ | PCH-LPC | | Devices | | Devices | +---------+ +---------+ +---------+ ^ | +---------+ | Devices | +---------+”…””}”hjsbah}”(h]”h ]”h"]”h$]”h&]”h±h²uh1jhŸh³h Khhçhžhubeh}”(h]”Œlegacy-irq-model”ah ]”h"]”Œlegacy irq model”ah$]”h&]”uh1h´hh¶hžhhŸh³h Kubhµ)”}”(hhh]”(hº)”}”(hŒExtended IRQ model”h]”hŒExtended IRQ model”…””}”(hj!hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hjhžhhŸh³h K9ubhÊ)”}”(hXIn this model, IPI (Inter-Processor Interrupt) and CPU Local Timer interrupt go to CPUINTC directly, CPU UARTS interrupts go to LIOINTC, while all other devices interrupts go to PCH-PIC/PCH-LPC/PCH-MSI and gathered by EIOINTC, and then go to to CPUINTC directly::”h]”hXIn this model, IPI (Inter-Processor Interrupt) and CPU Local Timer interrupt go to CPUINTC directly, CPU UARTS interrupts go to LIOINTC, while all other devices interrupts go to PCH-PIC/PCH-LPC/PCH-MSI and gathered by EIOINTC, and then go to to CPUINTC directly:”…””}”(hj/hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K;hjhžhubj)”}”(hX± +-----+ +---------+ +-------+ | IPI | --> | CPUINTC | <-- | Timer | +-----+ +---------+ +-------+ ^ ^ | | +---------+ +---------+ +-------+ | EIOINTC | | LIOINTC | <-- | UARTs | +---------+ +---------+ +-------+ ^ ^ | | +---------+ +---------+ | PCH-PIC | | PCH-MSI | +---------+ +---------+ ^ ^ ^ | | | +---------+ +---------+ +---------+ | PCH-LPC | | Devices | | Devices | +---------+ +---------+ +---------+ ^ | +---------+ | Devices | +---------+”h]”hX± +-----+ +---------+ +-------+ | IPI | --> | CPUINTC | <-- | Timer | +-----+ +---------+ +-------+ ^ ^ | | +---------+ +---------+ +-------+ | EIOINTC | | LIOINTC | <-- | UARTs | +---------+ +---------+ +-------+ ^ ^ | | +---------+ +---------+ | PCH-PIC | | PCH-MSI | +---------+ +---------+ ^ ^ ^ | | | +---------+ +---------+ +---------+ | PCH-LPC | | Devices | | Devices | +---------+ +---------+ +---------+ ^ | +---------+ | Devices | +---------+”…””}”hj=sbah}”(h]”h ]”h"]”h$]”h&]”h±h²uh1jhŸh³h K@hjhžhubeh}”(h]”Œextended-irq-model”ah ]”h"]”Œextended irq model”ah$]”h&]”uh1h´hh¶hžhhŸh³h K9ubhµ)”}”(hhh]”(hº)”}”(hŒVirtual Extended IRQ model”h]”hŒVirtual Extended IRQ model”…””}”(hjVhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hjShžhhŸh³h KYubhÊ)”}”(hX*In this model, IPI (Inter-Processor Interrupt) and CPU Local Timer interrupt go to CPUINTC directly, CPU UARTS interrupts go to PCH-PIC, while all other devices interrupts go to PCH-PIC/PCH-MSI and gathered by V-EIOINTC (Virtual Extended I/O Interrupt Controller), and then go to CPUINTC directly::”h]”hX)In this model, IPI (Inter-Processor Interrupt) and CPU Local Timer interrupt go to CPUINTC directly, CPU UARTS interrupts go to PCH-PIC, while all other devices interrupts go to PCH-PIC/PCH-MSI and gathered by V-EIOINTC (Virtual Extended I/O Interrupt Controller), and then go to CPUINTC directly:”…””}”(hjdhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K[hjShžhubj)”}”(hX_+-----+ +-------------------+ +-------+ | IPI |--> | CPUINTC(0-255vcpu)| <-- | Timer | +-----+ +-------------------+ +-------+ ^ | +-----------+ | V-EIOINTC | +-----------+ ^ ^ | | +---------+ +---------+ | PCH-PIC | | PCH-MSI | +---------+ +---------+ ^ ^ ^ | | | +--------+ +---------+ +---------+ | UARTs | | Devices | | Devices | +--------+ +---------+ +---------+”h]”hX_+-----+ +-------------------+ +-------+ | IPI |--> | CPUINTC(0-255vcpu)| <-- | Timer | +-----+ +-------------------+ +-------+ ^ | +-----------+ | V-EIOINTC | +-----------+ ^ ^ | | +---------+ +---------+ | PCH-PIC | | PCH-MSI | +---------+ +---------+ ^ ^ ^ | | | +--------+ +---------+ +---------+ | UARTs | | Devices | | Devices | +--------+ +---------+ +---------+”…””}”hjrsbah}”(h]”h ]”h"]”h$]”h&]”h±h²uh1jhŸh³h K`hjShžhubhµ)”}”(hhh]”(hº)”}”(hŒ Description”h]”hŒ Description”…””}”(hjƒhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hj€hžhhŸh³h KuubhÊ)”}”(hXV-EIOINTC (Virtual Extended I/O Interrupt Controller) is an extension of EIOINTC, it only works in VM mode which runs in KVM hypervisor. Interrupts can be routed to up to four vCPUs via standard EIOINTC, however with V-EIOINTC interrupts can be routed to up to 256 virtual cpus.”h]”hXV-EIOINTC (Virtual Extended I/O Interrupt Controller) is an extension of EIOINTC, it only works in VM mode which runs in KVM hypervisor. Interrupts can be routed to up to four vCPUs via standard EIOINTC, however with V-EIOINTC interrupts can be routed to up to 256 virtual cpus.”…””}”(hj‘hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Kvhj€hžhubhÊ)”}”(hX…With standard EIOINTC, interrupt routing setting includes two parts: eight bits for CPU selection and four bits for CPU IP (Interrupt Pin) selection. For CPU selection there is four bits for EIOINTC node selection, four bits for EIOINTC CPU selection. Bitmap method is used for CPU selection and CPU IP selection, so interrupt can only route to CPU0 - CPU3 and IP0-IP3 in one EIOINTC node.”h]”hX…With standard EIOINTC, interrupt routing setting includes two parts: eight bits for CPU selection and four bits for CPU IP (Interrupt Pin) selection. For CPU selection there is four bits for EIOINTC node selection, four bits for EIOINTC CPU selection. Bitmap method is used for CPU selection and CPU IP selection, so interrupt can only route to CPU0 - CPU3 and IP0-IP3 in one EIOINTC node.”…””}”(hjŸhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K{hj€hžhubhÊ)”}”(hŒ}With V-EIOINTC it supports to route more CPUs and CPU IP (Interrupt Pin), there are two newly added registers with V-EIOINTC.”h]”hŒ}With V-EIOINTC it supports to route more CPUs and CPU IP (Interrupt Pin), there are two newly added registers with V-EIOINTC.”…””}”(hj­hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K‚hj€hžhubeh}”(h]”Œ description”ah ]”h"]”Œ description”ah$]”h&]”uh1h´hjShžhhŸh³h Kuubhµ)”}”(hhh]”(hº)”}”(hŒEXTIOI_VIRT_FEATURES”h]”hŒEXTIOI_VIRT_FEATURES”…””}”(hjÆhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hjÃhžhhŸh³h K†ubhÊ)”}”(hŒ™This register is read-only register, which indicates supported features with V-EIOINTC. Feature EXTIOI_HAS_INT_ENCODE and EXTIOI_HAS_CPU_ENCODE is added.”h]”hŒ™This register is read-only register, which indicates supported features with V-EIOINTC. Feature EXTIOI_HAS_INT_ENCODE and EXTIOI_HAS_CPU_ENCODE is added.”…””}”(hjÔhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K‡hjÃhžhubhÊ)”}”(hŒÎFeature EXTIOI_HAS_INT_ENCODE is part of standard EIOINTC. If it is 1, it indicates that CPU Interrupt Pin selection can be normal method rather than bitmap method, so interrupt can be routed to IP0 - IP15.”h]”hŒÎFeature EXTIOI_HAS_INT_ENCODE is part of standard EIOINTC. If it is 1, it indicates that CPU Interrupt Pin selection can be normal method rather than bitmap method, so interrupt can be routed to IP0 - IP15.”…””}”(hjâhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KŠhjÃhžhubhÊ)”}”(hŒÁFeature EXTIOI_HAS_CPU_ENCODE is entension of V-EIOINTC. If it is 1, it indicates that CPU selection can be normal method rather than bitmap method, so interrupt can be routed to CPU0 - CPU255.”h]”hŒÁFeature EXTIOI_HAS_CPU_ENCODE is entension of V-EIOINTC. If it is 1, it indicates that CPU selection can be normal method rather than bitmap method, so interrupt can be routed to CPU0 - CPU255.”…””}”(hjðhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KŽhjÃhžhubeh}”(h]”Œextioi-virt-features”ah ]”h"]”Œextioi_virt_features”ah$]”h&]”uh1h´hjShžhhŸh³h K†ubhµ)”}”(hhh]”(hº)”}”(hŒEXTIOI_VIRT_CONFIG”h]”hŒEXTIOI_VIRT_CONFIG”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hjhžhhŸh³h K“ubhÊ)”}”(hŒãThis register is read-write register, for compatibility intterupt routed uses the default method which is the same with standard EIOINTC. If the bit is set with 1, it indicated HW to use normal method rather than bitmap method.”h]”hŒãThis register is read-write register, for compatibility intterupt routed uses the default method which is the same with standard EIOINTC. If the bit is set with 1, it indicated HW to use normal method rather than bitmap method.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K”hjhžhubeh}”(h]”Œextioi-virt-config”ah ]”h"]”Œextioi_virt_config”ah$]”h&]”uh1h´hjShžhhŸh³h K“ubeh}”(h]”Œvirtual-extended-irq-model”ah ]”h"]”Œvirtual extended irq model”ah$]”h&]”uh1h´hh¶hžhhŸh³h KYubhµ)”}”(hhh]”(hº)”}”(hŒAdvanced Extended IRQ model”h]”hŒAdvanced Extended IRQ model”…””}”(hj8hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hj5hžhhŸh³h K™ubhÊ)”}”(hX@In this model, IPI (Inter-Processor Interrupt) and CPU Local Timer interrupt go to CPUINTC directly, CPU UARTS interrupts go to LIOINTC, PCH-MSI interrupts go to AVECINTC, and then go to CPUINTC directly, while all other devices interrupts go to PCH-PIC/PCH-LPC and gathered by EIOINTC, and then go to CPUINTC directly::”h]”hX?In this model, IPI (Inter-Processor Interrupt) and CPU Local Timer interrupt go to CPUINTC directly, CPU UARTS interrupts go to LIOINTC, PCH-MSI interrupts go to AVECINTC, and then go to CPUINTC directly, while all other devices interrupts go to PCH-PIC/PCH-LPC and gathered by EIOINTC, and then go to CPUINTC directly:”…””}”(hjFhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K›hj5hžhubj)”}”(hX3+-----+ +-----------------------+ +-------+ | IPI | --> | CPUINTC | <-- | Timer | +-----+ +-----------------------+ +-------+ ^ ^ ^ | | | +---------+ +----------+ +---------+ +-------+ | EIOINTC | | AVECINTC | | LIOINTC | <-- | UARTs | +---------+ +----------+ +---------+ +-------+ ^ ^ | | +---------+ +---------+ | PCH-PIC | | PCH-MSI | +---------+ +---------+ ^ ^ ^ | | | +---------+ +---------+ +---------+ | Devices | | PCH-LPC | | Devices | +---------+ +---------+ +---------+ ^ | +---------+ | Devices | +---------+”h]”hX3+-----+ +-----------------------+ +-------+ | IPI | --> | CPUINTC | <-- | Timer | +-----+ +-----------------------+ +-------+ ^ ^ ^ | | | +---------+ +----------+ +---------+ +-------+ | EIOINTC | | AVECINTC | | LIOINTC | <-- | UARTs | +---------+ +----------+ +---------+ +-------+ ^ ^ | | +---------+ +---------+ | PCH-PIC | | PCH-MSI | +---------+ +---------+ ^ ^ ^ | | | +---------+ +---------+ +---------+ | Devices | | PCH-LPC | | Devices | +---------+ +---------+ +---------+ ^ | +---------+ | Devices | +---------+”…””}”hjTsbah}”(h]”h ]”h"]”h$]”h&]”h±h²uh1jhŸh³h K hj5hžhubeh}”(h]”Œadvanced-extended-irq-model”ah ]”h"]”Œadvanced extended irq model”ah$]”h&]”uh1h´hh¶hžhhŸh³h K™ubhµ)”}”(hhh]”(hº)”}”(hŒACPI-related definitions”h]”hŒACPI-related definitions”…””}”(hjmhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hjjhžhhŸh³h K¹ubhÊ)”}”(hŒ CPUINTC::”h]”hŒCPUINTC:”…””}”(hj{hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K»hjjhžhubj)”}”(hŒTACPI_MADT_TYPE_CORE_PIC; struct acpi_madt_core_pic; enum acpi_madt_core_pic_version;”h]”hŒTACPI_MADT_TYPE_CORE_PIC; struct acpi_madt_core_pic; enum acpi_madt_core_pic_version;”…””}”hj‰sbah}”(h]”h ]”h"]”h$]”h&]”h±h²uh1jhŸh³h K½hjjhžhubhÊ)”}”(hŒ LIOINTC::”h]”hŒLIOINTC:”…””}”(hj—hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KÁhjjhžhubj)”}”(hŒQACPI_MADT_TYPE_LIO_PIC; struct acpi_madt_lio_pic; enum acpi_madt_lio_pic_version;”h]”hŒQACPI_MADT_TYPE_LIO_PIC; struct acpi_madt_lio_pic; enum acpi_madt_lio_pic_version;”…””}”hj¥sbah}”(h]”h ]”h"]”h$]”h&]”h±h²uh1jhŸh³h KÃhjjhžhubhÊ)”}”(hŒ EIOINTC::”h]”hŒEIOINTC:”…””}”(hj³hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KÇhjjhžhubj)”}”(hŒQACPI_MADT_TYPE_EIO_PIC; struct acpi_madt_eio_pic; enum acpi_madt_eio_pic_version;”h]”hŒQACPI_MADT_TYPE_EIO_PIC; struct acpi_madt_eio_pic; enum acpi_madt_eio_pic_version;”…””}”hjÁsbah}”(h]”h ]”h"]”h$]”h&]”h±h²uh1jhŸh³h KÉhjjhžhubhÊ)”}”(hŒ HTVECINTC::”h]”hŒ HTVECINTC:”…””}”(hjÏhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KÍhjjhžhubj)”}”(hŒNACPI_MADT_TYPE_HT_PIC; struct acpi_madt_ht_pic; enum acpi_madt_ht_pic_version;”h]”hŒNACPI_MADT_TYPE_HT_PIC; struct acpi_madt_ht_pic; enum acpi_madt_ht_pic_version;”…””}”hjÝsbah}”(h]”h ]”h"]”h$]”h&]”h±h²uh1jhŸh³h KÏhjjhžhubhÊ)”}”(hŒ PCH-PIC::”h]”hŒPCH-PIC:”…””}”(hjëhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KÓhjjhžhubj)”}”(hŒQACPI_MADT_TYPE_BIO_PIC; struct acpi_madt_bio_pic; enum acpi_madt_bio_pic_version;”h]”hŒQACPI_MADT_TYPE_BIO_PIC; struct acpi_madt_bio_pic; enum acpi_madt_bio_pic_version;”…””}”hjùsbah}”(h]”h ]”h"]”h$]”h&]”h±h²uh1jhŸh³h KÕhjjhžhubhÊ)”}”(hŒ PCH-MSI::”h]”hŒPCH-MSI:”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KÙhjjhžhubj)”}”(hŒQACPI_MADT_TYPE_MSI_PIC; struct acpi_madt_msi_pic; enum acpi_madt_msi_pic_version;”h]”hŒQACPI_MADT_TYPE_MSI_PIC; struct acpi_madt_msi_pic; enum acpi_madt_msi_pic_version;”…””}”hjsbah}”(h]”h ]”h"]”h$]”h&]”h±h²uh1jhŸh³h KÛhjjhžhubhÊ)”}”(hŒ PCH-LPC::”h]”hŒPCH-LPC:”…””}”(hj#hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Kßhjjhžhubj)”}”(hŒQACPI_MADT_TYPE_LPC_PIC; struct acpi_madt_lpc_pic; enum acpi_madt_lpc_pic_version;”h]”hŒQACPI_MADT_TYPE_LPC_PIC; struct acpi_madt_lpc_pic; enum acpi_madt_lpc_pic_version;”…””}”hj1sbah}”(h]”h ]”h"]”h$]”h&]”h±h²uh1jhŸh³h Káhjjhžhubeh}”(h]”Œacpi-related-definitions”ah ]”h"]”Œacpi-related definitions”ah$]”h&]”uh1h´hh¶hžhhŸh³h K¹ubhµ)”}”(hhh]”(hº)”}”(hŒ References”h]”hŒ References”…””}”(hjJhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hjGhžhhŸh³h KæubhÊ)”}”(hŒ!Documentation of Loongson-3A5000:”h]”hŒ!Documentation of Loongson-3A5000:”…””}”(hjXhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KèhjGhžhubhŒ block_quote”“”)”}”(hXhttps://github.com/loongson/LoongArch-Documentation/releases/latest/download/Loongson-3A5000-usermanual-1.02-CN.pdf (in Chinese) https://github.com/loongson/LoongArch-Documentation/releases/latest/download/Loongson-3A5000-usermanual-1.02-EN.pdf (in English) ”h]”(hÊ)”}”(hŒ€https://github.com/loongson/LoongArch-Documentation/releases/latest/download/Loongson-3A5000-usermanual-1.02-CN.pdf (in Chinese)”h]”(hŒ reference”“”)”}”(hŒshttps://github.com/loongson/LoongArch-Documentation/releases/latest/download/Loongson-3A5000-usermanual-1.02-CN.pdf”h]”hŒshttps://github.com/loongson/LoongArch-Documentation/releases/latest/download/Loongson-3A5000-usermanual-1.02-CN.pdf”…””}”(hjrhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”jtuh1jphjlubhŒ (in Chinese)”…””}”(hjlhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KêhjhubhÊ)”}”(hŒ€https://github.com/loongson/LoongArch-Documentation/releases/latest/download/Loongson-3A5000-usermanual-1.02-EN.pdf (in English)”h]”(jq)”}”(hŒshttps://github.com/loongson/LoongArch-Documentation/releases/latest/download/Loongson-3A5000-usermanual-1.02-EN.pdf”h]”hŒshttps://github.com/loongson/LoongArch-Documentation/releases/latest/download/Loongson-3A5000-usermanual-1.02-EN.pdf”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”j‘uh1jphj‹ubhŒ (in English)”…””}”(hj‹hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Kìhjhubeh}”(h]”h ]”h"]”h$]”h&]”uh1jfhŸh³h KêhjGhžhubhÊ)”}”(hŒ)Documentation of Loongson's LS7A chipset:”h]”hŒ+Documentation of Loongson’s LS7A chipset:”…””}”(hj®hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KîhjGhžhubjg)”}”(hXhttps://github.com/loongson/LoongArch-Documentation/releases/latest/download/Loongson-7A1000-usermanual-2.00-CN.pdf (in Chinese) https://github.com/loongson/LoongArch-Documentation/releases/latest/download/Loongson-7A1000-usermanual-2.00-EN.pdf (in English) ”h]”(hÊ)”}”(hŒ€https://github.com/loongson/LoongArch-Documentation/releases/latest/download/Loongson-7A1000-usermanual-2.00-CN.pdf (in Chinese)”h]”(jq)”}”(hŒshttps://github.com/loongson/LoongArch-Documentation/releases/latest/download/Loongson-7A1000-usermanual-2.00-CN.pdf”h]”hŒshttps://github.com/loongson/LoongArch-Documentation/releases/latest/download/Loongson-7A1000-usermanual-2.00-CN.pdf”…””}”(hjÄhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”jÆuh1jphjÀubhŒ (in Chinese)”…””}”(hjÀhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Kðhj¼ubhÊ)”}”(hŒ€https://github.com/loongson/LoongArch-Documentation/releases/latest/download/Loongson-7A1000-usermanual-2.00-EN.pdf (in English)”h]”(jq)”}”(hŒshttps://github.com/loongson/LoongArch-Documentation/releases/latest/download/Loongson-7A1000-usermanual-2.00-EN.pdf”h]”hŒshttps://github.com/loongson/LoongArch-Documentation/releases/latest/download/Loongson-7A1000-usermanual-2.00-EN.pdf”…””}”(hjáhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”jãuh1jphjÝubhŒ (in English)”…””}”(hjÝhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Kòhj¼ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jfhŸh³h KðhjGhžhubhŒnote”“”)”}”(hX­- CPUINTC is CSR.ECFG/CSR.ESTAT and its interrupt controller described in Section 7.4 of "LoongArch Reference Manual, Vol 1"; - LIOINTC is "Legacy I/OInterrupts" described in Section 11.1 of "Loongson 3A5000 Processor Reference Manual"; - EIOINTC is "Extended I/O Interrupts" described in Section 11.2 of "Loongson 3A5000 Processor Reference Manual"; - HTVECINTC is "HyperTransport Interrupts" described in Section 14.3 of "Loongson 3A5000 Processor Reference Manual"; - PCH-PIC/PCH-MSI is "Interrupt Controller" described in Section 5 of "Loongson 7A1000 Bridge User Manual"; - PCH-LPC is "LPC Interrupts" described in Section 24.3 of "Loongson 7A1000 Bridge User Manual".”h]”hŒ bullet_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hŒ{CPUINTC is CSR.ECFG/CSR.ESTAT and its interrupt controller described in Section 7.4 of "LoongArch Reference Manual, Vol 1";”h]”hÊ)”}”(hŒ{CPUINTC is CSR.ECFG/CSR.ESTAT and its interrupt controller described in Section 7.4 of "LoongArch Reference Manual, Vol 1";”h]”hŒCPUINTC is CSR.ECFG/CSR.ESTAT and its interrupt controller described in Section 7.4 of “LoongArch Reference Manual, Vol 1â€;”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Kõhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjubj )”}”(hŒlLIOINTC is "Legacy I/OInterrupts" described in Section 11.1 of "Loongson 3A5000 Processor Reference Manual";”h]”hÊ)”}”(hŒlLIOINTC is "Legacy I/OInterrupts" described in Section 11.1 of "Loongson 3A5000 Processor Reference Manual";”h]”hŒtLIOINTC is “Legacy I/OInterrupts†described in Section 11.1 of “Loongson 3A5000 Processor Reference Manualâ€;”…””}”(hj)hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K÷hj%ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjubj )”}”(hŒoEIOINTC is "Extended I/O Interrupts" described in Section 11.2 of "Loongson 3A5000 Processor Reference Manual";”h]”hÊ)”}”(hŒoEIOINTC is "Extended I/O Interrupts" described in Section 11.2 of "Loongson 3A5000 Processor Reference Manual";”h]”hŒwEIOINTC is “Extended I/O Interrupts†described in Section 11.2 of “Loongson 3A5000 Processor Reference Manualâ€;”…””}”(hjAhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Kùhj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjubj )”}”(hŒsHTVECINTC is "HyperTransport Interrupts" described in Section 14.3 of "Loongson 3A5000 Processor Reference Manual";”h]”hÊ)”}”(hŒsHTVECINTC is "HyperTransport Interrupts" described in Section 14.3 of "Loongson 3A5000 Processor Reference Manual";”h]”hŒ{HTVECINTC is “HyperTransport Interrupts†described in Section 14.3 of “Loongson 3A5000 Processor Reference Manualâ€;”…””}”(hjYhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KûhjUubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjubj )”}”(hŒiPCH-PIC/PCH-MSI is "Interrupt Controller" described in Section 5 of "Loongson 7A1000 Bridge User Manual";”h]”hÊ)”}”(hŒiPCH-PIC/PCH-MSI is "Interrupt Controller" described in Section 5 of "Loongson 7A1000 Bridge User Manual";”h]”hŒqPCH-PIC/PCH-MSI is “Interrupt Controller†described in Section 5 of “Loongson 7A1000 Bridge User Manualâ€;”…””}”(hjqhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Kýhjmubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjubj )”}”(hŒ^PCH-LPC is "LPC Interrupts" described in Section 24.3 of "Loongson 7A1000 Bridge User Manual".”h]”hÊ)”}”(hŒ^PCH-LPC is "LPC Interrupts" described in Section 24.3 of "Loongson 7A1000 Bridge User Manual".”h]”hŒfPCH-LPC is “LPC Interrupts†described in Section 24.3 of “Loongson 7A1000 Bridge User Manualâ€.”…””}”(hj‰hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Kÿhj…ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1jhŸh³h Kõhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjGhžhhŸNh Nubeh}”(h]”Œ references”ah ]”h"]”Œ references”ah$]”h&]”uh1h´hh¶hžhhŸh³h Kæubeh}”(h]”Œ%irq-chip-model-hierarchy-of-loongarch”ah ]”h"]”Œ'irq chip model (hierarchy) of loongarch”ah$]”h&]”uh1h´hhhžhhŸh³h Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”h³uh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(h¹NŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jÞŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h³Œ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(j¸jµjjjPjMj2j/jÀj½jjj*j'jgjdjDjAj°j­uŒ nametypes”}”(j¸‰j‰jP‰j2‰jÀ‰j‰j*‰jg‰jD‰j°‰uh}”(jµh¶jhçjMjj/jSj½j€jjÃj'jjdj5jAjjj­jGuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nhžhub.