Date: Mon, 7 Mar 2016 12:02:31 GMT From: mihai@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r299577 - in soc2015/mihai/bhyve-on-arm-head/sys/arm: include vmm Message-ID: <201603071202.u27C2VBj019278@socsvn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: mihai Date: Mon Mar 7 12:02:30 2016 New Revision: 299577 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=299577 Log: sys: arm: vmm: vgic: enable virtual interface Modified: soc2015/mihai/bhyve-on-arm-head/sys/arm/include/gic.h soc2015/mihai/bhyve-on-arm-head/sys/arm/vmm/vgic.c soc2015/mihai/bhyve-on-arm-head/sys/arm/vmm/vgic.h soc2015/mihai/bhyve-on-arm-head/sys/arm/vmm/vmm.c Modified: soc2015/mihai/bhyve-on-arm-head/sys/arm/include/gic.h ============================================================================== --- soc2015/mihai/bhyve-on-arm-head/sys/arm/include/gic.h Mon Mar 7 10:59:28 2016 (r299576) +++ soc2015/mihai/bhyve-on-arm-head/sys/arm/include/gic.h Mon Mar 7 12:02:30 2016 (r299577) @@ -48,6 +48,7 @@ #ifdef VMM_ARM_VGIC #define GICH_HCR 0x0 +#define GICH_HCR_EN (1 << 0) #define GICH_VTR 0x4 #define GICH_VMCR 0x8 #define GICH_MISR 0x10 Modified: soc2015/mihai/bhyve-on-arm-head/sys/arm/vmm/vgic.c ============================================================================== --- soc2015/mihai/bhyve-on-arm-head/sys/arm/vmm/vgic.c Mon Mar 7 10:59:28 2016 (r299576) +++ soc2015/mihai/bhyve-on-arm-head/sys/arm/vmm/vgic.c Mon Mar 7 12:02:30 2016 (r299577) @@ -105,6 +105,7 @@ hypctx = &hyp->ctx[i]; hypctx->vgic_cpu_int.virtual_int_ctrl = virtual_int_ctrl_vaddr; hypctx->vgic_cpu_int.lr_num = lr_num; + hypctx->vgic_cpu_int.hcr = GICH_HCR_EN; } /* Map the CPU Interface over the Virtual CPU Interface */ @@ -122,10 +123,13 @@ { static struct arm_gic_softc *sc; + int maintenance_intr; sc = (struct arm_gic_softc *)arg; - printf("%s\n",__func__); + maintenance_intr = gic_h_read_4(sc, GICH_MISR); + + printf("%s: %x\n",__func__, maintenance_intr); return (FILTER_HANDLED); } Modified: soc2015/mihai/bhyve-on-arm-head/sys/arm/vmm/vgic.h ============================================================================== --- soc2015/mihai/bhyve-on-arm-head/sys/arm/vmm/vgic.h Mon Mar 7 10:59:28 2016 (r299576) +++ soc2015/mihai/bhyve-on-arm-head/sys/arm/vmm/vgic.h Mon Mar 7 12:02:30 2016 (r299577) @@ -5,10 +5,10 @@ #define VGIC_NR_IRQ 128 #define VGIC_NR_SGI 16 #define VGIC_NR_PPI 16 -#define VGIC_NR_PRV_IRQ (VGIC_NR_SGI + VGIC_NR_PPI) -#define VGIC_NR_SHR_IRQ (VGIC_NR_IRQ - VGIC_NR_PRV_IRQ) +#define VGIC_NR_PRV_IRQ (VGIC_NR_SGI + VGIC_NR_PPI) +#define VGIC_NR_SHR_IRQ (VGIC_NR_IRQ - VGIC_NR_PRV_IRQ) #define VGIC_MAXCPU VM_MAXCPU -#define VGIC_LR_NUM 64 +#define VGIC_LR_NUM 64 struct vm; Modified: soc2015/mihai/bhyve-on-arm-head/sys/arm/vmm/vmm.c ============================================================================== --- soc2015/mihai/bhyve-on-arm-head/sys/arm/vmm/vmm.c Mon Mar 7 10:59:28 2016 (r299576) +++ soc2015/mihai/bhyve-on-arm-head/sys/arm/vmm/vmm.c Mon Mar 7 12:02:30 2016 (r299577) @@ -306,7 +306,7 @@ if (error == 0) { switch (vme->exitcode) { case VM_EXITCODE_INST_EMUL: - /* Check fi we need to do in-kernel emulation */ + /* Check if we need to do in-kernel emulation */ pc = vme->pc + vme->inst_length; retu = true;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201603071202.u27C2VBj019278>