qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v3 0/3] mips: add Global Interrupt Controller
@ 2016-03-29  2:35 Yongbok Kim
  2016-03-29  2:35 ` [Qemu-devel] [PATCH v3 1/3] hw/mips: implement GIC Interval Timer Yongbok Kim
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Yongbok Kim @ 2016-03-29  2:35 UTC (permalink / raw)
  To: qemu-devel
  Cc: Yongbok Kim, peter.maydell, crosthwaitepeter, leon.alrae,
	aurelien

This patchset implement MIPS Global Interrupt Controller.

The Global Interrupt Controller (GIC) is responsible for mapping each
internal and external interrupt to the correct location for servicing.

Limitation:
Level triggering only
GIC CounterHi not implemented (Countbits = 32bits)
DINT not implemented
Local WatchDog, Fast Debug Channel, Perf Counter not implemented

It is based on the earlier un-merged GIC implementation.
https://lists.gnu.org/archive/html/qemu-devel/2013-03/msg00194.html

For more information, 
http://imgtec.com/mips/warrior/p-class-p5600-multiprocessor-core/
http://imgtec.com/mips/warrior/i-class-i6400-multiprocessor-core/

v3:
* rebased to top of CPS changes
* removed GCR from the patchset as CPS patchset includes it
* added checking boundaries
* fixed racy code (James)
* split gic interval timer into separate file hw/timer/mips_gictimer.c
* updated review comments (James, Leon)
* cosmetic changes

v2:
* added user mode section (James)
* moved mips_gic.c into hw/intc, mips_gcr.c into hw/misc (PeterM, PeterC)
* renamed obvious duplications (Leon)
* renamed gic_irqs into irq_state (Leon)
* removed pointer to gic IRQs from env (Leon)
* fixed loading target_ulong CMGCRBase (Leon)
* removed unimplemented registers (Leon)
* fixed writing to wedge register (Leon)
* removed magic numbers
* updated usage of map_vp to indicate not mapped
* cosmetic changes and other review comments

Leon Alrae (1):
  hw/mips/cps: create GIC block inside CPS

Yongbok Kim (2):
  hw/mips: implement GIC Interval Timer
  hw/mips: implement Global Interrupt Controller

 hw/intc/Makefile.objs            |    1 +
 hw/intc/mips_gic.c               |  459 ++++++++++++++++++++++++++++++++++++++
 hw/mips/cps.c                    |   25 ++-
 hw/mips/mips_malta.c             |    4 +-
 hw/misc/mips_cmgcr.c             |   33 +++
 hw/timer/Makefile.objs           |    1 +
 hw/timer/mips_gictimer.c         |  141 ++++++++++++
 include/hw/intc/mips_gic.h       |  215 ++++++++++++++++++
 include/hw/mips/cps.h            |    2 +
 include/hw/misc/mips_cmgcr.h     |    9 +
 include/hw/timer/mips_gictimer.h |   46 ++++
 11 files changed, 926 insertions(+), 10 deletions(-)
 create mode 100644 hw/intc/mips_gic.c
 create mode 100644 hw/timer/mips_gictimer.c
 create mode 100644 include/hw/intc/mips_gic.h
 create mode 100644 include/hw/timer/mips_gictimer.h

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

end of thread, other threads:[~2016-03-29  2:36 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-29  2:35 [Qemu-devel] [PATCH v3 0/3] mips: add Global Interrupt Controller Yongbok Kim
2016-03-29  2:35 ` [Qemu-devel] [PATCH v3 1/3] hw/mips: implement GIC Interval Timer Yongbok Kim
2016-03-29  2:35 ` [Qemu-devel] [PATCH v3 2/3] hw/mips: implement Global Interrupt Controller Yongbok Kim
2016-03-29  2:35 ` [Qemu-devel] [PATCH v3 3/3] hw/mips/cps: create GIC block inside CPS Yongbok Kim

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).