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

2016-04-09 Thread Stefano Stabellini
Sounds good. Thank you.

Cheers,

Stefano

On Fri, 8 Apr 2016, Steve Capper wrote:
> Hello,
> We are going to re-examine the design document behind GICv3 ITS within
> ARM to see if any simplifications can be made. This should, in turn,
> help us simplify this series somewhat.
> 
> The revised design document will then be sent to xen-devel for review
> before we re-examine this series.
> 
> Cheers,
> -- 
> Steve Capper
> 

___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


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

2016-04-08 Thread Steve Capper
Hello,
We are going to re-examine the design document behind GICv3 ITS within
ARM to see if any simplifications can be made. This should, in turn,
help us simplify this series somewhat.

The revised design document will then be sent to xen-devel for review
before we re-examine this series.

Cheers,
-- 
Steve Capper

___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


[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 latest staging branch.
 - Tested with kernel 4.2.
 - Introduced new patch xen/arm: Correct GICD_TYPER register definition typos.
 - Dropped xen/arm: Move vgic rank locking inside get_irq_priority.
   This patch is not required with latest code.
 - Used Tasklet to parse LPI property table.

Changes in v7:

 - Rebased to latest staging branch.
 - Compiled all the patches individually for both arm32 and arm64
 - Patch xen-arm-ITS-implement-hw_irq_controller-for-LPIs.patch
   split into two patches.
  - xen-arm-ITS-implement-hw_irq_controller-for-LPIs.patch and
  - xen-arm-ITS-Plumbing-hw_irq_controller-for-LPIs.patch.
 - Moved patch xen-arm-ITS-Add-GITS-registers-emulation.patch
   before vITS compilation.
 - Merged xen-arm-ITS-Enable-virtual-ITS-driver.patch with
   patch xen-arm-ITS-Export-ITS-info-to-Virtual-ITS.patch.
 - Dropped patch xen-arm-ITS-Add-32-bit-access-to-GICR_TYPER.patch.
   This is only minor change. Hence merged with
   xen-arm-ITS-Add-GICR-register-emulation.patch.
 - Dropped patch xen-arm-ITS-Introduce-helper-to-get-number-of-event-.patch
 - Dropped gic_lpi_supported helper function.
 - Changed LPI property table usage and handling.
 - Added support to pass nr_lpis from bootargs.
 - Added support to enable/disable its support from bootargs.
 - Fixed issues around freeing of its_device on error.
 - Introduced vits.h file
 - Dropped xen-dt-Handle-correctly-node-with-interrupt-map-in-d.patch
   from this series as it is already merged.

  Could not share code via Github. Network is very slow.
  Please, let me know if required.

Changes in v6:

 - Rebased to latest staging branch.
 - Compiled all the patches individually for both arm32 and arm64
 - Split the patch "xen/arm: ITS: Allocate irq descriptors for LPIs" into two.
   One for allocating LPI irq_desc and other patch for allocating pending_irq 
desc
   for LPIs
 - Following new patches are introduced
 1) xen/arm: Rename NR_IRQs and vgic_num_irqs helper function
 2) xen/arm: ITS: Introduce msi_desc for LPIs
 3) xen/arm: Move vgic locking inside get_irq_priority callback
 4) xen/arm: ITS: Store LPIs allocated and IRQ ID bits per domain
 5) xen/arm: ITS: Introduce helper to get number of event IDs
 6) xen/arm: ITS: Add virtual ITS availability check helper
 7) xen/arm: ITS: Add 32-bit access to GICR_TYPER)
 8) xen/arm: ITS: Allocate pending_lpi descriptors for LPIs

 - Based on below patch set
 http://lists.xen.org/archives/html/xen-devel/2015-08/msg00168.html

 Some Major TODOs:
   1) Avoid making vits_process_cmd() static in later point of time
   2) How to handle LPI that does not have LPI config table entry.
   3) Enable/disable ITS to Dom0

Changes in v5:
  - Added following new patches
  0001-xen-arm-Return-success-if-dt-node-does-not-have-irq-.patch
  0004-xen-arm-Set-nr_cpu_ids-to-available-number-of-cpus.patch
  0009-xen-arm-ITS-Export-ITS-info-to-Virtual-ITS.patch
  0013-xen-arm-ITS-Implement-gic_is_lpi-helper-function.patch
  - Split patch #12 into two patches #14 & #16
  0014-xen-arm-ITS-Allocate-irq-descriptors-for-LPIs.patch
  0016-xen-arm-ITS-Route-LPIs.patch
  - Introduce new API to route LPI (route_lpi_to_guest() )
  - Moved patch #8 in v4 as patch #19
  - irq_descritors for LPIs are allocated dynamically
  - Removed RB-tree for managing vitual its devices. Will be
introduced when pci-passthrough is implemented
  - its_add_device() api now takes nr_ites and DT its node as parameters
  - some function are kept as non-static when introduced in a patch for
compilation purpose and eventually made static when used.
  - Tested compilation for arm32

Changes in v4:
  - Patch for rate limiting of error message is removed.
  - Patch #4 and #5 in v3 is merged
  - Merged #13 and #16 as one patch
  - hw_irq_controller is implemented for LPIs
  - GITS and GICR emulation for LPIs in separate patches
  - Removed build functions for ITS command in physical ITS driver
  - Added new patch to add and assign devices from platform file
  - Enable compilation of vits and pits driver in separate patch
  - Replace msi-parent property in all pci dt nodes to single
ITS node generated by Xen for Dom0

Vijaya Kumar K (28):
  xen/arm: Add bitmap_find_next_zero_area helper function
  xen: Add log2 functionality
  xen/arm: Set nr_cpu_ids to available number of cpus
  xen/arm: Rename NR_IRQs and vgic_num_irqs helper function
  xen/arm: ITS: Port ITS driver to Xen
  xen/arm: ITS: Add helper functions to manage its_devices
  xen/arm: ITS: Introduce msi_desc for LPIs
  xen/arm: ITS: Add APIs to add and assign device
  xen/arm: ITS: Introduce gic_is_lpi