* [PATCH 0/5] omap4: l2x0 fixes and cleanup
@ 2010-11-19 17:31 ` Santosh Shilimkar
0 siblings, 0 replies; 28+ messages in thread
From: Santosh Shilimkar @ 2010-11-19 17:31 UTC (permalink / raw)
To: linux-omap; +Cc: nm, mans, tony, khilman, linux-arm-kernel, Santosh Shilimkar
This series is outcome of the below discussion thread.
http://www.spinics.net/lists/arm-kernel/msg104254.html
The series in brief has following patches
- adds PL310 aux-control register bitfields
- Use these bitfields instead of hardcoded values as part of init
- Enable PL310 intsruction, Data prefetch hints and BRESP to
improve performance
- Set share-override bit to avoid non-cached buffer corruption
Thanks to Nishant Menon for testing this series on OMAP4 panda using
the memspeed utility. Have boot tested this series on OMAP4 SDP with
omap2plus_defconfig.
The following changes since commit e53beacd23d9cb47590da6a7a7f6d417b941a994:
Linus Torvalds (1):
Linux 2.6.37-rc2
Mans Rullgard (1):
omap4: l2x0: enable instruction and data prefetching
Santosh Shilimkar (4):
ARM: l2x0: Add aux control register bitfields
omap4: l2x0: Construct the AUXCTRL value using defines
omap4: l2x0: Set share override bit
omap4: l2x0: Enable early BRESP bit
arch/arm/include/asm/hardware/cache-l2x0.h | 12 ++++++++++-
arch/arm/mach-omap2/omap4-common.c | 30 +++++++++++++++++++++------
2 files changed, 34 insertions(+), 8 deletions(-)
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 0/5] omap4: l2x0 fixes and cleanup
@ 2010-11-19 17:31 ` Santosh Shilimkar
0 siblings, 0 replies; 28+ messages in thread
From: Santosh Shilimkar @ 2010-11-19 17:31 UTC (permalink / raw)
To: linux-arm-kernel
This series is outcome of the below discussion thread.
http://www.spinics.net/lists/arm-kernel/msg104254.html
The series in brief has following patches
- adds PL310 aux-control register bitfields
- Use these bitfields instead of hardcoded values as part of init
- Enable PL310 intsruction, Data prefetch hints and BRESP to
improve performance
- Set share-override bit to avoid non-cached buffer corruption
Thanks to Nishant Menon for testing this series on OMAP4 panda using
the memspeed utility. Have boot tested this series on OMAP4 SDP with
omap2plus_defconfig.
The following changes since commit e53beacd23d9cb47590da6a7a7f6d417b941a994:
Linus Torvalds (1):
Linux 2.6.37-rc2
Mans Rullgard (1):
omap4: l2x0: enable instruction and data prefetching
Santosh Shilimkar (4):
ARM: l2x0: Add aux control register bitfields
omap4: l2x0: Construct the AUXCTRL value using defines
omap4: l2x0: Set share override bit
omap4: l2x0: Enable early BRESP bit
arch/arm/include/asm/hardware/cache-l2x0.h | 12 ++++++++++-
arch/arm/mach-omap2/omap4-common.c | 30 +++++++++++++++++++++------
2 files changed, 34 insertions(+), 8 deletions(-)
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 1/5] ARM: l2x0: Add aux control register bitfields
2010-11-19 17:31 ` Santosh Shilimkar
@ 2010-11-19 17:31 ` Santosh Shilimkar
-1 siblings, 0 replies; 28+ messages in thread
From: Santosh Shilimkar @ 2010-11-19 17:31 UTC (permalink / raw)
To: linux-omap
Cc: nm, mans, tony, khilman, linux-arm-kernel, Santosh Shilimkar,
Catalin Marinas
This patch adds the PL310 Auxiliary Control Register bitfields
so that SOC's can use these bit fields to construct the AUXCTRL
value to be passed/programmed instead of hardcoding it.
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
---
arch/arm/include/asm/hardware/cache-l2x0.h | 12 +++++++++++-
1 files changed, 11 insertions(+), 1 deletions(-)
diff --git a/arch/arm/include/asm/hardware/cache-l2x0.h b/arch/arm/include/asm/hardware/cache-l2x0.h
index cc42d5f..5aeec1e 100644
--- a/arch/arm/include/asm/hardware/cache-l2x0.h
+++ b/arch/arm/include/asm/hardware/cache-l2x0.h
@@ -59,7 +59,17 @@
#define L2X0_CACHE_ID_PART_MASK (0xf << 6)
#define L2X0_CACHE_ID_PART_L210 (1 << 6)
#define L2X0_CACHE_ID_PART_L310 (3 << 6)
-#define L2X0_AUX_CTRL_WAY_SIZE_MASK (0x3 << 17)
+
+#define L2X0_AUX_CTRL_MASK 0xc0000fff
+#define L2X0_AUX_CTRL_ASSOCIATIVITY_SHIFT 16
+#define L2X0_AUX_CTRL_WAY_SIZE_SHIFT 17
+#define L2X0_AUX_CTRL_WAY_SIZE_MASK (0x3 << 17)
+#define L2X0_AUX_CTRL_SHARE_OVERRIDE_SHIFT 22
+#define L2X0_AUX_CTRL_NS_LOCKDOWN_SHIFT 26
+#define L2X0_AUX_CTRL_NS_INT_CTRL_SHIFT 27
+#define L2X0_AUX_CTRL_DATA_PREFETCH_SHIFT 28
+#define L2X0_AUX_CTRL_INSTR_PREFETCH_SHIFT 29
+#define L2X0_AUX_CTRL_EARLY_BRESP_SHIFT 30
#ifndef __ASSEMBLY__
extern void __init l2x0_init(void __iomem *base, __u32 aux_val, __u32 aux_mask);
--
1.6.0.4
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH 1/5] ARM: l2x0: Add aux control register bitfields
@ 2010-11-19 17:31 ` Santosh Shilimkar
0 siblings, 0 replies; 28+ messages in thread
From: Santosh Shilimkar @ 2010-11-19 17:31 UTC (permalink / raw)
To: linux-arm-kernel
This patch adds the PL310 Auxiliary Control Register bitfields
so that SOC's can use these bit fields to construct the AUXCTRL
value to be passed/programmed instead of hardcoding it.
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
---
arch/arm/include/asm/hardware/cache-l2x0.h | 12 +++++++++++-
1 files changed, 11 insertions(+), 1 deletions(-)
diff --git a/arch/arm/include/asm/hardware/cache-l2x0.h b/arch/arm/include/asm/hardware/cache-l2x0.h
index cc42d5f..5aeec1e 100644
--- a/arch/arm/include/asm/hardware/cache-l2x0.h
+++ b/arch/arm/include/asm/hardware/cache-l2x0.h
@@ -59,7 +59,17 @@
#define L2X0_CACHE_ID_PART_MASK (0xf << 6)
#define L2X0_CACHE_ID_PART_L210 (1 << 6)
#define L2X0_CACHE_ID_PART_L310 (3 << 6)
-#define L2X0_AUX_CTRL_WAY_SIZE_MASK (0x3 << 17)
+
+#define L2X0_AUX_CTRL_MASK 0xc0000fff
+#define L2X0_AUX_CTRL_ASSOCIATIVITY_SHIFT 16
+#define L2X0_AUX_CTRL_WAY_SIZE_SHIFT 17
+#define L2X0_AUX_CTRL_WAY_SIZE_MASK (0x3 << 17)
+#define L2X0_AUX_CTRL_SHARE_OVERRIDE_SHIFT 22
+#define L2X0_AUX_CTRL_NS_LOCKDOWN_SHIFT 26
+#define L2X0_AUX_CTRL_NS_INT_CTRL_SHIFT 27
+#define L2X0_AUX_CTRL_DATA_PREFETCH_SHIFT 28
+#define L2X0_AUX_CTRL_INSTR_PREFETCH_SHIFT 29
+#define L2X0_AUX_CTRL_EARLY_BRESP_SHIFT 30
#ifndef __ASSEMBLY__
extern void __init l2x0_init(void __iomem *base, __u32 aux_val, __u32 aux_mask);
--
1.6.0.4
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH 2/5] omap4: l2x0: Construct the AUXCTRL value using defines
2010-11-19 17:31 ` Santosh Shilimkar
@ 2010-11-19 17:31 ` Santosh Shilimkar
-1 siblings, 0 replies; 28+ messages in thread
From: Santosh Shilimkar @ 2010-11-19 17:31 UTC (permalink / raw)
To: linux-omap; +Cc: nm, mans, tony, khilman, linux-arm-kernel, Santosh Shilimkar
This patch removes the hardcoded value of auxctrl value and
construct it using bitfields
Bit 25 is reserved and is always set to 1. Same value
of this bit is retained in this patch
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Tested-by: Nishanth Menon <nm@ti.com>
---
arch/arm/mach-omap2/omap4-common.c | 13 +++++++++++--
1 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-omap2/omap4-common.c b/arch/arm/mach-omap2/omap4-common.c
index 2f89555..c814604 100644
--- a/arch/arm/mach-omap2/omap4-common.c
+++ b/arch/arm/mach-omap2/omap4-common.c
@@ -53,6 +53,8 @@ static void omap4_l2x0_disable(void)
static int __init omap_l2_cache_init(void)
{
+ u32 aux_ctrl = 0;
+
/*
* To avoid code running on other OMAPs in
* multi-omap builds
@@ -72,10 +74,17 @@ static int __init omap_l2_cache_init(void)
* Way size - 32KB (es1.0)
* Way size - 64KB (es2.0 +)
*/
+ aux_ctrl = ((1 << L2X0_AUX_CTRL_ASSOCIATIVITY_SHIFT) |
+ (0x1 << 25) |
+ (0x1 << L2X0_AUX_CTRL_NS_LOCKDOWN_SHIFT) |
+ (0x1 << L2X0_AUX_CTRL_NS_INT_CTRL_SHIFT));
+
if (omap_rev() == OMAP4430_REV_ES1_0)
- l2x0_init(l2cache_base, 0x0e050000, 0xc0000fff);
+ aux_ctrl |= 0x2 << L2X0_AUX_CTRL_WAY_SIZE_SHIFT;
else
- l2x0_init(l2cache_base, 0x0e070000, 0xc0000fff);
+ aux_ctrl |= 0x3 << L2X0_AUX_CTRL_WAY_SIZE_SHIFT;
+
+ l2x0_init(l2cache_base, aux_ctrl, L2X0_AUX_CTRL_MASK);
/*
* Override default outer_cache.disable with a OMAP4
--
1.6.0.4
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH 2/5] omap4: l2x0: Construct the AUXCTRL value using defines
@ 2010-11-19 17:31 ` Santosh Shilimkar
0 siblings, 0 replies; 28+ messages in thread
From: Santosh Shilimkar @ 2010-11-19 17:31 UTC (permalink / raw)
To: linux-arm-kernel
This patch removes the hardcoded value of auxctrl value and
construct it using bitfields
Bit 25 is reserved and is always set to 1. Same value
of this bit is retained in this patch
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Tested-by: Nishanth Menon <nm@ti.com>
---
arch/arm/mach-omap2/omap4-common.c | 13 +++++++++++--
1 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-omap2/omap4-common.c b/arch/arm/mach-omap2/omap4-common.c
index 2f89555..c814604 100644
--- a/arch/arm/mach-omap2/omap4-common.c
+++ b/arch/arm/mach-omap2/omap4-common.c
@@ -53,6 +53,8 @@ static void omap4_l2x0_disable(void)
static int __init omap_l2_cache_init(void)
{
+ u32 aux_ctrl = 0;
+
/*
* To avoid code running on other OMAPs in
* multi-omap builds
@@ -72,10 +74,17 @@ static int __init omap_l2_cache_init(void)
* Way size - 32KB (es1.0)
* Way size - 64KB (es2.0 +)
*/
+ aux_ctrl = ((1 << L2X0_AUX_CTRL_ASSOCIATIVITY_SHIFT) |
+ (0x1 << 25) |
+ (0x1 << L2X0_AUX_CTRL_NS_LOCKDOWN_SHIFT) |
+ (0x1 << L2X0_AUX_CTRL_NS_INT_CTRL_SHIFT));
+
if (omap_rev() == OMAP4430_REV_ES1_0)
- l2x0_init(l2cache_base, 0x0e050000, 0xc0000fff);
+ aux_ctrl |= 0x2 << L2X0_AUX_CTRL_WAY_SIZE_SHIFT;
else
- l2x0_init(l2cache_base, 0x0e070000, 0xc0000fff);
+ aux_ctrl |= 0x3 << L2X0_AUX_CTRL_WAY_SIZE_SHIFT;
+
+ l2x0_init(l2cache_base, aux_ctrl, L2X0_AUX_CTRL_MASK);
/*
* Override default outer_cache.disable with a OMAP4
--
1.6.0.4
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH 3/5] omap4: l2x0: enable instruction and data prefetching
2010-11-19 17:31 ` Santosh Shilimkar
@ 2010-11-19 17:31 ` Santosh Shilimkar
-1 siblings, 0 replies; 28+ messages in thread
From: Santosh Shilimkar @ 2010-11-19 17:31 UTC (permalink / raw)
To: linux-omap; +Cc: nm, mans, tony, khilman, linux-arm-kernel, Santosh Shilimkar
From: Mans Rullgard <mans@mansr.com>
Enabling L2 prefetching improves performance as shown on Panda
ES2.1 board with mem test, and it has measurable impact on
performances. I think we should consider it, even though it damages
"writes" a bit. (rebased to k.org)
Usually the prefetch is used at both levels together L1 + L2, however,
to enable the CP15 prefetch engines, these are under security, and on
GP devices, we cannot enable it(e.g. on PandaBoard). However, just
enabling PL310 prefetch seems to provide performance improvement,
as shown in the data below (from Ubuntu) and would be a great thing
to pull in.
What prefetch does is enable automatic next line prefetching. With this
enabled, whenever the PL310 receives a cachable read request, it
automatically prefetches the following cache line as well.
Measurement Data:
==
STOCK 10.10 WITHOUT PATCH
========================
~# ./memspeed
size 8388608 8192k 8M
offset 8388608, 0
buffers 0x2aaad000 0x2b2ad000
copy libc 133 MB/s
copy Android v5 273 MB/s
copy Android NEON 235 MB/s
copy INT32 116 MB/s
copy ASM ARM 187 MB/s
copy ASM VLDM 64 204 MB/s
copy ASM VLDM 128 173 MB/s
copy ASM VLD1 216 MB/s
read ASM ARM 286 MB/s
read ASM VLDM 242 MB/s
read ASM VLD1 286 MB/s
write libc 1947 MB/s
write ASM ARM 1943 MB/s
write ASM VSTM 1942 MB/s
write ASM VST1 1935 MB/s
10.10 + PATCH
=============
~# ./memspeed
size 8388608 8192k 8M
offset 8388608, 0
buffers 0x2ab17000 0x2b317000
copy libc 129 MB/s
copy Android v5 256 MB/s
copy Android NEON 356 MB/s
copy INT32 127 MB/s
copy ASM ARM 321 MB/s
copy ASM VLDM 64 337 MB/s
copy ASM VLDM 128 321 MB/s
copy ASM VLD1 350 MB/s
read ASM ARM 496 MB/s
read ASM VLDM 470 MB/s
read ASM VLD1 488 MB/s
write libc 1701 MB/s
write ASM ARM 1682 MB/s
write ASM VSTM 1693 MB/s
write ASM VST1 1681 MB/s
Signed-off-by: Mans Rullgard <mans@mansr.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Tested-by: Nishanth Menon <nm@ti.com>
---
arch/arm/mach-omap2/omap4-common.c | 17 +++++++++++------
1 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/arch/arm/mach-omap2/omap4-common.c b/arch/arm/mach-omap2/omap4-common.c
index c814604..b3cea78 100644
--- a/arch/arm/mach-omap2/omap4-common.c
+++ b/arch/arm/mach-omap2/omap4-common.c
@@ -66,9 +66,6 @@ static int __init omap_l2_cache_init(void)
l2cache_base = ioremap(OMAP44XX_L2CACHE_BASE, SZ_4K);
BUG_ON(!l2cache_base);
- /* Enable PL310 L2 Cache controller */
- omap_smc1(0x102, 0x1);
-
/*
* 16-way associativity, parity disabled
* Way size - 32KB (es1.0)
@@ -79,10 +76,18 @@ static int __init omap_l2_cache_init(void)
(0x1 << L2X0_AUX_CTRL_NS_LOCKDOWN_SHIFT) |
(0x1 << L2X0_AUX_CTRL_NS_INT_CTRL_SHIFT));
- if (omap_rev() == OMAP4430_REV_ES1_0)
+ if (omap_rev() == OMAP4430_REV_ES1_0) {
aux_ctrl |= 0x2 << L2X0_AUX_CTRL_WAY_SIZE_SHIFT;
- else
- aux_ctrl |= 0x3 << L2X0_AUX_CTRL_WAY_SIZE_SHIFT;
+ } else {
+ aux_ctrl |= ((0x3 << L2X0_AUX_CTRL_WAY_SIZE_SHIFT) |
+ (1 << L2X0_AUX_CTRL_DATA_PREFETCH_SHIFT) |
+ (1 << L2X0_AUX_CTRL_INSTR_PREFETCH_SHIFT));
+ }
+ if (omap_rev() != OMAP4430_REV_ES1_0)
+ omap_smc1(0x109, aux_ctrl);
+
+ /* Enable PL310 L2 Cache controller */
+ omap_smc1(0x102, 0x1);
l2x0_init(l2cache_base, aux_ctrl, L2X0_AUX_CTRL_MASK);
--
1.6.0.4
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH 3/5] omap4: l2x0: enable instruction and data prefetching
@ 2010-11-19 17:31 ` Santosh Shilimkar
0 siblings, 0 replies; 28+ messages in thread
From: Santosh Shilimkar @ 2010-11-19 17:31 UTC (permalink / raw)
To: linux-arm-kernel
From: Mans Rullgard <mans@mansr.com>
Enabling L2 prefetching improves performance as shown on Panda
ES2.1 board with mem test, and it has measurable impact on
performances. I think we should consider it, even though it damages
"writes" a bit. (rebased to k.org)
Usually the prefetch is used at both levels together L1 + L2, however,
to enable the CP15 prefetch engines, these are under security, and on
GP devices, we cannot enable it(e.g. on PandaBoard). However, just
enabling PL310 prefetch seems to provide performance improvement,
as shown in the data below (from Ubuntu) and would be a great thing
to pull in.
What prefetch does is enable automatic next line prefetching. With this
enabled, whenever the PL310 receives a cachable read request, it
automatically prefetches the following cache line as well.
Measurement Data:
==
STOCK 10.10 WITHOUT PATCH
========================
~# ./memspeed
size 8388608 8192k 8M
offset 8388608, 0
buffers 0x2aaad000 0x2b2ad000
copy libc 133 MB/s
copy Android v5 273 MB/s
copy Android NEON 235 MB/s
copy INT32 116 MB/s
copy ASM ARM 187 MB/s
copy ASM VLDM 64 204 MB/s
copy ASM VLDM 128 173 MB/s
copy ASM VLD1 216 MB/s
read ASM ARM 286 MB/s
read ASM VLDM 242 MB/s
read ASM VLD1 286 MB/s
write libc 1947 MB/s
write ASM ARM 1943 MB/s
write ASM VSTM 1942 MB/s
write ASM VST1 1935 MB/s
10.10 + PATCH
=============
~# ./memspeed
size 8388608 8192k 8M
offset 8388608, 0
buffers 0x2ab17000 0x2b317000
copy libc 129 MB/s
copy Android v5 256 MB/s
copy Android NEON 356 MB/s
copy INT32 127 MB/s
copy ASM ARM 321 MB/s
copy ASM VLDM 64 337 MB/s
copy ASM VLDM 128 321 MB/s
copy ASM VLD1 350 MB/s
read ASM ARM 496 MB/s
read ASM VLDM 470 MB/s
read ASM VLD1 488 MB/s
write libc 1701 MB/s
write ASM ARM 1682 MB/s
write ASM VSTM 1693 MB/s
write ASM VST1 1681 MB/s
Signed-off-by: Mans Rullgard <mans@mansr.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Tested-by: Nishanth Menon <nm@ti.com>
---
arch/arm/mach-omap2/omap4-common.c | 17 +++++++++++------
1 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/arch/arm/mach-omap2/omap4-common.c b/arch/arm/mach-omap2/omap4-common.c
index c814604..b3cea78 100644
--- a/arch/arm/mach-omap2/omap4-common.c
+++ b/arch/arm/mach-omap2/omap4-common.c
@@ -66,9 +66,6 @@ static int __init omap_l2_cache_init(void)
l2cache_base = ioremap(OMAP44XX_L2CACHE_BASE, SZ_4K);
BUG_ON(!l2cache_base);
- /* Enable PL310 L2 Cache controller */
- omap_smc1(0x102, 0x1);
-
/*
* 16-way associativity, parity disabled
* Way size - 32KB (es1.0)
@@ -79,10 +76,18 @@ static int __init omap_l2_cache_init(void)
(0x1 << L2X0_AUX_CTRL_NS_LOCKDOWN_SHIFT) |
(0x1 << L2X0_AUX_CTRL_NS_INT_CTRL_SHIFT));
- if (omap_rev() == OMAP4430_REV_ES1_0)
+ if (omap_rev() == OMAP4430_REV_ES1_0) {
aux_ctrl |= 0x2 << L2X0_AUX_CTRL_WAY_SIZE_SHIFT;
- else
- aux_ctrl |= 0x3 << L2X0_AUX_CTRL_WAY_SIZE_SHIFT;
+ } else {
+ aux_ctrl |= ((0x3 << L2X0_AUX_CTRL_WAY_SIZE_SHIFT) |
+ (1 << L2X0_AUX_CTRL_DATA_PREFETCH_SHIFT) |
+ (1 << L2X0_AUX_CTRL_INSTR_PREFETCH_SHIFT));
+ }
+ if (omap_rev() != OMAP4430_REV_ES1_0)
+ omap_smc1(0x109, aux_ctrl);
+
+ /* Enable PL310 L2 Cache controller */
+ omap_smc1(0x102, 0x1);
l2x0_init(l2cache_base, aux_ctrl, L2X0_AUX_CTRL_MASK);
--
1.6.0.4
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH 4/5] omap4: l2x0: Set share override bit
2010-11-19 17:31 ` Santosh Shilimkar
@ 2010-11-19 17:31 ` Santosh Shilimkar
-1 siblings, 0 replies; 28+ messages in thread
From: Santosh Shilimkar @ 2010-11-19 17:31 UTC (permalink / raw)
To: linux-omap; +Cc: nm, mans, tony, khilman, linux-arm-kernel, Santosh Shilimkar
Clearing bit 22 in the PL310 Auxiliary Control register (shared
attribute override enable) has the side effect of transforming Normal
Shared Non-cacheable reads into Cacheable no-allocate reads.
Coherent DMA buffers in Linux always have a Cacheable alias via the
kernel linear mapping and the processor can speculatively load cache
lines into the PL310 controller. With bit 22 cleared, Non-cacheable
reads would unexpectedly hit such cache lines leading to buffer
corruption
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Tested-by: Nishanth Menon <nm@ti.com>
---
arch/arm/mach-omap2/omap4-common.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-omap2/omap4-common.c b/arch/arm/mach-omap2/omap4-common.c
index b3cea78..2006da1 100644
--- a/arch/arm/mach-omap2/omap4-common.c
+++ b/arch/arm/mach-omap2/omap4-common.c
@@ -80,6 +80,7 @@ static int __init omap_l2_cache_init(void)
aux_ctrl |= 0x2 << L2X0_AUX_CTRL_WAY_SIZE_SHIFT;
} else {
aux_ctrl |= ((0x3 << L2X0_AUX_CTRL_WAY_SIZE_SHIFT) |
+ (1 << L2X0_AUX_CTRL_SHARE_OVERRIDE_SHIFT) |
(1 << L2X0_AUX_CTRL_DATA_PREFETCH_SHIFT) |
(1 << L2X0_AUX_CTRL_INSTR_PREFETCH_SHIFT));
}
--
1.6.0.4
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH 4/5] omap4: l2x0: Set share override bit
@ 2010-11-19 17:31 ` Santosh Shilimkar
0 siblings, 0 replies; 28+ messages in thread
From: Santosh Shilimkar @ 2010-11-19 17:31 UTC (permalink / raw)
To: linux-arm-kernel
Clearing bit 22 in the PL310 Auxiliary Control register (shared
attribute override enable) has the side effect of transforming Normal
Shared Non-cacheable reads into Cacheable no-allocate reads.
Coherent DMA buffers in Linux always have a Cacheable alias via the
kernel linear mapping and the processor can speculatively load cache
lines into the PL310 controller. With bit 22 cleared, Non-cacheable
reads would unexpectedly hit such cache lines leading to buffer
corruption
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Tested-by: Nishanth Menon <nm@ti.com>
---
arch/arm/mach-omap2/omap4-common.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-omap2/omap4-common.c b/arch/arm/mach-omap2/omap4-common.c
index b3cea78..2006da1 100644
--- a/arch/arm/mach-omap2/omap4-common.c
+++ b/arch/arm/mach-omap2/omap4-common.c
@@ -80,6 +80,7 @@ static int __init omap_l2_cache_init(void)
aux_ctrl |= 0x2 << L2X0_AUX_CTRL_WAY_SIZE_SHIFT;
} else {
aux_ctrl |= ((0x3 << L2X0_AUX_CTRL_WAY_SIZE_SHIFT) |
+ (1 << L2X0_AUX_CTRL_SHARE_OVERRIDE_SHIFT) |
(1 << L2X0_AUX_CTRL_DATA_PREFETCH_SHIFT) |
(1 << L2X0_AUX_CTRL_INSTR_PREFETCH_SHIFT));
}
--
1.6.0.4
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH 5/5] omap4: l2x0: Enable early BRESP bit
2010-11-19 17:31 ` Santosh Shilimkar
@ 2010-11-19 17:31 ` Santosh Shilimkar
-1 siblings, 0 replies; 28+ messages in thread
From: Santosh Shilimkar @ 2010-11-19 17:31 UTC (permalink / raw)
To: linux-omap; +Cc: nm, mans, tony, khilman, linux-arm-kernel, Santosh Shilimkar
The AXI protocol specifies that the write response can only
be sent back to an AXI master when the last write data has been
accepted. This optimization enables the PL310 to send the write
response of certain write transactions as soon as the store buffer
accepts the write address. This behavior is not compatible with
the AXI protocol and is disabled by default. You enable this
optimization by setting the Early BRESP Enable bit in the
Auxiliary Control Register (bit [30]).
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Mans Rullgard <mans@mansr.com>
Tested-by: Nishanth Menon <nm@ti.com>
---
arch/arm/mach-omap2/omap4-common.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/arch/arm/mach-omap2/omap4-common.c b/arch/arm/mach-omap2/omap4-common.c
index 2006da1..e7a9b7f 100644
--- a/arch/arm/mach-omap2/omap4-common.c
+++ b/arch/arm/mach-omap2/omap4-common.c
@@ -82,7 +82,8 @@ static int __init omap_l2_cache_init(void)
aux_ctrl |= ((0x3 << L2X0_AUX_CTRL_WAY_SIZE_SHIFT) |
(1 << L2X0_AUX_CTRL_SHARE_OVERRIDE_SHIFT) |
(1 << L2X0_AUX_CTRL_DATA_PREFETCH_SHIFT) |
- (1 << L2X0_AUX_CTRL_INSTR_PREFETCH_SHIFT));
+ (1 << L2X0_AUX_CTRL_INSTR_PREFETCH_SHIFT) |
+ (1 << L2X0_AUX_CTRL_EARLY_BRESP_SHIFT));
}
if (omap_rev() != OMAP4430_REV_ES1_0)
omap_smc1(0x109, aux_ctrl);
--
1.6.0.4
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH 5/5] omap4: l2x0: Enable early BRESP bit
@ 2010-11-19 17:31 ` Santosh Shilimkar
0 siblings, 0 replies; 28+ messages in thread
From: Santosh Shilimkar @ 2010-11-19 17:31 UTC (permalink / raw)
To: linux-arm-kernel
The AXI protocol specifies that the write response can only
be sent back to an AXI master when the last write data has been
accepted. This optimization enables the PL310 to send the write
response of certain write transactions as soon as the store buffer
accepts the write address. This behavior is not compatible with
the AXI protocol and is disabled by default. You enable this
optimization by setting the Early BRESP Enable bit in the
Auxiliary Control Register (bit [30]).
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Mans Rullgard <mans@mansr.com>
Tested-by: Nishanth Menon <nm@ti.com>
---
arch/arm/mach-omap2/omap4-common.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/arch/arm/mach-omap2/omap4-common.c b/arch/arm/mach-omap2/omap4-common.c
index 2006da1..e7a9b7f 100644
--- a/arch/arm/mach-omap2/omap4-common.c
+++ b/arch/arm/mach-omap2/omap4-common.c
@@ -82,7 +82,8 @@ static int __init omap_l2_cache_init(void)
aux_ctrl |= ((0x3 << L2X0_AUX_CTRL_WAY_SIZE_SHIFT) |
(1 << L2X0_AUX_CTRL_SHARE_OVERRIDE_SHIFT) |
(1 << L2X0_AUX_CTRL_DATA_PREFETCH_SHIFT) |
- (1 << L2X0_AUX_CTRL_INSTR_PREFETCH_SHIFT));
+ (1 << L2X0_AUX_CTRL_INSTR_PREFETCH_SHIFT) |
+ (1 << L2X0_AUX_CTRL_EARLY_BRESP_SHIFT));
}
if (omap_rev() != OMAP4430_REV_ES1_0)
omap_smc1(0x109, aux_ctrl);
--
1.6.0.4
^ permalink raw reply related [flat|nested] 28+ messages in thread
* Re: [PATCH 1/5] ARM: l2x0: Add aux control register bitfields
2010-11-19 17:31 ` Santosh Shilimkar
@ 2010-11-19 18:13 ` Catalin Marinas
-1 siblings, 0 replies; 28+ messages in thread
From: Catalin Marinas @ 2010-11-19 18:13 UTC (permalink / raw)
To: Santosh Shilimkar; +Cc: nm, mans, tony, khilman, linux-omap, linux-arm-kernel
On Fri, 2010-11-19 at 17:31 +0000, Santosh Shilimkar wrote:
> This patch adds the PL310 Auxiliary Control Register bitfields
> so that SOC's can use these bit fields to construct the AUXCTRL
> value to be passed/programmed instead of hardcoding it.
>
> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 1/5] ARM: l2x0: Add aux control register bitfields
@ 2010-11-19 18:13 ` Catalin Marinas
0 siblings, 0 replies; 28+ messages in thread
From: Catalin Marinas @ 2010-11-19 18:13 UTC (permalink / raw)
To: linux-arm-kernel
On Fri, 2010-11-19 at 17:31 +0000, Santosh Shilimkar wrote:
> This patch adds the PL310 Auxiliary Control Register bitfields
> so that SOC's can use these bit fields to construct the AUXCTRL
> value to be passed/programmed instead of hardcoding it.
>
> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [PATCH 5/5] omap4: l2x0: Enable early BRESP bit
2010-11-19 17:31 ` Santosh Shilimkar
@ 2010-11-19 18:32 ` Måns Rullgård
-1 siblings, 0 replies; 28+ messages in thread
From: Måns Rullgård @ 2010-11-19 18:32 UTC (permalink / raw)
To: Santosh Shilimkar; +Cc: nm, mans, tony, khilman, linux-omap, linux-arm-kernel
Santosh Shilimkar <santosh.shilimkar@ti.com> writes:
> The AXI protocol specifies that the write response can only
> be sent back to an AXI master when the last write data has been
> accepted. This optimization enables the PL310 to send the write
> response of certain write transactions as soon as the store buffer
> accepts the write address. This behavior is not compatible with
> the AXI protocol and is disabled by default. You enable this
> optimization by setting the Early BRESP Enable bit in the
> Auxiliary Control Register (bit [30]).
Did you measure the performance difference this makes, if any?
--
Måns Rullgård
mans@mansr.com
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 5/5] omap4: l2x0: Enable early BRESP bit
@ 2010-11-19 18:32 ` Måns Rullgård
0 siblings, 0 replies; 28+ messages in thread
From: Måns Rullgård @ 2010-11-19 18:32 UTC (permalink / raw)
To: linux-arm-kernel
Santosh Shilimkar <santosh.shilimkar@ti.com> writes:
> The AXI protocol specifies that the write response can only
> be sent back to an AXI master when the last write data has been
> accepted. This optimization enables the PL310 to send the write
> response of certain write transactions as soon as the store buffer
> accepts the write address. This behavior is not compatible with
> the AXI protocol and is disabled by default. You enable this
> optimization by setting the Early BRESP Enable bit in the
> Auxiliary Control Register (bit [30]).
Did you measure the performance difference this makes, if any?
--
M?ns Rullg?rd
mans at mansr.com
^ permalink raw reply [flat|nested] 28+ messages in thread
* RE: [PATCH 5/5] omap4: l2x0: Enable early BRESP bit
2010-11-19 18:32 ` Måns Rullgård
@ 2010-11-20 10:08 ` Santosh Shilimkar
-1 siblings, 0 replies; 28+ messages in thread
From: Santosh Shilimkar @ 2010-11-20 10:08 UTC (permalink / raw)
To: Måns Rullgård
Cc: linux-omap, Nishanth Menon, tony, khilman, linux-arm-kernel
> -----Original Message-----
> From: Måns Rullgård [mailto:mans@mansr.com]
> Sent: Saturday, November 20, 2010 12:02 AM
> To: Santosh Shilimkar
> Cc: linux-omap@vger.kernel.org; nm@ti.com; mans@mansr.com;
> tony@atomide.com; khilman@deeprootsystems.com; linux-arm-
> kernel@lists.infradead.org
> Subject: Re: [PATCH 5/5] omap4: l2x0: Enable early BRESP bit
>
> Santosh Shilimkar <santosh.shilimkar@ti.com> writes:
>
> > The AXI protocol specifies that the write response can only
> > be sent back to an AXI master when the last write data has been
> > accepted. This optimization enables the PL310 to send the write
> > response of certain write transactions as soon as the store buffer
> > accepts the write address. This behavior is not compatible with
> > the AXI protocol and is disabled by default. You enable this
> > optimization by setting the Early BRESP Enable bit in the
> > Auxiliary Control Register (bit [30]).
>
> Did you measure the performance difference this makes, if any?
>
I didn't do any special runs for this bit alone. Just checked
with hardware team and they confirmed that you would gain a bit
on writes and it's good to enable it.
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 5/5] omap4: l2x0: Enable early BRESP bit
@ 2010-11-20 10:08 ` Santosh Shilimkar
0 siblings, 0 replies; 28+ messages in thread
From: Santosh Shilimkar @ 2010-11-20 10:08 UTC (permalink / raw)
To: linux-arm-kernel
> -----Original Message-----
> From: M?ns Rullg?rd [mailto:mans at mansr.com]
> Sent: Saturday, November 20, 2010 12:02 AM
> To: Santosh Shilimkar
> Cc: linux-omap at vger.kernel.org; nm at ti.com; mans at mansr.com;
> tony at atomide.com; khilman at deeprootsystems.com; linux-arm-
> kernel at lists.infradead.org
> Subject: Re: [PATCH 5/5] omap4: l2x0: Enable early BRESP bit
>
> Santosh Shilimkar <santosh.shilimkar@ti.com> writes:
>
> > The AXI protocol specifies that the write response can only
> > be sent back to an AXI master when the last write data has been
> > accepted. This optimization enables the PL310 to send the write
> > response of certain write transactions as soon as the store buffer
> > accepts the write address. This behavior is not compatible with
> > the AXI protocol and is disabled by default. You enable this
> > optimization by setting the Early BRESP Enable bit in the
> > Auxiliary Control Register (bit [30]).
>
> Did you measure the performance difference this makes, if any?
>
I didn't do any special runs for this bit alone. Just checked
with hardware team and they confirmed that you would gain a bit
on writes and it's good to enable it.
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [PATCH 2/5] omap4: l2x0: Construct the AUXCTRL value using defines
2010-11-19 17:31 ` Santosh Shilimkar
@ 2010-11-22 20:11 ` Kevin Hilman
-1 siblings, 0 replies; 28+ messages in thread
From: Kevin Hilman @ 2010-11-22 20:11 UTC (permalink / raw)
To: Santosh Shilimkar; +Cc: linux-omap, nm, mans, tony, linux-arm-kernel
Santosh Shilimkar <santosh.shilimkar@ti.com> writes:
> This patch removes the hardcoded value of auxctrl value and
> construct it using bitfields
>
> Bit 25 is reserved and is always set to 1. Same value
> of this bit is retained in this patch
Is this OMAP specific, or is this ARM generic?
> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
> Tested-by: Nishanth Menon <nm@ti.com>
> ---
> arch/arm/mach-omap2/omap4-common.c | 13 +++++++++++--
> 1 files changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/omap4-common.c b/arch/arm/mach-omap2/omap4-common.c
> index 2f89555..c814604 100644
> --- a/arch/arm/mach-omap2/omap4-common.c
> +++ b/arch/arm/mach-omap2/omap4-common.c
> @@ -53,6 +53,8 @@ static void omap4_l2x0_disable(void)
>
> static int __init omap_l2_cache_init(void)
> {
> + u32 aux_ctrl = 0;
> +
> /*
> * To avoid code running on other OMAPs in
> * multi-omap builds
> @@ -72,10 +74,17 @@ static int __init omap_l2_cache_init(void)
> * Way size - 32KB (es1.0)
> * Way size - 64KB (es2.0 +)
> */
> + aux_ctrl = ((1 << L2X0_AUX_CTRL_ASSOCIATIVITY_SHIFT) |
> + (0x1 << 25) |
it doesn't look right to have a single hard-coded constant here among
the others. Either give this a name (RESERVED_ALWAYS_1, or something)
or add a comment to the code like is done in the changelog.
> + (0x1 << L2X0_AUX_CTRL_NS_LOCKDOWN_SHIFT) |
> + (0x1 << L2X0_AUX_CTRL_NS_INT_CTRL_SHIFT));
> +
> if (omap_rev() == OMAP4430_REV_ES1_0)
> - l2x0_init(l2cache_base, 0x0e050000, 0xc0000fff);
> + aux_ctrl |= 0x2 << L2X0_AUX_CTRL_WAY_SIZE_SHIFT;
> else
> - l2x0_init(l2cache_base, 0x0e070000, 0xc0000fff);
> + aux_ctrl |= 0x3 << L2X0_AUX_CTRL_WAY_SIZE_SHIFT;
> +
> + l2x0_init(l2cache_base, aux_ctrl, L2X0_AUX_CTRL_MASK);
>
> /*
> * Override default outer_cache.disable with a OMAP4
Kevin
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 2/5] omap4: l2x0: Construct the AUXCTRL value using defines
@ 2010-11-22 20:11 ` Kevin Hilman
0 siblings, 0 replies; 28+ messages in thread
From: Kevin Hilman @ 2010-11-22 20:11 UTC (permalink / raw)
To: linux-arm-kernel
Santosh Shilimkar <santosh.shilimkar@ti.com> writes:
> This patch removes the hardcoded value of auxctrl value and
> construct it using bitfields
>
> Bit 25 is reserved and is always set to 1. Same value
> of this bit is retained in this patch
Is this OMAP specific, or is this ARM generic?
> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
> Tested-by: Nishanth Menon <nm@ti.com>
> ---
> arch/arm/mach-omap2/omap4-common.c | 13 +++++++++++--
> 1 files changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/omap4-common.c b/arch/arm/mach-omap2/omap4-common.c
> index 2f89555..c814604 100644
> --- a/arch/arm/mach-omap2/omap4-common.c
> +++ b/arch/arm/mach-omap2/omap4-common.c
> @@ -53,6 +53,8 @@ static void omap4_l2x0_disable(void)
>
> static int __init omap_l2_cache_init(void)
> {
> + u32 aux_ctrl = 0;
> +
> /*
> * To avoid code running on other OMAPs in
> * multi-omap builds
> @@ -72,10 +74,17 @@ static int __init omap_l2_cache_init(void)
> * Way size - 32KB (es1.0)
> * Way size - 64KB (es2.0 +)
> */
> + aux_ctrl = ((1 << L2X0_AUX_CTRL_ASSOCIATIVITY_SHIFT) |
> + (0x1 << 25) |
it doesn't look right to have a single hard-coded constant here among
the others. Either give this a name (RESERVED_ALWAYS_1, or something)
or add a comment to the code like is done in the changelog.
> + (0x1 << L2X0_AUX_CTRL_NS_LOCKDOWN_SHIFT) |
> + (0x1 << L2X0_AUX_CTRL_NS_INT_CTRL_SHIFT));
> +
> if (omap_rev() == OMAP4430_REV_ES1_0)
> - l2x0_init(l2cache_base, 0x0e050000, 0xc0000fff);
> + aux_ctrl |= 0x2 << L2X0_AUX_CTRL_WAY_SIZE_SHIFT;
> else
> - l2x0_init(l2cache_base, 0x0e070000, 0xc0000fff);
> + aux_ctrl |= 0x3 << L2X0_AUX_CTRL_WAY_SIZE_SHIFT;
> +
> + l2x0_init(l2cache_base, aux_ctrl, L2X0_AUX_CTRL_MASK);
>
> /*
> * Override default outer_cache.disable with a OMAP4
Kevin
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [PATCH 2/5] omap4: l2x0: Construct the AUXCTRL value using defines
2010-11-22 20:11 ` Kevin Hilman
@ 2010-11-22 20:21 ` Måns Rullgård
-1 siblings, 0 replies; 28+ messages in thread
From: Måns Rullgård @ 2010-11-22 20:21 UTC (permalink / raw)
To: Kevin Hilman
Cc: Santosh Shilimkar, linux-omap, nm, mans, tony, linux-arm-kernel
Kevin Hilman <khilman@deeprootsystems.com> writes:
> Santosh Shilimkar <santosh.shilimkar@ti.com> writes:
>
>> This patch removes the hardcoded value of auxctrl value and
>> construct it using bitfields
>>
>> Bit 25 is reserved and is always set to 1. Same value
>> of this bit is retained in this patch
>
> Is this OMAP specific, or is this ARM generic?
The bit fields are generic PL310. It has to be set from OMAP code due
to the ROM call.
--
Måns Rullgård
mans@mansr.com
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 2/5] omap4: l2x0: Construct the AUXCTRL value using defines
@ 2010-11-22 20:21 ` Måns Rullgård
0 siblings, 0 replies; 28+ messages in thread
From: Måns Rullgård @ 2010-11-22 20:21 UTC (permalink / raw)
To: linux-arm-kernel
Kevin Hilman <khilman@deeprootsystems.com> writes:
> Santosh Shilimkar <santosh.shilimkar@ti.com> writes:
>
>> This patch removes the hardcoded value of auxctrl value and
>> construct it using bitfields
>>
>> Bit 25 is reserved and is always set to 1. Same value
>> of this bit is retained in this patch
>
> Is this OMAP specific, or is this ARM generic?
The bit fields are generic PL310. It has to be set from OMAP code due
to the ROM call.
--
M?ns Rullg?rd
mans at mansr.com
^ permalink raw reply [flat|nested] 28+ messages in thread
* RE: [PATCH 0/5] omap4: l2x0 fixes and cleanup
2010-11-19 17:31 ` Santosh Shilimkar
@ 2010-12-02 11:57 ` Santosh Shilimkar
-1 siblings, 0 replies; 28+ messages in thread
From: Santosh Shilimkar @ 2010-12-02 11:57 UTC (permalink / raw)
To: tony; +Cc: Nishanth Menon, mans, khilman, linux-arm-kernel, linux-omap
Tony,
> -----Original Message-----
> From: Santosh Shilimkar [mailto:santosh.shilimkar@ti.com]
> Sent: Friday, November 19, 2010 11:01 PM
> To: linux-omap@vger.kernel.org
> Cc: nm@ti.com; mans@mansr.com; tony@atomide.com;
> khilman@deeprootsystems.com; linux-arm-kernel@lists.infradead.org;
Santosh
> Shilimkar
> Subject: [PATCH 0/5] omap4: l2x0 fixes and cleanup
>
> This series is outcome of the below discussion thread.
> http://www.spinics.net/lists/arm-kernel/msg104254.html
>
> The series in brief has following patches
> - adds PL310 aux-control register bitfields
> - Use these bitfields instead of hardcoded values as part of init
> - Enable PL310 intsruction, Data prefetch hints and BRESP to
> improve performance
> - Set share-override bit to avoid non-cached buffer corruption
>
> Thanks to Nishant Menon for testing this series on OMAP4 panda using
> the memspeed utility. Have boot tested this series on OMAP4 SDP with
> omap2plus_defconfig.
>
How about merging this series in omap-testing if you are ok
with it. Patch " ARM: l2x0: Add aux control register bitfields"
is already acked by Catalin.
> The following changes since commit
> e53beacd23d9cb47590da6a7a7f6d417b941a994:
> Linus Torvalds (1):
> Linux 2.6.37-rc2
>
> Mans Rullgard (1):
> omap4: l2x0: enable instruction and data prefetching
>
> Santosh Shilimkar (4):
> ARM: l2x0: Add aux control register bitfields
> omap4: l2x0: Construct the AUXCTRL value using defines
> omap4: l2x0: Set share override bit
> omap4: l2x0: Enable early BRESP bit
>
> arch/arm/include/asm/hardware/cache-l2x0.h | 12 ++++++++++-
> arch/arm/mach-omap2/omap4-common.c | 30
+++++++++++++++++++++--
> ----
> 2 files changed, 34 insertions(+), 8 deletions(-)
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 0/5] omap4: l2x0 fixes and cleanup
@ 2010-12-02 11:57 ` Santosh Shilimkar
0 siblings, 0 replies; 28+ messages in thread
From: Santosh Shilimkar @ 2010-12-02 11:57 UTC (permalink / raw)
To: linux-arm-kernel
Tony,
> -----Original Message-----
> From: Santosh Shilimkar [mailto:santosh.shilimkar at ti.com]
> Sent: Friday, November 19, 2010 11:01 PM
> To: linux-omap at vger.kernel.org
> Cc: nm at ti.com; mans at mansr.com; tony at atomide.com;
> khilman at deeprootsystems.com; linux-arm-kernel at lists.infradead.org;
Santosh
> Shilimkar
> Subject: [PATCH 0/5] omap4: l2x0 fixes and cleanup
>
> This series is outcome of the below discussion thread.
> http://www.spinics.net/lists/arm-kernel/msg104254.html
>
> The series in brief has following patches
> - adds PL310 aux-control register bitfields
> - Use these bitfields instead of hardcoded values as part of init
> - Enable PL310 intsruction, Data prefetch hints and BRESP to
> improve performance
> - Set share-override bit to avoid non-cached buffer corruption
>
> Thanks to Nishant Menon for testing this series on OMAP4 panda using
> the memspeed utility. Have boot tested this series on OMAP4 SDP with
> omap2plus_defconfig.
>
How about merging this series in omap-testing if you are ok
with it. Patch " ARM: l2x0: Add aux control register bitfields"
is already acked by Catalin.
> The following changes since commit
> e53beacd23d9cb47590da6a7a7f6d417b941a994:
> Linus Torvalds (1):
> Linux 2.6.37-rc2
>
> Mans Rullgard (1):
> omap4: l2x0: enable instruction and data prefetching
>
> Santosh Shilimkar (4):
> ARM: l2x0: Add aux control register bitfields
> omap4: l2x0: Construct the AUXCTRL value using defines
> omap4: l2x0: Set share override bit
> omap4: l2x0: Enable early BRESP bit
>
> arch/arm/include/asm/hardware/cache-l2x0.h | 12 ++++++++++-
> arch/arm/mach-omap2/omap4-common.c | 30
+++++++++++++++++++++--
> ----
> 2 files changed, 34 insertions(+), 8 deletions(-)
^ permalink raw reply [flat|nested] 28+ messages in thread
* RE: [PATCH 0/5] omap4: l2x0 fixes and cleanup
2010-12-02 11:57 ` Santosh Shilimkar
@ 2010-12-14 5:08 ` Santosh Shilimkar
-1 siblings, 0 replies; 28+ messages in thread
From: Santosh Shilimkar @ 2010-12-14 5:08 UTC (permalink / raw)
To: tony; +Cc: Nishanth Menon, mans, khilman, linux-arm-kernel, linux-omap
ping
> -----Original Message-----
> From: Santosh Shilimkar [mailto:santosh.shilimkar@ti.com]
> Sent: Thursday, December 02, 2010 5:28 PM
> To: tony@atomide.com
> Cc: Nishanth Menon; mans@mansr.com; khilman@deeprootsystems.com; linux-
> arm-kernel@lists.infradead.org; linux-omap@vger.kernel.org
> Subject: RE: [PATCH 0/5] omap4: l2x0 fixes and cleanup
>
> Tony,
> > -----Original Message-----
> > From: Santosh Shilimkar [mailto:santosh.shilimkar@ti.com]
> > Sent: Friday, November 19, 2010 11:01 PM
> > To: linux-omap@vger.kernel.org
> > Cc: nm@ti.com; mans@mansr.com; tony@atomide.com;
> > khilman@deeprootsystems.com; linux-arm-kernel@lists.infradead.org;
> Santosh
> > Shilimkar
> > Subject: [PATCH 0/5] omap4: l2x0 fixes and cleanup
> >
> > This series is outcome of the below discussion thread.
> > http://www.spinics.net/lists/arm-kernel/msg104254.html
> >
> > The series in brief has following patches
> > - adds PL310 aux-control register bitfields
> > - Use these bitfields instead of hardcoded values as part of init
> > - Enable PL310 intsruction, Data prefetch hints and BRESP to
> > improve performance
> > - Set share-override bit to avoid non-cached buffer corruption
> >
> > Thanks to Nishant Menon for testing this series on OMAP4 panda using
> > the memspeed utility. Have boot tested this series on OMAP4 SDP with
> > omap2plus_defconfig.
> >
> How about merging this series in omap-testing if you are ok
> with it. Patch " ARM: l2x0: Add aux control register bitfields"
> is already acked by Catalin.
>
> > The following changes since commit
> > e53beacd23d9cb47590da6a7a7f6d417b941a994:
> > Linus Torvalds (1):
> > Linux 2.6.37-rc2
> >
> > Mans Rullgard (1):
> > omap4: l2x0: enable instruction and data prefetching
> >
> > Santosh Shilimkar (4):
> > ARM: l2x0: Add aux control register bitfields
> > omap4: l2x0: Construct the AUXCTRL value using defines
> > omap4: l2x0: Set share override bit
> > omap4: l2x0: Enable early BRESP bit
> >
> > arch/arm/include/asm/hardware/cache-l2x0.h | 12 ++++++++++-
> > arch/arm/mach-omap2/omap4-common.c | 30
> +++++++++++++++++++++--
> > ----
> > 2 files changed, 34 insertions(+), 8 deletions(-)
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 0/5] omap4: l2x0 fixes and cleanup
@ 2010-12-14 5:08 ` Santosh Shilimkar
0 siblings, 0 replies; 28+ messages in thread
From: Santosh Shilimkar @ 2010-12-14 5:08 UTC (permalink / raw)
To: linux-arm-kernel
ping
> -----Original Message-----
> From: Santosh Shilimkar [mailto:santosh.shilimkar at ti.com]
> Sent: Thursday, December 02, 2010 5:28 PM
> To: tony at atomide.com
> Cc: Nishanth Menon; mans at mansr.com; khilman at deeprootsystems.com; linux-
> arm-kernel at lists.infradead.org; linux-omap at vger.kernel.org
> Subject: RE: [PATCH 0/5] omap4: l2x0 fixes and cleanup
>
> Tony,
> > -----Original Message-----
> > From: Santosh Shilimkar [mailto:santosh.shilimkar at ti.com]
> > Sent: Friday, November 19, 2010 11:01 PM
> > To: linux-omap at vger.kernel.org
> > Cc: nm at ti.com; mans at mansr.com; tony at atomide.com;
> > khilman at deeprootsystems.com; linux-arm-kernel at lists.infradead.org;
> Santosh
> > Shilimkar
> > Subject: [PATCH 0/5] omap4: l2x0 fixes and cleanup
> >
> > This series is outcome of the below discussion thread.
> > http://www.spinics.net/lists/arm-kernel/msg104254.html
> >
> > The series in brief has following patches
> > - adds PL310 aux-control register bitfields
> > - Use these bitfields instead of hardcoded values as part of init
> > - Enable PL310 intsruction, Data prefetch hints and BRESP to
> > improve performance
> > - Set share-override bit to avoid non-cached buffer corruption
> >
> > Thanks to Nishant Menon for testing this series on OMAP4 panda using
> > the memspeed utility. Have boot tested this series on OMAP4 SDP with
> > omap2plus_defconfig.
> >
> How about merging this series in omap-testing if you are ok
> with it. Patch " ARM: l2x0: Add aux control register bitfields"
> is already acked by Catalin.
>
> > The following changes since commit
> > e53beacd23d9cb47590da6a7a7f6d417b941a994:
> > Linus Torvalds (1):
> > Linux 2.6.37-rc2
> >
> > Mans Rullgard (1):
> > omap4: l2x0: enable instruction and data prefetching
> >
> > Santosh Shilimkar (4):
> > ARM: l2x0: Add aux control register bitfields
> > omap4: l2x0: Construct the AUXCTRL value using defines
> > omap4: l2x0: Set share override bit
> > omap4: l2x0: Enable early BRESP bit
> >
> > arch/arm/include/asm/hardware/cache-l2x0.h | 12 ++++++++++-
> > arch/arm/mach-omap2/omap4-common.c | 30
> +++++++++++++++++++++--
> > ----
> > 2 files changed, 34 insertions(+), 8 deletions(-)
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [PATCH 0/5] omap4: l2x0 fixes and cleanup
2010-12-14 5:08 ` Santosh Shilimkar
@ 2010-12-18 17:39 ` Tony Lindgren
-1 siblings, 0 replies; 28+ messages in thread
From: Tony Lindgren @ 2010-12-18 17:39 UTC (permalink / raw)
To: Santosh Shilimkar
Cc: Nishanth Menon, mans, khilman, linux-arm-kernel, linux-omap
* Santosh Shilimkar <santosh.shilimkar@ti.com> [101213 21:08]:
> ping
...
> > How about merging this series in omap-testing if you are ok
> > with it. Patch " ARM: l2x0: Add aux control register bitfields"
> > is already acked by Catalin.
Sorry for the delay on this series, applying.
Regards,
Tony
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 0/5] omap4: l2x0 fixes and cleanup
@ 2010-12-18 17:39 ` Tony Lindgren
0 siblings, 0 replies; 28+ messages in thread
From: Tony Lindgren @ 2010-12-18 17:39 UTC (permalink / raw)
To: linux-arm-kernel
* Santosh Shilimkar <santosh.shilimkar@ti.com> [101213 21:08]:
> ping
...
> > How about merging this series in omap-testing if you are ok
> > with it. Patch " ARM: l2x0: Add aux control register bitfields"
> > is already acked by Catalin.
Sorry for the delay on this series, applying.
Regards,
Tony
^ permalink raw reply [flat|nested] 28+ messages in thread
end of thread, other threads:[~2010-12-18 17:40 UTC | newest]
Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-11-19 17:31 [PATCH 0/5] omap4: l2x0 fixes and cleanup Santosh Shilimkar
2010-11-19 17:31 ` Santosh Shilimkar
2010-11-19 17:31 ` [PATCH 1/5] ARM: l2x0: Add aux control register bitfields Santosh Shilimkar
2010-11-19 17:31 ` Santosh Shilimkar
2010-11-19 17:31 ` [PATCH 2/5] omap4: l2x0: Construct the AUXCTRL value using defines Santosh Shilimkar
2010-11-19 17:31 ` Santosh Shilimkar
2010-11-19 17:31 ` [PATCH 3/5] omap4: l2x0: enable instruction and data prefetching Santosh Shilimkar
2010-11-19 17:31 ` Santosh Shilimkar
2010-11-19 17:31 ` [PATCH 4/5] omap4: l2x0: Set share override bit Santosh Shilimkar
2010-11-19 17:31 ` Santosh Shilimkar
2010-11-19 17:31 ` [PATCH 5/5] omap4: l2x0: Enable early BRESP bit Santosh Shilimkar
2010-11-19 17:31 ` Santosh Shilimkar
2010-11-19 18:32 ` Måns Rullgård
2010-11-19 18:32 ` Måns Rullgård
2010-11-20 10:08 ` Santosh Shilimkar
2010-11-20 10:08 ` Santosh Shilimkar
2010-11-22 20:11 ` [PATCH 2/5] omap4: l2x0: Construct the AUXCTRL value using defines Kevin Hilman
2010-11-22 20:11 ` Kevin Hilman
2010-11-22 20:21 ` Måns Rullgård
2010-11-22 20:21 ` Måns Rullgård
2010-11-19 18:13 ` [PATCH 1/5] ARM: l2x0: Add aux control register bitfields Catalin Marinas
2010-11-19 18:13 ` Catalin Marinas
2010-12-02 11:57 ` [PATCH 0/5] omap4: l2x0 fixes and cleanup Santosh Shilimkar
2010-12-02 11:57 ` Santosh Shilimkar
2010-12-14 5:08 ` Santosh Shilimkar
2010-12-14 5:08 ` Santosh Shilimkar
2010-12-18 17:39 ` Tony Lindgren
2010-12-18 17:39 ` Tony Lindgren
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.