All of lore.kernel.org
 help / color / mirror / Atom feed
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>,
	Robin Murphy <robin.murphy@arm.com>
Cc: Tomasz Figa <tfiga@google.com>, Will Deacon <will.deacon@arm.com>,
	Daniel Kurtz <djkurtz@google.com>,
	<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>, <arnd@arndb.de>,
	<yingjoe.chen@mediatek.com>, <yong.wu@mediatek.com>
Subject: [PATCH 00/13] MT8183 IOMMU SUPPORT
Date: Mon, 3 Sep 2018 14:01:29 +0800	[thread overview]
Message-ID: <1535954502-30646-1-git-send-email-yong.wu@mediatek.com> (raw)

This patchset mainly adds support for mt8183 IOMMU and SMI.

mt8183 has only one M4U like mt8173 and is also MTK IOMMU gen2 which
uses ARM Short-Descriptor translation table format.

The mt8183 M4U-SMI HW diagram is as below:

                          EMI
                           |
                          M4U
                           |
                       ----------
                       |        |
                   gals0-rx   gals1-rx
                       |        |
                       |        |
                   gals0-tx   gals1-tx
                       |        |
                      ------------
                       SMI Common
                      ------------
                           |
  +-----+-----+--------+-----+-----+-------+-------+
  |     |     |        |     |     |       |       |
  |     |  gals-rx  gals-rx  |   gals-rx gals-rx gals-rx
  |     |     |        |     |     |       |       |
  |     |     |        |     |     |       |       |
  |     |  gals-tx  gals-tx  |   gals-tx gals-tx gals-tx
  |     |     |        |     |     |       |       |
larb0 larb1  larb2   larb3  larb4 larb5  larb6    CCU
disp  vdec   IPU0    IPU1   venc  IPU1    cam

All the connections are HW fixed, SW can NOT adjust it.

Compared with mt8173, we add a GALS(Global Async Local Sync) module
between SMI-common and M4U, and additional between larb2/3/5/6 and
SMI-common. GALS can help synchronize for the modules in different
clock frequence, it can be seen as a "asynchronous fifo".

GALS can only help transfer the command/data while it don't have the
register, thus it has the special "smi" clock and it don't have the
"apb" clock. From the diagram above, we add "gals0" and "gals1"
clockes for smi-common and add a "gals" clock for smi-larb.

From the diagram above, CCU(Camera Control Unit) is connected with
smi-common directly, we can look it as "larb7" but its register space
is different with the normal larb.

This patchset is based on v4.19-rc1.
the patch 1/2/3/4/5 add the iommu/smi support for mt8183;
the patch 6/7/8/9 add mmu1 support;
the last patches contain some minor changes:
   -patch 10 fix a issue.
   -patch 11 improve the code flow(add shutdown).
   -patch 12 cleanup some smi codes(delete need_larbid).
   -patch 13 switch to SPDX license.
this patchset don't contain the dtsi part since it need depend on the
ccf and power-domain nodes which has not been accepted.

