Re: [PATCH 0/4] IOMMU driver improvements for modern Exynos SysMMUs

From: Marek Szyprowski

Date: Tue Aug 25 2026 - 04:17:41 EST


On 20.08.2026 21:12, Markuss Broks via B4 Relay wrote:
> Newer SysMMU v7+ instances can lack BLOCK mode: CAPA1 bit 15 reports
> that the CTRL_BLOCK function is not implemented, and MMU_STATUS never
> reports a blocked state. The SysMMUs on Exynos 8835 are such
> instances.
>
> The driver currently assumes blocking always works, with two
> consequences on such hardware:
>
> The enable path writes CTRL_BLOCK first, which there acts as a plain
> enable and starts translation before the page table base is programmed.
>
> Worse, both TLB invalidation paths gate the invalidation writes on
> sysmmu_block() succeeding, which it never does - so every unmap silently
> skips the invalidation. A stale TLB entry is a valid entry pointing
> at a freed page, so nothing ever faults: the device reads back garbage
> and its writebacks corrupt whatever the kernel has since reused those pages for.
>
> This was tracked down on Exynos 8835 with the MFC, where the
> first decoder session of a boot worked and later sessions produced
> garbage along with random kernel memory corruption.
> Patches 1-3 add detection of the capability bit and adapt the enable
> sequence and the invalidation paths, matching the vendor driver's
> handling of these parts. Patch 4 is an independent debugging
> improvement: decode the v7 fault transaction info word (AxID/AxLEN),
> which identifies the issuing port when a master containing several
> DMA engines faults.
>
> Tested on the Samsung Galaxy Tab S9 FE (Exynos 8835/Exynos 1380).
>
> Signed-off-by: Markuss Broks <markuss.broks@xxxxxxxxx>

For the whole patchset:

Acked-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>

> ---
> Markuss Broks (4):
> iommu/exynos: detect SysMMUs without BLOCK mode
> iommu/exynos: fix the enable sequence for no-block SysMMUs
> iommu/exynos: fix TLB invalidation for no-block SysMMUs
> iommu/exynos: decode the v7 fault transaction info
>
> drivers/iommu/exynos-iommu.c | 37 +++++++++++++++++++++++++++++++++----
> 1 file changed, 33 insertions(+), 4 deletions(-)
> ---
> base-commit: 415606a7be939835db9b0d6b711887586646346d
> change-id: 20260820-exynos-iommu-fixes-e0e4d8f0fc06
>
> Best regards,
> --
> Markuss Broks <markuss.broks@xxxxxxxxx>
>
>
>
Best regards
--
Marek Szyprowski, PhD
Samsung R&D Institute Poland