Message ID | 1354725137-18077-1-git-send-email-will.deacon@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, 5 Dec 2012, Will Deacon wrote: > From: Marc Zyngier <Marc.Zyngier@arm.com> > > A bug in the KVM GIC init code set the priority mask to the > highest possible value, while the reset value should be zero. > > Now that the kernel bug is fixed, kvm-tool must properly configure > its GIC CPU interface in order to receive the boot IPI. Just set > the GICC_PMR register to the maximum value (0xff), and it "just works". > > Cc: Pekka Enberg <penberg@kernel.org> > Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> > [will: added #define for PMR offset] > Signed-off-by: Will Deacon <will.deacon@arm.com> Applied all three patches, thanks Will! -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/tools/kvm/arm/aarch32/smp-pen.S b/tools/kvm/arm/aarch32/smp-pen.S index 0861171..1e63c95 100644 --- a/tools/kvm/arm/aarch32/smp-pen.S +++ b/tools/kvm/arm/aarch32/smp-pen.S @@ -17,6 +17,10 @@ smp_pen_start: mov r1, #GIC_CPUI_CTLR_EN str r1, [r0] + @ Set the priority mask to accept any interrupt + mov r1, #GIC_CPUI_PMR_MIN_PRIO + str r1, [r0, #GIC_CPUI_OFF_PMR] + @ Now wait for the primary to poke us adr r0, smp_jump_addr ldr r1, =AARCH32_SMP_BAD_MAGIC diff --git a/tools/kvm/arm/include/arm-common/gic.h b/tools/kvm/arm/include/arm-common/gic.h index d534174..d6a18e1 100644 --- a/tools/kvm/arm/include/arm-common/gic.h +++ b/tools/kvm/arm/include/arm-common/gic.h @@ -19,6 +19,9 @@ #define GIC_FDT_IRQ_PPI_CPU_MASK (0xff << GIC_FDT_IRQ_PPI_CPU_SHIFT) #define GIC_CPUI_CTLR_EN (1 << 0) +#define GIC_CPUI_PMR_MIN_PRIO 0xff + +#define GIC_CPUI_OFF_PMR 4 #define GIC_MAX_CPUS 8 #define GIC_MAX_IRQ 255