Yong Wu (13):
  dt-bindings: mediatek: Add binding for mt8183 IOMMU and SMI
  iommu/mediatek: Use a struct as the platform data
  memory: mtk-smi: Use a general config_port interface
  iommu/io-pgtable-arm-v7s: Extend MediaTek 4GB mode
  iommu/mediatek: Add mt8183 IOMMU support
  iommu/mediatek: Add mmu1 support
  memory: mtk-smi: Invoke pm runtime_callback to enable clocks
  memory: mtk-smi: Use a struct for the platform data for smi-common
  memory: mtk-smi: Add bus_sel for mt8183
  iommu/mediatek: Add VLD_PA_RANGE register backup when suspend
  iommu/mediatek: Add shutdown callback
  memory: mtk-smi: Get rid of need_larbid
  iommu/mediatek: Switch to SPDX license identifier

 .../devicetree/bindings/iommu/mediatek,iommu.txt   |  15 +-
 .../memory-controllers/mediatek,smi-common.txt     |  11 +-
 .../memory-controllers/mediatek,smi-larb.txt       |   3 +
 drivers/iommu/io-pgtable-arm-v7s.c                 |  38 ++-
 drivers/iommu/io-pgtable.h                         |   8 +-
 drivers/iommu/mtk_iommu.c                          | 145 +++++++----
 drivers/iommu/mtk_iommu.h                          |  23 +-
 drivers/iommu/mtk_iommu_v1.c                       |  10 +-
 drivers/memory/mtk-smi.c                           | 267 ++++++++++++++-------
 include/dt-bindings/memory/mt2701-larb-port.h      |  10 +-
 include/dt-bindings/memory/mt8173-larb-port.h      |  10 +-
 include/dt-bindings/memory/mt8183-larb-port.h      | 130 ++++++++++
 include/soc/mediatek/smi.h                         |  10 +-
 13 files changed, 476 insertions(+), 204 deletions(-)
 create mode 100644 include/dt-bindings/memory/mt8183-larb-port.h

-- 
1.9.1 


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>,
	Robin Murphy <robin.murphy@arm.com>
Cc: Tomasz Figa <tfiga@google.com>, Will Deacon <will.deacon@arm.com>,
	Daniel Kurtz <djkurtz@google.com>,
	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, arnd@arndb.de,
	yingjoe.chen@mediatek.com, yong.wu@mediatek.com
Subject: [PATCH 00/13] MT8183 IOMMU SUPPORT
Date: Mon, 3 Sep 2018 14:01:29 +0800	[thread overview]
Message-ID: <1535954502-30646-1-git-send-email-yong.wu@mediatek.com> (raw)

This patchset mainly adds support for mt8183 IOMMU and SMI.

mt8183 has only one M4U like mt8173 and is also MTK IOMMU gen2 which
uses ARM Short-Descriptor translation table format.

The mt8183 M4U-SMI HW diagram is as below:

                          EMI
                           |
                          M4U
                           |
                       ----------
                       |        |
                   gals0-rx   gals1-rx
                       |        |
                       |        |
                   gals0-tx   gals1-tx
                       |        |
                      ------------
                       SMI Common
                      ------------
                           |
  +-----+-----+--------+-----+-----+-------+-------+
  |     |     |        |     |     |       |       |
  |     |  gals-rx  gals-rx  |   gals-rx gals-rx gals-rx
  |     |     |        |     |     |       |       |
  |     |     |        |     |     |       |       |
  |     |  gals-tx  gals-tx  |   gals-tx gals-tx gals-tx
  |     |     |        |     |     |       |       |
larb0 larb1  larb2   larb3  larb4 larb5  larb6    CCU
disp  vdec   IPU0    IPU1   venc  IPU1    cam

All the connections are HW fixed, SW can NOT adjust it.

Compared with mt8173, we add a GALS(Global Async Local Sync) module
between SMI-common and M4U, and additional between larb2/3/5/6 and
SMI-common. GALS can help synchronize for the modules in different
clock frequence, it can be seen as a "asynchronous fifo".

GALS can only help transfer the command/data while it don't have the
register, thus it has the special "smi" clock and it don't have the
"apb" clock. From the diagram above, we add "gals0" and "gals1"
clockes for smi-common and add a "gals" clock for smi-larb.

>From the diagram above, CCU(Camera Control Unit) is connected with
smi-common directly, we can look it as "larb7" but its register space
is different with the normal larb.

This patchset is based on v4.19-rc1.
the patch 1/2/3/4/5 add the iommu/smi support for mt8183;
the patch 6/7/8/9 add mmu1 support;
the last patches contain some minor changes:
   -patch 10 fix a issue.
   -patch 11 improve the code flow(add shutdown).
   -patch 12 cleanup some smi codes(delete need_larbid).
   -patch 13 switch to SPDX license.
