Re: [PATCH] powerpc/fsl: 85xx: add cache-sram support

2010-10-13 Thread Kumar Gala

On Oct 12, 2010, at 12:19 PM, Hollis Blanchard wrote:

> On Tue, Oct 12, 2010 at 10:02 AM, Rai Harninder-B01044
>  wrote:
>> Currently the design is that we divide the sram portion into 2 equal
>> parts for AMP
>> That was the part of initial requirement
>> Do we want to remove that?
> 
> Why wouldn't you just pass different cache-sram-size/offset values to
> each kernel?

That was what I was suggesting, but probably wasn't clear :)

- k
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] powerpc/fsl: 85xx: add cache-sram support

2010-10-12 Thread Hollis Blanchard
On Tue, Oct 12, 2010 at 10:02 AM, Rai Harninder-B01044
 wrote:
> Currently the design is that we divide the sram portion into 2 equal
> parts for AMP
> That was the part of initial requirement
> Do we want to remove that?

Why wouldn't you just pass different cache-sram-size/offset values to
each kernel?

-Hollis
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


RE: [PATCH] powerpc/fsl: 85xx: add cache-sram support

2010-10-12 Thread Rai Harninder-B01044
Currently the design is that we divide the sram portion into 2 equal
parts for AMP
That was the part of initial requirement
Do we want to remove that?


Thanks and Regards
Harry++

> -Original Message-
> From: Kumar Gala [mailto:ga...@kernel.crashing.org]
> Sent: Tuesday, October 12, 2010 7:40 PM
> To: Rai Harninder-B01044
> Cc: linuxppc-dev@lists.ozlabs.org
> Subject: Re: [PATCH] powerpc/fsl: 85xx: add cache-sram support
> 
> 
> On Oct 12, 2010, at 5:25 AM, 
>  wrote:
> 
> >
> > +static int __devinit mpc85xx_l2ctlr_of_probe(struct platform_device
> *dev,
> > + const struct of_device_id
*match) {
> > +   long rval;
> > +   unsigned int rem;
> > +   unsigned char ways;
> > +   const unsigned int *prop;
> > +   unsigned int l2cache_size;
> > +   struct device_node *np;
> > +   int i = 0;
> > +   bool amp = 0;
> > +   struct sram_parameters sram_params;
> > +   static char *compatible_list[] = {
> > +   "fsl,MPC85XXRDB-CAMP",
> > +   "fsl,P2020DS-CAMP",
> > +   NULL
> > +   };
> > +
> 
> Remove this AMP stuff.  We specify the cache-sram-size & cache-sram-
> offset so for the AMP kernels these can be set as needed.
> 
> - k

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] powerpc/fsl: 85xx: add cache-sram support

2010-10-12 Thread Kumar Gala

On Oct 12, 2010, at 5:25 AM,  
 wrote:

> 
> +static int __devinit mpc85xx_l2ctlr_of_probe(struct platform_device *dev,
> +   const struct of_device_id *match)
> +{
> + long rval;
> + unsigned int rem;
> + unsigned char ways;
> + const unsigned int *prop;
> + unsigned int l2cache_size;
> + struct device_node *np;
> + int i = 0;
> + bool amp = 0;
> + struct sram_parameters sram_params;
> + static char *compatible_list[] = {
> + "fsl,MPC85XXRDB-CAMP",
> + "fsl,P2020DS-CAMP",
> + NULL
> + };
> +

Remove this AMP stuff.  We specify the cache-sram-size & cache-sram-offset so 
for the AMP kernels these can be set as needed.

- k
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


[PATCH] powerpc/fsl: 85xx: add cache-sram support

2010-10-12 Thread harninder.rai
From: Harninder Rai 

It adds cache-sram support in P1/P2 QorIQ platforms as under:

 * A small abstraction over powerpc's remote heap allocator
 * Exports mpc85xx_cache_sram_alloc()/free() APIs
 * Supports only one contiguous SRAM window
 * Drivers can do the following in Kconfig to use these APIs
"select FSL_85XX_CACHE_SRAM if MPC85xx"
 * Required SRAM size and the offset where SRAM should be mapped must be
   provided at kernel command line as
 cache-sram-size=
 cache-sram-offset=

Signed-off-by: Harninder Rai 
---
 arch/powerpc/include/asm/fsl_85xx_cache_sram.h |   48 +
 arch/powerpc/sysdev/Makefile   |1 +
 arch/powerpc/sysdev/fsl_85xx_cache_ctlr.h  |  101 ++
 arch/powerpc/sysdev/fsl_85xx_cache_sram.c  |  155 +++
 arch/powerpc/sysdev/fsl_85xx_l2ctlr.c  |  247 
 5 files changed, 552 insertions(+), 0 deletions(-)
 create mode 100644 arch/powerpc/include/asm/fsl_85xx_cache_sram.h
 create mode 100644 arch/powerpc/sysdev/fsl_85xx_cache_ctlr.h
 create mode 100644 arch/powerpc/sysdev/fsl_85xx_cache_sram.c
 create mode 100644 arch/powerpc/sysdev/fsl_85xx_l2ctlr.c

diff --git a/arch/powerpc/include/asm/fsl_85xx_cache_sram.h 
b/arch/powerpc/include/asm/fsl_85xx_cache_sram.h
new file mode 100644
index 000..2af2bdc
--- /dev/null
+++ b/arch/powerpc/include/asm/fsl_85xx_cache_sram.h
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2009 Freescale Semiconductor, Inc.
+ *
+ * Cache SRAM handling for QorIQ platform
+ *
+ * Author: Vivek Mahajan 
+
+ * This file is derived from the original work done
+ * by Sylvain Munaut for the Bestcomm SRAM allocator.
+ *
+ * This program is free software; you can redistribute  it and/or modify it
+ * under  the terms of  the GNU General  Public License as published by the
+ * Free Software Foundation;  either version 2 of the  License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef __ASM_POWERPC_FSL_85XX_CACHE_SRAM_H__
+#define __ASM_POWERPC_FSL_85XX_CACHE_SRAM_H__
+
+#include 
+#include 
+
+/*
+ * Cache-SRAM
+ */
+
+struct mpc85xx_cache_sram {
+   phys_addr_t base_phys;
+   void *base_virt;
+   unsigned int size;
+   rh_info_t *rh;
+   spinlock_t lock;
+};
+
+extern void mpc85xx_cache_sram_free(void *ptr);
+extern void *mpc85xx_cache_sram_alloc(unsigned int size,
+ phys_addr_t *phys, unsigned int align);
+
+#endif /* __AMS_POWERPC_FSL_85XX_CACHE_SRAM_H__ */
diff --git a/arch/powerpc/sysdev/Makefile b/arch/powerpc/sysdev/Makefile
index 5642924..fb60eb1 100644
--- a/arch/powerpc/sysdev/Makefile
+++ b/arch/powerpc/sysdev/Makefile
@@ -20,6 +20,7 @@ obj-$(CONFIG_FSL_PMC) += fsl_pmc.o
 obj-$(CONFIG_FSL_LBC)  += fsl_lbc.o
 obj-$(CONFIG_FSL_GTM)  += fsl_gtm.o
 obj-$(CONFIG_MPC8xxx_GPIO) += mpc8xxx_gpio.o
+obj-$(CONFIG_FSL_85XX_CACHE_SRAM)  += fsl_85xx_l2ctlr.o 
fsl_85xx_cache_sram.o
 obj-$(CONFIG_SIMPLE_GPIO)  += simple_gpio.o
 obj-$(CONFIG_RAPIDIO)  += fsl_rio.o
 obj-$(CONFIG_TSI108_BRIDGE)+= tsi108_pci.o tsi108_dev.o
diff --git a/arch/powerpc/sysdev/fsl_85xx_cache_ctlr.h 
b/arch/powerpc/sysdev/fsl_85xx_cache_ctlr.h
new file mode 100644
index 000..62f296e
--- /dev/null
+++ b/arch/powerpc/sysdev/fsl_85xx_cache_ctlr.h
@@ -0,0 +1,101 @@
+/*
+ * Copyright 2009-2010 Freescale Semiconductor, Inc
+ *
+ * QorIQ based Cache Controller Memory Mapped Registers
+ *
+ * Author: Vivek Mahajan 
+ *
+ * This program is free software; you can redistribute  it and/or modify it
+ * under  the terms of  the GNU General  Public License as published by the
+ * Free Software Foundation;  either version 2 of the  License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef __FSL_85XX_CACHE_CTLR_H__
+#define __FSL_85XX_CACHE_CTLR_H__
+
+#define L2CR_L2FI  0x4000  /* L2 flash invalidate */
+#define L2CR_L2IO  0x0020  /* L2 instruction only */
+#define L2CR_SRAM_ZERO 0x  /* L2SRAM zero size */
+#define L2CR_SRAM_FULL