* [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu
@ 2009-07-24 17:22 Kanigeri, Hari
2009-07-24 18:21 ` Hiroshi DOYU
` (2 more replies)
0 siblings, 3 replies; 12+ messages in thread
From: Kanigeri, Hari @ 2009-07-24 17:22 UTC (permalink / raw)
To: tony@atomide.com, Hiroshi DOYU
Cc: linux-omap@vger.kernel.org, Gupta, Ramesh, rmk@arm.linux.org.uk,
Pasam, Vijay
[-- Attachment #1: Type: text/plain, Size: 3955 bytes --]
This patch adds omap4 support in iommu
module. This creates OMAP4 platform specific file
for iommu and defines the Ducati MMU fault interrupt.
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
---
arch/arm/mach-omap2/omap4-iommu.c | 112 ++++++++++++++++++++++++++++++++
arch/arm/plat-omap/include/mach/irqs.h | 2 +-
2 files changed, 113 insertions(+), 1 deletions(-)
create mode 100644 arch/arm/mach-omap2/omap4-iommu.c
diff --git a/arch/arm/mach-omap2/omap4-iommu.c b/arch/arm/mach-omap2/omap4-iommu.c
new file mode 100644
index 0000000..5a782df
--- /dev/null
+++ b/arch/arm/mach-omap2/omap4-iommu.c
@@ -0,0 +1,112 @@
+/*
+ * omap iommu: omap4 device registration
+ *
+ * Copyright (C) 2009-2010 Nokia Corporation
+ *
+ * Written by Hari Kanigeri <h-kanigeri2@ti.com>
+ *
+ * Added support for OMAP4. This is based on original file
+ * omap3-iommu.c
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include <linux/platform_device.h>
+
+#include <mach/iommu.h>
+#include <mach/irqs.h>
+
+#define OMAP4_MMU1_BASE 0x55082000
+#define OMAP4_MMU2_BASE 0x4A066000
+
+#define OMAP4_MMU1_IRQ INT_44XX_DUCATI_MMU_IRQ
+#define OMAP4_MMU2_IRQ INT_44XX_DSP_MMU
+
+
+
+static unsigned long iommu_base[] __initdata = {
+ OMAP4_MMU1_BASE,
+ OMAP4_MMU2_BASE,
+};
+
+static int iommu_irq[] __initdata = {
+ OMAP4_MMU1_IRQ,
+ OMAP4_MMU2_IRQ,
+};
+
+static const struct iommu_platform_data omap4_iommu_pdata[] __initconst = {
+ {
+ .name = "ducati",
+ .nr_tlb_entries = 32,
+ .clk_name = "ducati_ick",
+ },
+#if defined(CONFIG_MPU_TESLA_IOMMU)
+ {
+ .name = "tesla",
+ .nr_tlb_entries = 32,
+ .clk_name = "tesla_ick",
+ },
+#endif
+};
+#define NR_IOMMU_DEVICES ARRAY_SIZE(omap4_iommu_pdata)
+
+static struct platform_device *omap4_iommu_pdev[NR_IOMMU_DEVICES];
+
+static int __init omap4_iommu_init(void)
+{
+ int i, err;
+
+ for (i = 0; i < NR_IOMMU_DEVICES; i++) {
+ struct platform_device *pdev;
+ struct resource res[2];
+
+ pdev = platform_device_alloc("omap-iommu", i);
+ if (!pdev) {
+ err = -ENOMEM;
+ goto err_out;
+ }
+
+ memset(res, 0, sizeof(res));
+ res[0].start = iommu_base[i];
+ res[0].end = iommu_base[i] + MMU_REG_SIZE - 1;
+ res[0].flags = IORESOURCE_MEM;
+ res[1].start = res[1].end = iommu_irq[i];
+ res[1].flags = IORESOURCE_IRQ;
+
+ err = platform_device_add_resources(pdev, res,
+ ARRAY_SIZE(res));
+ if (err)
+ goto err_out;
+ err = platform_device_add_data(pdev, &omap4_iommu_pdata[i],
+ sizeof(omap4_iommu_pdata[0]));
+ if (err)
+ goto err_out;
+ err = platform_device_add(pdev);
+ if (err)
+ goto err_out;
+ omap4_iommu_pdev[i] = pdev;
+ }
+ return 0;
+
+err_out:
+ while (i--)
+ platform_device_put(omap4_iommu_pdev[i]);
+ return err;
+}
+module_init(omap4_iommu_init);
+
+static void __exit omap4_iommu_exit(void)
+{
+ int i;
+
+ for (i = 0; i < NR_IOMMU_DEVICES; i++)
+ platform_device_unregister(omap4_iommu_pdev[i]);
+}
+module_exit(omap4_iommu_exit);
+
+MODULE_AUTHOR("Hiroshi DOYU, Hari Kanigeri");
+MODULE_DESCRIPTION("omap iommu: omap4 device registration");
+MODULE_LICENSE("GPL v2");
+
diff --git a/arch/arm/plat-omap/include/mach/irqs.h b/arch/arm/plat-omap/include/mach/irqs.h
index fb7cb77..34b6d09 100644
--- a/arch/arm/plat-omap/include/mach/irqs.h
+++ b/arch/arm/plat-omap/include/mach/irqs.h
@@ -511,7 +511,7 @@
#define INT_44XX_TLL_IRQ (78 + IRQ_GIC_START)
#define INT_44XX_PARTHASH_IRQ (79 + IRQ_GIC_START)
#define INT_44XX_MMC3_IRQ (94 + IRQ_GIC_START)
-
+#define INT_44XX_DUCATI_MMU_IRQ (100 + IRQ_GIC_START)
/* Max. 128 level 2 IRQs (OMAP1610), 192 GPIOs (OMAP730/850) and
* 16 MPUIO lines */
--
1.5.4.3
Thank you,
Best regards,
Hari
[-- Attachment #2: 0002-ARM-OMAP4-iommu-add-omap4-support-in-iommu.patch --]
[-- Type: application/octet-stream, Size: 3984 bytes --]
From ffcfef746400ca2ef4e1c5518eb5022cd1003e4a Mon Sep 17 00:00:00 2001
From: Hari Kanigeri <h-kanigeri2@ti.com>
Date: Fri, 17 Jul 2009 19:01:57 -0500
Subject: [PATCH] ARM:OMAP4 iommu:add omap4 support in iommu
This patch adds omap4 support in iommu
module. This creates OMAP4 platform specific file
for iommu and defines the Ducati MMU fault interrupt.
Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
---
arch/arm/mach-omap2/omap4-iommu.c | 112 ++++++++++++++++++++++++++++++++
arch/arm/plat-omap/include/mach/irqs.h | 2 +-
2 files changed, 113 insertions(+), 1 deletions(-)
create mode 100644 arch/arm/mach-omap2/omap4-iommu.c
diff --git a/arch/arm/mach-omap2/omap4-iommu.c b/arch/arm/mach-omap2/omap4-iommu.c
new file mode 100644
index 0000000..5a782df
--- /dev/null
+++ b/arch/arm/mach-omap2/omap4-iommu.c
@@ -0,0 +1,112 @@
+/*
+ * omap iommu: omap4 device registration
+ *
+ * Copyright (C) 2009-2010 Nokia Corporation
+ *
+ * Written by Hari Kanigeri <h-kanigeri2@ti.com>
+ *
+ * Added support for OMAP4. This is based on original file
+ * omap3-iommu.c
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include <linux/platform_device.h>
+
+#include <mach/iommu.h>
+#include <mach/irqs.h>
+
+#define OMAP4_MMU1_BASE 0x55082000
+#define OMAP4_MMU2_BASE 0x4A066000
+
+#define OMAP4_MMU1_IRQ INT_44XX_DUCATI_MMU_IRQ
+#define OMAP4_MMU2_IRQ INT_44XX_DSP_MMU
+
+
+
+static unsigned long iommu_base[] __initdata = {
+ OMAP4_MMU1_BASE,
+ OMAP4_MMU2_BASE,
+};
+
+static int iommu_irq[] __initdata = {
+ OMAP4_MMU1_IRQ,
+ OMAP4_MMU2_IRQ,
+};
+
+static const struct iommu_platform_data omap4_iommu_pdata[] __initconst = {
+ {
+ .name = "ducati",
+ .nr_tlb_entries = 32,
+ .clk_name = "ducati_ick",
+ },
+#if defined(CONFIG_MPU_TESLA_IOMMU)
+ {
+ .name = "tesla",
+ .nr_tlb_entries = 32,
+ .clk_name = "tesla_ick",
+ },
+#endif
+};
+#define NR_IOMMU_DEVICES ARRAY_SIZE(omap4_iommu_pdata)
+
+static struct platform_device *omap4_iommu_pdev[NR_IOMMU_DEVICES];
+
+static int __init omap4_iommu_init(void)
+{
+ int i, err;
+
+ for (i = 0; i < NR_IOMMU_DEVICES; i++) {
+ struct platform_device *pdev;
+ struct resource res[2];
+
+ pdev = platform_device_alloc("omap-iommu", i);
+ if (!pdev) {
+ err = -ENOMEM;
+ goto err_out;
+ }
+
+ memset(res, 0, sizeof(res));
+ res[0].start = iommu_base[i];
+ res[0].end = iommu_base[i] + MMU_REG_SIZE - 1;
+ res[0].flags = IORESOURCE_MEM;
+ res[1].start = res[1].end = iommu_irq[i];
+ res[1].flags = IORESOURCE_IRQ;
+
+ err = platform_device_add_resources(pdev, res,
+ ARRAY_SIZE(res));
+ if (err)
+ goto err_out;
+ err = platform_device_add_data(pdev, &omap4_iommu_pdata[i],
+ sizeof(omap4_iommu_pdata[0]));
+ if (err)
+ goto err_out;
+ err = platform_device_add(pdev);
+ if (err)
+ goto err_out;
+ omap4_iommu_pdev[i] = pdev;
+ }
+ return 0;
+
+err_out:
+ while (i--)
+ platform_device_put(omap4_iommu_pdev[i]);
+ return err;
+}
+module_init(omap4_iommu_init);
+
+static void __exit omap4_iommu_exit(void)
+{
+ int i;
+
+ for (i = 0; i < NR_IOMMU_DEVICES; i++)
+ platform_device_unregister(omap4_iommu_pdev[i]);
+}
+module_exit(omap4_iommu_exit);
+
+MODULE_AUTHOR("Hiroshi DOYU, Hari Kanigeri");
+MODULE_DESCRIPTION("omap iommu: omap4 device registration");
+MODULE_LICENSE("GPL v2");
+
diff --git a/arch/arm/plat-omap/include/mach/irqs.h b/arch/arm/plat-omap/include/mach/irqs.h
index fb7cb77..34b6d09 100644
--- a/arch/arm/plat-omap/include/mach/irqs.h
+++ b/arch/arm/plat-omap/include/mach/irqs.h
@@ -511,7 +511,7 @@
#define INT_44XX_TLL_IRQ (78 + IRQ_GIC_START)
#define INT_44XX_PARTHASH_IRQ (79 + IRQ_GIC_START)
#define INT_44XX_MMC3_IRQ (94 + IRQ_GIC_START)
-
+#define INT_44XX_DUCATI_MMU_IRQ (100 + IRQ_GIC_START)
/* Max. 128 level 2 IRQs (OMAP1610), 192 GPIOs (OMAP730/850) and
* 16 MPUIO lines */
--
1.5.4.3
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu
2009-07-24 17:22 [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu Kanigeri, Hari
@ 2009-07-24 18:21 ` Hiroshi DOYU
2009-07-27 0:18 ` Kanigeri, Hari
2009-07-24 18:27 ` Felipe Balbi
2009-07-25 9:02 ` Shilimkar, Santosh
2 siblings, 1 reply; 12+ messages in thread
From: Hiroshi DOYU @ 2009-07-24 18:21 UTC (permalink / raw)
To: h-kanigeri2; +Cc: tony, linux-omap, grgupta, rmk, vpasam
From: "ext Kanigeri, Hari" <h-kanigeri2@ti.com>
Subject: [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu
Date: Fri, 24 Jul 2009 19:22:32 +0200
> This patch adds omap4 support in iommu
> module. This creates OMAP4 platform specific file
> for iommu and defines the Ducati MMU fault interrupt.
>
> Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
> ---
> arch/arm/mach-omap2/omap4-iommu.c | 112 ++++++++++++++++++++++++++++++++
> arch/arm/plat-omap/include/mach/irqs.h | 2 +-
> 2 files changed, 113 insertions(+), 1 deletions(-)
> create mode 100644 arch/arm/mach-omap2/omap4-iommu.c
>
> diff --git a/arch/arm/mach-omap2/omap4-iommu.c b/arch/arm/mach-omap2/omap4-iommu.c
> new file mode 100644
> index 0000000..5a782df
> --- /dev/null
> +++ b/arch/arm/mach-omap2/omap4-iommu.c
> @@ -0,0 +1,112 @@
> +/*
> + * omap iommu: omap4 device registration
> + *
> + * Copyright (C) 2009-2010 Nokia Corporation
> + *
> + * Written by Hari Kanigeri <h-kanigeri2@ti.com>
> + *
> + * Added support for OMAP4. This is based on original file
> + * omap3-iommu.c
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + */
> +
> +#include <linux/platform_device.h>
> +
> +#include <mach/iommu.h>
> +#include <mach/irqs.h>
> +
> +#define OMAP4_MMU1_BASE 0x55082000
> +#define OMAP4_MMU2_BASE 0x4A066000
> +
> +#define OMAP4_MMU1_IRQ INT_44XX_DUCATI_MMU_IRQ
> +#define OMAP4_MMU2_IRQ INT_44XX_DSP_MMU
> +
> +
> +
> +static unsigned long iommu_base[] __initdata = {
> + OMAP4_MMU1_BASE,
> + OMAP4_MMU2_BASE,
> +};
> +
> +static int iommu_irq[] __initdata = {
> + OMAP4_MMU1_IRQ,
> + OMAP4_MMU2_IRQ,
> +};
> +
> +static const struct iommu_platform_data omap4_iommu_pdata[] __initconst = {
> + {
> + .name = "ducati",
> + .nr_tlb_entries = 32,
> + .clk_name = "ducati_ick",
> + },
> +#if defined(CONFIG_MPU_TESLA_IOMMU)
> + {
> + .name = "tesla",
> + .nr_tlb_entries = 32,
> + .clk_name = "tesla_ick",
> + },
> +#endif
> +};
If iommu is used as a character device driver, is the above config still necessary?
> +#define NR_IOMMU_DEVICES ARRAY_SIZE(omap4_iommu_pdata)
> +
> +static struct platform_device *omap4_iommu_pdev[NR_IOMMU_DEVICES];
> +
> +static int __init omap4_iommu_init(void)
> +{
> + int i, err;
> +
> + for (i = 0; i < NR_IOMMU_DEVICES; i++) {
> + struct platform_device *pdev;
> + struct resource res[2];
> +
> + pdev = platform_device_alloc("omap-iommu", i);
> + if (!pdev) {
> + err = -ENOMEM;
> + goto err_out;
> + }
> +
> + memset(res, 0, sizeof(res));
> + res[0].start = iommu_base[i];
> + res[0].end = iommu_base[i] + MMU_REG_SIZE - 1;
> + res[0].flags = IORESOURCE_MEM;
> + res[1].start = res[1].end = iommu_irq[i];
> + res[1].flags = IORESOURCE_IRQ;
> +
> + err = platform_device_add_resources(pdev, res,
> + ARRAY_SIZE(res));
> + if (err)
> + goto err_out;
> + err = platform_device_add_data(pdev, &omap4_iommu_pdata[i],
> + sizeof(omap4_iommu_pdata[0]));
> + if (err)
> + goto err_out;
> + err = platform_device_add(pdev);
> + if (err)
> + goto err_out;
> + omap4_iommu_pdev[i] = pdev;
> + }
> + return 0;
> +
> +err_out:
> + while (i--)
> + platform_device_put(omap4_iommu_pdev[i]);
> + return err;
> +}
> +module_init(omap4_iommu_init);
> +
> +static void __exit omap4_iommu_exit(void)
> +{
> + int i;
> +
> + for (i = 0; i < NR_IOMMU_DEVICES; i++)
> + platform_device_unregister(omap4_iommu_pdev[i]);
> +}
> +module_exit(omap4_iommu_exit);
> +
> +MODULE_AUTHOR("Hiroshi DOYU, Hari Kanigeri");
> +MODULE_DESCRIPTION("omap iommu: omap4 device registration");
> +MODULE_LICENSE("GPL v2");
> +
> diff --git a/arch/arm/plat-omap/include/mach/irqs.h b/arch/arm/plat-omap/include/mach/irqs.h
> index fb7cb77..34b6d09 100644
> --- a/arch/arm/plat-omap/include/mach/irqs.h
> +++ b/arch/arm/plat-omap/include/mach/irqs.h
> @@ -511,7 +511,7 @@
> #define INT_44XX_TLL_IRQ (78 + IRQ_GIC_START)
> #define INT_44XX_PARTHASH_IRQ (79 + IRQ_GIC_START)
> #define INT_44XX_MMC3_IRQ (94 + IRQ_GIC_START)
> -
> +#define INT_44XX_DUCATI_MMU_IRQ (100 + IRQ_GIC_START)
>
> /* Max. 128 level 2 IRQs (OMAP1610), 192 GPIOs (OMAP730/850) and
> * 16 MPUIO lines */
> --
> 1.5.4.3
>
>
> Thank you,
> Best regards,
> Hari
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu
2009-07-24 17:22 [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu Kanigeri, Hari
2009-07-24 18:21 ` Hiroshi DOYU
@ 2009-07-24 18:27 ` Felipe Balbi
2009-07-24 18:47 ` Hiroshi DOYU
2009-07-26 18:16 ` Kanigeri, Hari
2009-07-25 9:02 ` Shilimkar, Santosh
2 siblings, 2 replies; 12+ messages in thread
From: Felipe Balbi @ 2009-07-24 18:27 UTC (permalink / raw)
To: ext Kanigeri, Hari
Cc: tony@atomide.com, Doyu Hiroshi (Nokia-D/Helsinki),
linux-omap@vger.kernel.org, Gupta, Ramesh, rmk@arm.linux.org.uk,
Pasam, Vijay
On Fri, Jul 24, 2009 at 07:22:32PM +0200, ext Kanigeri, Hari wrote:
> This patch adds omap4 support in iommu
> module. This creates OMAP4 platform specific file
> for iommu and defines the Ducati MMU fault interrupt.
>
> Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
> ---
> arch/arm/mach-omap2/omap4-iommu.c | 112 ++++++++++++++++++++++++++++++++
> arch/arm/plat-omap/include/mach/irqs.h | 2 +-
> 2 files changed, 113 insertions(+), 1 deletions(-)
> create mode 100644 arch/arm/mach-omap2/omap4-iommu.c
>
> diff --git a/arch/arm/mach-omap2/omap4-iommu.c b/arch/arm/mach-omap2/omap4-iommu.c
> new file mode 100644
> index 0000000..5a782df
> --- /dev/null
> +++ b/arch/arm/mach-omap2/omap4-iommu.c
> @@ -0,0 +1,112 @@
> +/*
> + * omap iommu: omap4 device registration
> + *
> + * Copyright (C) 2009-2010 Nokia Corporation
> + *
> + * Written by Hari Kanigeri <h-kanigeri2@ti.com>
> + *
> + * Added support for OMAP4. This is based on original file
> + * omap3-iommu.c
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + */
> +
> +#include <linux/platform_device.h>
> +
> +#include <mach/iommu.h>
> +#include <mach/irqs.h>
> +
> +#define OMAP4_MMU1_BASE 0x55082000
> +#define OMAP4_MMU2_BASE 0x4A066000
> +
> +#define OMAP4_MMU1_IRQ INT_44XX_DUCATI_MMU_IRQ
> +#define OMAP4_MMU2_IRQ INT_44XX_DSP_MMU
> +
> +
> +
> +static unsigned long iommu_base[] __initdata = {
> + OMAP4_MMU1_BASE,
> + OMAP4_MMU2_BASE,
> +};
> +
> +static int iommu_irq[] __initdata = {
> + OMAP4_MMU1_IRQ,
> + OMAP4_MMU2_IRQ,
> +};
these two looks really odd :-s
> +
> +static const struct iommu_platform_data omap4_iommu_pdata[] __initconst = {
> + {
> + .name = "ducati",
> + .nr_tlb_entries = 32,
> + .clk_name = "ducati_ick",
passing clk names should be avoided. use clkdev.
> + },
> +#if defined(CONFIG_MPU_TESLA_IOMMU)
this ifdef looks odd.
--
balbi
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu
2009-07-24 18:27 ` Felipe Balbi
@ 2009-07-24 18:47 ` Hiroshi DOYU
2009-07-24 20:08 ` Felipe Balbi
2009-07-26 18:16 ` Kanigeri, Hari
1 sibling, 1 reply; 12+ messages in thread
From: Hiroshi DOYU @ 2009-07-24 18:47 UTC (permalink / raw)
To: felipe.balbi; +Cc: h-kanigeri2, tony, linux-omap, grgupta, rmk, vpasam
Hi Felipe,
From: "Balbi Felipe (Nokia-D/Helsinki)" <felipe.balbi@nokia.com>
Subject: Re: [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu
Date: Fri, 24 Jul 2009 20:27:02 +0200
> On Fri, Jul 24, 2009 at 07:22:32PM +0200, ext Kanigeri, Hari wrote:
> > This patch adds omap4 support in iommu
> > module. This creates OMAP4 platform specific file
> > for iommu and defines the Ducati MMU fault interrupt.
> >
> > Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
> > ---
> > arch/arm/mach-omap2/omap4-iommu.c | 112 ++++++++++++++++++++++++++++++++
> > arch/arm/plat-omap/include/mach/irqs.h | 2 +-
> > 2 files changed, 113 insertions(+), 1 deletions(-)
> > create mode 100644 arch/arm/mach-omap2/omap4-iommu.c
> >
> > diff --git a/arch/arm/mach-omap2/omap4-iommu.c b/arch/arm/mach-omap2/omap4-iommu.c
> > new file mode 100644
> > index 0000000..5a782df
> > --- /dev/null
> > +++ b/arch/arm/mach-omap2/omap4-iommu.c
> > @@ -0,0 +1,112 @@
> > +/*
> > + * omap iommu: omap4 device registration
> > + *
> > + * Copyright (C) 2009-2010 Nokia Corporation
> > + *
> > + * Written by Hari Kanigeri <h-kanigeri2@ti.com>
> > + *
> > + * Added support for OMAP4. This is based on original file
> > + * omap3-iommu.c
> > + *
> > + * This program is free software; you can redistribute it and/or modify
> > + * it under the terms of the GNU General Public License version 2 as
> > + * published by the Free Software Foundation.
> > + */
> > +
> > +#include <linux/platform_device.h>
> > +
> > +#include <mach/iommu.h>
> > +#include <mach/irqs.h>
> > +
> > +#define OMAP4_MMU1_BASE 0x55082000
> > +#define OMAP4_MMU2_BASE 0x4A066000
> > +
> > +#define OMAP4_MMU1_IRQ INT_44XX_DUCATI_MMU_IRQ
> > +#define OMAP4_MMU2_IRQ INT_44XX_DSP_MMU
> > +
> > +
> > +
> > +static unsigned long iommu_base[] __initdata = {
> > + OMAP4_MMU1_BASE,
> > + OMAP4_MMU2_BASE,
> > +};
> > +
> > +static int iommu_irq[] __initdata = {
> > + OMAP4_MMU1_IRQ,
> > + OMAP4_MMU2_IRQ,
> > +};
>
> these two looks really odd :-s
I think that the above just follows Russeell's proposal as below:
http://lists.arm.linux.org.uk/lurker/message/20090516.092036.df9420d1.en.html
>
> > +
> > +static const struct iommu_platform_data omap4_iommu_pdata[] __initconst = {
> > + {
> > + .name = "ducati",
> > + .nr_tlb_entries = 32,
> > + .clk_name = "ducati_ick",
>
> passing clk names should be avoided. use clkdev.
>
> > + },
> > +#if defined(CONFIG_MPU_TESLA_IOMMU)
>
> this ifdef looks odd.
>
> --
> balbi
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu
2009-07-24 18:47 ` Hiroshi DOYU
@ 2009-07-24 20:08 ` Felipe Balbi
0 siblings, 0 replies; 12+ messages in thread
From: Felipe Balbi @ 2009-07-24 20:08 UTC (permalink / raw)
To: Doyu Hiroshi (Nokia-D/Helsinki)
Cc: Balbi Felipe (Nokia-D/Helsinki), h-kanigeri2@ti.com,
tony@atomide.com, linux-omap@vger.kernel.org, grgupta@ti.com,
rmk@arm.linux.org.uk, vpasam@ti.com
hi,
On Fri, Jul 24, 2009 at 08:47:57PM +0200, Doyu Hiroshi (Nokia-D/Helsinki) wrote:
> > > +static unsigned long iommu_base[] __initdata = {
> > > + OMAP4_MMU1_BASE,
> > > + OMAP4_MMU2_BASE,
> > > +};
> > > +
> > > +static int iommu_irq[] __initdata = {
> > > + OMAP4_MMU1_IRQ,
> > > + OMAP4_MMU2_IRQ,
> > > +};
> >
> > these two looks really odd :-s
>
> I think that the above just follows Russeell's proposal as below:
>
> http://lists.arm.linux.org.uk/lurker/message/20090516.092036.df9420d1.en.html
I see... still looks odd though.
--
balbi
^ permalink raw reply [flat|nested] 12+ messages in thread
* RE: [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu
2009-07-24 17:22 [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu Kanigeri, Hari
2009-07-24 18:21 ` Hiroshi DOYU
2009-07-24 18:27 ` Felipe Balbi
@ 2009-07-25 9:02 ` Shilimkar, Santosh
2009-07-25 23:17 ` Kanigeri, Hari
2 siblings, 1 reply; 12+ messages in thread
From: Shilimkar, Santosh @ 2009-07-25 9:02 UTC (permalink / raw)
To: Kanigeri, Hari, tony@atomide.com, Hiroshi DOYU
Cc: linux-omap@vger.kernel.org, Gupta, Ramesh, rmk@arm.linux.org.uk,
Pasam, Vijay
> -----Original Message-----
> From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
> owner@vger.kernel.org] On Behalf Of Kanigeri, Hari
> Sent: Friday, July 24, 2009 10:53 PM
> To: tony@atomide.com; Hiroshi DOYU
> Cc: linux-omap@vger.kernel.org; Gupta, Ramesh; rmk@arm.linux.org.uk; Pasam,
> Vijay
> Subject: [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu
>
> This patch adds omap4 support in iommu
> module. This creates OMAP4 platform specific file
> for iommu and defines the Ducati MMU fault interrupt.
>
> Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
> ---
> arch/arm/mach-omap2/omap4-iommu.c | 112
> ++++++++++++++++++++++++++++++++
> arch/arm/plat-omap/include/mach/irqs.h | 2 +-
> 2 files changed, 113 insertions(+), 1 deletions(-)
> create mode 100644 arch/arm/mach-omap2/omap4-iommu.c
>
> diff --git a/arch/arm/mach-omap2/omap4-iommu.c b/arch/arm/mach-
> omap2/omap4-iommu.c
> new file mode 100644
> index 0000000..5a782df
> --- /dev/null
> +++ b/arch/arm/mach-omap2/omap4-iommu.c
> @@ -0,0 +1,112 @@
> +/*
> + * omap iommu: omap4 device registration
> + *
> + * Copyright (C) 2009-2010 Nokia Corporation
Hari,
We are still in 2009 :)
Regards,
Santosh
^ permalink raw reply [flat|nested] 12+ messages in thread
* RE: [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu
2009-07-25 9:02 ` Shilimkar, Santosh
@ 2009-07-25 23:17 ` Kanigeri, Hari
0 siblings, 0 replies; 12+ messages in thread
From: Kanigeri, Hari @ 2009-07-25 23:17 UTC (permalink / raw)
To: Shilimkar, Santosh, tony@atomide.com, Hiroshi DOYU
Cc: linux-omap@vger.kernel.org, Gupta, Ramesh, linux@arm.linux.org.uk,
Pasam, Vijay
Santosh,
> > + * omap iommu: omap4 device registration
> > + *
> > + * Copyright (C) 2009-2010 Nokia Corporation
> Hari,
> We are still in 2009 :)
-- I wasn't sure how this works, so as we are already well past the mid-year, I placed the copyright year covering current year and next year :).
Thank you,
Best regards,
Hari
> -----Original Message-----
> From: Shilimkar, Santosh
> Sent: Saturday, July 25, 2009 4:02 AM
> To: Kanigeri, Hari; tony@atomide.com; Hiroshi DOYU
> Cc: linux-omap@vger.kernel.org; Gupta, Ramesh; rmk@arm.linux.org.uk;
> Pasam, Vijay
> Subject: RE: [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu
>
>
> > -----Original Message-----
> > From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
> > owner@vger.kernel.org] On Behalf Of Kanigeri, Hari
> > Sent: Friday, July 24, 2009 10:53 PM
> > To: tony@atomide.com; Hiroshi DOYU
> > Cc: linux-omap@vger.kernel.org; Gupta, Ramesh; rmk@arm.linux.org.uk;
> Pasam,
> > Vijay
> > Subject: [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu
> >
> > This patch adds omap4 support in iommu
> > module. This creates OMAP4 platform specific file
> > for iommu and defines the Ducati MMU fault interrupt.
> >
> > Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
> > ---
> > arch/arm/mach-omap2/omap4-iommu.c | 112
> > ++++++++++++++++++++++++++++++++
> > arch/arm/plat-omap/include/mach/irqs.h | 2 +-
> > 2 files changed, 113 insertions(+), 1 deletions(-)
> > create mode 100644 arch/arm/mach-omap2/omap4-iommu.c
> >
> > diff --git a/arch/arm/mach-omap2/omap4-iommu.c b/arch/arm/mach-
> > omap2/omap4-iommu.c
> > new file mode 100644
> > index 0000000..5a782df
> > --- /dev/null
> > +++ b/arch/arm/mach-omap2/omap4-iommu.c
> > @@ -0,0 +1,112 @@
> > +/*
> > + * omap iommu: omap4 device registration
> > + *
> > + * Copyright (C) 2009-2010 Nokia Corporation
> Hari,
> We are still in 2009 :)
> Regards,
> Santosh
^ permalink raw reply [flat|nested] 12+ messages in thread
* RE: [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu
2009-07-24 18:27 ` Felipe Balbi
2009-07-24 18:47 ` Hiroshi DOYU
@ 2009-07-26 18:16 ` Kanigeri, Hari
1 sibling, 0 replies; 12+ messages in thread
From: Kanigeri, Hari @ 2009-07-26 18:16 UTC (permalink / raw)
To: felipe.balbi@nokia.com
Cc: tony@atomide.com, Doyu Hiroshi (Nokia-D/Helsinki),
linux-omap@vger.kernel.org, Gupta, Ramesh, linux@arm.linux.org.uk,
Pasam, Vijay
Felipe,
> > +
> > +static const struct iommu_platform_data omap4_iommu_pdata[] __initconst
> = {
> > + {
> > + .name = "ducati",
> > + .nr_tlb_entries = 32,
> > + .clk_name = "ducati_ick",
>
> passing clk names should be avoided. use clkdev.
>
-- Thanks for your comment. I will include this change in my revised patch.
Thank you,
Best regards,
Hari
> -----Original Message-----
> From: Felipe Balbi [mailto:felipe.balbi@nokia.com]
> Sent: Friday, July 24, 2009 1:27 PM
> To: Kanigeri, Hari
> Cc: tony@atomide.com; Doyu Hiroshi (Nokia-D/Helsinki); linux-
> omap@vger.kernel.org; Gupta, Ramesh; rmk@arm.linux.org.uk; Pasam, Vijay
> Subject: Re: [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu
>
> On Fri, Jul 24, 2009 at 07:22:32PM +0200, ext Kanigeri, Hari wrote:
> > This patch adds omap4 support in iommu
> > module. This creates OMAP4 platform specific file
> > for iommu and defines the Ducati MMU fault interrupt.
> >
> > Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
> > ---
> > arch/arm/mach-omap2/omap4-iommu.c | 112
> ++++++++++++++++++++++++++++++++
> > arch/arm/plat-omap/include/mach/irqs.h | 2 +-
> > 2 files changed, 113 insertions(+), 1 deletions(-)
> > create mode 100644 arch/arm/mach-omap2/omap4-iommu.c
> >
> > diff --git a/arch/arm/mach-omap2/omap4-iommu.c b/arch/arm/mach-
> omap2/omap4-iommu.c
> > new file mode 100644
> > index 0000000..5a782df
> > --- /dev/null
> > +++ b/arch/arm/mach-omap2/omap4-iommu.c
> > @@ -0,0 +1,112 @@
> > +/*
> > + * omap iommu: omap4 device registration
> > + *
> > + * Copyright (C) 2009-2010 Nokia Corporation
> > + *
> > + * Written by Hari Kanigeri <h-kanigeri2@ti.com>
> > + *
> > + * Added support for OMAP4. This is based on original file
> > + * omap3-iommu.c
> > + *
> > + * This program is free software; you can redistribute it and/or modify
> > + * it under the terms of the GNU General Public License version 2 as
> > + * published by the Free Software Foundation.
> > + */
> > +
> > +#include <linux/platform_device.h>
> > +
> > +#include <mach/iommu.h>
> > +#include <mach/irqs.h>
> > +
> > +#define OMAP4_MMU1_BASE 0x55082000
> > +#define OMAP4_MMU2_BASE 0x4A066000
> > +
> > +#define OMAP4_MMU1_IRQ INT_44XX_DUCATI_MMU_IRQ
> > +#define OMAP4_MMU2_IRQ INT_44XX_DSP_MMU
> > +
> > +
> > +
> > +static unsigned long iommu_base[] __initdata = {
> > + OMAP4_MMU1_BASE,
> > + OMAP4_MMU2_BASE,
> > +};
> > +
> > +static int iommu_irq[] __initdata = {
> > + OMAP4_MMU1_IRQ,
> > + OMAP4_MMU2_IRQ,
> > +};
>
> these two looks really odd :-s
>
> > +
> > +static const struct iommu_platform_data omap4_iommu_pdata[] __initconst
> = {
> > + {
> > + .name = "ducati",
> > + .nr_tlb_entries = 32,
> > + .clk_name = "ducati_ick",
>
> passing clk names should be avoided. use clkdev.
>
> > + },
> > +#if defined(CONFIG_MPU_TESLA_IOMMU)
>
> this ifdef looks odd.
>
> --
> balbi
^ permalink raw reply [flat|nested] 12+ messages in thread
* RE: [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu
2009-07-24 18:21 ` Hiroshi DOYU
@ 2009-07-27 0:18 ` Kanigeri, Hari
2009-07-27 6:47 ` Hiroshi DOYU
0 siblings, 1 reply; 12+ messages in thread
From: Kanigeri, Hari @ 2009-07-27 0:18 UTC (permalink / raw)
To: Hiroshi DOYU
Cc: tony@atomide.com, linux-omap@vger.kernel.org, Gupta, Ramesh,
rmk@arm.linux.org.uk, Pasam, Vijay
Hi Hiroshi,
> > +static const struct iommu_platform_data omap4_iommu_pdata[] __initconst
> = {
> > + {
> > + .name = "ducati",
> > + .nr_tlb_entries = 32,
> > + .clk_name = "ducati_ick",
> > + },
> > +#if defined(CONFIG_MPU_TESLA_IOMMU)
> > + {
> > + .name = "tesla",
> > + .nr_tlb_entries = 32,
> > + .clk_name = "tesla_ick",
> > + },
> > +#endif
> > +};
>
> If iommu is used as a character device driver, is the above config still
> necessary?
-- My apologies, I am not sure what you mean by this. Can you please elaborate a bit more.
Thank you,
Best regards,
Hari
> -----Original Message-----
> From: Hiroshi DOYU [mailto:Hiroshi.DOYU@nokia.com]
> Sent: Friday, July 24, 2009 1:22 PM
> To: Kanigeri, Hari
> Cc: tony@atomide.com; linux-omap@vger.kernel.org; Gupta, Ramesh;
> rmk@arm.linux.org.uk; Pasam, Vijay
> Subject: Re: [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu
>
> From: "ext Kanigeri, Hari" <h-kanigeri2@ti.com>
> Subject: [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu
> Date: Fri, 24 Jul 2009 19:22:32 +0200
>
> > This patch adds omap4 support in iommu
> > module. This creates OMAP4 platform specific file
> > for iommu and defines the Ducati MMU fault interrupt.
> >
> > Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
> > ---
> > arch/arm/mach-omap2/omap4-iommu.c | 112
> ++++++++++++++++++++++++++++++++
> > arch/arm/plat-omap/include/mach/irqs.h | 2 +-
> > 2 files changed, 113 insertions(+), 1 deletions(-)
> > create mode 100644 arch/arm/mach-omap2/omap4-iommu.c
> >
> > diff --git a/arch/arm/mach-omap2/omap4-iommu.c b/arch/arm/mach-
> omap2/omap4-iommu.c
> > new file mode 100644
> > index 0000000..5a782df
> > --- /dev/null
> > +++ b/arch/arm/mach-omap2/omap4-iommu.c
> > @@ -0,0 +1,112 @@
> > +/*
> > + * omap iommu: omap4 device registration
> > + *
> > + * Copyright (C) 2009-2010 Nokia Corporation
> > + *
> > + * Written by Hari Kanigeri <h-kanigeri2@ti.com>
> > + *
> > + * Added support for OMAP4. This is based on original file
> > + * omap3-iommu.c
> > + *
> > + * This program is free software; you can redistribute it and/or modify
> > + * it under the terms of the GNU General Public License version 2 as
> > + * published by the Free Software Foundation.
> > + */
> > +
> > +#include <linux/platform_device.h>
> > +
> > +#include <mach/iommu.h>
> > +#include <mach/irqs.h>
> > +
> > +#define OMAP4_MMU1_BASE 0x55082000
> > +#define OMAP4_MMU2_BASE 0x4A066000
> > +
> > +#define OMAP4_MMU1_IRQ INT_44XX_DUCATI_MMU_IRQ
> > +#define OMAP4_MMU2_IRQ INT_44XX_DSP_MMU
> > +
> > +
> > +
> > +static unsigned long iommu_base[] __initdata = {
> > + OMAP4_MMU1_BASE,
> > + OMAP4_MMU2_BASE,
> > +};
> > +
> > +static int iommu_irq[] __initdata = {
> > + OMAP4_MMU1_IRQ,
> > + OMAP4_MMU2_IRQ,
> > +};
> > +
> > +static const struct iommu_platform_data omap4_iommu_pdata[] __initconst
> = {
> > + {
> > + .name = "ducati",
> > + .nr_tlb_entries = 32,
> > + .clk_name = "ducati_ick",
> > + },
> > +#if defined(CONFIG_MPU_TESLA_IOMMU)
> > + {
> > + .name = "tesla",
> > + .nr_tlb_entries = 32,
> > + .clk_name = "tesla_ick",
> > + },
> > +#endif
> > +};
>
> If iommu is used as a character device driver, is the above config still
> necessary?
>
> > +#define NR_IOMMU_DEVICES ARRAY_SIZE(omap4_iommu_pdata)
> > +
> > +static struct platform_device *omap4_iommu_pdev[NR_IOMMU_DEVICES];
> > +
> > +static int __init omap4_iommu_init(void)
> > +{
> > + int i, err;
> > +
> > + for (i = 0; i < NR_IOMMU_DEVICES; i++) {
> > + struct platform_device *pdev;
> > + struct resource res[2];
> > +
> > + pdev = platform_device_alloc("omap-iommu", i);
> > + if (!pdev) {
> > + err = -ENOMEM;
> > + goto err_out;
> > + }
> > +
> > + memset(res, 0, sizeof(res));
> > + res[0].start = iommu_base[i];
> > + res[0].end = iommu_base[i] + MMU_REG_SIZE - 1;
> > + res[0].flags = IORESOURCE_MEM;
> > + res[1].start = res[1].end = iommu_irq[i];
> > + res[1].flags = IORESOURCE_IRQ;
> > +
> > + err = platform_device_add_resources(pdev, res,
> > + ARRAY_SIZE(res));
> > + if (err)
> > + goto err_out;
> > + err = platform_device_add_data(pdev, &omap4_iommu_pdata[i],
> > + sizeof(omap4_iommu_pdata[0]));
> > + if (err)
> > + goto err_out;
> > + err = platform_device_add(pdev);
> > + if (err)
> > + goto err_out;
> > + omap4_iommu_pdev[i] = pdev;
> > + }
> > + return 0;
> > +
> > +err_out:
> > + while (i--)
> > + platform_device_put(omap4_iommu_pdev[i]);
> > + return err;
> > +}
> > +module_init(omap4_iommu_init);
> > +
> > +static void __exit omap4_iommu_exit(void)
> > +{
> > + int i;
> > +
> > + for (i = 0; i < NR_IOMMU_DEVICES; i++)
> > + platform_device_unregister(omap4_iommu_pdev[i]);
> > +}
> > +module_exit(omap4_iommu_exit);
> > +
> > +MODULE_AUTHOR("Hiroshi DOYU, Hari Kanigeri");
> > +MODULE_DESCRIPTION("omap iommu: omap4 device registration");
> > +MODULE_LICENSE("GPL v2");
> > +
> > diff --git a/arch/arm/plat-omap/include/mach/irqs.h b/arch/arm/plat-
> omap/include/mach/irqs.h
> > index fb7cb77..34b6d09 100644
> > --- a/arch/arm/plat-omap/include/mach/irqs.h
> > +++ b/arch/arm/plat-omap/include/mach/irqs.h
> > @@ -511,7 +511,7 @@
> > #define INT_44XX_TLL_IRQ (78 + IRQ_GIC_START)
> > #define INT_44XX_PARTHASH_IRQ (79 + IRQ_GIC_START)
> > #define INT_44XX_MMC3_IRQ (94 + IRQ_GIC_START)
> > -
> > +#define INT_44XX_DUCATI_MMU_IRQ (100 + IRQ_GIC_START)
> >
> > /* Max. 128 level 2 IRQs (OMAP1610), 192 GPIOs (OMAP730/850) and
> > * 16 MPUIO lines */
> > --
> > 1.5.4.3
> >
> >
> > Thank you,
> > Best regards,
> > Hari
> >
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu
2009-07-27 0:18 ` Kanigeri, Hari
@ 2009-07-27 6:47 ` Hiroshi DOYU
2009-07-28 15:42 ` Kanigeri, Hari
0 siblings, 1 reply; 12+ messages in thread
From: Hiroshi DOYU @ 2009-07-27 6:47 UTC (permalink / raw)
To: h-kanigeri2; +Cc: tony, linux-omap, grgupta, rmk, vpasam
From: "ext Kanigeri, Hari" <h-kanigeri2@ti.com>
Subject: RE: [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu
Date: Mon, 27 Jul 2009 02:18:21 +0200
> Hi Hiroshi,
>
> > > +static const struct iommu_platform_data omap4_iommu_pdata[] __initconst
> > = {
> > > + {
> > > + .name = "ducati",
> > > + .nr_tlb_entries = 32,
> > > + .clk_name = "ducati_ick",
> > > + },
> > > +#if defined(CONFIG_MPU_TESLA_IOMMU)
> > > + {
> > > + .name = "tesla",
> > > + .nr_tlb_entries = 32,
> > > + .clk_name = "tesla_ick",
> > > + },
> > > +#endif
> > > +};
> >
> > If iommu is used as a character device driver, is the above config still
> > necessary?
>
> -- My apologies, I am not sure what you mean by this. Can you please elaborate a bit more.
Well...I'm trying to explain;),
This "omap iommu" driver is used in OMAP4 IPC and its interface is a
character device node. IOW, the client of this device will be an
userland process and kernel won't know if it uses or not, but kernel
just provides "/dev/iommu?" for userland. So I don't think that we
have to care about the dependency of the existance of clients, at
least, for a moment.
>
> Thank you,
> Best regards,
> Hari
>
> > -----Original Message-----
> > From: Hiroshi DOYU [mailto:Hiroshi.DOYU@nokia.com]
> > Sent: Friday, July 24, 2009 1:22 PM
> > To: Kanigeri, Hari
> > Cc: tony@atomide.com; linux-omap@vger.kernel.org; Gupta, Ramesh;
> > rmk@arm.linux.org.uk; Pasam, Vijay
> > Subject: Re: [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu
> >
> > From: "ext Kanigeri, Hari" <h-kanigeri2@ti.com>
> > Subject: [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu
> > Date: Fri, 24 Jul 2009 19:22:32 +0200
> >
> > > This patch adds omap4 support in iommu
> > > module. This creates OMAP4 platform specific file
> > > for iommu and defines the Ducati MMU fault interrupt.
> > >
> > > Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
> > > ---
> > > arch/arm/mach-omap2/omap4-iommu.c | 112
> > ++++++++++++++++++++++++++++++++
> > > arch/arm/plat-omap/include/mach/irqs.h | 2 +-
> > > 2 files changed, 113 insertions(+), 1 deletions(-)
> > > create mode 100644 arch/arm/mach-omap2/omap4-iommu.c
> > >
> > > diff --git a/arch/arm/mach-omap2/omap4-iommu.c b/arch/arm/mach-
> > omap2/omap4-iommu.c
> > > new file mode 100644
> > > index 0000000..5a782df
> > > --- /dev/null
> > > +++ b/arch/arm/mach-omap2/omap4-iommu.c
> > > @@ -0,0 +1,112 @@
> > > +/*
> > > + * omap iommu: omap4 device registration
> > > + *
> > > + * Copyright (C) 2009-2010 Nokia Corporation
> > > + *
> > > + * Written by Hari Kanigeri <h-kanigeri2@ti.com>
> > > + *
> > > + * Added support for OMAP4. This is based on original file
> > > + * omap3-iommu.c
> > > + *
> > > + * This program is free software; you can redistribute it and/or modify
> > > + * it under the terms of the GNU General Public License version 2 as
> > > + * published by the Free Software Foundation.
> > > + */
> > > +
> > > +#include <linux/platform_device.h>
> > > +
> > > +#include <mach/iommu.h>
> > > +#include <mach/irqs.h>
> > > +
> > > +#define OMAP4_MMU1_BASE 0x55082000
> > > +#define OMAP4_MMU2_BASE 0x4A066000
> > > +
> > > +#define OMAP4_MMU1_IRQ INT_44XX_DUCATI_MMU_IRQ
> > > +#define OMAP4_MMU2_IRQ INT_44XX_DSP_MMU
> > > +
> > > +
> > > +
> > > +static unsigned long iommu_base[] __initdata = {
> > > + OMAP4_MMU1_BASE,
> > > + OMAP4_MMU2_BASE,
> > > +};
> > > +
> > > +static int iommu_irq[] __initdata = {
> > > + OMAP4_MMU1_IRQ,
> > > + OMAP4_MMU2_IRQ,
> > > +};
> > > +
> > > +static const struct iommu_platform_data omap4_iommu_pdata[] __initconst
> > = {
> > > + {
> > > + .name = "ducati",
> > > + .nr_tlb_entries = 32,
> > > + .clk_name = "ducati_ick",
> > > + },
> > > +#if defined(CONFIG_MPU_TESLA_IOMMU)
> > > + {
> > > + .name = "tesla",
> > > + .nr_tlb_entries = 32,
> > > + .clk_name = "tesla_ick",
> > > + },
> > > +#endif
> > > +};
> >
> > If iommu is used as a character device driver, is the above config still
> > necessary?
> >
> > > +#define NR_IOMMU_DEVICES ARRAY_SIZE(omap4_iommu_pdata)
> > > +
> > > +static struct platform_device *omap4_iommu_pdev[NR_IOMMU_DEVICES];
> > > +
> > > +static int __init omap4_iommu_init(void)
> > > +{
> > > + int i, err;
> > > +
> > > + for (i = 0; i < NR_IOMMU_DEVICES; i++) {
> > > + struct platform_device *pdev;
> > > + struct resource res[2];
> > > +
> > > + pdev = platform_device_alloc("omap-iommu", i);
> > > + if (!pdev) {
> > > + err = -ENOMEM;
> > > + goto err_out;
> > > + }
> > > +
> > > + memset(res, 0, sizeof(res));
> > > + res[0].start = iommu_base[i];
> > > + res[0].end = iommu_base[i] + MMU_REG_SIZE - 1;
> > > + res[0].flags = IORESOURCE_MEM;
> > > + res[1].start = res[1].end = iommu_irq[i];
> > > + res[1].flags = IORESOURCE_IRQ;
> > > +
> > > + err = platform_device_add_resources(pdev, res,
> > > + ARRAY_SIZE(res));
> > > + if (err)
> > > + goto err_out;
> > > + err = platform_device_add_data(pdev, &omap4_iommu_pdata[i],
> > > + sizeof(omap4_iommu_pdata[0]));
> > > + if (err)
> > > + goto err_out;
> > > + err = platform_device_add(pdev);
> > > + if (err)
> > > + goto err_out;
> > > + omap4_iommu_pdev[i] = pdev;
> > > + }
> > > + return 0;
> > > +
> > > +err_out:
> > > + while (i--)
> > > + platform_device_put(omap4_iommu_pdev[i]);
> > > + return err;
> > > +}
> > > +module_init(omap4_iommu_init);
> > > +
> > > +static void __exit omap4_iommu_exit(void)
> > > +{
> > > + int i;
> > > +
> > > + for (i = 0; i < NR_IOMMU_DEVICES; i++)
> > > + platform_device_unregister(omap4_iommu_pdev[i]);
> > > +}
> > > +module_exit(omap4_iommu_exit);
> > > +
> > > +MODULE_AUTHOR("Hiroshi DOYU, Hari Kanigeri");
> > > +MODULE_DESCRIPTION("omap iommu: omap4 device registration");
> > > +MODULE_LICENSE("GPL v2");
> > > +
> > > diff --git a/arch/arm/plat-omap/include/mach/irqs.h b/arch/arm/plat-
> > omap/include/mach/irqs.h
> > > index fb7cb77..34b6d09 100644
> > > --- a/arch/arm/plat-omap/include/mach/irqs.h
> > > +++ b/arch/arm/plat-omap/include/mach/irqs.h
> > > @@ -511,7 +511,7 @@
> > > #define INT_44XX_TLL_IRQ (78 + IRQ_GIC_START)
> > > #define INT_44XX_PARTHASH_IRQ (79 + IRQ_GIC_START)
> > > #define INT_44XX_MMC3_IRQ (94 + IRQ_GIC_START)
> > > -
> > > +#define INT_44XX_DUCATI_MMU_IRQ (100 + IRQ_GIC_START)
> > >
> > > /* Max. 128 level 2 IRQs (OMAP1610), 192 GPIOs (OMAP730/850) and
> > > * 16 MPUIO lines */
> > > --
> > > 1.5.4.3
> > >
> > >
> > > Thank you,
> > > Best regards,
> > > Hari
> > >
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* RE: [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu
2009-07-27 6:47 ` Hiroshi DOYU
@ 2009-07-28 15:42 ` Kanigeri, Hari
2009-07-29 6:36 ` Hiroshi DOYU
0 siblings, 1 reply; 12+ messages in thread
From: Kanigeri, Hari @ 2009-07-28 15:42 UTC (permalink / raw)
To: Hiroshi DOYU
Cc: tony@atomide.com, linux-omap@vger.kernel.org, Gupta, Ramesh,
linux@arm.linux.org.uk, Pasam, Vijay
Hi Hiroshi,
>
> This "omap iommu" driver is used in OMAP4 IPC and its interface is a
> character device node. IOW, the client of this device will be an
> userland process and kernel won't know if it uses or not, but kernel
> just provides "/dev/iommu?" for userland. So I don't think that we
> have to care about the dependency of the existance of clients, at
> least, for a moment.
>
> >
The first patch set that I sent is to provide support in IOMMU for OMAP4 just like how it is done in OMAP3 today. The define "CONFIG_MPU_TESLA_IOMMU" is used for now because in the first phase we are planning to use DSP-Bridge to communicate with Tesla (until we move the new user-land IPC to replace DSP-Bridge for OMAP4).
IMHO, let's go ahead with these changes and any changes to support IOMMU from user-land we can address them in next set of patches.
Thank you,
Best regards,
Hari
> -----Original Message-----
> From: Hiroshi DOYU [mailto:Hiroshi.DOYU@nokia.com]
> Sent: Monday, July 27, 2009 1:48 AM
> To: Kanigeri, Hari
> Cc: tony@atomide.com; linux-omap@vger.kernel.org; Gupta, Ramesh;
> rmk@arm.linux.org.uk; Pasam, Vijay
> Subject: Re: [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu
>
> From: "ext Kanigeri, Hari" <h-kanigeri2@ti.com>
> Subject: RE: [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu
> Date: Mon, 27 Jul 2009 02:18:21 +0200
>
> > Hi Hiroshi,
> >
> > > > +static const struct iommu_platform_data omap4_iommu_pdata[]
> __initconst
> > > = {
> > > > + {
> > > > + .name = "ducati",
> > > > + .nr_tlb_entries = 32,
> > > > + .clk_name = "ducati_ick",
> > > > + },
> > > > +#if defined(CONFIG_MPU_TESLA_IOMMU)
> > > > + {
> > > > + .name = "tesla",
> > > > + .nr_tlb_entries = 32,
> > > > + .clk_name = "tesla_ick",
> > > > + },
> > > > +#endif
> > > > +};
> > >
> > > If iommu is used as a character device driver, is the above config
> still
> > > necessary?
> >
> > -- My apologies, I am not sure what you mean by this. Can you please
> elaborate a bit more.
>
> Well...I'm trying to explain;),
>
> This "omap iommu" driver is used in OMAP4 IPC and its interface is a
> character device node. IOW, the client of this device will be an
> userland process and kernel won't know if it uses or not, but kernel
> just provides "/dev/iommu?" for userland. So I don't think that we
> have to care about the dependency of the existance of clients, at
> least, for a moment.
>
> >
> > Thank you,
> > Best regards,
> > Hari
> >
> > > -----Original Message-----
> > > From: Hiroshi DOYU [mailto:Hiroshi.DOYU@nokia.com]
> > > Sent: Friday, July 24, 2009 1:22 PM
> > > To: Kanigeri, Hari
> > > Cc: tony@atomide.com; linux-omap@vger.kernel.org; Gupta, Ramesh;
> > > rmk@arm.linux.org.uk; Pasam, Vijay
> > > Subject: Re: [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in
> iommu
> > >
> > > From: "ext Kanigeri, Hari" <h-kanigeri2@ti.com>
> > > Subject: [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu
> > > Date: Fri, 24 Jul 2009 19:22:32 +0200
> > >
> > > > This patch adds omap4 support in iommu
> > > > module. This creates OMAP4 platform specific file
> > > > for iommu and defines the Ducati MMU fault interrupt.
> > > >
> > > > Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
> > > > ---
> > > > arch/arm/mach-omap2/omap4-iommu.c | 112
> > > ++++++++++++++++++++++++++++++++
> > > > arch/arm/plat-omap/include/mach/irqs.h | 2 +-
> > > > 2 files changed, 113 insertions(+), 1 deletions(-)
> > > > create mode 100644 arch/arm/mach-omap2/omap4-iommu.c
> > > >
> > > > diff --git a/arch/arm/mach-omap2/omap4-iommu.c b/arch/arm/mach-
> > > omap2/omap4-iommu.c
> > > > new file mode 100644
> > > > index 0000000..5a782df
> > > > --- /dev/null
> > > > +++ b/arch/arm/mach-omap2/omap4-iommu.c
> > > > @@ -0,0 +1,112 @@
> > > > +/*
> > > > + * omap iommu: omap4 device registration
> > > > + *
> > > > + * Copyright (C) 2009-2010 Nokia Corporation
> > > > + *
> > > > + * Written by Hari Kanigeri <h-kanigeri2@ti.com>
> > > > + *
> > > > + * Added support for OMAP4. This is based on original file
> > > > + * omap3-iommu.c
> > > > + *
> > > > + * This program is free software; you can redistribute it and/or
> modify
> > > > + * it under the terms of the GNU General Public License version 2
> as
> > > > + * published by the Free Software Foundation.
> > > > + */
> > > > +
> > > > +#include <linux/platform_device.h>
> > > > +
> > > > +#include <mach/iommu.h>
> > > > +#include <mach/irqs.h>
> > > > +
> > > > +#define OMAP4_MMU1_BASE 0x55082000
> > > > +#define OMAP4_MMU2_BASE 0x4A066000
> > > > +
> > > > +#define OMAP4_MMU1_IRQ INT_44XX_DUCATI_MMU_IRQ
> > > > +#define OMAP4_MMU2_IRQ INT_44XX_DSP_MMU
> > > > +
> > > > +
> > > > +
> > > > +static unsigned long iommu_base[] __initdata = {
> > > > + OMAP4_MMU1_BASE,
> > > > + OMAP4_MMU2_BASE,
> > > > +};
> > > > +
> > > > +static int iommu_irq[] __initdata = {
> > > > + OMAP4_MMU1_IRQ,
> > > > + OMAP4_MMU2_IRQ,
> > > > +};
> > > > +
> > > > +static const struct iommu_platform_data omap4_iommu_pdata[]
> __initconst
> > > = {
> > > > + {
> > > > + .name = "ducati",
> > > > + .nr_tlb_entries = 32,
> > > > + .clk_name = "ducati_ick",
> > > > + },
> > > > +#if defined(CONFIG_MPU_TESLA_IOMMU)
> > > > + {
> > > > + .name = "tesla",
> > > > + .nr_tlb_entries = 32,
> > > > + .clk_name = "tesla_ick",
> > > > + },
> > > > +#endif
> > > > +};
> > >
> > > If iommu is used as a character device driver, is the above config
> still
> > > necessary?
> > >
> > > > +#define NR_IOMMU_DEVICES ARRAY_SIZE(omap4_iommu_pdata)
> > > > +
> > > > +static struct platform_device *omap4_iommu_pdev[NR_IOMMU_DEVICES];
> > > > +
> > > > +static int __init omap4_iommu_init(void)
> > > > +{
> > > > + int i, err;
> > > > +
> > > > + for (i = 0; i < NR_IOMMU_DEVICES; i++) {
> > > > + struct platform_device *pdev;
> > > > + struct resource res[2];
> > > > +
> > > > + pdev = platform_device_alloc("omap-iommu", i);
> > > > + if (!pdev) {
> > > > + err = -ENOMEM;
> > > > + goto err_out;
> > > > + }
> > > > +
> > > > + memset(res, 0, sizeof(res));
> > > > + res[0].start = iommu_base[i];
> > > > + res[0].end = iommu_base[i] + MMU_REG_SIZE - 1;
> > > > + res[0].flags = IORESOURCE_MEM;
> > > > + res[1].start = res[1].end = iommu_irq[i];
> > > > + res[1].flags = IORESOURCE_IRQ;
> > > > +
> > > > + err = platform_device_add_resources(pdev, res,
> > > > + ARRAY_SIZE(res));
> > > > + if (err)
> > > > + goto err_out;
> > > > + err = platform_device_add_data(pdev,
> &omap4_iommu_pdata[i],
> > > > + sizeof(omap4_iommu_pdata[0]));
> > > > + if (err)
> > > > + goto err_out;
> > > > + err = platform_device_add(pdev);
> > > > + if (err)
> > > > + goto err_out;
> > > > + omap4_iommu_pdev[i] = pdev;
> > > > + }
> > > > + return 0;
> > > > +
> > > > +err_out:
> > > > + while (i--)
> > > > + platform_device_put(omap4_iommu_pdev[i]);
> > > > + return err;
> > > > +}
> > > > +module_init(omap4_iommu_init);
> > > > +
> > > > +static void __exit omap4_iommu_exit(void)
> > > > +{
> > > > + int i;
> > > > +
> > > > + for (i = 0; i < NR_IOMMU_DEVICES; i++)
> > > > + platform_device_unregister(omap4_iommu_pdev[i]);
> > > > +}
> > > > +module_exit(omap4_iommu_exit);
> > > > +
> > > > +MODULE_AUTHOR("Hiroshi DOYU, Hari Kanigeri");
> > > > +MODULE_DESCRIPTION("omap iommu: omap4 device registration");
> > > > +MODULE_LICENSE("GPL v2");
> > > > +
> > > > diff --git a/arch/arm/plat-omap/include/mach/irqs.h b/arch/arm/plat-
> > > omap/include/mach/irqs.h
> > > > index fb7cb77..34b6d09 100644
> > > > --- a/arch/arm/plat-omap/include/mach/irqs.h
> > > > +++ b/arch/arm/plat-omap/include/mach/irqs.h
> > > > @@ -511,7 +511,7 @@
> > > > #define INT_44XX_TLL_IRQ (78 + IRQ_GIC_START)
> > > > #define INT_44XX_PARTHASH_IRQ (79 + IRQ_GIC_START)
> > > > #define INT_44XX_MMC3_IRQ (94 + IRQ_GIC_START)
> > > > -
> > > > +#define INT_44XX_DUCATI_MMU_IRQ (100 + IRQ_GIC_START)
> > > >
> > > > /* Max. 128 level 2 IRQs (OMAP1610), 192 GPIOs (OMAP730/850) and
> > > > * 16 MPUIO lines */
> > > > --
> > > > 1.5.4.3
> > > >
> > > >
> > > > Thank you,
> > > > Best regards,
> > > > Hari
> > > >
> >
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu
2009-07-28 15:42 ` Kanigeri, Hari
@ 2009-07-29 6:36 ` Hiroshi DOYU
0 siblings, 0 replies; 12+ messages in thread
From: Hiroshi DOYU @ 2009-07-29 6:36 UTC (permalink / raw)
To: h-kanigeri2; +Cc: tony, linux-omap, grgupta, linux, vpasam
From: "ext Kanigeri, Hari" <h-kanigeri2@ti.com>
Subject: RE: [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu
Date: Tue, 28 Jul 2009 17:42:21 +0200
> Hi Hiroshi,
>
> >
> > This "omap iommu" driver is used in OMAP4 IPC and its interface is a
> > character device node. IOW, the client of this device will be an
> > userland process and kernel won't know if it uses or not, but kernel
> > just provides "/dev/iommu?" for userland. So I don't think that we
> > have to care about the dependency of the existance of clients, at
> > least, for a moment.
> >
> > >
> The first patch set that I sent is to provide support in IOMMU for OMAP4 just like how it is done in OMAP3 today. The define "CONFIG_MPU_TESLA_IOMMU" is used for now because in the first phase we are planning to use DSP-Bridge to communicate with Tesla (until we move the new user-land IPC to replace DSP-Bridge for OMAP4).
> IMHO, let's go ahead with these changes and any changes to support
> IOMMU from user-land we can address them in next set of patches.
Got it. Let's go for it;) I'll queue them up if you send the updated ones.
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2009-07-29 6:36 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-07-24 17:22 [RFC][PATCH 2/3] ARM:OMAP4 iommu:add omap4 support in iommu Kanigeri, Hari
2009-07-24 18:21 ` Hiroshi DOYU
2009-07-27 0:18 ` Kanigeri, Hari
2009-07-27 6:47 ` Hiroshi DOYU
2009-07-28 15:42 ` Kanigeri, Hari
2009-07-29 6:36 ` Hiroshi DOYU
2009-07-24 18:27 ` Felipe Balbi
2009-07-24 18:47 ` Hiroshi DOYU
2009-07-24 20:08 ` Felipe Balbi
2009-07-26 18:16 ` Kanigeri, Hari
2009-07-25 9:02 ` Shilimkar, Santosh
2009-07-25 23:17 ` Kanigeri, Hari
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.