[Xen-devel] [PATCH v8 06/28] xen/arm: ITS: Add helper functions to manage its_devices

2016-02-01 Thread vijayak
From: Vijaya Kumar K Helper functions to manage its devices using RB-tree are introduced in physical ITS driver. This is global list of all the devices. Signed-off-by: Vijaya Kumar K --- v8: - Added assert on lock in its_remove_device() - Dropped Ack's from Ian and Julien v7: - Introduce i

[Xen-devel] [PATCH v8 18/28] xen/arm: ITS: Export ITS info to Virtual ITS

2016-02-01 Thread vijayak
From: Vijaya Kumar K Export physical ITS information to virtual ITS driver Signed-off-by: Vijaya Kumar K --- v8: - eventID_bits and devID_bits are made its node specific. Max of all the nodes is considered - Moved assert on eventID_bits from its_assign_device() to its_add_device

[Xen-devel] [PATCH v8 16/28] xen/arm: ITS: Add virtual ITS commands support

2016-02-01 Thread vijayak
From: Vijaya Kumar K Add Virtual ITS command processing support to Virtual ITS driver Signed-off-by: Vijaya Kumar K Reviewed-by: Julien Grall --- v8: - Fixed coding styles v7: - Moved is_valid_collection() declaration to vits.h - Added check for number of vcpus of a domain in vits_do

[Xen-devel] [PATCH v8 05/28] xen/arm: ITS: Port ITS driver to Xen

2016-02-01 Thread vijayak
From: Vijaya Kumar K The linux driver is based on 4.1 with below commit id 591e5bec13f15feb13fc445b6c9c59954711c4ac Only following code from Linux ITS driver is ported and compiled - LPI initialization - ITS configuration code - Physical command queue management - ITS command building Also

[Xen-devel] [PATCH v8 01/28] xen/arm: Add bitmap_find_next_zero_area helper function

2016-02-01 Thread vijayak
From: Vijaya Kumar K bitmap_find_next_zero_area helper function will be used by physical ITS driver. This is imported from linux 4.2 Signed-off-by: Vijaya Kumar K Acked-by: Jan Beulich CC: Ian Campbell CC: Ian Jackson CC: Jan Beulich CC: Keir Fraser CC: Tim Deegan --- v5: Ported from Linu

[Xen-devel] [PATCH v8 21/28] xen/arm: ITS: Add GICR register emulation

2016-02-01 Thread vijayak
From: Vijaya Kumar K Emulate LPI related changes to GICR registers Signed-off-by: Vijaya Kumar K --- v8: - Updated GICR_PROPBASER and GICR_PENDBASER only on enabling LPIs and added 32/64 bit reg access - Allocated LPI property table of size supported by Xen. - Moved LPI property t

[Xen-devel] [PATCH v8 02/28] xen: Add log2 functionality

2016-02-01 Thread vijayak
From: Vijaya Kumar K log2 helper apis are ported from linux from commit 13c07b0286d340275f2d97adf085cecda37ede37 (linux/log2.h: Fix rounddown_pow_of_two(1)) Changes made for xen are: - Only required functionality is retained - Replace fls_long with flsl Signed-off-by: Vijaya Kumar K Acked-b

[Xen-devel] [PATCH v8 22/28] xen/arm: ITS: Allocate irq descriptors for LPIs

2016-02-01 Thread vijayak
From: Vijaya Kumar K Allocate dynamically irq descriptors for LPIs Signed-off-by: Vijaya Kumar K --- v8: - Use gic_nr_irq_ids() instead of nr_lpis v6: - Add separate patch for irq_pending structures - renamed and moved is_domain_lpi to vgic - Updated __irq_to_domain --- xen/arch/arm/gi

[Xen-devel] [PATCH v8 03/28] xen/arm: Set nr_cpu_ids to available number of cpus

2016-02-01 Thread vijayak
From: Vijaya Kumar K nr_cpu_ids for arm platforms is incorrectly set to NR_CPUS irrespective of the number of cpus supported by platform. Signed-off-by: Vijaya Kumar K Reviewed-by: Julien Grall --- v6: - Updated nr_cpu_ids in setup.c instead of creating a helper function --- xen/arch/ar

[Xen-devel] [PATCH v8 00/28] Add ITS support

2016-02-01 Thread vijayak
From: Vijaya Kumar K This is based on DraftG version http://xenbits.xen.org/people/ianc/vits/draftG.pdf Following major features are supported - GICv3 ITS support for arm64 platform - Only Dom0 is supported. For DomU pci passthrough feature is required. Major Changes in v8: - Rebased to l

