Re: [PATCH v2 4/5] iommu: Add Broadcom BCM2712 IOMMU driver

Nick Hollinghurst <[email protected]> Mon, 3 Aug 2026 11:53:54 +0100
Newsgroups dev.linux.lists.iommu,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel
Message-ID <CAPhyPA5K6nBAoSiUOyx3EF7mu7AHP6pEo5u72Jr+r5WiLo7cNg@mail.gmail.com>
Hello,

On Sat, 1 Aug 2026 at 10:15, Krzysztof Kozlowski <[email protected]> wrote:
>
> On 31/07/2026 22:34, Daniel Drake wrote:
> > On 30/07/2026 08:00, Krzysztof Kozlowski wrote:
> >> On Mon, Jul 27, 2026 at 09:43:59PM +0100, Daniel Drake wrote:
> >>> +static int bcm2712_iommu_init_cache(struct bcm2712_iommu *mmu,
> >>> +                               struct platform_device *pdev)
> >>> +{
> >>> +   struct device *dev = &pdev->dev;
> >>> +   struct platform_device *cache_pdev;
> >>> +   struct device_node *cache_np;
> >>> +
> >>> +   cache_np = of_parse_phandle(dev->of_node, "brcm,iommu-cache", 0);
> >>> +
> >>> +   /* Fall back on 'cache' property used in old/downstream firmware */
> >>> +   if (!cache_np)
> >>> +           cache_np = of_parse_phandle(dev->of_node, "cache", 0);
> >>
> >> NAK.
> >>
> >> You cannot have undocumented ABI. I asked you to drop this at v1.
> > Is there any approach I should consider here in order to support
> > existing shipped firmware versions that use the 'cache' property, or
> > should I simply break compatibility?
>
> Kernel is being shipped with DTB for Rpi, because firmware is not
> embedded into some lower fixed storage, so there is no problem of
> compatibility with some out of tree, unsupported DTB.
>
> And no, you cannot use argument of undocumented, unreviewed ABI in
> downstream forks as reason to add such ABI. This defeats the very
> purpose of having upstream.

The IOMMU cache is a separate block, shared between multiple IOMMU
instances. This ought to be described in DT, one way or another.

Of course, there's no need for back-compatibility with any downstream
DTS, which can easily be updated.

Regards,

 Nick