[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [UNIKRAFT PATCHv5 4/6] 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> Signed-off-by: Jia He <justin.he@xxxxxxx> --- plat/kvm/arm/intctrl.c | 20 ++++++++++++++++---- plat/kvm/arm/setup.c | 4 ++++ 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/plat/kvm/arm/intctrl.c b/plat/kvm/arm/intctrl.c index ac604a7..401b2a3 100644 --- a/plat/kvm/arm/intctrl.c +++ b/plat/kvm/arm/intctrl.c @@ -31,24 +31,36 @@ * * 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> +#include <kvm/config.h> void intctrl_init(void) { - // TO DO + int ret; + + /* Initialize GIC from DTB */ + ret = _dtb_init_gic(_libkvmplat_cfg.dtb); + if (ret) + UK_CRASH("Initialize GIC from DTB failed, ret=%d\n", ret); + } void intctrl_ack_irq(unsigned int irq) { - // TO DO + //NOP } void intctrl_mask_irq(unsigned int irq) { - // TO DO + gic_disable_irq(irq); } void intctrl_clear_irq(unsigned int irq) { - // TO DO + gic_enable_irq(irq); } diff --git a/plat/kvm/arm/setup.c b/plat/kvm/arm/setup.c index 301b5a1..b8148f9 100644 --- a/plat/kvm/arm/setup.c +++ b/plat/kvm/arm/setup.c @@ -24,6 +24,7 @@ #include <kvm/config.h> #include <uk/assert.h> #include <kvm-arm/mm.h> +#include <kvm/intctrl.h> #include <arm/cpu.h> #include <uk/arch/limits.h> @@ -214,6 +215,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", (void *) _libkvmplat_cfg.pagetable.start); uk_pr_info(" heap start: %p\n", -- 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 |