[Xen-devel] [PATCH v8 17/28] xen/arm: ITS: Add GITS registers emulation

2016-02-01 Thread vijayak
From: Vijaya Kumar K Emulate GITS* registers Signed-off-by: Vijaya Kumar K --- v8: - Fixed GITS_BASER0 value. - Added comments for GITS_BASER0. - Support 32/64 bit access for GITS_BASER0 and GITS_CBASER. - s/vits->ctrl/vits->ctlr/ - Used VREG{64,32} and VRANGE{64,32} macros v7:

[Xen-devel] [PATCH v8 11/28] xen/arm: ITS: Enable compilation of physical ITS driver

2016-02-01 Thread vijayak
From: Vijaya Kumar K Enable compilation of pITS driver. Signed-off-by: Vijaya Kumar K --- xen/arch/arm/Makefile |1 + 1 file changed, 1 insertion(+) diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile index 9982a93..4970641 100644 --- a/xen/arch/arm/Makefile +++ b/xen/arch/arm/Make

[Xen-devel] [PATCH v8 07/28] xen/arm: ITS: Introduce msi_desc for LPIs

2016-02-01 Thread vijayak
From: Vijaya Kumar K Define msi_desc structure for arm and introduce helper functions to access msi_desc member variables. Signed-off-by: Vijaya Kumar K Reviewed-by: Julien Grall --- xen/arch/arm/gic-v3-its.c | 28 xen/arch/arm/irq.c| 12 ++

[Xen-devel] [PATCH v8 14/28] xen/arm: ITS: Initialize physical ITS and export lpi support

2016-02-01 Thread vijayak
From: Vijaya Kumar K Initialize physical ITS if HW supports LPIs. Signed-off-by: Vijaya Kumar K --- v8: - Rename lpi_support to its_support. - Removed its command line parameter. - Dropped its_enabled global variable. v7: - Export lpi support information to vgic-v3 driver from gic-v3.

[Xen-devel] [PATCH v8 12/28] xen/arm: ITS: Plumb hw_irq_controller for LPIs

2016-02-01 Thread vijayak
From: Vijaya Kumar K Change callbacks gic_host_irq_type and gic_guest_irq_type to gic_get_host_irq_type and gic_get_guest_irq_type in gic_hw_operations, which returns hw_irq_controller based on irq type (SPI or LPI). Signed-off-by: Vijaya Kumar K CC: Zoltan Kiss Reviewed-by: Julien Grall ---

[Xen-devel] [PATCH v8 23/28] xen/arm: ITS: Allocate pending_lpi descriptors for LPIs

2016-02-01 Thread vijayak
From: Vijaya Kumar K Allocate dynamically pending_lpi descriptors for LPIs Signed-off-by: Vijaya Kumar K --- v8: - Dropped HAS_GICV3 config switch around pending_lpis[] --- xen/arch/arm/vgic-v3-its.c |9 + xen/arch/arm/vgic.c | 12 +--- xen/include/asm-arm/doma

[Xen-devel] [PATCH v8 26/28] xen/arm: ITS: Map ITS translation space

2016-02-01 Thread vijayak
From: Vijaya Kumar K ITS translation space contains GITS_TRANSLATER register which is written by device to raise LPI. This space needs to mapped to every domain address space for all physical ITS available,so that device can access GITS_TRANSLATER register using SMMU. Signed-off-by: Vijaya Kumar

[Xen-devel] [PATCH v8 24/28] xen/arm: ITS: Route LPIs

2016-02-01 Thread vijayak
From: Vijaya Kumar K Allocate and initialize irq descriptor for LPIs and route LPIs to guest For LPIs deactivation is not required. Hence GICH_LR.HW is not required to set. Signed-off-by: Vijaya Kumar K --- v7: - Subtract 8192 from irq number to index to lpi property table to read priori

[Xen-devel] [PATCH v8 20/28] xen/arm: ITS: Add virtual ITS availability check helper

2016-02-01 Thread vijayak
From: Vijaya Kumar K Introduce vgic_is_lpi_supported() helper function to know virtual ITS availability for a domain Signed-off-by: Vijaya Kumar K --- v8: - Dropped its_enabled field v7: - its_enabled field is added to vgic structure --- xen/arch/arm/vgic.c|5 + xen/include/asm

[Xen-devel] [PATCH v8 04/28] xen/arm: Rename NR_IRQs and vgic_num_irqs helper function

