Skip to content

Commit

Permalink
schemas: Add IOMMU consumer "pasid-num-bits" and "dma-can-stall" prop…
Browse files Browse the repository at this point in the history
…erties

Add optional IOMMU consumer properties. These are copied from
Documentation/devicetree/bindings/iommu/iommu.txt in the Linux kernel.

Descriptions were written by Jean-Philippe Brucker.

Co-developed-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Signed-off-by: Rob Herring <robh@kernel.org>
  • Loading branch information
robherring committed Oct 26, 2023
1 parent 79243b1 commit b3f210b
Showing 1 changed file with 26 additions and 0 deletions.
26 changes: 26 additions & 0 deletions dtschema/schemas/iommu/iommu.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,30 @@ properties:
iommus:
$ref: /schemas/types.yaml#/definitions/phandle-array

pasid-num-bits:
description:
Some masters support multiple address spaces for DMA, by tagging DMA
transactions with an address space identifier. By default, this is 0,
which means that the device only has one address space.
default: 0

dma-can-stall:
type: boolean
description: >
When present, the master can wait for a transaction to complete for an
indefinite amount of time. Upon translation fault some IOMMUs, instead of
aborting the translation immediately, may first notify the driver and keep
the transaction in flight. This allows the OS to inspect the fault and,
for example, make physical pages resident before updating the mappings and
completing the transaction. Such IOMMU accepts a limited number of
simultaneous stalled transactions before having to either put
back-pressure on the master, or abort new faulting transactions.
Firmware has to opt-in stalling, because most buses and masters don't
support it. In particular it isn't compatible with PCI, where transactions
have to complete before a time limit. More generally it won't work in
systems and masters that haven't been designed for stalling. For example
the OS, in order to handle a stalled transaction, may attempt to retrieve
pages from secondary storage in a stalled domain, leading to a deadlock.
additionalProperties: true

0 comments on commit b3f210b

Please sign in to comment.