aboutsummaryrefslogtreecommitdiff
path: root/hw/a15mpcore.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw/a15mpcore.c')
-rw-r--r--hw/a15mpcore.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/hw/a15mpcore.c b/hw/a15mpcore.c
index fc0a02ae86..31158f9e5b 100644
--- a/hw/a15mpcore.c
+++ b/hw/a15mpcore.c
@@ -19,6 +19,7 @@
*/
#include "sysbus.h"
+#include "kvm.h"
/* A15MP private memory region. */
@@ -40,8 +41,13 @@ static int a15mp_priv_init(SysBusDevice *dev)
{
A15MPPrivState *s = FROM_SYSBUS(A15MPPrivState, dev);
SysBusDevice *busdev;
+ const char *gictype = "arm-gic";
- s->gic = qdev_create(NULL, "arm_gic");
+ if (kvm_irqchip_in_kernel()) {
+ gictype = "kvm-arm-gic";
+ }
+
+ s->gic = qdev_create(NULL, gictype);
qdev_prop_set_uint32(s->gic, "num-cpu", s->num_cpu);
qdev_prop_set_uint32(s->gic, "num-irq", s->num_irq);
qdev_prop_set_uint32(s->gic, "revision", 2);