|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v4 00/16] xen/arm: Add GICv3 support
From: Vijaya Kumar K <Vijaya.Kumar@xxxxxxxxxxxxxxxxxx>
Made changes to existing gic and vgic drivers
to make it generic and added support for GIC v3
hw version
Tested with ARM64 simulator with multicore core
and booted Dom0 kernel.
Major changes in v4:
- Changed io handlers to take mmio address and size as
parameters
- ioremap is used instead of fixmap to map GICv2 address
space. Removed /4 in GICv2 register definitions
- vGIC driver now uses register size to calculate IRQ rank
- GICv2 LR register definitions are declared locally in GICv2 driver
- GICR & GICD common register handling in vgic-v3 driver are segregated
in one common function
- irq_hw_controller definition is managed in GICv2 and GICv3 drivers
- Made irq_ops const
- GIC DT node is updated in respective drivers
- Comments and coding style fixes
- Rebased on remotes/origin/no_maintenance_interrupts-v8 + Julien's
patch set
Major changes in v3:
- Moved io.h from xen/arch/arm to xen/include/asm-arm
and renamed as mmio.h
- Made all the io handlers as domain specific and removed
check handlers. Instead address and size are passed
- Cleaned up sgi handling functions in V2 gic driver and
made generic
- Removed unused parameters in do_sgi call
- VGIC driver is chosen based on GIC driver initialized
- Implemented SGI handling for GICv3 to boot multicore
- Missing coding style fixes
- Rebased to remotes/origin/no_maintenance_interrupts-v6
branch of Stephano's unstable tree
Major Changes in v2:
- Added per domain io handler
- Use device api to initialize gic driver
- Avoid use of void pointer to access common data
- Moved vgic address information data from domain.h
- Coding style
Vijaya Kumar K (16):
xen/arm: move io.h as mmio.h to include folder
xen/arm: make mmio handlers domain specific
xen/arm: make sgi handling generic
xen/arm: remove unused parameter in do_sgi call
xen/arm: use ioremap to map gic-v2 registers
xen/arm: segregate and split GIC low level functionality
arm/xen: move GIC context data structure to gic driver
xen/arm: use device api to detect GIC version
xen/arm: move vgic rank data to gic header file
xen/arm: move vgic defines to vgic header file
xen/arm: calculate vgic irq rank based on register size
xen/arm: split vgic driver into generic and vgic-v2 driver
xen/arm: Add support for GIC v3
xen/arm: Add virtual GICv3 support
xen/arm: Update Dom0 GIC dt node with GICv3 information
xen/arm: add SGI handling for GICv3
xen/arch/arm/Makefile | 6 +-
xen/arch/arm/domain.c | 5 +
xen/arch/arm/domain_build.c | 49 +-
xen/arch/arm/gic-v2.c | 735 +++++++++++++++
xen/arch/arm/gic-v3.c | 1202 +++++++++++++++++++++++++
xen/arch/arm/gic.c | 534 ++---------
xen/arch/arm/io.c | 59 +-
xen/arch/arm/irq.c | 1 +
xen/arch/arm/time.c | 1 +
xen/arch/arm/traps.c | 32 +-
xen/arch/arm/vgic-v2.c | 487 ++++++++++
xen/arch/arm/vgic-v3.c | 932 +++++++++++++++++++
xen/arch/arm/vgic.c | 647 ++-----------
xen/arch/arm/vpsci.c | 1 +
xen/arch/arm/vtimer.c | 1 +
xen/arch/arm/vuart.c | 53 +-
xen/include/asm-arm/device.h | 3 +-
xen/include/asm-arm/domain.h | 30 +-
xen/include/asm-arm/gic.h | 270 ++++--
xen/include/asm-arm/gic_v3_defs.h | 164 ++++
xen/{arch/arm/io.h => include/asm-arm/mmio.h} | 30 +-
xen/include/asm-arm/processor.h | 22 +
xen/include/asm-arm/sysregs.h | 3 +
xen/include/asm-arm/vgic.h | 145 +++
xen/include/xen/lib.h | 2 +
xen/include/xen/sched.h | 16 +
26 files changed, 4242 insertions(+), 1188 deletions(-)
create mode 100644 xen/arch/arm/gic-v2.c
create mode 100644 xen/arch/arm/gic-v3.c
create mode 100644 xen/arch/arm/vgic-v2.c
create mode 100644 xen/arch/arm/vgic-v3.c
create mode 100644 xen/include/asm-arm/gic_v3_defs.h
rename xen/{arch/arm/io.h => include/asm-arm/mmio.h} (66%)
create mode 100644 xen/include/asm-arm/vgic.h
--
1.7.9.5
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |