Skip site navigation (1)Skip section navigation (2)
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>