[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH v8a 0/6] GIC and VGIC code refactoring

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.

The complete GICv3 patch series
"[PATCH v5 00/21] xen/arm: Add GICv3 support" is split
into two patch series version v6a and v6.

The first 8 patches of v6a/v7a series are mergeed. Hence
posting remaining 6 patches here.

Tested with ARM64 simulator with multicore core
and booted Dom0 kernel.

Major changes in v8a:
 - is_vcpu_online() is modified to take only vcpu as
    parameter and validity checks on vcpu is done in
 - set vcpu_mask to 0 for SGI_TARGET_{OTHERS,SELF} modes
     made vgic-v2 mmio handler static

Major changes in v7a:
 - Made changes to send_SGI() to pass NULL as cpu_mask for
   sgi modes which does not require cpu mask
 - Renamed update_cpu_lr_mask() clear_cpu_lr_mask()
 - used writeb_relaxed() to access ITARGETR & IPRIORITYR

Major changes in v6a:
 - Changed send_SGI parameters ordering
 - coding styles and missing comments
 - New patch (17) to check for idle domain before saving GIC context
 - Introduced new callback in vgic handler for handling SGI

Major changes in v5:
 - Introduced new patch for checking platform capability for gicv3
 - Introduced more patches for vgic clean up and code movement
 - Added synchronization barriers and clean up in GICv3 driver
 - Rebase on top of master branch +
   remotes/origin/no_maintenance_interrupts-v8 patch set
 - Code base available in github
   git clone https://github.com/vijaykilari/Xen-GICv3.git
 - Fixed comments and coding style

Major changes in v4:
 - Changed io handlers to take mmio address and size as
 - 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

Vijaya Kumar K (6):
  xen/arm: move and rename is_vcpu_running function to sched.h
  xen/arm: move pending_irq structure to vgic header file
  xen/arm: calculate vgic irq rank based on register size
  xen/arm: Remove REG macro in vgic driver
  xen/arm: split vgic driver into generic and vgic-v2 driver
  xen/arm: Restrict saving of gic register for idle domain

 xen/arch/arm/Makefile           |    2 +-
 xen/arch/arm/gic.c              |    3 +
 xen/arch/arm/vgic-v2.c          |  507 +++++++++++++++++++++++++++++++++++++
 xen/arch/arm/vgic.c             |  522 +++++----------------------------------
 xen/include/asm-arm/domain.h    |   59 +----
 xen/include/asm-arm/gic.h       |    5 +-
 xen/include/asm-arm/processor.h |    8 +
 xen/include/asm-arm/vgic.h      |   82 +++++-
 xen/include/xen/sched.h         |    5 +
 9 files changed, 675 insertions(+), 518 deletions(-)
 create mode 100644 xen/arch/arm/vgic-v2.c


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.