this patchset don't contain the dtsi part since it need depend on the
ccf and power-domain nodes which has not been accepted.

Yong Wu (13):
  dt-bindings: mediatek: Add binding for mt8183 IOMMU and SMI
  iommu/mediatek: Use a struct as the platform data
  memory: mtk-smi: Use a general config_port interface
  iommu/io-pgtable-arm-v7s: Extend MediaTek 4GB mode
  iommu/mediatek: Add mt8183 IOMMU support
  iommu/mediatek: Add mmu1 support
  memory: mtk-smi: Invoke pm runtime_callback to enable clocks
  memory: mtk-smi: Use a struct for the platform data for smi-common
  memory: mtk-smi: Add bus_sel for mt8183
  iommu/mediatek: Add VLD_PA_RANGE register backup when suspend
  iommu/mediatek: Add shutdown callback
  memory: mtk-smi: Get rid of need_larbid
  iommu/mediatek: Switch to SPDX license identifier

 .../devicetree/bindings/iommu/mediatek,iommu.txt   |  15 +-
 .../memory-controllers/mediatek,smi-common.txt     |  11 +-
 .../memory-controllers/mediatek,smi-larb.txt       |   3 +
 drivers/iommu/io-pgtable-arm-v7s.c                 |  38 ++-
 drivers/iommu/io-pgtable.h                         |   8 +-
 drivers/iommu/mtk_iommu.c                          | 145 +++++++----
 drivers/iommu/mtk_iommu.h                          |  23 +-
 drivers/iommu/mtk_iommu_v1.c                       |  10 +-
 drivers/memory/mtk-smi.c                           | 267 ++++++++++++++-------
 include/dt-bindings/memory/mt2701-larb-port.h      |  10 +-
 include/dt-bindings/memory/mt8173-larb-port.h      |  10 +-
 include/dt-bindings/memory/mt8183-larb-port.h      | 130 ++++++++++
 include/soc/mediatek/smi.h                         |  10 +-
 13 files changed, 476 insertions(+), 204 deletions(-)
 create mode 100644 include/dt-bindings/memory/mt8183-larb-port.h

-- 
1.9.1 

WARNING: multiple messages have this Message-ID (diff)
From: yong.wu@mediatek.com (Yong Wu)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 00/13] MT8183 IOMMU SUPPORT
Date: Mon, 3 Sep 2018 14:01:29 +0800	[thread overview]
Message-ID: <1535954502-30646-1-git-send-email-yong.wu@mediatek.com> (raw)

This patchset mainly adds support for mt8183 IOMMU and SMI.

mt8183 has only one M4U like mt8173 and is also MTK IOMMU gen2 which
uses ARM Short-Descriptor translation table format.

The mt8183 M4U-SMI HW diagram is as below:

                          EMI
                           |
                          M4U
                           |
                       ----------
                       |        |
                   gals0-rx   gals1-rx
                       |        |
                       |        |
                   gals0-tx   gals1-tx
                       |        |
                      ------------
                       SMI Common
                      ------------
                           |
  +-----+-----+--------+-----+-----+-------+-------+
  |     |     |        |     |     |       |       |
  |     |  gals-rx  gals-rx  |   gals-rx gals-rx gals-rx
  |     |     |        |     |     |       |       |
  |     |     |        |     |     |       |       |
  |     |  gals-tx  gals-tx  |   gals-tx gals-tx gals-tx
  |     |     |        |     |     |       |       |
larb0 larb1  larb2   larb3  larb4 larb5  larb6    CCU
disp  vdec   IPU0    IPU1   venc  IPU1    cam

All the connections are HW fixed, SW can NOT adjust it.

Compared with mt8173, we add a GALS(Global Async Local Sync) module
between SMI-common and M4U, and additional between larb2/3/5/6 and
SMI-common. GALS can help synchronize for the modules in different
clock frequence, it can be seen as a "asynchronous fifo".

