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