Re: [PATCH 2/3] Docs: dt: Add PCI MSI map bindings

From: Mark Rutland
Date: Mon Jul 27 2015 - 05:17:00 EST


> > +Example (5)
> > +===========
> > +
> > +/ {
> > + #address-cells = <1>;
> > + #size-cells = <1>;
> > +
> > + msi_a: msi-controller@a {
> > + reg = <0xa 0x1>;
> > + compatible = "vendor,some-controller";
> > + msi-controller;
> > + #msi-cells = <1>;
> > + };
> > +
> > + msi_b: msi-controller@b {
> > + reg = <0xb 0x1>;
> > + compatible = "vendor,some-controller";
> > + msi-controller;
> > + #msi-cells = <1>;
> > + };
> > +
> > + msi_c: msi-controller@c {
> > + reg = <0xc 0x1>;
> > + compatible = "vendor,some-controller";
> > + msi-controller;
> > + #msi-cells = <1>;
> > + };
> > +
> > + pci: pci@c {
> > + reg = <0xf 0x1>;
> > + compatible = "vendor,pcie-root-complex";
> > + device_type = "pci";
> > +
> > + /*
> > + * The sideband data provided to MSI controller a is the
> > + * RID, but the high bit of the bus number is negated.
> > + * The sideband data provided to MSI controller b is the
> > + * RID, identity-mapped.
> > + * MSI controller c is not addressable.
> > + */
> > + msi-map = <0x0000 &msi_a 0x8000 0x08000>,
> > + <0x8000 &msi_a 0x0000 0x08000>,
> > + <0x0000 &msi_b 0x0000 0x10000>;
> > + };
>
> they can be identical right? like
> <0x8000 &msi_a 0x0000 0x08000>,
> <0x8000 &msi_b 0x0000 0x08000>;

In general that would be valid, yes.

In this case two entries are required for MSI controller a because the
high bit passed to it is negated. This does not occur for MSI controller
b, so it only requires a single entry to describe the transformation.

Thanks,
Mark.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/