All of lore.kernel.org
 help / color / mirror / Atom feed
From: Will Deacon <will.deacon@arm.com>
To: Yong Wu <yong.wu@mediatek.com>
Cc: Rob Herring <robh+dt@kernel.org>, Joerg Roedel <joro@8bytes.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Robin Murphy <Robin.Murphy@arm.com>,
	Daniel Kurtz <djkurtz@google.com>, Tomasz Figa <tfiga@google.com>,
	Lucas Stach <l.stach@pengutronix.de>,
	Mark Rutland <Mark.Rutland@arm.com>,
	Catalin Marinas <Catalin.Marinas@arm.com>,
	"linux-mediatek@lists.infradead.org" 
	<linux-mediatek@lists.infradead.org>,
	Sasha Hauer <kernel@pengutronix.de>,
	"srv_heupstream@mediatek.com" <srv_heupstream@mediatek.com>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	"iommu@lists.linux-foundation.org"
	<iommu@lists.linux-foundation.org>
Subject: Re: [PATCH 2/5] iommu/mediatek: Add mt8173 IOMMU driver
Date: Tue, 17 Mar 2015 15:14:24 +0000	[thread overview]
Message-ID: <20150317151424.GQ8399@arm.com> (raw)
In-Reply-To: <1425903103.13300.29.camel@mhfsdcap03>

On Mon, Mar 09, 2015 at 12:11:43PM +0000, Yong Wu wrote:
> On Fri, 2015-03-06 at 10:58 +0000, Will Deacon wrote:
> > On Fri, Mar 06, 2015 at 10:48:17AM +0000, yong.wu@mediatek.com wrote:
> > > From: Yong Wu <yong.wu@mediatek.com>
> > > 
> > > This patch adds support for mediatek m4u (MultiMedia Memory Management Unit).
> > > Currently this only supports m4u gen 2 with 2 levels of page table on mt8173.
> > 
> > [...]
> > 
> > > +/* 2 level pagetable: pgd -> pte */
> > > +#define F_PTE_TYPE_GET(regval)  (regval & 0x3)
> > > +#define F_PTE_TYPE_LARGE         BIT(0)
> > > +#define F_PTE_TYPE_SMALL         BIT(1)
> > > +#define F_PTE_B_BIT              BIT(2)
> > > +#define F_PTE_C_BIT              BIT(3)
> > > +#define F_PTE_BIT32_BIT          BIT(9)
> > > +#define F_PTE_S_BIT              BIT(10)
> > > +#define F_PTE_NG_BIT             BIT(11)
> > > +#define F_PTE_PA_LARGE_MSK            (~0UL << 16)
> > > +#define F_PTE_PA_LARGE_GET(regval)    ((regval >> 16) & 0xffff)
> > > +#define F_PTE_PA_SMALL_MSK            (~0UL << 12)
> > > +#define F_PTE_PA_SMALL_GET(regval)    ((regval >> 12) & (~0))
> > > +#define F_PTE_TYPE_IS_LARGE_PAGE(pte) ((imu_pte_val(pte) & 0x3) == \
> > > +                                       F_PTE_TYPE_LARGE)
> > > +#define F_PTE_TYPE_IS_SMALL_PAGE(pte) ((imu_pte_val(pte) & 0x3) == \
> > > +                                       F_PTE_TYPE_SMALL)
> > 
> > This looks like the ARM short-descriptor format to me. Could you please
> > add a new page table format to the io-pgtable code, so that other IOMMU
> > drivers can make use of this? I know there was some interest in using
> > short descriptor for the ARM SMMU, for example.
>     Currently I not familiar with the io-pgtable,I may need some time
> for it and the ARM short-descriptor. 

