[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [UNIKRAFT PATCHv3 5/7] plat/kvm: Implement intctrl APIs for Arm64
From: Wei Chen <wei.chen@xxxxxxx> 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> Signed-off-by: Jia He <justin.he@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..9bec5d6 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/sections.h> #include <kvm/intctrl.h> +#include <arm/cpu.h> +#include <arm/irq.h> +#include <gic/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 + //NOP } -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 15a884a..6125a30 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 |