I added a reset function for the NVIC/systick as part of the GIC refactoring work I did recently. These changes should be in QEMU 1.1.
** Changed in: qemu Status: New => Fix Released -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/960515 Title: CortexM, NVIC not reseted if qemu_system_reset_request() called Status in QEMU: Fix Released Bug description: qemu 0.15.1 Interrupts does not work anymore if system reseted from interrupt. There is no reset function registered for armv7m_nvic, and as it is part of the core there is also no any reset for gic/nvic in cpu_reset() for arm. possible solution is to add reset function to armv7_nvic.c static void nvic_reset(void *opaque) { nvic_state* s = opaque; s->systick.control = 0; s->systick.reload = 0; s->systick.tick = 0; qemu_del_timer(s->systick.timer); gic_reset(&s->gic); } and register it in armv7m_nvic_init To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/960515/+subscriptions