Re: [PATCH v8 1/3] iommu/io-pgtable-arm-v7s: Add a quirk to allow pgtable PA up to 35bit
From: Yong Wu <yong.wu@mediatek.com>
Date: 2022-06-15 06:32:47
Also in:
linux-iommu, linux-mediatek, lkml
On Tue, 2022-06-14 at 13:56 +0100, Will Deacon wrote:
quoted
@@ -74,17 +74,22 @@ struct io_pgtable_cfg { * to support up to 35 bits PA where the bit32, bit33 andbit34 are * encoded in the bit9, bit4 and bit5 of the PTE respectively. * + * IO_PGTABLE_QUIRK_ARM_MTK_TTBR_EXT: (ARM v7s format) MediaTek IOMMUs + * extend the translation table base support up to 35 bits PA, the + * encoding format is same with IO_PGTABLE_QUIRK_ARM_MTK_EXT. + *One thing I don't get is how the existing driver handles this. It seems as though if the HAS_4GB_MODE flag is not set, then we set oas to 35 but without any pgtable changes. How does this work?
Regarding the pgtable, we already use the quirk IO_PGTABLE_QUIRK_ARM_MTK_EXT to support 35bits oas. HAS_4GB_MODE is the flag for the previous SoC that only supports 33bits oas, it also is covered by IO_PGTABLE_QUIRK_ARM_MTK_EXT. and in 4GB mode we add PA32 manually in mtk_iommu_map.
If it turns out that the existing devices can't handle 35-bit PAs, then could we use an oas of 35 to indicate that this new format is in use instead of introducing another quirk?
The existed devices can handle 35bits oas. The problem is that if the pgtable PA could support up to 35bits. The previous SoC like mt8173 can't support while the lastest SoC can. This is the purpose of this new quick. therefore we need GFP_DMA/DMA32 for pgtable allocating in mt8173 and GFP_DMA/DMA32 is not needed in the new quirk.
Will
_______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel