Re: [U-Boot] [PATCH v3] mx6: Enable L2 cache support

2014-01-29 Thread Stefano Babic
Hi Dirk,

On 28/01/2014 17:53, Dirk Behme wrote:

 
 Just for better understanding: Do you want to keep this intentionally
 simple? Or is there any special reason why you don't set additional
 (performance) registers here? E.g. the L2 PREFETCH and POWER registers,
 and the tag and data latency settings? Like done in the kernel.

This is a good point ! If it is true that  L2 PREFETCH is turned on in
mainline kernel, but it was *explicitely* turned off by Jason in FSL
Kernel with the patch with subject ENGR00278489 (ARM PL310 errata: 7522719).

It seems to me that Fabio has already applied Jason's patch - maybe
should we check as in FSL kernel which i.MX6 is running (DL and Solo are
not affected). Jason, can you a little explain this topic ? Was the
patch sent to Shaw, too (set in CC) ?

Thanks,
Stefano


-- 
=
DENX Software Engineering GmbH, MD: Wolfgang Denk  Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sba...@denx.de
=
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v3] mx6: Enable L2 cache support

2014-01-29 Thread Fabio Estevam
Hi Stefano,

On Wed, Jan 29, 2014 at 10:47 AM, Stefano Babic sba...@denx.de wrote:
 Hi Dirk,

 On 28/01/2014 17:53, Dirk Behme wrote:


 Just for better understanding: Do you want to keep this intentionally
 simple? Or is there any special reason why you don't set additional
 (performance) registers here? E.g. the L2 PREFETCH and POWER registers,
 and the tag and data latency settings? Like done in the kernel.

 This is a good point ! If it is true that  L2 PREFETCH is turned on in
 mainline kernel, but it was *explicitely* turned off by Jason in FSL
 Kernel with the patch with subject ENGR00278489 (ARM PL310 errata: 7522719).

Mainline kernel and recent FSL kernels (3.0.35 4.1.0 or 3.10.17) keep
L2 prefetch enabled.

Check this commit:
http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/commit/?h=imx_3.0.35_4.1.0id=517182a385808f60bf94e2361712d714f0a78a61

Regards,

Fabio Estevam
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v3] mx6: Enable L2 cache support

2014-01-28 Thread Stefano Babic
On 28/01/2014 15:54, Fabio Estevam wrote:
 Add L2 cache support and enable it by default.
 
 Signed-off-by: Fabio Estevam fabio.este...@freescale.com
 ---
 Changes since v2:
 - Add L2_PL310_BASE definition in imx_regs.h
 Changes since v1:
 - Fx typo in commit log
 
  arch/arm/cpu/armv7/mx6/soc.c | 20 
  arch/arm/include/asm/arch-mx6/imx-regs.h |  1 +
  include/configs/mx6_common.h |  5 +
  3 files changed, 26 insertions(+)
 
 diff --git a/arch/arm/cpu/armv7/mx6/soc.c b/arch/arm/cpu/armv7/mx6/soc.c
 index 0208cba..b84de87 100644
 --- a/arch/arm/cpu/armv7/mx6/soc.c
 +++ b/arch/arm/cpu/armv7/mx6/soc.c
 @@ -8,6 +8,8 @@
   */
  
  #include common.h
 +#include asm/armv7.h
 +#include asm/pl310.h
  #include asm/errno.h
  #include asm/io.h
  #include asm/arch/imx-regs.h
 @@ -336,3 +338,21 @@ void imx_setup_hdmi(void)
   writel(reg, mxc_ccm-chsccdr);
  }
  #endif
 +
 +#ifndef CONFIG_SYS_L2CACHE_OFF
 +#define L2CACHE  1
 +void v7_outer_cache_enable(void)
 +{
 + struct pl310_regs *const pl310 = (struct pl310_regs *)L2_PL310_BASE;
 +
 + setbits_le32(pl310-pl310_ctrl, L2CACHE);
 +
 +}
 +
 +void v7_outer_cache_disable(void)
 +{
 + struct pl310_regs *const pl310 = (struct pl310_regs *)L2_PL310_BASE;
 +
 + clrbits_le32(pl310-pl310_ctrl, L2CACHE);
 +}
 +#endif /* !CONFIG_SYS_L2CACHE_OFF */
 diff --git a/arch/arm/include/asm/arch-mx6/imx-regs.h 
 b/arch/arm/include/asm/arch-mx6/imx-regs.h
 index f2ad6e9..c2d210a 100644
 --- a/arch/arm/include/asm/arch-mx6/imx-regs.h
 +++ b/arch/arm/include/asm/arch-mx6/imx-regs.h
 @@ -53,6 +53,7 @@
  #define GLOBAL_TIMER_BASE_ADDR  0x00A00200
  #define PRIVATE_TIMERS_WD_BASE_ADDR 0x00A00600
  #define IC_DISTRIBUTOR_BASE_ADDR0x00A01000
 +#define L2_PL310_BASE0x00A02000
  #define GPV0_BASE_ADDR  0x00B0
  #define GPV1_BASE_ADDR  0x00C0
  #define PCIE_ARB_BASE_ADDR  0x0100
 diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h
 index 514d634..63afa46 100644
 --- a/include/configs/mx6_common.h
 +++ b/include/configs/mx6_common.h
 @@ -22,4 +22,9 @@
  #define CONFIG_ARM_ERRATA_751472
  #define CONFIG_BOARD_POSTCLK_INIT
  
 +#ifndef CONFIG_SYS_L2CACHE_OFF
 +#define CONFIG_SYS_L2_PL310
 +#define CONFIG_SYS_PL310_BASEL2_PL310_BASE
 +#endif
 +
  #endif
 

