mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-09 02:24:58 -06:00
hw/intc/loongarch_extioi: Add extioi virt extension definition
On LoongArch, IRQs can be routed to four vcpus with hardware extended IRQ model. This patch adds the virt extension definition so that the IRQ can route to 256 vcpus. 1.Extended IRQ model: | +-----------+ +-------------|--------+ +-----------+ | IPI/Timer | --> | CPUINTC(0-3)|(4-255) | <-- | IPI/Timer | +-----------+ +-------------|--------+ +-----------+ ^ | | +---------+ | EIOINTC | +---------+ ^ ^ | | +---------+ +---------+ | PCH-PIC | | PCH-MSI | +---------+ +---------+ ^ ^ ^ | | | +--------+ +---------+ +---------+ | UARTs | | Devices | | Devices | +--------+ +---------+ +---------+ 2.Virt extended IRQ model: +-----+ +---------------+ +-------+ | IPI |--> | CPUINTC(0-255)| <-- | Timer | +-----+ +---------------+ +-------+ ^ | +-----------+ | V-EIOINTC | +-----------+ ^ ^ | | +---------+ +---------+ | PCH-PIC | | PCH-MSI | +---------+ +---------+ ^ ^ ^ | | | +--------+ +---------+ +---------+ | UARTs | | Devices | | Devices | +--------+ +---------+ +---------+ Signed-off-by: Song Gao <gaosong@loongson.cn> Reviewed-by: Bibo Mao <maobibo@loongson.cn> Message-Id: <20240528083855.1912757-2-gaosong@loongson.cn>
This commit is contained in:
parent
a73f7a00ee
commit
dc6f37eb95
3 changed files with 146 additions and 23 deletions
|
@ -718,25 +718,47 @@ static void virt_irq_init(LoongArchVirtMachineState *lvms)
|
|||
uint32_t cpuintc_phandle, eiointc_phandle, pch_pic_phandle, pch_msi_phandle;
|
||||
|
||||
/*
|
||||
* The connection of interrupts:
|
||||
* +-----+ +---------+ +-------+
|
||||
* | IPI |--> | CPUINTC | <-- | Timer |
|
||||
* +-----+ +---------+ +-------+
|
||||
* ^
|
||||
* |
|
||||
* +---------+
|
||||
* | EIOINTC |
|
||||
* +---------+
|
||||
* ^ ^
|
||||
* | |
|
||||
* +---------+ +---------+
|
||||
* | PCH-PIC | | PCH-MSI |
|
||||
* +---------+ +---------+
|
||||
* ^ ^ ^
|
||||
* | | |
|
||||
* +--------+ +---------+ +---------+
|
||||
* | UARTs | | Devices | | Devices |
|
||||
* +--------+ +---------+ +---------+
|
||||
* Extended IRQ model.
|
||||
* |
|
||||
* +-----------+ +-------------|--------+ +-----------+
|
||||
* | IPI/Timer | --> | CPUINTC(0-3)|(4-255) | <-- | IPI/Timer |
|
||||
* +-----------+ +-------------|--------+ +-----------+
|
||||
* ^ |
|
||||
* |
|
||||
* +---------+
|
||||
* | EIOINTC |
|
||||
* +---------+
|
||||
* ^ ^
|
||||
* | |
|
||||
* +---------+ +---------+
|
||||
* | PCH-PIC | | PCH-MSI |
|
||||
* +---------+ +---------+
|
||||
* ^ ^ ^
|
||||
* | | |
|
||||
* +--------+ +---------+ +---------+
|
||||
* | UARTs | | Devices | | Devices |
|
||||
* +--------+ +---------+ +---------+
|
||||
*
|
||||
* Virt extended IRQ model.
|
||||
*
|
||||
* +-----+ +---------------+ +-------+
|
||||
* | IPI |--> | CPUINTC(0-255)| <-- | Timer |
|
||||
* +-----+ +---------------+ +-------+
|
||||
* ^
|
||||
* |
|
||||
* +-----------+
|
||||
* | V-EIOINTC |
|
||||
* +-----------+
|
||||
* ^ ^
|
||||
* | |
|
||||
* +---------+ +---------+
|
||||
* | PCH-PIC | | PCH-MSI |
|
||||
* +---------+ +---------+
|
||||
* ^ ^ ^
|
||||
* | | |
|
||||
* +--------+ +---------+ +---------+
|
||||
* | UARTs | | Devices | | Devices |
|
||||
* +--------+ +---------+ +---------+
|
||||
*/
|
||||
|
||||
/* Create IPI device */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue