]> git.proxmox.com Git - mirror_qemu.git/commit
hw/mips: implement Global Interrupt Controller
authorYongbok Kim <yongbok.kim@imgtec.com>
Tue, 29 Mar 2016 02:35:51 +0000 (19:35 -0700)
committerLeon Alrae <leon.alrae@imgtec.com>
Tue, 12 Jul 2016 08:10:12 +0000 (09:10 +0100)
commite8bd336dd1af6d1073e9411bd1c47b045988b30a
tree61d7f85ebae85f4021a64a9bc0feb5e948833745
parent405140519f58815b422db086b7461d6c00b79b57
hw/mips: implement Global Interrupt Controller

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

The internal representation of registers is different from the specification
in order to consolidate information for each GIC Interrupt Sources and Virtual
Processors with same functionalities. For example SH_MAP00_VP00 registers are
defined like each bit represents a VP but in this implementation the equivalent
map_vp contains VP number in integer form for ease accesses. When it is being
accessed via read write functions an internal data is converted back into the
original format as the specification.

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

Signed-off-by: Yongbok Kim <yongbok.kim@imgtec.com>
Signed-off-by: Leon Alrae <leon.alrae@imgtec.com>
hw/intc/Makefile.objs
hw/intc/mips_gic.c [new file with mode: 0644]
include/hw/intc/mips_gic.h [new file with mode: 0644]