irqchip: Add RISC-V incoming MSI controller early driver
authorAnup Patel <apatel@ventanamicro.com>
Thu, 7 Mar 2024 14:03:00 +0000 (19:33 +0530)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 25 Mar 2024 16:38:28 +0000 (17:38 +0100)
commit21a8f8a0eb35ceb21e2c9ddd87468bc3b5ac87c0
tree47892ae5a864d6d29b07809450d5270c320de59e
parent0151a8db49b0a88f967dca0ea5ae2bee2d67b22a
irqchip: Add RISC-V incoming MSI controller early driver

The RISC-V advanced interrupt architecture (AIA) specification
defines a new MSI controller called incoming message signalled
interrupt controller (IMSIC) which manages MSI on per-HART (or
per-CPU) basis. It also supports IPIs as software injected MSIs.
(For more details refer https://github.com/riscv/riscv-aia)

Add an early irqchip driver for RISC-V IMSIC which sets up the
IMSIC state and provide IPIs.

Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Björn Töpel <bjorn@rivosinc.com>
Reviewed-by: Björn Töpel <bjorn@rivosinc.com>
Link: https://lore.kernel.org/r/20240307140307.646078-3-apatel@ventanamicro.com
drivers/irqchip/Kconfig
drivers/irqchip/Makefile
drivers/irqchip/irq-riscv-imsic-early.c [new file with mode: 0644]
drivers/irqchip/irq-riscv-imsic-state.c [new file with mode: 0644]
drivers/irqchip/irq-riscv-imsic-state.h [new file with mode: 0644]
include/linux/cpuhotplug.h
include/linux/irqchip/riscv-imsic.h [new file with mode: 0644]