[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [UNIKRAFT PATCH 5/7] plat/kvm: Implement intctrl APIs for Arm64
Before GICv2 become ready, we had marked the intctrl APIs as TODO. Now, we have enabled the GICv2, we can implement intctrl APIs with related GIC APIs. Signed-off-by: Wei Chen <wei.chen@xxxxxxx> --- plat/kvm/arm/intctrl.c | 25 ++++++++++++++++++------- plat/kvm/arm/setup.c | 4 ++++ 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/plat/kvm/arm/intctrl.c b/plat/kvm/arm/intctrl.c index ac604a7..0662159 100644 --- a/plat/kvm/arm/intctrl.c +++ b/plat/kvm/arm/intctrl.c @@ -31,24 +31,35 @@ * * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY. */ +#include <uk/assert.h> +#include <kvm/kernel.h> #include <kvm/intctrl.h> +#include <arm/cpu.h> +#include <arm/irq.h> +#include <arm/gic-v2.h> void intctrl_init(void) { - // TO DO + int ret; + + /* Initialize GIC from DTB */ + ret = _dtb_init_gic(_libkvmplat_dtb); + if (ret) + UK_CRASH("Initialize GIC from DTB failed, ret=%d\n", ret); + } -void intctrl_ack_irq(unsigned int irq) +void intctrl_ack_irq(uint32_t irq) { - // TO DO + gic_eoi_irq(irq); } -void intctrl_mask_irq(unsigned int irq) +void intctrl_mask_irq(uint32_t irq) { - // TO DO + gic_disable_irq(irq); } -void intctrl_clear_irq(unsigned int irq) +void intctrl_clear_irq(uint32_t irq) { - // TO DO + gic_enable_irq(irq); } diff --git a/plat/kvm/arm/setup.c b/plat/kvm/arm/setup.c index 7974e45..2cb0005 100644 --- a/plat/kvm/arm/setup.c +++ b/plat/kvm/arm/setup.c @@ -23,6 +23,7 @@ #include <kvm/console.h> #include <uk/assert.h> #include <kvm-arm/mm.h> +#include <kvm/intctrl.h> #include <arm/cpu.h> #include <uk/arch/limits.h> @@ -200,6 +201,9 @@ void _libkvmplat_start(void *dtb_pointer) /* Initialize memory from DTB */ _init_dtb_mem(); + /* Initialize interrupt controller */ + intctrl_init(); + uk_pr_info("pagetable start: %p\n", _libkvmplat_pagetable); uk_pr_info(" heap start: %p\n", _libkvmplat_heap_start); uk_pr_info(" stack top: %p\n", _libkvmplat_stack_top); -- 2.17.1 _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |