Files
2026-08-24 10:03:24 +08:00

53 lines
1.4 KiB
YAML

# SPDX-License-Identifier: GPL-2.0-only
%YAML 1.2
---
title: pKVM pvIOMMU
maintainers:
- Mostafa Saleh <[email protected]>
description: |+
pvIOMMU is a paravirtual IOMMU implemented through arm64 hypercalls (HVC).
What distinguishes it from other paravirtual IOMMUs (virtio-iommu)
is that it has very simple transport which makes it easy for
hypervisors with a small TCB as in confidential computing to implement
it without complexity and with lower performance overhead.
pvIOMMU was initially developed for protected KVM (pKVM), but it has no
KVM specific interface, so it can be implemented by other hypervisors
also.
properties:
$nodename:
pattern: "^iommu@[0-9a-f]*"
compatible:
const: pkvm,pviommu
id:
maxItems: 1
'#iommu-cells':
enum: [ 1, 2 ]
description: |
See Documentation/devicetree/bindings/iommu/iommu.txt for details. With a
value of 1, each IOMMU specifier represents a distinct stream ID emitted
by that device into the relevant SMMU.
pvIOMMU would assume each device belongs to a different group, to describe
iommu groups, it is optionally passed in the second field of "iommus", where
devices having the same ID are part of the same group.
required:
- compatible
- id
- '#iommu-cells'
additionalProperties: false
examples:
- |+
iommu@55 {
compatible = "pkvm,pviommu";
id = <0x55>;
#iommu-cells = <1>;
};