From: Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>
To: Srinath Mannam <srinath.mannam-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
bcm-kernel-feedback-list-dY08KVG/lbpWk0Htik3J/w@public.gmane.org,
Bjorn Helgaas <bhelgaas-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
Frank Rowand
<frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Subject: Re: [RFC PATCH 1/2] dt-bindings: pci: Add drop mask property for MSI and IOMMU
Date: Fri, 7 Jul 2017 14:30:52 +0100 [thread overview]
Message-ID: <20170707133052.GB3425@leverpostej> (raw)
In-Reply-To: <1499411399-25103-2-git-send-email-srinath.mannam-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
On Fri, Jul 07, 2017 at 12:39:58PM +0530, Srinath Mannam wrote:
> 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 <anup.patel-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
> Signed-off-by: Oza Pawandeep <oza.oza-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
> Signed-off-by: Srinath Mannam <srinath.mannam-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
> Reviewed-by: Ray Jui <ray.jui-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
> Reviewed-by: Scott Branden <scott.branden-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
> ---
> .../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.
As mentioned in my reply to the cover letter, you're expecting this to
be handled as more than a mask, so this description is inadequate.
[...]
> +/ {
> + #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>;
> + };
> +};
... as this this example.
Assuming this was truly a mask of bits to drop, you'd have:
RID -> SID
0xffff -> 0x00f6
... whereas from your cover letter it seems you want:
RID -> SID
0xffff -> 0x3f
... and I've just realsied you have non-coniguous masks, so this is even
worse.
> 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>
> + };
> +};
... likewise on all counts.
Your mapping can be expressed today using a number of msi-map entries,
which you can easily generate programmatically with a trivial perl
script, without requiring a new binding or any new kernel code.
Please do that instead.
Thanks,
Mark.
next prev parent reply other threads:[~2017-07-07 13:30 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-07 7:09 [RFC PATCH 0/2] Add sideband data extraction Srinath Mannam
2017-07-07 7:09 ` [RFC PATCH 1/2] dt-bindings: pci: Add drop mask property for MSI and IOMMU Srinath Mannam
[not found] ` <1499411399-25103-2-git-send-email-srinath.mannam-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2017-07-07 13:30 ` Mark Rutland [this message]
2017-07-07 14:55 ` Robin Murphy
2017-07-07 15:22 ` Scott Branden
[not found] ` <a66fac9a-b8f7-489e-a32a-ab2100c89653-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2017-07-07 15:42 ` Robin Murphy
2017-07-07 15:47 ` Mark Rutland
2017-07-07 7:09 ` [RFC PATCH 2/2] pcie: sideband data by dropping RID bits Srinath Mannam
[not found] ` <1499411399-25103-3-git-send-email-srinath.mannam-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2017-07-07 13:33 ` Mark Rutland
[not found] ` <1499411399-25103-1-git-send-email-srinath.mannam-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2017-07-07 13:21 ` [RFC PATCH 0/2] Add sideband data extraction Mark Rutland
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170707133052.GB3425@leverpostej \
--to=mark.rutland-5wv7dgnigg8@public.gmane.org \
--cc=bcm-kernel-feedback-list-dY08KVG/lbpWk0Htik3J/w@public.gmane.org \
--cc=bhelgaas-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=srinath.mannam-dY08KVG/lbpWk0Htik3J/w@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).