* [RFC PATCH 15/15] iommu/exynos: update to use iommu big-endian [not found] <20160608183110.13851-1-matthew@mattleach.net> @ 2016-06-08 18:31 ` Matthew Leach 2016-06-09 6:51 ` Marek Szyprowski [not found] ` <20160608183110.13851-16-matthew-vFKDGoARCE+LZ21kGMrzwg@public.gmane.org> 0 siblings, 2 replies; 4+ messages in thread From: Matthew Leach @ 2016-06-08 18:31 UTC (permalink / raw) To: Krzysztof Kozlowski, Ben Dooks Cc: linux-samsung-soc, linux-arm-kernel, linux-kernel, Marek Szyprowski, Joerg Roedel, Kukjin Kim, iommu From: Ben Dooks <ben.dooks@codethink.co.uk> Add initial support for big endian by always writing the pte in le32. Note, revisit if hardware capable of doing big endian fetches. Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> --- Cc: Marek Szyprowski <m.szyprowski@samsung.com> Cc: Joerg Roedel <joro@8bytes.org> Cc: Kukjin Kim <kgene@kernel.org> Cc: Krzysztof Kozlowski <k.kozlowski@samsung.com> Cc: iommu@lists.linux-foundation.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-samsung-soc@vger.kernel.org Cc: linux-kernel@vger.kernel.org (open list) --- drivers/iommu/exynos-iommu.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c index 5ecc86c..dd8b3b3 100644 --- a/drivers/iommu/exynos-iommu.c +++ b/drivers/iommu/exynos-iommu.c @@ -54,6 +54,10 @@ typedef u32 sysmmu_pte_t; #define lv2ent_small(pent) ((*(pent) & 2) == 2) #define lv2ent_large(pent) ((*(pent) & 3) == 1) +#ifdef CONFIG_BIG_ENDIAN +#warning "revisit driver if we can enable big-endian ptes" +#endif + /* * v1.x - v3.x SYSMMU supports 32bit physical and 32bit virtual address spaces * v5.0 introduced support for 36bit physical address space by shifting @@ -716,7 +720,7 @@ static inline void update_pte(sysmmu_pte_t *ent, sysmmu_pte_t val) { dma_sync_single_for_cpu(dma_dev, virt_to_phys(ent), sizeof(*ent), DMA_TO_DEVICE); - *ent = val; + *ent = cpu_to_le32(val); dma_sync_single_for_device(dma_dev, virt_to_phys(ent), sizeof(*ent), DMA_TO_DEVICE); } -- 2.8.3 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [RFC PATCH 15/15] iommu/exynos: update to use iommu big-endian 2016-06-08 18:31 ` [RFC PATCH 15/15] iommu/exynos: update to use iommu big-endian Matthew Leach @ 2016-06-09 6:51 ` Marek Szyprowski 2016-06-09 8:14 ` Ben Dooks [not found] ` <20160608183110.13851-16-matthew-vFKDGoARCE+LZ21kGMrzwg@public.gmane.org> 1 sibling, 1 reply; 4+ messages in thread From: Marek Szyprowski @ 2016-06-09 6:51 UTC (permalink / raw) To: Matthew Leach, Krzysztof Kozlowski, Ben Dooks Cc: linux-samsung-soc, linux-arm-kernel, linux-kernel, Joerg Roedel, Kukjin Kim, iommu Hi On 2016-06-08 20:31, Matthew Leach wrote: > From: Ben Dooks <ben.dooks@codethink.co.uk> > > Add initial support for big endian by always writing the pte > in le32. Note, revisit if hardware capable of doing big endian > fetches. > > Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> Acked-by: Marek Szyprowski <m.szyprowski@samsung.com> Just to keep my curiosity satisfied - what's the reason to use big-endian on ARM? Good luck with fixing the kernel and userspace codes, which usually assume little-endian is the only possible order! > --- > Cc: Marek Szyprowski <m.szyprowski@samsung.com> > Cc: Joerg Roedel <joro@8bytes.org> > Cc: Kukjin Kim <kgene@kernel.org> > Cc: Krzysztof Kozlowski <k.kozlowski@samsung.com> > Cc: iommu@lists.linux-foundation.org > Cc: linux-arm-kernel@lists.infradead.org > Cc: linux-samsung-soc@vger.kernel.org > Cc: linux-kernel@vger.kernel.org (open list) > --- > drivers/iommu/exynos-iommu.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c > index 5ecc86c..dd8b3b3 100644 > --- a/drivers/iommu/exynos-iommu.c > +++ b/drivers/iommu/exynos-iommu.c > @@ -54,6 +54,10 @@ typedef u32 sysmmu_pte_t; > #define lv2ent_small(pent) ((*(pent) & 2) == 2) > #define lv2ent_large(pent) ((*(pent) & 3) == 1) > > +#ifdef CONFIG_BIG_ENDIAN > +#warning "revisit driver if we can enable big-endian ptes" > +#endif > + This warning can be removed. There is no way to force SYSMMU to operate with big-endian PTEs according to the datasheet. > /* > * v1.x - v3.x SYSMMU supports 32bit physical and 32bit virtual address spaces > * v5.0 introduced support for 36bit physical address space by shifting > @@ -716,7 +720,7 @@ static inline void update_pte(sysmmu_pte_t *ent, sysmmu_pte_t val) > { > dma_sync_single_for_cpu(dma_dev, virt_to_phys(ent), sizeof(*ent), > DMA_TO_DEVICE); > - *ent = val; > + *ent = cpu_to_le32(val); > dma_sync_single_for_device(dma_dev, virt_to_phys(ent), sizeof(*ent), > DMA_TO_DEVICE); > } Best regards -- Marek Szyprowski, PhD Samsung R&D Institute Poland ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [RFC PATCH 15/15] iommu/exynos: update to use iommu big-endian 2016-06-09 6:51 ` Marek Szyprowski @ 2016-06-09 8:14 ` Ben Dooks 0 siblings, 0 replies; 4+ messages in thread From: Ben Dooks @ 2016-06-09 8:14 UTC (permalink / raw) To: Marek Szyprowski, Matthew Leach, Krzysztof Kozlowski Cc: linux-samsung-soc, linux-arm-kernel, linux-kernel, Joerg Roedel, Kukjin Kim, iommu On 09/06/16 07:51, Marek Szyprowski wrote: > Hi > > > On 2016-06-08 20:31, Matthew Leach wrote: >> From: Ben Dooks <ben.dooks@codethink.co.uk> >> >> Add initial support for big endian by always writing the pte >> in le32. Note, revisit if hardware capable of doing big endian >> fetches. >> >> Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> > > Acked-by: Marek Szyprowski <m.szyprowski@samsung.com> > > Just to keep my curiosity satisfied - what's the reason to use > big-endian on ARM? Because we can. It was interesting to try. > Good luck with fixing the kernel and userspace codes, which usually > assume little-endian is the only possible order! We did a BE8 build of the baserock userspace a year or two ago and found mostly it just worked. I think Matt is using that image for testing the work he's been doing. I've no idea if we would ever bother trying to build Debian for BE8 or similar, as not sure it would be worth trying. -- Ben Dooks http://www.codethink.co.uk/ Senior Engineer Codethink - Providing Genius ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <20160608183110.13851-16-matthew-vFKDGoARCE+LZ21kGMrzwg@public.gmane.org>]
* Re: [RFC PATCH 15/15] iommu/exynos: update to use iommu big-endian [not found] ` <20160608183110.13851-16-matthew-vFKDGoARCE+LZ21kGMrzwg@public.gmane.org> @ 2016-06-21 9:59 ` Joerg Roedel 0 siblings, 0 replies; 4+ messages in thread From: Joerg Roedel @ 2016-06-21 9:59 UTC (permalink / raw) To: Matthew Leach Cc: Krzysztof Kozlowski, linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA, Ben Dooks, Kukjin Kim, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r On Wed, Jun 08, 2016 at 07:31:10PM +0100, Matthew Leach wrote: > From: Ben Dooks <ben.dooks-4yDnlxn2s6sWdaTGBSpHTA@public.gmane.org> > > Add initial support for big endian by always writing the pte > in le32. Note, revisit if hardware capable of doing big endian > fetches. > > Signed-off-by: Ben Dooks <ben.dooks-4yDnlxn2s6sWdaTGBSpHTA@public.gmane.org> > --- > Cc: Marek Szyprowski <m.szyprowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> > Cc: Joerg Roedel <joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org> > Cc: Kukjin Kim <kgene-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> > Cc: Krzysztof Kozlowski <k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> > Cc: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org > Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org > Cc: linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org (open list) > --- > drivers/iommu/exynos-iommu.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) Applied, thanks. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2016-06-21 9:59 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20160608183110.13851-1-matthew@mattleach.net>
2016-06-08 18:31 ` [RFC PATCH 15/15] iommu/exynos: update to use iommu big-endian Matthew Leach
2016-06-09 6:51 ` Marek Szyprowski
2016-06-09 8:14 ` Ben Dooks
[not found] ` <20160608183110.13851-16-matthew-vFKDGoARCE+LZ21kGMrzwg@public.gmane.org>
2016-06-21 9:59 ` Joerg Roedel
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).