diff options
author | 2019-08-24 11:01:55 +0800 | |
---|---|---|
committer | 2019-08-30 15:57:26 +0200 | |
commit | b4dad40e4f35bbf2393f35f4492acf799eb8136d (patch) | |
tree | 993a5fa4578ed63506d776dc7cc4a17fcb5bf004 /drivers/iommu/mtk_iommu.h | |
parent | iommu/io-pgtable-arm-v7s: Extend to support PA[33:32] for MediaTek (diff) | |
download | linux-b4dad40e4f35bbf2393f35f4492acf799eb8136d.tar.gz linux-b4dad40e4f35bbf2393f35f4492acf799eb8136d.tar.bz2 linux-b4dad40e4f35bbf2393f35f4492acf799eb8136d.zip |
iommu/mediatek: Adjust the PA for the 4GB Mode
After extending the v7s support PA[33:32] for MediaTek, we have to adjust
the PA ourself for the 4GB mode.
In the 4GB Mode, the PA will remap like this:
CPU PA -> M4U output PA
0x4000_0000 0x1_4000_0000 (Add bit32)
0x8000_0000 0x1_8000_0000 ...
0xc000_0000 0x1_c000_0000 ...
0x1_0000_0000 0x1_0000_0000 (No change)
1) Always add bit32 for CPU PA in ->map.
2) Discard the bit32 in iova_to_phys if PA > 0x1_4000_0000 since the
iommu consumer always use the CPU PA.
Besides, the "oas" always is set to 34 since v7s has already supported our
case.
Both mt2712 and mt8173 support this "4GB mode" while the mt8183 don't.
The PA in mt8183 won't remap.
Signed-off-by: Yong Wu <yong.wu@mediatek.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Diffstat (limited to 'drivers/iommu/mtk_iommu.h')
-rw-r--r-- | drivers/iommu/mtk_iommu.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/iommu/mtk_iommu.h b/drivers/iommu/mtk_iommu.h index 9725b083c62f..c281c01b2d5b 100644 --- a/drivers/iommu/mtk_iommu.h +++ b/drivers/iommu/mtk_iommu.h @@ -34,6 +34,7 @@ enum mtk_iommu_plat { struct mtk_iommu_plat_data { enum mtk_iommu_plat m4u_plat; + bool has_4gb_mode; }; struct mtk_iommu_domain; |