Message ID | 20220202020103.2149130-2-rajatja@google.com |
---|---|
State | New |
Headers | show |
Series | [v2,1/2] PCI: Allow internal devices to be marked as untrusted | expand |
On Tue, Feb 01, 2022 at 06:01:03PM -0800, Rajat Jain wrote: > Add the new "UntrustedDevice" property for PCI devices. This property > is optional and can be applied to any PCI device. > > Signed-off-by: Rajat Jain <rajatja@google.com> > --- > v2: Initial version (added documentation based on comments) > v1: Does not exist. > > Documentation/devicetree/bindings/pci/pci.txt | 35 +++++++++++++++++++ > 1 file changed, 35 insertions(+) New properties have to be in a schema which resides here: https://github.com/devicetree-org/dt-schema/blob/main/dtschema/schemas/pci/pci-bus.yaml > > diff --git a/Documentation/devicetree/bindings/pci/pci.txt b/Documentation/devicetree/bindings/pci/pci.txt > index 6a8f2874a24d..bc1ba10f51e1 100644 > --- a/Documentation/devicetree/bindings/pci/pci.txt > +++ b/Documentation/devicetree/bindings/pci/pci.txt > @@ -82,3 +82,38 @@ pcie@10000000 { > external-facing; > }; > }; > + > +PCI Device Properties > +--------------------- > +Following optional properties may be present for any PCI device: > + > +- UntrustedDevice: > + When present, this property is an indicator that this PCI device (and > + any downstream devices) are to be treated as untrusted by the kernel. > + The kernel can, for example, use this information to isolate such > + devices using a strict DMA protection via the IOMMU. > + > + Example device tree node: > + pcie@0008 { > + /* PCI device 00:01.0 is an untrusted device */ > + reg = <0x00000800 0 0 0 0>; > + UntrustedDevice = <1>; > + }; > + > + Example ACPI node: Humm, your caret case smelled like ACPI to begin with. As far as ACPI bindings in Documentation/devicetree/bindings/ are concerned, NAK.
diff --git a/Documentation/devicetree/bindings/pci/pci.txt b/Documentation/devicetree/bindings/pci/pci.txt index 6a8f2874a24d..bc1ba10f51e1 100644 --- a/Documentation/devicetree/bindings/pci/pci.txt +++ b/Documentation/devicetree/bindings/pci/pci.txt @@ -82,3 +82,38 @@ pcie@10000000 { external-facing; }; }; + +PCI Device Properties +--------------------- +Following optional properties may be present for any PCI device: + +- UntrustedDevice: + When present, this property is an indicator that this PCI device (and + any downstream devices) are to be treated as untrusted by the kernel. + The kernel can, for example, use this information to isolate such + devices using a strict DMA protection via the IOMMU. + + Example device tree node: + pcie@0008 { + /* PCI device 00:01.0 is an untrusted device */ + reg = <0x00000800 0 0 0 0>; + UntrustedDevice = <1>; + }; + + Example ACPI node: + Scope (\_SB.PCI0.WFA3) + { + Name (_DSD, Package (0x02) // _DSD: Device-Specific Data + { + ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device + Properties for _DSD */, + Package (0x01) + { + Package (0x02) + { + "UntrustedDevice", + One + } + } + }) + }
Add the new "UntrustedDevice" property for PCI devices. This property is optional and can be applied to any PCI device. Signed-off-by: Rajat Jain <rajatja@google.com> --- v2: Initial version (added documentation based on comments) v1: Does not exist. Documentation/devicetree/bindings/pci/pci.txt | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+)