summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 31f45a7)
raw | patch | inline | side by side (parent: 31f45a7)
author | Murali Karicheri <m-karicheri2@ti.com> | |
Thu, 17 Jul 2014 16:28:17 +0000 (12:28 -0400) | ||
committer | Murali Karicheri <m-karicheri2@ti.com> | |
Thu, 17 Jul 2014 16:28:17 +0000 (12:28 -0400) |
On Keystone II SOCs, to support IO coherency, the memory
pages have to be marked outer shareable. But this has
undesired effect on the system and there are extra
snoop related writes send on the bus which creates
pressure on the memory pipe and hence the performance.
Since this additional write traffic is for snoop-filter
which MSMC doesn't support, we can suppress those and
get back the performance.
So disables clean/evict from being pushed to external
memory by setting L2ACTLR[.3] = 1.
Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
pages have to be marked outer shareable. But this has
undesired effect on the system and there are extra
snoop related writes send on the bus which creates
pressure on the memory pipe and hence the performance.
Since this additional write traffic is for snoop-filter
which MSMC doesn't support, we can suppress those and
get back the performance.
So disables clean/evict from being pushed to external
memory by setting L2ACTLR[.3] = 1.
Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
sec/skern.c | patch | blob | history |
diff --git a/sec/skern.c b/sec/skern.c
index ec6884740084d60c5148dc132b3ea8aeb4622cb0..7454ac65b5d56dd22ffa6b47ed4186f25d3e9e97 100644 (file)
--- a/sec/skern.c
+++ b/sec/skern.c
"mcr p15, 0, r0, c1, c0, 2\n"
"isb\n"
"dsb\n"
+ /* set L2ACTLR[.3] = 1 to workaround stream performance issue */
+ "mrc p15, 1, r0, c15, c0, 0\n"
+ "orr r0, r0, #(1 << 3)\n"
+ "mcr p15, 1, r0, c15, c0, 0\n"
"mov r0, #0x40000000\n"
/* vmsr FPEXC, r0 */
".inst 0xeee80a10\n"