Well, you can read the LPAE version I wrote in io-pgtable-arm.c for some
inspiration (it's used by arm-smmu.c and ipmmu-vmsa.c).

>     And there are some difference between mediatek's pagetable with the
> standard short-descriptor, like bit 9. we use it for the dram over 4GB.
> Then how should we do if there are some difference. 

That can easily be handled using a quirk (see, for example,
IO_PGTABLE_QUIRK_ARM_NS).

Will

WARNING: multiple messages have this Message-ID (diff)
From: Will Deacon <will.deacon-5wv7dgnIgG8@public.gmane.org>
To: Yong Wu <yong.wu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
Cc: Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Joerg Roedel <joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>,
	Matthias Brugger
	<matthias.bgg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Robin Murphy <Robin.Murphy-5wv7dgnIgG8@public.gmane.org>,
	Daniel Kurtz <djkurtz-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
	Tomasz Figa <tfiga-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
	Lucas Stach <l.stach-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
	Mark Rutland <Mark.Rutland-5wv7dgnIgG8@public.gmane.org>,
	Catalin Marinas <Catalin.Marinas-5wv7dgnIgG8@public.gmane.org>,
	"linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
	<linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
	Sasha Hauer <kernel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
	"srv_heupstream-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org"
	<srv_heupstream-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>,
	"devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
	<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
	"iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org"
	<iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>
Subject: Re: [PATCH 2/5] iommu/mediatek: Add mt8173 IOMMU driver
Date: Tue, 17 Mar 2015 15:14:24 +0000	[thread overview]
Message-ID: <20150317151424.GQ8399@arm.com> (raw)
In-Reply-To: <1425903103.13300.29.camel@mhfsdcap03>

On Mon, Mar 09, 2015 at 12:11:43PM +0000, Yong Wu wrote:
> On Fri, 2015-03-06 at 10:58 +0000, Will Deacon wrote:
> > On Fri, Mar 06, 2015 at 10:48:17AM +0000, yong.wu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org wrote:
> > > From: Yong Wu <yong.wu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
> > > 
> > > This patch adds support for mediatek m4u (MultiMedia Memory Management Unit).
> > > Currently this only supports m4u gen 2 with 2 levels of page table on mt8173.
> > 
> > [...]
> > 
> > > +/* 2 level pagetable: pgd -> pte */
> > > +#define F_PTE_TYPE_GET(regval)  (regval & 0x3)
> > > +#define F_PTE_TYPE_LARGE         BIT(0)
> > > +#define F_PTE_TYPE_SMALL         BIT(1)
> > > +#define F_PTE_B_BIT              BIT(2)
> > > +#define F_PTE_C_BIT              BIT(3)
> > > +#define F_PTE_BIT32_BIT          BIT(9)
> > > +#define F_PTE_S_BIT              BIT(10)
> > > +#define F_PTE_NG_BIT             BIT(11)
> > > +#define F_PTE_PA_LARGE_MSK            (~0UL << 16)
> > > +#define F_PTE_PA_LARGE_GET(regval)    ((regval >> 16) & 0xffff)
> > > +#define F_PTE_PA_SMALL_MSK            (~0UL << 12)
> > > +#define F_PTE_PA_SMALL_GET(regval)    ((regval >> 12) & (~0))
> > > +#define F_PTE_TYPE_IS_LARGE_PAGE(pte) ((imu_pte_val(pte) & 0x3) == \
> > > +                                       F_PTE_TYPE_LARGE)
> > > +#define F_PTE_TYPE_IS_SMALL_PAGE(pte) ((imu_pte_val(pte) & 0x3) == \
> > > +                                       F_PTE_TYPE_SMALL)
> > 
> > This looks like the ARM short-descriptor format to me. Could you please
> > add a new page table format to the io-pgtable code, so that other IOMMU
> > drivers can make use of this? I know there was some interest in using
> > short descriptor for the ARM SMMU, for example.
>     Currently I not familiar with the io-pgtable,I may need some time
> for it and the ARM short-descriptor. 

Well, you can read the LPAE version I wrote in io-pgtable-arm.c for some
inspiration (it's used by arm-smmu.c and ipmmu-vmsa.c).

>     And there are some difference between mediatek's pagetable with the
> standard short-descriptor, like bit 9. we use it for the dram over 4GB.
> Then how should we do if there are some difference. 

That can easily be handled using a quirk (see, for example,
IO_PGTABLE_QUIRK_ARM_NS).

Will
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: will.deacon@arm.com (Will Deacon)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/5] iommu/mediatek: Add mt8173 IOMMU driver
Date: Tue, 17 Mar 2015 15:14:24 +0000	[thread overview]
Message-ID: <20150317151424.GQ8399@arm.com> (raw)
In-Reply-To: <1425903103.13300.29.camel@mhfsdcap03>

On Mon, Mar 09, 2015 at 12:11:43PM +0000, Yong Wu wrote:
> On Fri, 2015-03-06 at 10:58 +0000, Will Deacon wrote:
> > On Fri, Mar 06, 2015 at 10:48:17AM +0000, yong.wu at mediatek.com wrote:
> > > From: Yong Wu <yong.wu@mediatek.com>
> > > 
> > > This patch adds support for mediatek m4u (MultiMedia Memory Management Unit).
> > > Currently this only supports m4u gen 2 with 2 levels of page table on mt8173.
> > 
> > [...]
> > 
> > > +/* 2 level pagetable: pgd -> pte */
> > > +#define F_PTE_TYPE_GET(regval)  (regval & 0x3)
> > > +#define F_PTE_TYPE_LARGE         BIT(0)
> > > +#define F_PTE_TYPE_SMALL         BIT(1)
> > > +#define F_PTE_B_BIT              BIT(2)
> > > +#define F_PTE_C_BIT              BIT(3)
> > > +#define F_PTE_BIT32_BIT          BIT(9)
> > > +#define F_PTE_S_BIT              BIT(10)
> > > +#define F_PTE_NG_BIT             BIT(11)
> > > +#define F_PTE_PA_LARGE_MSK            (~0UL << 16)
> > > +#define F_PTE_PA_LARGE_GET(regval)    ((regval >> 16) & 0xffff)
> > > +#define F_PTE_PA_SMALL_MSK            (~0UL << 12)
> > > +#define F_PTE_PA_SMALL_GET(regval)    ((regval >> 12) & (~0))
> > > +#define F_PTE_TYPE_IS_LARGE_PAGE(pte) ((imu_pte_val(pte) & 0x3) == \
> > > +                                       F_PTE_TYPE_LARGE)
> > > +#define F_PTE_TYPE_IS_SMALL_PAGE(pte) ((imu_pte_val(pte) & 0x3) == \
> > > +                                       F_PTE_TYPE_SMALL)
> > 
> > This looks like the ARM short-descriptor format to me. Could you please
> > add a new page table format to the io-pgtable code, so that other IOMMU
> > drivers can make use of this? I know there was some interest in using
> > short descriptor for the ARM SMMU, for example.
>     Currently I not familiar with the io-pgtable,I may need some time
> for it and the ARM short-descriptor. 

Well, you can read the LPAE version I wrote in io-pgtable-arm.c for some
inspiration (it's used by arm-smmu.c and ipmmu-vmsa.c).

>     And there are some difference between mediatek's pagetable with the
> standard short-descriptor, like bit 9. we use it for the dram over 4GB.
> Then how should we do if there are some difference. 

That can easily be handled using a quirk (see, for example,
IO_PGTABLE_QUIRK_ARM_NS).

Will

  reply	other threads:[~2015-03-17 15:14 UTC|newest]

Thread overview: 160+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-06 10:48 [RFC PATCH 0/5] MT8173 IOMMU support yong.wu
2015-03-06 10:48 ` yong.wu at mediatek.com
2015-03-06 10:48 ` yong.wu-NuS5LvNUpcJWk0Htik3J/w
2015-03-06 10:48 ` [PATCH 1/5] soc: mediatek: Add SMI driver yong.wu
2015-03-06 10:48   ` yong.wu at mediatek.com
2015-03-06 10:48   ` yong.wu-NuS5LvNUpcJWk0Htik3J/w
2015-03-06 11:30   ` Paul Bolle
2015-03-06 11:30     ` Paul Bolle
2015-03-09 11:57     ` Yong Wu
2015-03-09 11:57       ` Yong Wu
2015-03-09 11:57       ` Yong Wu
2015-03-09 17:59       ` Paul Bolle
2015-03-09 17:59         ` Paul Bolle
2015-03-09 17:59         ` Paul Bolle
2015-03-09 21:54         ` Arnd Bergmann
2015-03-09 21:54           ` Arnd Bergmann
2015-03-09 21:54           ` Arnd Bergmann
2015-03-10  6:17         ` Yingjoe Chen
2015-03-10  6:17           ` Yingjoe Chen
2015-03-10  6:17           ` Yingjoe Chen
2015-03-09  3:26   ` Yingjoe Chen
2015-03-09  3:26     ` Yingjoe Chen
2015-03-09  3:26     ` Yingjoe Chen
2015-03-09 21:56     ` Arnd Bergmann
2015-03-09 21:56       ` Arnd Bergmann
2015-03-09 21:56       ` Arnd Bergmann
2015-03-10  6:27       ` Yingjoe Chen
2015-03-10  6:27         ` Yingjoe Chen
2015-03-10  6:27         ` Yingjoe Chen
2015-03-10  9:05         ` Arnd Bergmann
2015-03-10  9:05           ` Arnd Bergmann
2015-03-10  9:05           ` Arnd Bergmann
2015-03-10  9:24       ` Lucas Stach
2015-03-10  9:24         ` Lucas Stach
2015-03-10  9:24         ` Lucas Stach
2015-03-09 11:03   ` Sascha Hauer
2015-03-09 11:03     ` Sascha Hauer
2015-03-09 11:03     ` Sascha Hauer
2015-03-06 10:48 ` [PATCH 2/5] iommu/mediatek: Add mt8173 IOMMU driver yong.wu
2015-03-06 10:48   ` yong.wu at mediatek.com
2015-03-06 10:48   ` yong.wu-NuS5LvNUpcJWk0Htik3J/w
2015-03-06 10:58   ` Will Deacon
2015-03-06 10:58     ` Will Deacon
2015-03-06 10:58     ` Will Deacon
2015-03-09 12:11     ` Yong Wu
2015-03-09 12:11       ` Yong Wu
2015-03-09 12:11       ` Yong Wu
2015-03-17 15:14       ` Will Deacon [this message]
2015-03-17 15:14         ` Will Deacon
2015-03-17 15:14         ` Will Deacon
2015-03-06 17:15   ` Mitchel Humpherys
2015-03-06 17:15     ` Mitchel Humpherys
2015-03-06 17:15     ` Mitchel Humpherys
2015-03-09 12:16     ` Yong Wu
2015-03-09 12:16       ` Yong Wu
2015-03-09 12:16       ` Yong Wu
2015-03-09 16:57       ` Mitchel Humpherys
2015-03-09 16:57         ` Mitchel Humpherys
2015-03-08  4:12   ` Tomasz Figa
2015-03-08  4:12     ` Tomasz Figa
2015-03-08  4:12     ` Tomasz Figa
2015-03-12 14:16     ` Yong Wu
2015-03-12 14:16       ` Yong Wu
2015-03-12 14:16       ` Yong Wu
2015-03-09  8:24   ` Daniel Kurtz
2015-03-09  8:24     ` Daniel Kurtz
2015-03-09  8:24     ` Daniel Kurtz
2015-03-09 11:11   ` Tomasz Figa
2015-03-09 11:11     ` Tomasz Figa
2015-03-09 11:11     ` Tomasz Figa
2015-03-09 14:46     ` Yingjoe Chen
2015-03-09 14:46       ` Yingjoe Chen
2015-03-09 14:46       ` Yingjoe Chen
2015-03-09 17:00       ` Tomasz Figa
2015-03-09 17:00         ` Tomasz Figa
2015-03-09 17:00         ` Tomasz Figa
2015-03-10  3:41         ` Yingjoe Chen
2015-03-10  3:41           ` Yingjoe Chen
2015-03-10  3:41           ` Yingjoe Chen
2015-03-10  4:06           ` Tomasz Figa
2015-03-10  4:06             ` Tomasz Figa
2015-03-10  4:06             ` Tomasz Figa
2015-03-11 10:53   ` Tomasz Figa
2015-03-11 10:53     ` Tomasz Figa
2015-03-11 10:53     ` Tomasz Figa
2015-03-18 11:22     ` Yong Wu
2015-03-18 11:22       ` Yong Wu
2015-03-18 11:22       ` Yong Wu
2015-03-20 19:14       ` Robin Murphy
2015-03-20 19:14         ` Robin Murphy
2015-03-20 19:14         ` Robin Murphy
2015-04-14  6:50         ` Yong Wu
2015-04-14  6:50           ` Yong Wu
2015-04-14  6:50           ` Yong Wu
2015-03-27  9:41       ` Tomasz Figa
2015-03-27  9:41         ` Tomasz Figa
2015-03-27  9:41         ` Tomasz Figa
2015-04-14  6:31         ` Yong Wu
2015-04-14  6:31           ` Yong Wu
2015-04-14  6:31           ` Yong Wu
2015-04-15  2:20           ` Tomasz Figa
2015-04-15  2:20             ` Tomasz Figa
2015-04-15  2:20             ` Tomasz Figa
2015-04-15  7:06             ` Yong Wu
2015-04-15  7:06               ` Yong Wu
2015-04-15  7:06               ` Yong Wu
2015-04-15  7:41               ` Tomasz Figa
2015-04-15  7:41                 ` Tomasz Figa
2015-04-15  7:41                 ` Tomasz Figa
2015-04-29  6:23         ` Yong Wu
2015-04-29  6:23           ` Yong Wu
2015-04-29  6:23           ` Yong Wu
2015-03-06 10:48 ` [PATCH 3/5] dt-bindings: mediatek: Add smi dts binding yong.wu
2015-03-06 10:48   ` yong.wu at mediatek.com
2015-03-06 10:48   ` yong.wu-NuS5LvNUpcJWk0Htik3J/w
2015-03-06 11:13   ` Mark Rutland
2015-03-06 11:13     ` Mark Rutland
2015-03-06 11:13     ` Mark Rutland
2015-03-09 12:55     ` Yong Wu
2015-03-09 12:55       ` Yong Wu
2015-03-09 12:55       ` Yong Wu
2015-04-14  9:07     ` Yong Wu
2015-04-14  9:07       ` Yong Wu
2015-04-14  9:07       ` Yong Wu
2015-04-14 10:06       ` Mark Rutland
2015-04-14 10:06         ` Mark Rutland
2015-04-14 10:06         ` Mark Rutland
2015-04-14 13:49         ` Yong Wu
2015-04-14 13:49           ` Yong Wu
2015-04-14 13:49           ` Yong Wu
2015-04-14 13:55           ` Yong Wu
2015-04-14 13:55             ` Yong Wu
2015-04-14 13:55             ` Yong Wu
2015-04-14 13:56           ` Mark Rutland
2015-04-14 13:56             ` Mark Rutland
2015-04-14 13:56             ` Mark Rutland
2015-03-06 14:48   ` Sergei Shtylyov
2015-03-06 14:48     ` Sergei Shtylyov
2015-03-06 14:48     ` Sergei Shtylyov
2015-03-09 12:32     ` Yong Wu
2015-03-09 12:32       ` Yong Wu
2015-03-09 12:32       ` Yong Wu
2015-03-06 10:48 ` [PATCH 4/5] dt-bindings: iommu: Add binding for mediatek IOMMU yong.wu
2015-03-06 10:48   ` yong.wu at mediatek.com
2015-03-06 10:48   ` yong.wu-NuS5LvNUpcJWk0Htik3J/w
2015-03-06 11:21   ` Mark Rutland
2015-03-06 11:21     ` Mark Rutland
2015-03-06 11:21     ` Mark Rutland
2015-03-09 11:30     ` Yong Wu
2015-03-09 11:30       ` Yong Wu
2015-03-09 11:30       ` Yong Wu
2015-03-06 10:48 ` [PATCH 5/5] dts: mt8173: Add iommu/smi nodes for mt8173 yong.wu
2015-03-06 10:48   ` yong.wu at mediatek.com
2015-03-06 10:48   ` yong.wu-NuS5LvNUpcJWk0Htik3J/w
2015-03-07 15:20   ` Daniel Kurtz
2015-03-07 15:20     ` Daniel Kurtz
2015-03-07 15:20     ` Daniel Kurtz
2015-03-09 12:18     ` Yong Wu
2015-03-09 12:18       ` Yong Wu
2015-03-09 12:18       ` 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=20150317151424.GQ8399@arm.com \
    --to=will.deacon@arm.com \
    --cc=Catalin.Marinas@arm.com \
    --cc=Mark.Rutland@arm.com \
    --cc=Robin.Murphy@arm.com \
    --cc=devicetree@vger.kernel.org \
    --cc=djkurtz@google.com \
    --cc=iommu@lists.linux-foundation.org \
    --cc=joro@8bytes.org \
    --cc=kernel@pengutronix.de \
    --cc=l.stach@pengutronix.de \
    --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=srv_heupstream@mediatek.com \
    --cc=tfiga@google.com \
    --cc=yong.wu@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.