path: root/include/soc
diff options
authorYong Wu <>2021-01-11 19:19:11 +0800
committerWill Deacon <>2021-02-01 11:31:19 +0000
commit8d2c749e5252466d8fc1917101f137966c61fd1c (patch)
tree21d64e7d3c597c464fd8881e0a2f5ef3c80e93fe /include/soc
parentab1d5281a62bafbd611fffdce7eab6eb9577aa0d (diff)
iommu/mediatek: Support master use iova over 32bit
After extending v7s, our pagetable already support iova reach 16GB(34bit). the master got the iova via dma_alloc_attrs may reach 34bits, but its HW register still is 32bit. then how to set the bit32/bit33 iova? this depend on a SMI larb setting(bank_sel). we separate whole 16GB iova to four banks: bank: 0: 0~4G; 1: 4~8G; 2: 8-12G; 3: 12-16G; The bank number is (iova >> 32). We will preassign which bank the larbs belong to. currently we don't have a interface for master to adjust its bank number. Each a bank is a iova_region which is a independent iommu-domain. the iova range for each iommu-domain can't cross 4G. Signed-off-by: Yong Wu <> Acked-by: Krzysztof Kozlowski <> #for memory part Reviewed-by: Tomasz Figa <> Link: Signed-off-by: Will Deacon <>
Diffstat (limited to 'include/soc')
1 files changed, 1 insertions, 0 deletions
diff --git a/include/soc/mediatek/smi.h b/include/soc/mediatek/smi.h
index 9371bf572ab8..4cf445dbbdaa 100644
--- a/include/soc/mediatek/smi.h
+++ b/include/soc/mediatek/smi.h
@@ -16,6 +16,7 @@
struct mtk_smi_larb_iommu {
struct device *dev;
unsigned int mmu;
+ unsigned char bank[32];