GALS can only help transfer the command/data while it don't have the
register, thus it has the special "smi" clock and it don't have the
"apb" clock. From the diagram above, we add "gals0" and "gals1"
clockes for smi-common and add a "gals" clock for smi-larb.

>From the diagram above, CCU(Camera Control Unit) is connected with
smi-common directly, we can look it as "larb7" but its register space
is different with the normal larb.

This patchset is based on v4.19-rc1.
the patch 1/2/3/4/5 add the iommu/smi support for mt8183;
the patch 6/7/8/9 add mmu1 support;
the last patches contain some minor changes:
   -patch 10 fix a issue.
   -patch 11 improve the code flow(add shutdown).
   -patch 12 cleanup some smi codes(delete need_larbid).
   -patch 13 switch to SPDX license.
this patchset don't contain the dtsi part since it need depend on the
ccf and power-domain nodes which has not been accepted.

Yong Wu (13):
  dt-bindings: mediatek: Add binding for mt8183 IOMMU and SMI
  iommu/mediatek: Use a struct as the platform data
  memory: mtk-smi: Use a general config_port interface
  iommu/io-pgtable-arm-v7s: Extend MediaTek 4GB mode
  iommu/mediatek: Add mt8183 IOMMU support
  iommu/mediatek: Add mmu1 support
  memory: mtk-smi: Invoke pm runtime_callback to enable clocks
  memory: mtk-smi: Use a struct for the platform data for smi-common
  memory: mtk-smi: Add bus_sel for mt8183
  iommu/mediatek: Add VLD_PA_RANGE register backup when suspend
  iommu/mediatek: Add shutdown callback
  memory: mtk-smi: Get rid of need_larbid
  iommu/mediatek: Switch to SPDX license identifier

 .../devicetree/bindings/iommu/mediatek,iommu.txt   |  15 +-
 .../memory-controllers/mediatek,smi-common.txt     |  11 +-
 .../memory-controllers/mediatek,smi-larb.txt       |   3 +
 drivers/iommu/io-pgtable-arm-v7s.c                 |  38 ++-
 drivers/iommu/io-pgtable.h                         |   8 +-
 drivers/iommu/mtk_iommu.c                          | 145 +++++++----
 drivers/iommu/mtk_iommu.h                          |  23 +-
 drivers/iommu/mtk_iommu_v1.c                       |  10 +-
 drivers/memory/mtk-smi.c                           | 267 ++++++++++++++-------
 include/dt-bindings/memory/mt2701-larb-port.h      |  10 +-
 include/dt-bindings/memory/mt8173-larb-port.h      |  10 +-
 include/dt-bindings/memory/mt8183-larb-port.h      | 130 ++++++++++
 include/soc/mediatek/smi.h                         |  10 +-
 13 files changed, 476 insertions(+), 204 deletions(-)
 create mode 100644 include/dt-bindings/memory/mt8183-larb-port.h

