socsvn commit: r299577 - in soc2015/mihai/bhyve-on-arm-head/sys/arm: include vmm
mihai at FreeBSD.org
mihai at FreeBSD.org
Mon Mar 7 12:02:33 UTC 2016
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;
More information about the svn-soc-all
mailing list