The patch series introduces basic UART support (in interrupt mode) and support of interrupts for hypervisor mode.
To implement this the following has been added: - APLIC and IMISC initialization. - Introduce of intc_hw_operations abstraction. - Introduce some APLIC and IMSIC operations. - Introduce init_IRQ(), platform_get_irq() and setup_irq() functions. - Update do_trap() handler to handle IRQ_S_EXT. - Introduce some other functions such as: get_s_time(), smp_clear_cpu_maps(), ioremap(). - Enable UART. Oleksii Kurochko (14): xen/riscv: implement get_s_time() xen/riscv: introduce smp_clear_cpu_maps() xen/riscv: introduce ioremap() xen/riscv: introduce init_IRQ() xen/riscv: introduce platform_get_irq() xen/riscv: riscv_of_processor_hartid() implementation xen/riscv: Introduce intc_hw_operations abstraction xen/riscv: imsic_init() implementation xen/riscv: aplic_init() implementation xen/riscv: implementation of aplic and imsic operations xen/riscv: add external interrupt handling for hypervisor mode xen/riscv: implement setup_irq() xen/riscv: initialize interrupt controller xen/riscv: add basic UART support xen/arch/riscv/Kconfig | 13 + xen/arch/riscv/Makefile | 3 + xen/arch/riscv/aplic.c | 302 +++++++++++++++++++++++ xen/arch/riscv/imsic.c | 374 +++++++++++++++++++++++++++++ xen/arch/riscv/include/asm/aplic.h | 89 +++++++ xen/arch/riscv/include/asm/imsic.h | 88 +++++++ xen/arch/riscv/include/asm/intc.h | 31 +++ xen/arch/riscv/include/asm/irq.h | 37 ++- xen/arch/riscv/include/asm/smp.h | 5 + xen/arch/riscv/include/asm/time.h | 6 + xen/arch/riscv/intc.c | 58 +++++ xen/arch/riscv/irq.c | 223 +++++++++++++++++ xen/arch/riscv/pt.c | 19 ++ xen/arch/riscv/setup.c | 23 ++ xen/arch/riscv/smpboot.c | 83 +++++++ xen/arch/riscv/stubs.c | 16 -- xen/arch/riscv/time.c | 7 + xen/arch/riscv/traps.c | 18 ++ xen/drivers/char/Kconfig | 1 - 19 files changed, 1378 insertions(+), 18 deletions(-) create mode 100644 xen/arch/riscv/imsic.c create mode 100644 xen/arch/riscv/include/asm/aplic.h create mode 100644 xen/arch/riscv/include/asm/imsic.h create mode 100644 xen/arch/riscv/irq.c create mode 100644 xen/arch/riscv/smpboot.c -- 2.49.0