[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v02 2/7] arm: omap: introduce iommu translation for IPU remoteproc

On Thu, 2014-06-26 at 14:07 +0300, Andrii Tseglytskyi wrote:
> The following patch introduced platform specific MMU data
> definitions and pagetable translation function for OMAP5 IPU
> remoteproc. This MMU is a bit specific - it typically performs
> one level translation and map a big chunks of memory. 16 Mb
> supersections and 1 Mb sections are mapped instead of 4 Kb pages.
> Introduced algorithm performs internal remapping of big sections
> to small 4 Kb pages.

How does that work if the MMU only supports 1MB/16MB supersections? Or
have I misunderstood?

> Change-Id: If20449f07e22f780e1fded67fed4f79cbe1fc156
> Signed-off-by: Andrii Tseglytskyi <andrii.tseglytskyi@xxxxxxxxxxxxxxx>
> ---
>  xen/arch/arm/platforms/Makefile     |    1 +
>  xen/arch/arm/platforms/omap_iommu.c |  247 
> +++++++++++++++++++++++++++++++++++

I don't think this is the right home for this.

I think either xen/arch/arm/remoteproc/* or xen/drivers/remoteproc/*
would be more appropriate.

> +#define      OMAP_IPU_MMU_MEM_BASE   0x55082000
> +
> +static u32 mmu_ipu_translate_pagetable(struct mmu_info *mmu, struct 
> mmu_pagetable *pgt);
> +
> +static u32 ipu_trap_offsets[] = {

How large is this region? I think the machinery needs to be told.

Also if this functionality is to be used by guests then it can't really
use the h/w base address, you'd need to define a region of guest address
map (!= host/dom0 address map) for it.

> diff --git a/xen/arch/arm/remoteproc_iommu.c b/xen/arch/arm/remoteproc_iommu.c
> index b4d22d9..8291f3f 100644
> --- a/xen/arch/arm/remoteproc_iommu.c
> +++ b/xen/arch/arm/remoteproc_iommu.c
> @@ -33,6 +33,7 @@
>  #include "io.h"
>  static struct mmu_info *mmu_list[] = {
> +    &omap_ipu_mmu,

This suggests there is exactly one such and it is exposed to every

Wouldn't this rather be dynamic and per domain?


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.