]> git.sur5r.net Git - u-boot/blobdiff - arch/arm/cpu/armv7/rmobile/lowlevel_init_ca15.S
Merge branch 'rmobile' of git://git.denx.de/u-boot-sh
[u-boot] / arch / arm / cpu / armv7 / rmobile / lowlevel_init_ca15.S
index 287f8d74afa342534bc5b42a3f2f8793c7ff4ccf..a5dbbea9e1527d79f26348d939735408bd65e4ef 100644 (file)
@@ -35,6 +35,13 @@ do_cpu_waiting:
  */
        .align  4
 do_lowlevel_init:
+       ldr     r2, =0xFF000044         /* PRR */
+       ldr     r1, [r2]
+       and     r1, r1, #0x7F00
+       lsrs    r1, r1, #8
+       cmp     r1, #0x4C               /* 0x4C is ID of r8a7794 */
+       beq     _enable_actlr_smp
+
        /* surpress wfe if ca15 */
        tst r4, #4
        mrceq p15, 0, r0, c1, c0, 1     /* actlr */
@@ -42,11 +49,6 @@ do_lowlevel_init:
        mcreq p15, 0, r0, c1, c0, 1
 
        /* and set l2 latency */
-       mrceq p15, 1, r0, c9, c0, 2     /* l2ctlr */
-       orreq r0, r0, #0x00000800
-       orreq r0, r0, #0x00000003
-       mcreq p15, 1, r0, c9, c0, 2
-
        mrc p15, 0, r0, c0, c0, 5       /* r0 = MPIDR */
        and r0, r0, #0xf00
        lsr r0, r0, #8
@@ -58,9 +60,20 @@ do_lowlevel_init:
        cmp r1, #3                      /* has already been set up */
        bicne r0, r0, #0xe7
        orrne r0, r0, #0x83             /* L2CTLR[7:6] + L2CTLR[2:0] */
-       orrne r0, r0, #0x20             /* L2CTLR[5] */
+#if defined(CONFIG_R8A7790)
+       orrne r0, r0, #0x20             /* L2CTLR[5] */
+#endif
        mcrne p15, 1, r0, c9, c0, 2
 
+       b       _exit_init_l2_a15
+
+_enable_actlr_smp: /* R8A7794 only (CA7) */
+#ifndef CONFIG_DCACHE_OFF
+       mrc    p15, 0, r0, c1, c0, 1
+       orr    r0, r0, #0x40
+       mcr    p15, 0, r0, c1, c0, 1
+#endif
+
 _exit_init_l2_a15:
        ldr     r3, =(CONFIG_SYS_INIT_SP_ADDR)
        sub     sp, r3, #4