Re: [PATCH v4 2/5] dt-bindings: iommu: Add Broadcom BCM2712 IOMMU

From: Jim Quinlan

Date: Thu Sep 03 2026 - 14:01:21 EST


On Wed, Sep 2, 2026 at 1:58 PM Daniel Drake <dan@xxxxxxxxxxxxxxx> wrote:
>
> Add bindings for the Broadcom BCM2712 IOMMUs and their shared TLB cache.
>
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxxxxx>
> Signed-off-by: Daniel Drake <dan@xxxxxxxxxxxxxxx>
> ---
> .../bindings/iommu/brcm,bcm2712-iommu.yaml | 54 ++++++++++++++++++++++
> .../bindings/iommu/brcm,bcm2712-iommuc.yaml | 40 ++++++++++++++++
> 2 files changed, 94 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/iommu/brcm,bcm2712-iommu.yaml b/Documentation/devicetree/bindings/iommu/brcm,bcm2712-iommu.yaml
> new file mode 100644
> index 000000000000..5ca8ce469ec3
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iommu/brcm,bcm2712-iommu.yaml
> @@ -0,0 +1,54 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/iommu/brcm,bcm2712-iommu.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Broadcom BCM2712 IOMMU
> +
> +maintainers:
> + - Daniel Drake <dan@xxxxxxxxxxxxxxx>
> + - Florian Fainelli <florian.fainelli@xxxxxxxxxxxx>
> + - Jim Quinlan <james.quinlan@xxxxxxxxxxxx>
> +
> +description:
> + The BCM2712 SoC features multiple independent IOMMU instances providing
> + address translation for multimedia hardware blocks, such as the VC6 display
> + pipeline, camera receivers, and ISP. Each IOMMU has its own page tables,
> + control registers, and local TLB, and is additionally linked to a centralized
> + L2 TLB (IOMMUC).
> +
> +properties:
> + compatible:
> + const: brcm,bcm2712-iommu
> +
> + reg:
> + maxItems: 1
> +
> + '#iommu-cells':
> + const: 0
> +
> + brcm,iommu-cache:
> + $ref: /schemas/types.yaml#/definitions/phandle
> + description:
> + Phandle to the shared IOMMU cache (IOMMUC). Each IOMMU instance caches
> + translated descriptors in this centralized L2 TLB cache block and must
> + trigger cache invalidation commands on it when updating or unmapping page
> + table entries.
> +
> +required:
> + - compatible
> + - reg
> + - '#iommu-cells'
> + - brcm,iommu-cache

Hello Daniel,
What are your thoughts on allowing the iommu work without the cache
property, ie having its presence be optional? I work on the Broadcom
version of the Rpi4/5 SoCs, and (a) on certain workloads the cache
slightly degrades performance or (b) on some chips there is no cache
associated with a specific iommu. This is probably on me to implement
these possibilities, but I just wanted to give you a heads-up.

LGTM

Regards,
Jim Quinlan
Broadcom WCC/CM/STB


> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + iommu@5200 {
> + compatible = "brcm,bcm2712-iommu";
> + reg = <0x5200 0x80>;
> + brcm,iommu-cache = <&iommuc>;
> + #iommu-cells = <0>;
> + };
> diff --git a/Documentation/devicetree/bindings/iommu/brcm,bcm2712-iommuc.yaml b/Documentation/devicetree/bindings/iommu/brcm,bcm2712-iommuc.yaml
> new file mode 100644
> index 000000000000..47c584ad667a
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iommu/brcm,bcm2712-iommuc.yaml
> @@ -0,0 +1,40 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/iommu/brcm,bcm2712-iommuc.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Broadcom BCM2712 Shared IOMMU Cache (IOMMUC)
> +
> +maintainers:
> + - Daniel Drake <dan@xxxxxxxxxxxxxxx>
> + - Florian Fainelli <florian.fainelli@xxxxxxxxxxxx>
> + - Jim Quinlan <james.quinlan@xxxxxxxxxxxx>
> +
> +description:
> + The BCM2712 IOMMUC is a centralized Translation Lookaside Buffer (TLB) cache
> + which accelerates address translation across the SoC's IOMMU devices. If an
> + address mapping is not found in the IOMMU's local TLB cache, then this
> + IOMMUC is consulted as a L2 TLB. The SoC includes a single IOMMUC which is
> + shared between all IOMMUs, and it must be explicitly invalidated when
> + modifying or unmapping IOMMU page tables.
> +
> +properties:
> + compatible:
> + const: brcm,bcm2712-iommuc
> +
> + reg:
> + maxItems: 1
> +
> +required:
> + - compatible
> + - reg
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + iommuc@5b00 {
> + compatible = "brcm,bcm2712-iommuc";
> + reg = <0x5b00 0x80>;
> + };
>
> --
> 2.55.0
>

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature