diff options
author | Yong Wu <yong.wu@mediatek.com> | 2018-03-18 02:52:54 +0100 |
---|---|---|
committer | Joerg Roedel <jroedel@suse.de> | 2018-03-21 12:13:57 +0100 |
commit | 70ca608b2ec6dafa6bb1c2b0691852fc78f8f717 (patch) | |
tree | 9e1bc273b91fefbde05e482bd7a7539ba37430a4 /drivers/iommu/dmar.c | |
parent | iommu/mediatek: Move attach_device after iommu-group is ready for M4Uv1 (diff) | |
download | linux-70ca608b2ec6dafa6bb1c2b0691852fc78f8f717.tar.xz linux-70ca608b2ec6dafa6bb1c2b0691852fc78f8f717.zip |
iommu/mediatek: Fix protect memory setting
In MediaTek's IOMMU design, When a iommu translation fault occurs
(HW can NOT translate the destination address to a valid physical
address), the IOMMU HW output the dirty data into a special memory
to avoid corrupting the main memory, this is called "protect memory".
the register(0x114) for protect memory is a little different between
mt8173 and mt2712.
In the mt8173, bit[30:6] in the register represents [31:7] of the
physical address. In the 4GB mode, the register bit[31] should be 1.
While in the mt2712, the bits don't shift. bit[31:7] in the register
represents [31:7] in the physical address, and bit[1:0] in the
register represents bit[33:32] of the physical address if it has.
Fixes: e6dec9230862 ("iommu/mediatek: Add mt2712 IOMMU support")
Reported-by: Honghui Zhang <honghui.zhang@mediatek.com>
Signed-off-by: Yong Wu <yong.wu@mediatek.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Diffstat (limited to 'drivers/iommu/dmar.c')
0 files changed, 0 insertions, 0 deletions