Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752179AbdGGHKZ (ORCPT ); Fri, 7 Jul 2017 03:10:25 -0400 Received: from mail-qk0-f174.google.com ([209.85.220.174]:33122 "EHLO mail-qk0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752063AbdGGHKX (ORCPT ); Fri, 7 Jul 2017 03:10:23 -0400 From: Srinath Mannam To: Rob Herring , Joerg Roedel , Bjorn Helgaas , Mark Rutland , Frank Rowand Cc: iommu@lists.linux-foundation.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, bcm-kernel-feedback-list@broadcom.com, Srinath Mannam , Anup Patel , Oza Pawandeep Subject: [RFC PATCH 1/2] dt-bindings: pci: Add drop mask property for MSI and IOMMU Date: Fri, 7 Jul 2017 12:39:58 +0530 Message-Id: <1499411399-25103-2-git-send-email-srinath.mannam@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1499411399-25103-1-git-send-email-srinath.mannam@broadcom.com> References: <1499411399-25103-1-git-send-email-srinath.mannam@broadcom.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3416 Lines: 113 This patch adds info about optional DT properties iommu-map-drop-mask and msi-map-drop-mask. A drop mask represents the bits which will be removed/dropped by system from Requester ID before mapping it to msi ID or stream ID. Signed-off-by: Anup Patel Signed-off-by: Oza Pawandeep Signed-off-by: Srinath Mannam Reviewed-by: Ray Jui Reviewed-by: Scott Branden --- .../devicetree/bindings/pci/pci-iommu.txt | 31 ++++++++++++++++++++ Documentation/devicetree/bindings/pci/pci-msi.txt | 33 ++++++++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/Documentation/devicetree/bindings/pci/pci-iommu.txt b/Documentation/devicetree/bindings/pci/pci-iommu.txt index 0def586..499cb27 100644 --- a/Documentation/devicetree/bindings/pci/pci-iommu.txt +++ b/Documentation/devicetree/bindings/pci/pci-iommu.txt @@ -44,6 +44,9 @@ Optional properties - iommu-map-mask: A mask to be applied to each Requester ID prior to being mapped to an IOMMU specifier per the iommu-map property. +- iommu-map-drop-mask: A drop mask represents the bits which will be + removed/dropped by system from Requester ID before mapping it to + stream ID. Example (1) =========== @@ -169,3 +172,31 @@ Example (4) <0x8000 &iommu_b 0x0000 0x8000>; }; }; + +Example (5) +=========== + +/ { + #address-cells = <1>; + #size-cells = <1>; + + iommu: iommu@a { + reg = <0xa 0x1>; + compatible = "vendor,some-iommu"; + #iommu-cells = <1>; + }; + + pci: pci@f { + reg = <0xf 0x1>; + compatible = "vendor,pcie-root-complex"; + device_type = "pci"; + + /* + * The sideband data provided to the IOMMU is a 10bit + * data derived from the RID by dropping 4 MSBs + * of device number and 2 MSBs of function number. + */ + iommu-map = <0x0 &iommu 0x0 0x1024>; + iommu-map-drop-mask = <0xff09>; + }; +}; diff --git a/Documentation/devicetree/bindings/pci/pci-msi.txt b/Documentation/devicetree/bindings/pci/pci-msi.txt index 9b3cc81..1de3f39 100644 --- a/Documentation/devicetree/bindings/pci/pci-msi.txt +++ b/Documentation/devicetree/bindings/pci/pci-msi.txt @@ -49,6 +49,10 @@ Optional properties - msi-map-mask: A mask to be applied to each Requester ID prior to being mapped to an msi-specifier per the msi-map property. +- msi-map-drop-mask: A drop mask represents the bits which will be + removed/dropped by system from Requester ID before mapping it to + msi ID. + - msi-parent: Describes the MSI parent of the root complex itself. Where the root complex and MSI controller do not pass sideband data with MSI writes, this property may be used to describe the MSI controller(s) @@ -218,3 +222,32 @@ Example (5) <0x0000 &msi_b 0x0000 0x10000>; }; }; + +Example (6) +=========== + +/ { + #address-cells = <1>; + #size-cells = <1>; + + msi: msi-controller@a { + reg = <0xa 0x1>; + compatible = "vendor,some-controller"; + msi-controller; + #msi-cells = <1>; + }; + + pci: pci@f { + reg = <0xf 0x1>; + compatible = "vendor,pcie-root-complex"; + device_type = "pci"; + + /* + * The sideband data provided to the MSI controller is + * a 10bit data derived from the RID by dropping + * 4 MSBs of device number and 2 MSBs of function number. + */ + msi-map = <0x0 &msi_a 0x0 0x100>, + msi-map-drop-mask = <0xff09> + }; +}; -- 2.7.4