]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - processor-firmware/ks2-boot-monitor.git/commitdiff
boot-monitor: add workaround for stream performance degradation K2_BM_14.07
authorMurali Karicheri <m-karicheri2@ti.com>
Thu, 17 Jul 2014 16:28:17 +0000 (12:28 -0400)
committerMurali 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>
sec/skern.c

index ec6884740084d60c5148dc132b3ea8aeb4622cb0..7454ac65b5d56dd22ffa6b47ed4186f25d3e9e97 100644 (file)
@@ -256,6 +256,10 @@ void skern_setup_cp15(void)
        "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"