-- 
1.9.1 

             reply	other threads:[~2018-09-03  6:02 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-03  6:01 Yong Wu [this message]
2018-09-03  6:01 ` [PATCH 00/13] MT8183 IOMMU SUPPORT Yong Wu
2018-09-03  6:01 ` Yong Wu
2018-09-03  6:01 ` [PATCH 01/13] dt-bindings: mediatek: Add binding for mt8183 IOMMU and SMI Yong Wu
2018-09-03  6:01   ` Yong Wu
2018-09-03  6:01   ` Yong Wu
     [not found]   ` <1535954502-30646-2-git-send-email-yong.wu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
2018-09-16 22:26     ` Rob Herring
2018-09-16 22:26       ` Rob Herring
2018-09-17  6:15       ` Yong Wu
2018-09-17  6:15         ` Yong Wu
2018-09-17  6:15         ` Yong Wu
2018-09-03  6:01 ` [PATCH 02/13] iommu/mediatek: Use a struct as the platform data Yong Wu
2018-09-03  6:01   ` Yong Wu
2018-09-03  6:01   ` Yong Wu
2018-09-03  6:01 ` [PATCH 03/13] memory: mtk-smi: Use a general config_port interface Yong Wu
2018-09-03  6:01   ` Yong Wu
2018-09-03  6:01   ` Yong Wu
2018-09-03  6:01 ` [PATCH 04/13] iommu/io-pgtable-arm-v7s: Extend MediaTek 4GB mode Yong Wu
2018-09-03  6:01   ` Yong Wu
2018-09-03  6:01   ` Yong Wu
2018-09-20  5:54   ` Yong Wu
2018-09-20  5:54     ` Yong Wu
2018-09-20  5:54     ` Yong Wu
2018-09-20 11:54     ` Robin Murphy
2018-09-20 11:54       ` Robin Murphy
2018-09-20 11:54       ` Robin Murphy
2018-09-20 17:31   ` Robin Murphy
2018-09-20 17:31     ` Robin Murphy
2018-09-20 17:31     ` Robin Murphy
2018-09-24  9:26     ` Yong Wu
2018-09-24  9:26       ` Yong Wu
2018-09-24  9:26       ` Yong Wu
2018-09-03  6:01 ` [PATCH 05/13] iommu/mediatek: Add mt8183 IOMMU support Yong Wu
2018-09-03  6:01   ` Yong Wu
2018-09-03  6:01   ` Yong Wu
2018-09-03  6:01 ` [PATCH 06/13] iommu/mediatek: Add mmu1 support Yong Wu
2018-09-03  6:01   ` Yong Wu
2018-09-03  6:01   ` Yong Wu
2018-09-03  6:01 ` [PATCH 07/13] memory: mtk-smi: Invoke pm runtime_callback to enable clocks Yong Wu
2018-09-03  6:01   ` Yong Wu
2018-09-03  6:01   ` Yong Wu
2018-09-03  6:01 ` [PATCH 08/13] memory: mtk-smi: Use a struct for the platform data for smi-common Yong Wu
2018-09-03  6:01   ` Yong Wu
2018-09-03  6:01   ` Yong Wu
2018-09-03  6:01 ` [PATCH 09/13] memory: mtk-smi: Add bus_sel for mt8183 Yong Wu
2018-09-03  6:01   ` Yong Wu
2018-09-03  6:01   ` Yong Wu
2018-09-03  6:01 ` [PATCH 10/13] iommu/mediatek: Add VLD_PA_RANGE register backup when suspend Yong Wu
2018-09-03  6:01   ` Yong Wu
2018-09-03  6:01   ` Yong Wu
2018-09-03  6:01 ` [PATCH 11/13] iommu/mediatek: Add shutdown callback Yong Wu
2018-09-03  6:01   ` Yong Wu
2018-09-03  6:01   ` Yong Wu
2018-09-03  6:01 ` [PATCH 12/13] memory: mtk-smi: Get rid of need_larbid Yong Wu
2018-09-03  6:01   ` Yong Wu
2018-09-03  6:01   ` Yong Wu
2018-09-03  6:01 ` [PATCH 13/13] iommu/mediatek: Switch to SPDX license identifier Yong Wu
2018-09-03  6:01   ` Yong Wu
2018-09-03  6:01   ` Yong Wu
     [not found]   ` <1535954502-30646-14-git-send-email-yong.wu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
2018-09-17  5:44     ` Rob Herring
2018-09-17  5:44       ` Rob Herring

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=1535954502-30646-1-git-send-email-yong.wu@mediatek.com \
    --to=yong.wu@mediatek.com \
    --cc=arnd@arndb.de \
    --cc=devicetree@vger.kernel.org \
    --cc=djkurtz@google.com \
    --cc=iommu@lists.linux-foundation.org \
    --cc=joro@8bytes.org \
    --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@google.com \
    --cc=will.deacon@arm.com \
    --cc=yingjoe.chen@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.