All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [Bug 960515] [NEW] CortexM, NVIC not reseted if qemu_system_reset_request() called
@ 2012-03-20 19:03 Oleksiy Bondarenko
  2012-07-10 15:04 ` [Qemu-devel] [Bug 960515] " Peter Maydell
  0 siblings, 1 reply; 2+ messages in thread
From: Oleksiy Bondarenko @ 2012-03-20 19:03 UTC (permalink / raw)
  To: qemu-devel

Public bug reported:

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

** Affects: qemu
     Importance: Undecided
         Status: New


** Tags: arm cortexm

-- 
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:
  New

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [Qemu-devel] [Bug 960515] Re: CortexM, NVIC not reseted if qemu_system_reset_request() called
  2012-03-20 19:03 [Qemu-devel] [Bug 960515] [NEW] CortexM, NVIC not reseted if qemu_system_reset_request() called Oleksiy Bondarenko
@ 2012-07-10 15:04 ` Peter Maydell
  0 siblings, 0 replies; 2+ messages in thread
From: Peter Maydell @ 2012-07-10 15:04 UTC (permalink / raw)
  To: qemu-devel

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2012-07-10 15:11 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-03-20 19:03 [Qemu-devel] [Bug 960515] [NEW] CortexM, NVIC not reseted if qemu_system_reset_request() called Oleksiy Bondarenko
2012-07-10 15:04 ` [Qemu-devel] [Bug 960515] " Peter Maydell

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.