2016-02-01 Thread vijayak
From: Vijaya Kumar K NR_IRQS represents the number of lines (i.e SGIs, PPIs and SPIs). With the introduction of LPIs, NR_IRQs is renamed to NR_ITLINES. Similarly vgic_num_irqs() is renamed as vgic_num_irq_lines(). Signed-off-by: Vijaya Kumar K Reviewed-by: Julien Grall --- v7: - Renamed NR_LIN

[Xen-devel] [PATCH v8 09/28] xen/arm: ITS: Introduce gic_is_lpi helper function

2016-02-01 Thread vijayak
From: Vijaya Kumar K Helper function gic_is_lpi() is used to find if irq is lpi or not. For GICv2 platforms this function returns number of irq ids which represents only number of line irqs. For GICv3 platform irq ids are calculated from nr_lpis if HW supports LPIs Signed-off-by: Vijaya Kumar K

[Xen-devel] [PATCH v8 10/28] xen/arm: ITS: Implement hw_irq_controller for LPIs

2016-02-01 Thread vijayak
From: Vijaya Kumar K Implement hw_irq_controller callbacks required to handle LPIs. Signed-off-by: Vijaya Kumar K Reviewed-by: Julien Grall --- v8: - Removed const before hw_irq_controller for lpis v7: - Split this patch into two. In this patch implement only hw_irq_controller callbacks

[Xen-devel] [PATCH v8 08/28] xen/arm: ITS: Add APIs to add and assign device

2016-02-01 Thread vijayak
From: Vijaya Kumar K Add APIs to add devices to RB-tree, assign and remove devices to domain. Signed-off-by: Vijaya Kumar K --- v8: - Merged its_free_msi_descs() with its_discard_lpis - Dropped extra spin_unlock() in its_assign_device() - Dropped check on device domain to be dom0 in ass

[Xen-devel] [PATCH v8 28/28] xen/arm: ITS: Add pci devices in ThunderX

2016-02-01 Thread vijayak
From: Vijaya Kumar K ITS initialization required for all PCI devices in ThunderX platform are done by calling from specific mapping function. This patch can be reverted once XEN PCI passthrough framework for arm64 is in available. For now all the PCI devices are assigned to Dom0 Signed-off-by:

[Xen-devel] [PATCH v8 15/28] xen/arm: ITS: Add virtual ITS driver

2016-02-01 Thread vijayak
From: Vijaya Kumar K This patch introduces virtual ITS driver with following functionality - Introduces helper functions to manage device table and ITT table in guest memory - Helper function to handle virtual ITS devices assigned to domain Signed-off-by: Vijaya Kumar K Reviewed-by: Jul

[Xen-devel] [PATCH v8 27/28] xen/arm: ITS: Generate ITS node for Dom0

2016-02-01 Thread vijayak
From: Vijaya Kumar K Parse host dt and generate ITS node for Dom0. ITS node resides inside GIC node so when GIC node is encountered look for ITS node. Signed-off-by: Vijaya Kumar K --- v7: - Check on return value v6: - Introduced get_its_phandle in gic_hw_ops - Removed make_hwdom_its_dt_nod

[Xen-devel] [PATCH v8 19/28] xen/arm: ITS: Store the number of LPIs allocated per domain

2016-02-01 Thread vijayak
From: Vijaya Kumar K Store the number of lpis allocated per domain in vgic structure Signed-off-by: Vijaya Kumar K --- v8: - Updated commit message and added comments - Removed initialization of vgic.nr_lpis to zero v7: - Change commit message. - Store only nr_lpis per domain in vgic st

[Xen-devel] [PATCH v8 13/28] xen/arm: Correct GICD_TYPER register definition typos

2016-02-01 Thread vijayak
From: Vijaya Kumar K GICD_TYPER register definitions are defined as GICD_TYPE. Rename all GICD_TYPE_* as GICD_TYPER_* Signed-off-by: Vijaya Kumar K --- xen/arch/arm/gic-hip04.c |4 ++-- xen/arch/arm/gic-v2.c |6 +++--- xen/arch/arm/gic-v3.c |2 +- x

[Xen-devel] [PATCH v8 25/28] xen/arm: ITS: Add domain specific ITS initialization

2016-02-01 Thread vijayak
From: Vijaya Kumar K Call domain specific ITS initialization and introduce callback in vgic for domain free Signed-off-by: Vijaya Kumar K --- v7: - Deprecate use of gic_lpi_supported and instead use vgic_v3_hw.lpi_support v6: - Moved vits_domain_free() out of this patch --- xen/arch/arm/