Acked-by: Stefano Babic sba...@denx.de

Best regards,
Stefano Babic

-- 
=
DENX Software Engineering GmbH, MD: Wolfgang Denk  Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sba...@denx.de
=
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v3] mx6: Enable L2 cache support

2014-01-28 Thread Dirk Behme

Hi Fabio,

Am 28.01.2014 15:54, schrieb Fabio Estevam:

Add L2 cache support and enable it by default.

Signed-off-by: Fabio Estevam fabio.este...@freescale.com
---
Changes since v2:
- Add L2_PL310_BASE definition in imx_regs.h
Changes since v1:
- Fx typo in commit log

  arch/arm/cpu/armv7/mx6/soc.c | 20 
  arch/arm/include/asm/arch-mx6/imx-regs.h |  1 +
  include/configs/mx6_common.h |  5 +
  3 files changed, 26 insertions(+)

diff --git a/arch/arm/cpu/armv7/mx6/soc.c b/arch/arm/cpu/armv7/mx6/soc.c
index 0208cba..b84de87 100644
--- a/arch/arm/cpu/armv7/mx6/soc.c
+++ b/arch/arm/cpu/armv7/mx6/soc.c
@@ -8,6 +8,8 @@
   */

  #include common.h
+#include asm/armv7.h
+#include asm/pl310.h
  #include asm/errno.h
  #include asm/io.h
  #include asm/arch/imx-regs.h
@@ -336,3 +338,21 @@ void imx_setup_hdmi(void)
writel(reg, mxc_ccm-chsccdr);
  }
  #endif
+
+#ifndef CONFIG_SYS_L2CACHE_OFF
+#define L2CACHE1
+void v7_outer_cache_enable(void)
+{
+   struct pl310_regs *const pl310 = (struct pl310_regs *)L2_PL310_BASE;
+
+   setbits_le32(pl310-pl310_ctrl, L2CACHE);
+
+}


Just for better understanding: Do you want to keep this intentionally 
simple? Or is there any special reason why you don't set additional 
(performance) registers here? E.g. the L2 PREFETCH and POWER 
registers, and the tag and data latency settings? Like done in the kernel.


Best regards

Dirk

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v3] mx6: Enable L2 cache support

2014-01-28 Thread Fabio Estevam
Hi Dirk,

On Tue, Jan 28, 2014 at 2:53 PM, Dirk Behme dirk.be...@gmail.com wrote:

 Just for better understanding: Do you want to keep this intentionally
 simple? Or is there any special reason why you don't set additional
 (performance) registers here? E.g. the L2 PREFETCH and POWER registers, and
 the tag and data latency settings? Like done in the kernel.

The idea was to keep it simple initially and then we can extend L2
support as needed.

Regards,

Fabio Estevam
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot