Module Name: src Committed By: jmcneill Date: Tue Dec 30 21:24:36 UTC 2014
Modified Files: src/sys/arch/evbarm/rockchip: rockchip_start.S Log Message: do armv7_dcache_inv_all before cortex_mpstart on secondaries To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/sys/arch/evbarm/rockchip/rockchip_start.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/evbarm/rockchip/rockchip_start.S diff -u src/sys/arch/evbarm/rockchip/rockchip_start.S:1.3 src/sys/arch/evbarm/rockchip/rockchip_start.S:1.4 --- src/sys/arch/evbarm/rockchip/rockchip_start.S:1.3 Sun Dec 28 21:34:33 2014 +++ src/sys/arch/evbarm/rockchip/rockchip_start.S Tue Dec 30 21:24:36 2014 @@ -43,7 +43,7 @@ #include <arm/cortex/scu_reg.h> -RCSID("$NetBSD: rockchip_start.S,v 1.3 2014/12/28 21:34:33 jmcneill Exp $") +RCSID("$NetBSD: rockchip_start.S,v 1.4 2014/12/30 21:24:36 jmcneill Exp $") #if defined(VERBOSE_INIT_ARM) #define XPUTC(n) mov r0, n; bl xputc @@ -180,8 +180,8 @@ _C_LABEL(rockchip_start): #endif rockchip_mptramp: ldr pc, 1f -.global cortex_mpstart_vec -cortex_mpstart_vec: +.global rockchip_mpstart_vec +rockchip_mpstart_vec: 1: .space 4 rockchip_mpinit: @@ -196,9 +196,9 @@ rockchip_mpinit: /* Set where the other CPU(s) are going to execute */ XPUTC2(#118) - movw r1, #:lower16:cortex_mpstart - movt r1, #:upper16:cortex_mpstart - ldr r0, =cortex_mpstart_vec + movw r1, #:lower16:rockchip_mpstart + movt r1, #:upper16:rockchip_mpstart + ldr r0, =rockchip_mpstart_vec str r1, [r0] ldr r0, =rockchip_mptramp mov r2, #0 @@ -278,6 +278,17 @@ ASEND(rockchip_mpinit) #ifndef KERNEL_BASES_EQUAL .popsection #endif + +rockchip_mpstart: + /* invalidate cache */ + movw ip, #:lower16:_C_LABEL(armv7_dcache_inv_all) + movt ip, #:upper16:_C_LABEL(armv7_dcache_inv_all) +#ifndef KERNEL_BASES_EQUAL + sub ip, ip, #KERNEL_BASE_VOFFSET +#endif + blx ip + b _C_LABEL(cortex_mpstart) + #endif /* MULTIPROCESSOR */ .Lmmu_init_table: