From: Yong Wu <yong.wu@mediatek.com>
To: Joerg Roedel <joro@8bytes.org>, Rob Herring <robh+dt@kernel.org>,
Matthias Brugger <matthias.bgg@gmail.com>,
Will Deacon <will@kernel.org>,
Robin Murphy <robin.murphy@arm.com>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
Tomasz Figa <tfiga@chromium.org>,
<linux-mediatek@lists.infradead.org>,
<srv_heupstream@mediatek.com>, <devicetree@vger.kernel.org>,
<linux-kernel@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
<iommu@lists.linux-foundation.org>,
Hsin-Yi Wang <hsinyi@chromium.org>, <yong.wu@mediatek.com>,
<youlin.pei@mediatek.com>, <anan.sun@mediatek.com>,
<chao.hao@mediatek.com>, <yen-chang.chen@mediatek.com>
Subject: [PATCH v3 00/33] MT8195 IOMMU SUPPORT
Date: Thu, 23 Sep 2021 19:58:07 +0800 [thread overview]
Message-ID: <20210923115840.17813-1-yong.wu@mediatek.com> (raw)
This patchset adds MT8195 iommu support.
MT8195 have 3 IOMMU HWs. 2 IOMMU HW is for multimedia, and 1 IOMMU HW is
for infra-master, like PCIe/USB.
About the 2 MM IOMMU HW, something like this:
IOMMU(VDO) IOMMU(VPP)
| |
SMI_COMMON(VDO) SMI_COMMON(VPP)
--------------- ----------------
| | ... | | ...
larb0 larb2 ... larb1 larb3 ...
these two MM IOMMU HW share a pgtable.
About the INFRA IOMMU, it don't have larbs, the master connects the iommu
directly. It use a independent pgtable.
Also, mt8195 IOMMU bank supports. Normally the IOMMU register size only
is 0x1000. In this IOMMU HW, the register size is 5 * 0x1000. each 0x1000
is a bank. the banks' register look like this:
----------------------------------------
|bank0 | bank1 | bank2 | bank3 | bank4|
----------------------------------------
|global |
|control| null
|regs |
-----------------------------------------
|bank |bank |bank |bank |bank |
|regs |regs |regs |regs |regs |
| | | | | |
-----------------------------------------
All the banks share some global control registers, and each bank have its
special bank registers, like pgtable base register, tlb operation registers,
the fault status registers.
In mt8195, we enable this bank feature for infra iommu, We put PCIe in bank0
and USB in bank4. they have independent pgtable.
patch[1..23]: support mt8195 iommu.
patch[24..33]: support bank feature.
TODO: there is another APU_IOMMU in mt8195, this should depend on APU patches.
thus, we need add that feature after that.
Change note:
v3: 1) base on v5.15-rc1
2) Adjust devlink with smi-common, not use the property(sub-sommon).
3) Adjust tlb_flush_all flow,
a) Fix tlb_flush_all only is supported in bank0.
b) add tlb-flush-all in the resume callback.
c) remove the pm status checking in tlb-flush-all.
The reason are showed in the commit message.
4) Allow IOMMU_DOMAIN_UNMANAGED since PCIe VFIO use that.
5) Fix a clk warning and a null abort when unbind the iommu driver.
v2: https://lore.kernel.org/linux-mediatek/20210813065324.29220-1-yong.wu@mediatek.com/
1) Base on v5.14-rc1.
2) Fix build fail for arm32.
3) Fix dt-binding issue from Rob.
4) Fix the bank issue when tlb flush. v1 always use bank->base.
5) adjust devlink with smi-common since the node may be smi-sub-common.
6) other changes: like reword some commit message(removing many
"This patch..."); seperate serveral patches.
v1: https://lore.kernel.org/linux-mediatek/20210630023504.18177-1-yong.wu@mediatek.com/
Base on v5.13-rc1
Yong Wu (33):
dt-bindings: mediatek: mt8195: Add binding for MM IOMMU
dt-bindings: mediatek: mt8195: Add binding for infra IOMMU
iommu/mediatek: Fix 2 HW sharing pgtable issue
iommu/mediatek: Remove clk_disable in mtk_iommu_remove
iommu/mediatek: Adapt sharing and non-sharing pgtable case
iommu/mediatek: Add 12G~16G support for multi domains
iommu/mediatek: Add a flag DCM_DISABLE
iommu/mediatek: Add a flag NON_STD_AXI
iommu/mediatek: Remove for_each_m4u in tlb_sync_all
iommu/mediatek: Add tlb_lock in tlb_flush_all
iommu/mediatek: Remove the granule in the tlb flush
iommu/mediatek: Always tlb_flush_all when each PM resume
iommu/mediatek: Remove the power status checking in tlb flush all
iommu/mediatek: Always enable output PA over 32bits in isr
iommu/mediatek: Add SUB_COMMON_3BITS flag
iommu/mediatek: Add IOMMU_TYPE flag
iommu/mediatek: Contain MM IOMMU flow with the MM TYPE
iommu/mediatek: Adjust device link when it is sub-common
iommu/mediatek: Add list_del in mtk_iommu_remove
iommu/mediatek: Allow IOMMU_DOMAIN_UNMANAGED for PCIe VFIO
iommu/mediatek: Add infra iommu support
iommu/mediatek: Add PCIe support
iommu/mediatek: Add mt8195 support
iommu/mediatek: Only adjust code about register base
iommu/mediatek: Just move code position in hw_init
iommu/mediatek: Add mtk_iommu_bank_data structure
iommu/mediatek: Initialise bank HW for each a bank
iommu/mediatek: Add bank_nr and bank_enable
iommu/mediatek: Change the domid to iova_region_id
iommu/mediatek: Get the proper bankid for multi banks
iommu/mediatek: Initialise/Remove for multi bank dev
iommu/mediatek: Backup/restore regsiters for multi banks
iommu/mediatek: mt8195: Enable multi banks for infra iommu
.../bindings/iommu/mediatek,iommu.yaml | 20 +-
drivers/iommu/mtk_iommu.c | 799 ++++++++++++------
drivers/iommu/mtk_iommu.h | 56 +-
.../dt-bindings/memory/mt8195-memory-port.h | 408 +++++++++
include/dt-bindings/memory/mtk-memory-port.h | 2 +
5 files changed, 1014 insertions(+), 271 deletions(-)
create mode 100644 include/dt-bindings/memory/mt8195-memory-port.h
--
2.18.0
WARNING: multiple messages have this Message-ID (diff)
From: Yong Wu <yong.wu@mediatek.com>
To: Joerg Roedel <joro@8bytes.org>, Rob Herring <robh+dt@kernel.org>,
Matthias Brugger <matthias.bgg@gmail.com>,
Will Deacon <will@kernel.org>,
Robin Murphy <robin.murphy@arm.com>
Cc: youlin.pei@mediatek.com, devicetree@vger.kernel.org,
srv_heupstream@mediatek.com,
Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
linux-kernel@vger.kernel.org, yen-chang.chen@mediatek.com,
chao.hao@mediatek.com, iommu@lists.linux-foundation.org,
linux-mediatek@lists.infradead.org,
Hsin-Yi Wang <hsinyi@chromium.org>,
anan.sun@mediatek.com, linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 00/33] MT8195 IOMMU SUPPORT
Date: Thu, 23 Sep 2021 19:58:07 +0800 [thread overview]
Message-ID: <20210923115840.17813-1-yong.wu@mediatek.com> (raw)
This patchset adds MT8195 iommu support.
MT8195 have 3 IOMMU HWs. 2 IOMMU HW is for multimedia, and 1 IOMMU HW is
for infra-master, like PCIe/USB.
About the 2 MM IOMMU HW, something like this:
IOMMU(VDO) IOMMU(VPP)
| |
SMI_COMMON(VDO) SMI_COMMON(VPP)
--------------- ----------------
| | ... | | ...
larb0 larb2 ... larb1 larb3 ...
these two MM IOMMU HW share a pgtable.
About the INFRA IOMMU, it don't have larbs, the master connects the iommu
directly. It use a independent pgtable.
Also, mt8195 IOMMU bank supports. Normally the IOMMU register size only
is 0x1000. In this IOMMU HW, the register size is 5 * 0x1000. each 0x1000
is a bank. the banks' register look like this:
----------------------------------------
|bank0 | bank1 | bank2 | bank3 | bank4|
----------------------------------------
|global |
|control| null
|regs |
-----------------------------------------
|bank |bank |bank |bank |bank |
|regs |regs |regs |regs |regs |
| | | | | |
-----------------------------------------
All the banks share some global control registers, and each bank have its
special bank registers, like pgtable base register, tlb operation registers,
the fault status registers.
In mt8195, we enable this bank feature for infra iommu, We put PCIe in bank0
and USB in bank4. they have independent pgtable.
patch[1..23]: support mt8195 iommu.
patch[24..33]: support bank feature.
TODO: there is another APU_IOMMU in mt8195, this should depend on APU patches.
thus, we need add that feature after that.
Change note:
v3: 1) base on v5.15-rc1
2) Adjust devlink with smi-common, not use the property(sub-sommon).
3) Adjust tlb_flush_all flow,
a) Fix tlb_flush_all only is supported in bank0.
b) add tlb-flush-all in the resume callback.
c) remove the pm status checking in tlb-flush-all.
The reason are showed in the commit message.
4) Allow IOMMU_DOMAIN_UNMANAGED since PCIe VFIO use that.
5) Fix a clk warning and a null abort when unbind the iommu driver.
v2: https://lore.kernel.org/linux-mediatek/20210813065324.29220-1-yong.wu@mediatek.com/
1) Base on v5.14-rc1.
2) Fix build fail for arm32.
3) Fix dt-binding issue from Rob.
4) Fix the bank issue when tlb flush. v1 always use bank->base.
5) adjust devlink with smi-common since the node may be smi-sub-common.
6) other changes: like reword some commit message(removing many
"This patch..."); seperate serveral patches.
v1: https://lore.kernel.org/linux-mediatek/20210630023504.18177-1-yong.wu@mediatek.com/
Base on v5.13-rc1
Yong Wu (33):
dt-bindings: mediatek: mt8195: Add binding for MM IOMMU
dt-bindings: mediatek: mt8195: Add binding for infra IOMMU
iommu/mediatek: Fix 2 HW sharing pgtable issue
iommu/mediatek: Remove clk_disable in mtk_iommu_remove
iommu/mediatek: Adapt sharing and non-sharing pgtable case
iommu/mediatek: Add 12G~16G support for multi domains
iommu/mediatek: Add a flag DCM_DISABLE
iommu/mediatek: Add a flag NON_STD_AXI
iommu/mediatek: Remove for_each_m4u in tlb_sync_all
iommu/mediatek: Add tlb_lock in tlb_flush_all
iommu/mediatek: Remove the granule in the tlb flush
iommu/mediatek: Always tlb_flush_all when each PM resume
iommu/mediatek: Remove the power status checking in tlb flush all
iommu/mediatek: Always enable output PA over 32bits in isr
iommu/mediatek: Add SUB_COMMON_3BITS flag
iommu/mediatek: Add IOMMU_TYPE flag
iommu/mediatek: Contain MM IOMMU flow with the MM TYPE
iommu/mediatek: Adjust device link when it is sub-common
iommu/mediatek: Add list_del in mtk_iommu_remove
iommu/mediatek: Allow IOMMU_DOMAIN_UNMANAGED for PCIe VFIO
iommu/mediatek: Add infra iommu support
iommu/mediatek: Add PCIe support
iommu/mediatek: Add mt8195 support
iommu/mediatek: Only adjust code about register base
iommu/mediatek: Just move code position in hw_init
iommu/mediatek: Add mtk_iommu_bank_data structure
iommu/mediatek: Initialise bank HW for each a bank
iommu/mediatek: Add bank_nr and bank_enable
iommu/mediatek: Change the domid to iova_region_id
iommu/mediatek: Get the proper bankid for multi banks
iommu/mediatek: Initialise/Remove for multi bank dev
iommu/mediatek: Backup/restore regsiters for multi banks
iommu/mediatek: mt8195: Enable multi banks for infra iommu
.../bindings/iommu/mediatek,iommu.yaml | 20 +-
drivers/iommu/mtk_iommu.c | 799 ++++++++++++------
drivers/iommu/mtk_iommu.h | 56 +-
.../dt-bindings/memory/mt8195-memory-port.h | 408 +++++++++
include/dt-bindings/memory/mtk-memory-port.h | 2 +
5 files changed, 1014 insertions(+), 271 deletions(-)
create mode 100644 include/dt-bindings/memory/mt8195-memory-port.h
--
2.18.0
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu
WARNING: multiple messages have this Message-ID (diff)
From: Yong Wu <yong.wu@mediatek.com>
To: Joerg Roedel <joro@8bytes.org>, Rob Herring <robh+dt@kernel.org>,
"Matthias Brugger" <matthias.bgg@gmail.com>,
Will Deacon <will@kernel.org>,
Robin Murphy <robin.murphy@arm.com>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
Tomasz Figa <tfiga@chromium.org>,
<linux-mediatek@lists.infradead.org>,
<srv_heupstream@mediatek.com>, <devicetree@vger.kernel.org>,
<linux-kernel@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
<iommu@lists.linux-foundation.org>,
Hsin-Yi Wang <hsinyi@chromium.org>, <yong.wu@mediatek.com>,
<youlin.pei@mediatek.com>, <anan.sun@mediatek.com>,
<chao.hao@mediatek.com>, <yen-chang.chen@mediatek.com>
Subject: [PATCH v3 00/33] MT8195 IOMMU SUPPORT
Date: Thu, 23 Sep 2021 19:58:07 +0800 [thread overview]
Message-ID: <20210923115840.17813-1-yong.wu@mediatek.com> (raw)
This patchset adds MT8195 iommu support.
MT8195 have 3 IOMMU HWs. 2 IOMMU HW is for multimedia, and 1 IOMMU HW is
for infra-master, like PCIe/USB.
About the 2 MM IOMMU HW, something like this:
IOMMU(VDO) IOMMU(VPP)
| |
SMI_COMMON(VDO) SMI_COMMON(VPP)
--------------- ----------------
| | ... | | ...
larb0 larb2 ... larb1 larb3 ...
these two MM IOMMU HW share a pgtable.
About the INFRA IOMMU, it don't have larbs, the master connects the iommu
directly. It use a independent pgtable.
Also, mt8195 IOMMU bank supports. Normally the IOMMU register size only
is 0x1000. In this IOMMU HW, the register size is 5 * 0x1000. each 0x1000
is a bank. the banks' register look like this:
----------------------------------------
|bank0 | bank1 | bank2 | bank3 | bank4|
----------------------------------------
|global |
|control| null
|regs |
-----------------------------------------
|bank |bank |bank |bank |bank |
|regs |regs |regs |regs |regs |
| | | | | |
-----------------------------------------
All the banks share some global control registers, and each bank have its
special bank registers, like pgtable base register, tlb operation registers,
the fault status registers.
In mt8195, we enable this bank feature for infra iommu, We put PCIe in bank0
and USB in bank4. they have independent pgtable.
patch[1..23]: support mt8195 iommu.
patch[24..33]: support bank feature.
TODO: there is another APU_IOMMU in mt8195, this should depend on APU patches.
thus, we need add that feature after that.
Change note:
v3: 1) base on v5.15-rc1
2) Adjust devlink with smi-common, not use the property(sub-sommon).
3) Adjust tlb_flush_all flow,
a) Fix tlb_flush_all only is supported in bank0.
b) add tlb-flush-all in the resume callback.
c) remove the pm status checking in tlb-flush-all.
The reason are showed in the commit message.
4) Allow IOMMU_DOMAIN_UNMANAGED since PCIe VFIO use that.
5) Fix a clk warning and a null abort when unbind the iommu driver.
v2: https://lore.kernel.org/linux-mediatek/20210813065324.29220-1-yong.wu@mediatek.com/
1) Base on v5.14-rc1.
2) Fix build fail for arm32.
3) Fix dt-binding issue from Rob.
4) Fix the bank issue when tlb flush. v1 always use bank->base.
5) adjust devlink with smi-common since the node may be smi-sub-common.
6) other changes: like reword some commit message(removing many
"This patch..."); seperate serveral patches.
v1: https://lore.kernel.org/linux-mediatek/20210630023504.18177-1-yong.wu@mediatek.com/
Base on v5.13-rc1
Yong Wu (33):
dt-bindings: mediatek: mt8195: Add binding for MM IOMMU
dt-bindings: mediatek: mt8195: Add binding for infra IOMMU
iommu/mediatek: Fix 2 HW sharing pgtable issue
iommu/mediatek: Remove clk_disable in mtk_iommu_remove
iommu/mediatek: Adapt sharing and non-sharing pgtable case
iommu/mediatek: Add 12G~16G support for multi domains
iommu/mediatek: Add a flag DCM_DISABLE
iommu/mediatek: Add a flag NON_STD_AXI
iommu/mediatek: Remove for_each_m4u in tlb_sync_all
iommu/mediatek: Add tlb_lock in tlb_flush_all
iommu/mediatek: Remove the granule in the tlb flush
iommu/mediatek: Always tlb_flush_all when each PM resume
iommu/mediatek: Remove the power status checking in tlb flush all
iommu/mediatek: Always enable output PA over 32bits in isr
iommu/mediatek: Add SUB_COMMON_3BITS flag
iommu/mediatek: Add IOMMU_TYPE flag
iommu/mediatek: Contain MM IOMMU flow with the MM TYPE
iommu/mediatek: Adjust device link when it is sub-common
iommu/mediatek: Add list_del in mtk_iommu_remove
iommu/mediatek: Allow IOMMU_DOMAIN_UNMANAGED for PCIe VFIO
iommu/mediatek: Add infra iommu support
iommu/mediatek: Add PCIe support
iommu/mediatek: Add mt8195 support
iommu/mediatek: Only adjust code about register base
iommu/mediatek: Just move code position in hw_init
iommu/mediatek: Add mtk_iommu_bank_data structure
iommu/mediatek: Initialise bank HW for each a bank
iommu/mediatek: Add bank_nr and bank_enable
iommu/mediatek: Change the domid to iova_region_id
iommu/mediatek: Get the proper bankid for multi banks
iommu/mediatek: Initialise/Remove for multi bank dev
iommu/mediatek: Backup/restore regsiters for multi banks
iommu/mediatek: mt8195: Enable multi banks for infra iommu
.../bindings/iommu/mediatek,iommu.yaml | 20 +-
drivers/iommu/mtk_iommu.c | 799 ++++++++++++------
drivers/iommu/mtk_iommu.h | 56 +-
.../dt-bindings/memory/mt8195-memory-port.h | 408 +++++++++
include/dt-bindings/memory/mtk-memory-port.h | 2 +
5 files changed, 1014 insertions(+), 271 deletions(-)
create mode 100644 include/dt-bindings/memory/mt8195-memory-port.h
--
2.18.0
_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek
WARNING: multiple messages have this Message-ID (diff)
From: Yong Wu <yong.wu@mediatek.com>
To: Joerg Roedel <joro@8bytes.org>, Rob Herring <robh+dt@kernel.org>,
"Matthias Brugger" <matthias.bgg@gmail.com>,
Will Deacon <will@kernel.org>,
Robin Murphy <robin.murphy@arm.com>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
Tomasz Figa <tfiga@chromium.org>,
<linux-mediatek@lists.infradead.org>,
<srv_heupstream@mediatek.com>, <devicetree@vger.kernel.org>,
<linux-kernel@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
<iommu@lists.linux-foundation.org>,
Hsin-Yi Wang <hsinyi@chromium.org>, <yong.wu@mediatek.com>,
<youlin.pei@mediatek.com>, <anan.sun@mediatek.com>,
<chao.hao@mediatek.com>, <yen-chang.chen@mediatek.com>
Subject: [PATCH v3 00/33] MT8195 IOMMU SUPPORT
Date: Thu, 23 Sep 2021 19:58:07 +0800 [thread overview]
Message-ID: <20210923115840.17813-1-yong.wu@mediatek.com> (raw)
This patchset adds MT8195 iommu support.
MT8195 have 3 IOMMU HWs. 2 IOMMU HW is for multimedia, and 1 IOMMU HW is
for infra-master, like PCIe/USB.
About the 2 MM IOMMU HW, something like this:
IOMMU(VDO) IOMMU(VPP)
| |
SMI_COMMON(VDO) SMI_COMMON(VPP)
--------------- ----------------
| | ... | | ...
larb0 larb2 ... larb1 larb3 ...
these two MM IOMMU HW share a pgtable.
About the INFRA IOMMU, it don't have larbs, the master connects the iommu
directly. It use a independent pgtable.
Also, mt8195 IOMMU bank supports. Normally the IOMMU register size only
is 0x1000. In this IOMMU HW, the register size is 5 * 0x1000. each 0x1000
is a bank. the banks' register look like this:
----------------------------------------
|bank0 | bank1 | bank2 | bank3 | bank4|
----------------------------------------
|global |
|control| null
|regs |
-----------------------------------------
|bank |bank |bank |bank |bank |
|regs |regs |regs |regs |regs |
| | | | | |
-----------------------------------------
All the banks share some global control registers, and each bank have its
special bank registers, like pgtable base register, tlb operation registers,
the fault status registers.
In mt8195, we enable this bank feature for infra iommu, We put PCIe in bank0
and USB in bank4. they have independent pgtable.
patch[1..23]: support mt8195 iommu.
patch[24..33]: support bank feature.
TODO: there is another APU_IOMMU in mt8195, this should depend on APU patches.
thus, we need add that feature after that.
Change note:
v3: 1) base on v5.15-rc1
2) Adjust devlink with smi-common, not use the property(sub-sommon).
3) Adjust tlb_flush_all flow,
a) Fix tlb_flush_all only is supported in bank0.
b) add tlb-flush-all in the resume callback.
c) remove the pm status checking in tlb-flush-all.
The reason are showed in the commit message.
4) Allow IOMMU_DOMAIN_UNMANAGED since PCIe VFIO use that.
5) Fix a clk warning and a null abort when unbind the iommu driver.
v2: https://lore.kernel.org/linux-mediatek/20210813065324.29220-1-yong.wu@mediatek.com/
1) Base on v5.14-rc1.
2) Fix build fail for arm32.
3) Fix dt-binding issue from Rob.
4) Fix the bank issue when tlb flush. v1 always use bank->base.
5) adjust devlink with smi-common since the node may be smi-sub-common.
6) other changes: like reword some commit message(removing many
"This patch..."); seperate serveral patches.
v1: https://lore.kernel.org/linux-mediatek/20210630023504.18177-1-yong.wu@mediatek.com/
Base on v5.13-rc1
Yong Wu (33):
dt-bindings: mediatek: mt8195: Add binding for MM IOMMU
dt-bindings: mediatek: mt8195: Add binding for infra IOMMU
iommu/mediatek: Fix 2 HW sharing pgtable issue
iommu/mediatek: Remove clk_disable in mtk_iommu_remove
iommu/mediatek: Adapt sharing and non-sharing pgtable case
iommu/mediatek: Add 12G~16G support for multi domains
iommu/mediatek: Add a flag DCM_DISABLE
iommu/mediatek: Add a flag NON_STD_AXI
iommu/mediatek: Remove for_each_m4u in tlb_sync_all
iommu/mediatek: Add tlb_lock in tlb_flush_all
iommu/mediatek: Remove the granule in the tlb flush
iommu/mediatek: Always tlb_flush_all when each PM resume
iommu/mediatek: Remove the power status checking in tlb flush all
iommu/mediatek: Always enable output PA over 32bits in isr
iommu/mediatek: Add SUB_COMMON_3BITS flag
iommu/mediatek: Add IOMMU_TYPE flag
iommu/mediatek: Contain MM IOMMU flow with the MM TYPE
iommu/mediatek: Adjust device link when it is sub-common
iommu/mediatek: Add list_del in mtk_iommu_remove
iommu/mediatek: Allow IOMMU_DOMAIN_UNMANAGED for PCIe VFIO
iommu/mediatek: Add infra iommu support
iommu/mediatek: Add PCIe support
iommu/mediatek: Add mt8195 support
iommu/mediatek: Only adjust code about register base
iommu/mediatek: Just move code position in hw_init
iommu/mediatek: Add mtk_iommu_bank_data structure
iommu/mediatek: Initialise bank HW for each a bank
iommu/mediatek: Add bank_nr and bank_enable
iommu/mediatek: Change the domid to iova_region_id
iommu/mediatek: Get the proper bankid for multi banks
iommu/mediatek: Initialise/Remove for multi bank dev
iommu/mediatek: Backup/restore regsiters for multi banks
iommu/mediatek: mt8195: Enable multi banks for infra iommu
.../bindings/iommu/mediatek,iommu.yaml | 20 +-
drivers/iommu/mtk_iommu.c | 799 ++++++++++++------
drivers/iommu/mtk_iommu.h | 56 +-
.../dt-bindings/memory/mt8195-memory-port.h | 408 +++++++++
include/dt-bindings/memory/mtk-memory-port.h | 2 +
5 files changed, 1014 insertions(+), 271 deletions(-)
create mode 100644 include/dt-bindings/memory/mt8195-memory-port.h
--
2.18.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2021-09-23 11:59 UTC|newest]
Thread overview: 317+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-23 11:58 Yong Wu [this message]
2021-09-23 11:58 ` [PATCH v3 00/33] MT8195 IOMMU SUPPORT Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` [PATCH v3 01/33] dt-bindings: mediatek: mt8195: Add binding for MM IOMMU Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` [PATCH v3 02/33] dt-bindings: mediatek: mt8195: Add binding for infra IOMMU Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` [PATCH v3 03/33] iommu/mediatek: Fix 2 HW sharing pgtable issue Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` [PATCH v3 04/33] iommu/mediatek: Remove clk_disable in mtk_iommu_remove Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2021-09-23 11:58 ` [PATCH v3 05/33] iommu/mediatek: Adapt sharing and non-sharing pgtable case Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2021-09-23 11:58 ` [PATCH v3 06/33] iommu/mediatek: Add 12G~16G support for multi domains Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2021-09-23 11:58 ` [PATCH v3 07/33] iommu/mediatek: Add a flag DCM_DISABLE Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2021-09-23 11:58 ` [PATCH v3 08/33] iommu/mediatek: Add a flag NON_STD_AXI Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2021-09-23 11:58 ` [PATCH v3 09/33] iommu/mediatek: Remove for_each_m4u in tlb_sync_all Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-09 2:48 ` Yong Wu
2022-01-09 2:48 ` Yong Wu
2022-01-09 2:48 ` Yong Wu
2022-01-09 2:48 ` Yong Wu
2022-01-10 9:16 ` AngeloGioacchino Del Regno
2022-01-10 9:16 ` AngeloGioacchino Del Regno
2022-01-10 9:16 ` AngeloGioacchino Del Regno
2022-01-10 9:16 ` AngeloGioacchino Del Regno
2022-01-10 10:59 ` Yong Wu
2022-01-10 10:59 ` Yong Wu
2022-01-10 10:59 ` Yong Wu
2022-01-10 10:59 ` Yong Wu
2022-01-10 11:40 ` AngeloGioacchino Del Regno
2022-01-10 11:40 ` AngeloGioacchino Del Regno
2022-01-10 11:40 ` AngeloGioacchino Del Regno
2022-01-10 11:40 ` AngeloGioacchino Del Regno
2021-09-23 11:58 ` [PATCH v3 10/33] iommu/mediatek: Add tlb_lock in tlb_flush_all Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2021-09-23 11:58 ` [PATCH v3 11/33] iommu/mediatek: Remove the granule in the tlb flush Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2021-09-23 11:58 ` [PATCH v3 12/33] iommu/mediatek: Always tlb_flush_all when each PM resume Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-11-09 12:21 ` Dafna Hirschfeld
2021-11-09 12:21 ` Dafna Hirschfeld
2021-11-09 12:21 ` Dafna Hirschfeld
2021-11-09 12:21 ` Dafna Hirschfeld
2021-11-10 2:20 ` Yong Wu
2021-11-10 2:20 ` Yong Wu
2021-11-10 2:20 ` Yong Wu
2021-11-10 2:20 ` Yong Wu
2021-11-10 5:29 ` Dafna Hirschfeld
2021-11-10 5:29 ` Dafna Hirschfeld
2021-11-10 5:29 ` Dafna Hirschfeld
2021-11-10 5:29 ` Dafna Hirschfeld
2021-11-10 7:50 ` Yong Wu
2021-11-10 7:50 ` Yong Wu
2021-11-10 7:50 ` Yong Wu
2021-11-22 7:05 ` Yong Wu
2021-11-22 7:05 ` Yong Wu
2021-11-22 7:05 ` Yong Wu
2021-11-22 11:08 ` Dafna Hirschfeld
2021-11-22 11:08 ` Dafna Hirschfeld
2021-11-22 11:08 ` Dafna Hirschfeld
2021-11-27 10:11 ` Dafna Hirschfeld
2021-11-27 10:11 ` Dafna Hirschfeld
2021-11-27 10:11 ` Dafna Hirschfeld
2021-11-30 7:39 ` Yong Wu
2021-11-30 7:39 ` Yong Wu
2021-11-30 7:39 ` Yong Wu
2021-11-30 11:33 ` Dafna Hirschfeld
2021-11-30 11:33 ` Dafna Hirschfeld
2021-11-30 11:33 ` Dafna Hirschfeld
2021-12-06 8:28 ` Yong Wu
2021-12-06 8:28 ` Yong Wu
2021-12-06 8:28 ` Yong Wu
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2021-09-23 11:58 ` [PATCH v3 13/33] iommu/mediatek: Remove the power status checking in tlb flush all Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-10-22 14:03 ` Dafna Hirschfeld
2021-10-22 14:03 ` Dafna Hirschfeld
2021-10-22 14:03 ` Dafna Hirschfeld
2021-10-22 14:03 ` Dafna Hirschfeld
2021-10-25 4:03 ` Yong Wu
2021-10-25 4:03 ` Yong Wu
2021-10-25 4:03 ` Yong Wu
2021-10-25 4:03 ` Yong Wu
2021-11-04 3:28 ` Yong Wu
2021-11-04 3:28 ` Yong Wu
2021-11-04 3:28 ` Yong Wu
2021-11-04 3:28 ` Yong Wu
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-09 2:47 ` Yong Wu
2022-01-09 2:47 ` Yong Wu
2022-01-09 2:47 ` Yong Wu
2022-01-09 2:47 ` Yong Wu
2021-09-23 11:58 ` [PATCH v3 14/33] iommu/mediatek: Always enable output PA over 32bits in isr Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2021-09-23 11:58 ` [PATCH v3 15/33] iommu/mediatek: Add SUB_COMMON_3BITS flag Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2021-09-23 11:58 ` [PATCH v3 16/33] iommu/mediatek: Add IOMMU_TYPE flag Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2021-09-23 11:58 ` [PATCH v3 17/33] iommu/mediatek: Contain MM IOMMU flow with the MM TYPE Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2021-09-23 11:58 ` [PATCH v3 18/33] iommu/mediatek: Adjust device link when it is sub-common Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2021-09-23 11:58 ` [PATCH v3 19/33] iommu/mediatek: Add list_del in mtk_iommu_remove Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2022-01-04 15:55 ` AngeloGioacchino Del Regno
2021-09-23 11:58 ` [PATCH v3 20/33] iommu/mediatek: Allow IOMMU_DOMAIN_UNMANAGED for PCIe VFIO Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2021-09-23 11:58 ` [PATCH v3 21/33] iommu/mediatek: Add infra iommu support Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2021-09-23 11:58 ` [PATCH v3 22/33] iommu/mediatek: Add PCIe support Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-09 2:47 ` Yong Wu
2022-01-09 2:47 ` Yong Wu
2022-01-09 2:47 ` Yong Wu
2022-01-09 2:47 ` Yong Wu
2021-09-23 11:58 ` [PATCH v3 23/33] iommu/mediatek: Add mt8195 support Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2021-09-23 11:58 ` [PATCH v3 24/33] iommu/mediatek: Only adjust code about register base Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2021-09-23 11:58 ` [PATCH v3 25/33] iommu/mediatek: Just move code position in hw_init Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2022-01-04 15:53 ` AngeloGioacchino Del Regno
2022-01-04 15:53 ` AngeloGioacchino Del Regno
2022-01-04 15:53 ` AngeloGioacchino Del Regno
2022-01-04 15:53 ` AngeloGioacchino Del Regno
2021-09-23 11:58 ` [PATCH v3 26/33] iommu/mediatek: Add mtk_iommu_bank_data structure Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2022-01-04 15:53 ` AngeloGioacchino Del Regno
2022-01-04 15:53 ` AngeloGioacchino Del Regno
2022-01-04 15:53 ` AngeloGioacchino Del Regno
2022-01-04 15:53 ` AngeloGioacchino Del Regno
2022-01-09 2:46 ` Yong Wu
2022-01-09 2:46 ` Yong Wu
2022-01-09 2:46 ` Yong Wu
2022-01-09 2:46 ` Yong Wu
2021-09-23 11:58 ` [PATCH v3 27/33] iommu/mediatek: Initialise bank HW for each a bank Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2022-01-04 15:54 ` AngeloGioacchino Del Regno
2021-09-23 11:58 ` [PATCH v3 28/33] iommu/mediatek: Add bank_nr and bank_enable Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2022-01-04 15:53 ` AngeloGioacchino Del Regno
2022-01-04 15:53 ` AngeloGioacchino Del Regno
2022-01-04 15:53 ` AngeloGioacchino Del Regno
2022-01-04 15:53 ` AngeloGioacchino Del Regno
2021-09-23 11:58 ` [PATCH v3 29/33] iommu/mediatek: Change the domid to iova_region_id Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2022-01-04 15:53 ` AngeloGioacchino Del Regno
2022-01-04 15:53 ` AngeloGioacchino Del Regno
2022-01-04 15:53 ` AngeloGioacchino Del Regno
2022-01-04 15:53 ` AngeloGioacchino Del Regno
2021-09-23 11:58 ` [PATCH v3 30/33] iommu/mediatek: Get the proper bankid for multi banks Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` [PATCH v3 31/33] iommu/mediatek: Initialise/Remove for multi bank dev Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` [PATCH v3 32/33] iommu/mediatek: Backup/restore regsiters for multi banks Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2022-01-04 15:53 ` AngeloGioacchino Del Regno
2022-01-04 15:53 ` AngeloGioacchino Del Regno
2022-01-04 15:53 ` AngeloGioacchino Del Regno
2022-01-04 15:53 ` AngeloGioacchino Del Regno
2021-09-23 11:58 ` [PATCH v3 33/33] iommu/mediatek: mt8195: Enable multi banks for infra iommu Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
2021-09-23 11:58 ` Yong Wu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210923115840.17813-1-yong.wu@mediatek.com \
--to=yong.wu@mediatek.com \
--cc=anan.sun@mediatek.com \
--cc=chao.hao@mediatek.com \
--cc=devicetree@vger.kernel.org \
--cc=hsinyi@chromium.org \
--cc=iommu@lists.linux-foundation.org \
--cc=joro@8bytes.org \
--cc=krzysztof.kozlowski@canonical.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=matthias.bgg@gmail.com \
--cc=robh+dt@kernel.org \
--cc=robin.murphy@arm.com \
--cc=srv_heupstream@mediatek.com \
--cc=tfiga@chromium.org \
--cc=will@kernel.org \
--cc=yen-chang.chen@mediatek.com \
--cc=youlin.pei@mediatek.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.