Re: [PATCH 0/4] IOMMU driver improvements for modern Exynos SysMMUs
Marek Szyprowski <[email protected]>
| Newsgroups | org.kernel.vger.linux-samsung-soc,dev.linux.lists.iommu,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]> For the whole patchset: Acked-by: Marek Szyprowski <[email protected]> > --- > 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 <[email protected]> > > > Best regards -- Marek Szyprowski, PhD Samsung R&D Institute Poland